Classic Expression Grammar :
0.Goal → Expr1.Assign → ident = Expr; //making Assign node
2.Expr → Expr + Term //making plus node3. | Expr - Term //making minus node
4. | Term
5.Term → Term * Factor //making Mult node
6. | Term / Factor //making div node
7. | Factor
8.Factor → ident //making ident node
9. | num //making num node
10. | ( Expr )
x = a * 3 + b ;
parsing tree
AST目的生成代码 所以本质上就是在parsing tree上剔除了多余的信息 但保留了原有的token信息和结构
AST:
本文介绍了经典表达式语法及其在编译器中的应用,讲解了如何通过语法制导翻译构建抽象语法树(AST)。讨论了Yacc和Bison这两个解析器生成器的工作原理,它们如何生成编译器的前端部分,并解释了在LR(1)文法中执行reduce操作生成AST的过程。同时,文章提到了不同操作的成本计算在优化编译器性能中的作用。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



