【发布时间】:2014-10-16 22:07:43
【问题描述】:
我基本上有以下语句,并且希望它以相同的方式对待里面的东西,无论它以什么顺序出现。所以例如,目前的代码是,它将接受“ABS(5)+ 3”但是不是“3 + ABS(5)”。有谁知道我怎样才能让它按任何顺序工作?
我认为将所有内容都设为 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; } ) )*
【问题讨论】:
标签: compiler-construction javacc