我是 ANTLR 的新手,并使用它来开发一种歧义语言的解析器。我想做的是如何在不使用 AST 的情况下将“评论”周围的标记组合成一个标记。
我用这个简单的语法来说明问题
grammar test;
query
: expression+
;
expression
: alpha
;
alpha
: ID
;
ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*
;
COMMENT
: '{' ( options {greedy=false;} : . )* '}' {$channel=HIDDEN;}
;
现在,如果我们用一个简单的文本“Test{Comments}er”执行它,就会生成两个单独的标记,即“Test”和“er”。而我想从中创建一个令牌。任何帮助都感激不尽。
提前致谢
吉姆