实验内容

虽然我们在课堂上花了很多篇幅来讲解parser和lexer的手动构造,但实际上已经有大量成熟的parser generator存在,很多时候我们并不手动实践这些原理,只需要直接利用这些工具即可。

不同于大家可能已经听说过或者使用过的lex/flex/yacc/bison等工具,本阶段的实验基于一个我写的parser generator lalr1来完成。这个工具可能还远没有到达成熟的地步,有可能其中还存在影响使用的bug,希望大家积极报告。

(为避免混淆,这里先声明,lalr1指的是parser generator的名字,lalr(1)指的是文法种类)

框架中已经实现了decaf语言规范中的所有基本语法,大家的任务是在此基础上实现我们要求的新语法,新语法具体细节可以参考专门的文档。如果有什么特别需要注意的地方,之后会在这里补充。

Last updated