在后续完成一个完整的编译器的实验中,我们允许你使用解析器生成工具来自动生成编译器的前端词法分析部分和语法分析部分。
如果你打算手动实现词法分析和语法分析,可以跳过此节。
这部分会涉及到后面的知识,看不懂其中的一些地方是正常的。
本节的语法解析部分将会使用生成器生成用于解析算术表达式的代码,其示例文法如下:
expr -> term | expr '+' term | expr '-' term
term -> factor | term '*' factor | term '/' factor
factor -> '(' expr ')' | number
number -> [0-9]+ | [0-9]+ '.' [0-9]* | [0-9]* '.' [0-9]+