这是NuSMV语言语法的一部分:
BasicExpression:
Constant | '(' BasicExpression ')' | '!' BasicExpression | BasicExpression '&' BasicExpression;
Constant:
BooleanConstant
BooleanConstant:
'TRUE' | 'FALSE';
不幸的是,XText抛出了一个异常,表明该语法中存在左递归。 我该如何解决?
感谢。
答案 0 :(得分:1)
您可以简单地引入一条新规则(新层):
BasicExpression:
firstContent=ExpressionContent ("&" secondContent=ExpressionContent)?
;
ExpressionContent:
Constant
| '(' BasicExpression ')'
| '!' BasicExpression
;
这样,规则不再是递归的。
问候Krzmbrzl
答案 1 :(得分:0)
查看this article或official documentation,它将详细解释如何处理语言递归,并考虑运算符优先级。