通过编写一个简单的绘图语言解释器加深对编译原理中词法、语法、语义分析的理解
- 循环绘图(FOR—DRAW)
- 比例设置(SCALE)
- 角度旋转(ROT)
- 坐标平移(ORIGIN)
- 注释(--或//)
- 颜色设置(COLOR)
-- 函数f(t)=t的图形
origin is (100, 300); -- 设置原点的偏移量
rot is 0; -- 设置旋转角度(不旋转)
scale is (1, 1); -- 设置横坐标和纵坐标的比例
color is RED; -- 设置颜色为红色
for T from 0 to 200 step 1 draw (t, 0);
-- 横坐标的轨迹(纵坐标为0)
for T from 0 to 150 step 1 draw (0, -t);
-- 纵坐标的轨迹(横坐标为0)
for T from 0 to 120 step 1 draw (t, -t);
-- 函数f(t)=t的轨迹
Lexer.py:词法分析器
Parser.py:语法分析和语义分析(采用的语法制导的语义分析)
utils.py:辅助类、函数
test.txt:测试文本