python calc
- 只支持加减乘除运算
- 只支持正整数
- 可以定义变量
- 有一个内置方法print可用于输出
- 加减乘除
- NUMBER
- 读取文件,扫描每一个字符
- 跳过空白
- 编写NUMBER的有限状态机扫描器
- 生成token序列
-
EBNF定义文法
-
按照EBNF定义的文法,一一编写对应的匹配代码
-
定义树节点,生成AST树
-
AST树执行,生成最后结果
- 变量作用域
- 变量保存到变量表里面,创建或赋值的时候add,使用的时候get
目前,可支持的语法如下:
a = 1 + 2
b = a * 3 / 2 - 1
a = 100
print(1, 2, 3, a, b + a)
- 继续完善语法,比如支持 分支语句,函数,数组,字符串,类等
- 定义操作码,生成操作码,开发虚拟机,用虚拟机执行操作码