小编Luk*_*nia的帖子

ANTLR - 具有空格的标识符

我想要可以包含空格的标识符.

grammar WhitespaceInSymbols;

premise :   ( options {greedy=false;} : 'IF' )  id=ID{
System.out.println($id.text);
};

ID  :   ('a'..'z'|'A'..'Z')+ (' '('a'..'z'|'A'..'Z')+)* 
;

WS  :   ' '+ {skip();}
;
Run Code Online (Sandbox Code Playgroud)

当我用"IF语句分析"测试时,我得到一个MissingTokenException和输出"IF语句分析".
我想,通过使用greedy = false,我可以告诉ANTLR退出'IF'并将其作为令牌.但相反,IF是ID的一部分.有没有办法实现我的目标?我已经尝试过greed = false-option的一些变体,但没有成功.

whitespace antlr identifier

2
推荐指数
1
解决办法
1286
查看次数

标签 统计

antlr ×1

identifier ×1

whitespace ×1