前言
1.
hello, world!
1.1.
编译原理基础
1.2.
字节码
1.3.
值和类型
1.4.
动手实现
2.
变量和赋值
2.1.
更多类型
2.2.
局部变量
2.3.
变量赋值
3.
字符串优化
3.1.
字符串定义
3.2.
类型转换
3.3.
输入类型
3.4.
Unicode和UTF-8
3.5.
垃圾回收和Rc
4.
表和ExpDesc
4.1.
表的定义
4.2.
表的构造
4.3.
ExpDesc概念
4.4.
ExpDesc改造
4.5.
表的读写和BNF
5.
数值运算
5.1.
一元运算
5.2.
二元运算
5.3.
整数和浮点数
6.
控制结构
6.1.
if语句
6.2.
elseif和else分支
6.3.
while和break语句
6.4.
repeat和continue语句
6.5.
数值型for语句
6.6.
goto语句
7.
逻辑运算和关系运算
7.1.
条件判断中的逻辑运算
7.2.
求值中的逻辑运算
7.3.
条件判断中的关系运算
7.4.
求值中的关系运算
8.
函数
8.1.
定义和调用
8.2.
参数
8.3.
返回值
8.4.
Rust函数和API
8.5.
尾调用
9.
闭包
9.1.
Upvalue
9.2.
Upvalue的逃逸和闭包
9.3.
block和goto的逃逸
9.4.
Rust闭包
9.5.
泛型for语句
9.6.
环境 _ENV
未完待续
参考文献
Light (default)
Rust
Coal
Navy
Ayu
用Rust实现Lua解释器
变量和赋值
上一章我们完成了一个功能简单但具有完整流程的Lua解释器。后续就要在这个解释器的基础上,持续添加新特性。
这一章首先增加一些简单的类型,包括布尔、整数和浮点数。然后引入局部变量。