在通过上一章介绍后,我们可以将一个编程语法抽象为抽象表达式并通过解析树给出解析,这里有几点注意,一是ambiguity歧义性,需要使用优先级和左相依原理来保证生成左解析树从而保证消除歧义性。
图片可以看出对一个语句左右解析是不同的也导致了歧义。叶子节点为终结符,非叶子节点为非终结符
再比如如下
最下面为词法分析后的结果,此时将其转换为左解析树
对其进一步抽象得到抽象语法树
在通过上一章介绍后,我们可以将一个编程语法抽象为抽象表达式并通过解析树给出解析,这里有几点注意,一是ambiguity歧义性,需要使用优先级和左相依原理来保证生成左解析树从而保证消除歧义性。
图片可以看出对一个语句左右解析是不同的也导致了歧义。叶子节点为终结符,非叶子节点为非终结符
再比如如下
最下面为词法分析后的结果,此时将其转换为左解析树
对其进一步抽象得到抽象语法树