起步
初步的可运行的已经在github上了:https://github.com/OriginUnion/origin,发现有bug可以留言,供学习而已,千万别用在项目上,应该也没人这么做吧。
什么是语法分析
上篇的词法分析已经把文本解析为一个个单词。上一步的输出就是这步的输入,语法分析就是定义语句的格式。诸如像if
语句的定义:
if_statement
: IF LP expression RP block
| IF LP expression RP block ELSE block
| IF LP expression RP block elseif_list
| IF LP expression RP block elseif_list ELSE block
这就定义了if的形式为if(表达式){}
或者if(表达式){}else{}
等格式。blok
的定义在其他地方。