编译器之旅(三)——运算符优先级
需求 我们在上一部分中看到,解析器不一定强制执行我们语言的语义,它仅强制执行语法的语法和结构规则。 我们最终得到了计算表达式错误值(如 2 _ 3 + 4 _ 5)的代码,因为该代码创建了一个如下所示的 AST… »
女王控的博客
需求 我们在上一部分中看到,解析器不一定强制执行我们语言的语义,它仅强制执行语法的语法和结构规则。 我们最终得到了计算表达式错误值(如 2 _ 3 + 4 _ 5)的代码,因为该代码创建了一个如下所示的 AST… »
需求 为上一节识别的语言定义一个语法 准备 BNF 这是语法的 BNF 描述 竖线将语法中的选项分开,因此含义是: 表达式可以只是一个数字,或者 一个表达式是两个用’ * ‘标记分隔的表达式,或者 一个表达式是两个用’/‘标记分隔的表达式,或者 一个表达式是两个用’+‘标记分隔的表达式,或者 一个表达式是两个由’-‘标记分隔的表达式 数字始终是 T_INTLIT 语法的 BNF… »
原理知识 可参考 parsing techniques… »