例如变量可以有一个属性"类型"以便以后进行类型审查,整常数可以有一个属性"值",以便以后生成代码需要。
  对每个产生式,给一个语义规则或动作(actions),用以描述如何计算和每个符号相联的属性值。
  在8.2节,我们已经讨论了两种类型的属性:综合和继承的。综合的属性是指沿着语法树向上的属性,即产生式左端的非终结符的属性是由产生式右端的非终结符的属性计算的,终结符的属性通常由词法分析程序提供,然后再作为综合属性由此向上走。也就是说,若产生式为 x→y1y2…yn,综合属性a的计算公式形式为x.a=f(y1.a,y2.a, …,yn.a)。
  例如,下述属性文法说明了计算整数的过程:
  <digit> → 0 {digit.value=0}
        …
        9 {digit.value=9}
  <int1> → <digit> {int1.value=digit.value}
       |<int2> <digit> {int1.value=int2.value*10+digit.value}
图8.14 属性值自底向上传递
  图8.14是句子42的标有属性值的语法树,属性值value的计算过程首先从最底层最左边的结点4开始,然后按照自底向上归约的顺序,一步步向上综合的。