在语法指导的翻译中, 连同语法一起, 我们关联了一些非正式的符号, 这些符号称为语义规则。
所以我们可以说
Grammar + semantic rule = SDT (syntax directed translation)
- 在语法定向翻译中, 每个非终结符都可以获取一个或多个属性, 有时还可以获取0个属性, 具体取决于属性的类型。这些属性的值由与生产规则关联的语义规则评估。
- 在语义规则中, 属性为VAL, 属性可以包含任何内容, 例如字符串, 数字, 存储位置和复杂记录
- 在语法定向翻译中, 每当构造体遇到编程语言时, 就会根据该特定编程语言中定义的语义规则对其进行翻译。
生产 | 语义规则 |
---|---|
E→E + T | E.val:= E.val + T.val |
E→T | E.val:= T.val |
T→T * F | T.val:= T.val + F.val |
T→F | T.val:= F.val |
F→(F) | F.val:= F.val |
无论是在F→ | F.val:= num.lexval |
num.lexval是词法分析器返回的属性。