是道编译原理题,最关键的就是“无二义性”,我写出的都有二义性,不知道该怎么消除
我题目不是写的清清楚楚在标题里,什么叫做没具体的题目啊?一楼的怎么搞的啊
拜托一楼的,这是著名教材的习题,绝对有解,你不要自己不会就说题目错了好吧,我都无语了。。你不会的话为什么要回答呀,骗分呀,鄙视
这段话时龙书上的原话:
依照惯例,9+5+2等价于(9+5)+2,9-5-2等价于(9-5)-2.当一个运算分量(比如上式中的5)的左右两侧都优于氨酸时,我们需要一些规则来决定哪个运算符被应用于该运算分量。我们说运算符”+“是左结合(associate)的,因为当一个运算分量左右两侧都有”+“号时,它属于其左边的运算符。在大多数程序设计语言中,加减乘除四种算术运算符都是左结合的。
某些常用的运算符是右结合偶的,比如指数运算符。作为另一个例子,C语言中的赋值运算符”=“及其后裔(即+=,-=等译者注)也是右结合的。对表达式a=b=c的处理和对表达式a=(b=c)的处理相同。带有右结合运算符的串,比如a=b=c,可以由如下文法产生;
right = letter = right | letter
letter = a|...........|z
这是一个左结合的分析树,它向左下端延伸。
这是右结合的分析树,它向右下方延伸。
所以你的答案为 list ——> list , a | a.