/py.calc

python calc,解释型语言

Primary LanguagePython

py.calc

python calc

一个计算器

  1. 只支持加减乘除运算
  2. 只支持正整数
  3. 可以定义变量
  4. 有一个内置方法print可用于输出

解释型语言

token定义

  1. 加减乘除
  2. NUMBER

词法分析

  1. 读取文件,扫描每一个字符
  2. 跳过空白
  3. 编写NUMBER的有限状态机扫描器
  4. 生成token序列

语法分析

  1. EBNF定义文法

  2. 按照EBNF定义的文法,一一编写对应的匹配代码

  3. 定义树节点,生成AST树

  4. AST树执行,生成最后结果

符号表管理

  1. 变量作用域
  2. 变量保存到变量表里面,创建或赋值的时候add,使用的时候get

目前,可支持的语法如下:

a = 1 + 2

b = a * 3 / 2 - 1


a = 100

print(1, 2, 3, a, b + a)

TODO

  1. 继续完善语法,比如支持 分支语句,函数,数组,字符串,类等
  2. 定义操作码,生成操作码,开发虚拟机,用虚拟机执行操作码