前言
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中唯一的数据结构:表。依次完成表的定义、构造、和读写。
为了实现写操作,也就是对表成员的赋值,在语法分析阶段引入
ExpDesc
这个关键的数据结构。