左结合和右结合的问题~和编译原理有关

来源:百度知道 编辑:UC知道 时间:2024/05/22 04:32:25
我目前知道两种说法,例如C++中:运算符左结合是说从左至右运算。
而在编译原理中说明:左结合是指一个数的左边和右边都有运算符时,参与左边运算符的运算。

以这两种说明来讲“+是左结合”都是行得通的。

但是我最近看到一个东西:‘*’,在编译原理词法分析中用做正规表达式的一个符号,这个东西用法如下:
LETER(LETER|DIGITIL)*
书上说‘*’是左结合的,但是我如果是下面情况:
L—>A*B*
B应该和谁结合?
按理来说应该是A和第一个*,B和后面的*结合,但是和编译原理是关于左结合的解释不一致啊!

高分求教!

B与第一个*结合:用编译原理的运算符的结合性来解释的话,就是假设*是左结合的。当运算分量(本例中是B)两侧都有运算符(本例中是*)的时候,采用左结合。即B与B左边的*结合。
eg: L —>A*B*C 先计算 A*B 然后计算(A*B)*C。
不知道你懂么??