语法制导翻译.pptVIP

  • 8
  • 0
  • 约9.26千字
  • 约 64页
  • 2019-09-02 发布于广东
  • 举报
自底向上实现L属性SDD的例子(3) S1.next被存放在N的栈记录中,它恰巧存放于S1的栈记录之下 S1.next = stack[top-3].L1 构造抽象语法树的SDD 抽象语法树 每个结点代表一个语法结构;对应于一个运算符; 结点的每个子结点代表其子结构;对应于运算分量; 表示这些子结构按照特定方式组成了较大的结构。 可以忽略掉一些标点符号等非本质的东西。 语法树的表示方法 每个结点用一个对象表示 对象有多个域 叶子结点中只存放词法值; 内部结点中存放了op值和参数(通常指向其它结点); 构造简单表达式的语法树的SDD 属性E.node指向E对应的语法树的根结点; 表达式语法树的构造过程 输入: a-4+c 步骤: p1=new Leaf(id, entry_a) p2=new Leaf(num, 4); p3=new Node(‘-’, p1,p2); p4=new Leaf(id, entry_c); p5=new Node(‘+’, p3,p4); 自顶向下方式处理的L属性定义(1) 在消左递归时,按照规则得到此SDD 自顶向下方式处理的L属性定义(2) 对于这个SDD,各属性值的计算过程实际上和原来S属性定义中的计算过程一致。 继承属性可以把值从一个结构传递到另一个并列的结构;也可把值从父结构传递到子结构。 抽象语法树和分析树不一致时,继承属性很有用。 类型

文档评论(0)

1亿VIP精品文档

相关文档