例子:
start = name / invocation;
name = [a-zA-Z]+ { return text() };
invocation = a:name "()" { return {type: 'inv', value: a } };
如果输入是abc()
我收到错误:
Expected [a-zA-Z] or end of input but "(" found
但是,如果 start 定义如下,则不会出现问题:
start = invocation / name;
对于较早的情况,名称规则不应该不匹配并因此进入调用规则吗?否则如何管理这样的事情?
有关工作示例,请参阅操场