语法直接转换是通过构造一个解析树并以从左到右的深度优先顺序执行动作来实现的。
SDT通过解析输入来实现, 并生成一个解析树作为结果。
例
生产 | 语义规则 |
---|---|
S→E $ | {printE.VAL} |
E→E + E | {E.VAL:= E.VAL + E.VAL} |
E→E * E | {E.VAL:= E.VAL * E.VAL} |
E→(E) | {E.VAL:= E.VAL} |
E→我 | {E.VAL:= I.VAL} |
我→我数字 | {I.VAL:= 10 * I.VAL + LEXVAL} |
我→数字 | {I.VAL:= LEXVAL} |
文章图片
【语法定向翻译的实现】无花果:解析树