У меня в основном есть следующее утверждение и хочу, чтобы он обрабатывал материал внутри него независимо от того, в каком порядке он входит. Так, например, в качестве кода в настоящее время он будет принимать «ABS (5) + 3», но не «3 + ABS (5)». Кто-нибудь знает, как я могу заставить его работать в любом порядке?JavaCC - Как я могу сделать заказ неважно в этом заявлении?
Я думал о том, чтобы положить все как OR, а затем окружить это с помощью *, но это, похоже, не сильно изменило ситуацию.
((s1=ABS() { s=s+s1; })
| ("+" { op="+"; s=s+op; }
| "-" { op="-"; s=s+op; }
| "*" { op="*"; s=s+op; }
| "/" { op="/"; s=s+op; })
| (s1=EXPR() { s=s+s1; }))*