关于LL(1)文法的语法制导的翻译,已经学会语法分析了,但不会语义分析,求问每一步的语义动作怎么定啊?

比如 B->+CB,对于这样的产生式,相应的语义动作是什么啊?
我的整个的产生式是:
S->A|ε
A->CB
B->+CB|-CB|ε
C->ED
D->*ED|/ED|ε
E->(A)|num|id

简单理解的话,可以换回来。
例如,
b可以产生+cb这样的式子,
b=1
-> +c1 -> +c+c1...等
也可以是叶子,epsolon追问

你好,麻烦再问下,就B->+CD这个产生式来讲,怎么生成四元式啊?它只含有四元式所需的两个参数的一个啊。因为前一个终结符会在之前的产生式里,情何以堪。而且后面那个D,既有可能又是一个*ED这种只有半截的表达式,又有可能是空产生式。。所以始终不知道怎么生成四元式,好难啊

追答

- - 没看错的话,上面就一个四则运算的简化式。先把所有可能的叶子列出来,重复的写两次,接着合在一起就好了啦〜

追问

看了好久还是理解不了,不知道临时变量生成的时机啊。。我举个例子吧,为了简单起见,整个的产生式是A->CB, B->+CB|ε, C->num。要分析的句子是:1+2。那么,语法分析得到的产生式序列是A->CB, C->num, 然后num匹配,B->+CB, +匹配, C->num, num匹配, B->ε。对于这个过程,是怎么生成四元式啊?感谢!

追答

在这不好说明。就上题而言,
(+, 1, 2, t1)
大概理解你是想问怎么用程序翻译ll1的结果成为4元式是吧?
私信你一个url,你看下这个是不是你要的。

温馨提示:答案为网友推荐,仅供参考