假定我们现在要分析的语法成分是简单算术表达式,所完成的语义处理不是将它翻译成中间代码或是目标代码,而是计算表达式的值。采用的描述系统是上节的例8.1。假如语法分析方法是自下而上的。在用某一产生式进行归约的同时就执行相应的语义动作,在分析出一个句子时,这个句子的"值"也就同时产生了,例如输入串是2+3*5,其语法树如图8.4(a),在第一步归约用到了产生式(6),执行的语义动作是置F.val的值为单词digit值,我们把语法树中每个结点的语义值括在该结点处。那么第一步归约并完成语义动作后的情形在图8.4(b)中指出。继续进行分析,第七次归约后的情形在图8.4(c)中指出。归约至E时,它的值17也计算出来了。 |