我在JavaCC文件中有以下内容:
void condition() : {}
{
expression() comp_op() expression()
| condition() (<AND> | <OR>) condition()
}
其中<AND>
是&#34;&amp;&amp;&#34; <OR>
是&#34; ||&#34;。由于它是直接左递归的事实,这引起了问题。我该如何解决这个问题?
答案 0 :(得分:2)
条件基本上是由expression comp_op expression
或AND
分隔的OR
中的一个或多个。您可以执行以下操作
condition --> simpleCondition ( (<AND> | <OR>) simpleCondition )*
simpleCondition --> expression comp_op expression