03 | 语法分析(一):纯手工打造公式计算器
正则文法匹配就是key-value
匹配。
上下文无关文法就是二叉树的深度优先遍历。
上下文无关文法可以解决表达式运算优先级问题,正则文法不能。
正则文法能的,上下文无关文法也能。
术语
- 递归下降算法
算术表达式二叉树
深度优先遍历过程中,父节点是操作符,左右子节点是字面量。
变量声明表达式二叉树
深度优先遍历过程中,父节点是一个语句,左子节点是解析过程,右子节点是下个语句。
思考
假设每个算术表达式就是一个判断语句。
正则文法匹配可以是程序语法中判断语句的优化写法。
上下文无关文法则把判断流程进行二叉树化,从而可支持自定义运算符的判断优先级。
网友评论