我有类似的语法
%(var)
和
%var
和 (var)
我的规则是这样的
optExpr:
| '%''('CommaLoop')'
| '%' CommaLoop
CommaLoop:
val | CommaLoop',' val
Expr:
MoreRules
| '(' val ')'
问题是它似乎无法判断 ) 是否属于%(CommaLoop)或% (val)但它抱怨 ) 而不是 (。到底是什么?它不应该抱怨(吗?我应该如何修复错误?我认为制作%(令牌是一个很好的解决方案,但我想$(在执行此操作之前确定为什么不是错误。