我继承了一个在Python程序中使用的旧的Antlr语法。其中一个产品看起来像这样:
merge
:! l:expr
( n:name_list r:expr
{ /* do something with n and r*/ }
|
{ /* do something else */ }
)
|!
n2:name_list '*' o:expr
{ /* do something with n2 and o */ }
;
现在,我熟悉Yacc和Antlr的:
和|
令牌,但是如果有额外的!
有什么重要意义?
答案 0 :(得分:1)
:!和|!意味着不为周围的规则建立AST。