在求解解析树时的属性vs L属性语法

时间:2016-01-04 11:19:04

标签: compiler-construction

如果语法既不是S属性也不是L属性,在评估解析树属性时会出现什么样的问题?

1 个答案:

答案 0 :(得分:0)

S-和L-属性语法处理起来特别简单,例如,属性评估可以直接按照自上而下的解析来执行。 (通过自下而上的解析,只有S-attributes语法很容易。) 一旦我们使用更通用的属性语法,属性语法系统就必须做更多的内务处理,就像在显式地维护CST并预先执行依赖性分析以执行过去解析的属性评估一样。

此外,解析器生成器(例如ANTLR 3)可以使用属性进行语义消歧。显然,当(自上而下)解析器尝试规则时,需要及时提供相应的属性。这适用于L-attributes语法,但不适用于一般AG。