解析声明变量

86 阅读1分钟

以int age = 45为例

image.png

首先把变量声明语句的规则

它的左边是一个非终结符(Non-terminal)。右边是它的产生式(Production Rule)。在语法解析的过程中,左边会被右边替代。如果替代之后还有非终结符,那么继续这个替代过程,直到最后全部都是终结符(Terminal),也就是 Token。只有终结符才可以成为 AST 的叶子节点。这个过程,也叫做推导(Derivation)过程:

解析变量声明语句时,我先看第一个 Token 是不是 int。如果是,那我创建一个 AST 节点,记下 int 后面的变量名称,然后再看后面是不是跟了初始化部分,也就是等号加一个表达式。我们检查一下有没有等号,有的话,接着再匹配一个表达式。

有点难理解,后续再来学。

此文章为3月Day26学习笔记,内容来源于极客时间《 03 | 语法分析(一):纯手工打造公式计算器 (geekbang.org)