S-属性文法
把x,y,z弹出,把规约后的A和对应的状态、属性压进来。规约时同时完成属性计算:
L-属性文法的定义
q的继承属性只能依赖于它的左边符号包括A,不能依赖它右边的符号R
翻译模式
![](https://i-blog.csdnimg.cn/blog_migrate/d473711392fe9e329d35497ce40326c7.png)
翻译模式示例
继承属性放左边,综合属性放右边
语义动作执行时机统一
消除翻译模式中的左递归
从上往下,从左往右
消除翻译模式中的左递归的一般方法
递归下降翻译译器的设计
判断当前单词是否为加减号,若是,则前进,到T和R,T和R识别完后R就识别完了;如果当前单词不是加减号,则什么都不做
E只有一个综合属性,没有继承属性,所以E所对应的函数没有对应参数,只有一个返回值,返回指向抽象语法树结点的指针;R有继承属性i和综合属性s;T只有综合属性