编译原理——递归分析翻译

递归解析器中每个非终结符A都有产生式A。我们可以将解析器扩展为翻译器,如下所示:

a)产生式A的参数是非终结点A的继承属性。

b)产生式A的返回值是非终结点A综合属性的集合。

在产生式A中,我们需要解析和处理属性:

1.由A扩展的产生式决定。

2.当有需要时,检查输入端中出现的每一个终结符。假设不需要回溯,但是通过在故障时恢复输入位置,可以通过回溯进行递归解析的扩展。

3.在局部变量中,保留产生式内所有需要计算的非终结符的继承属性或者合成属性的值。

4.在所选生产式中调用与非终结符相对应的方法,为它们提供正确的参数。由于底层的SDD是L属性,所以我们已经计算了这些属性并存储在局部变量中。

你可能感兴趣的:(编译原理——递归分析翻译)