如何使用ANTLR解析花括号?

时间:2018-09-29 04:15:04

标签: antlr antlr4

首先,我不想使用StringTemplate。

我正在学习ANTLR,并且已经创建了以下语法。

grammar CurlyBracket;

/* LExer Rule */
START_BR : '{' ;
END_BR   : '}' ;
TEXT      : ~[{}]+ ;
TWO_ST_BR : '{{'; 
TWO_ED_BR : '}}';

/* Grammer Rule */
root : html EOF ;
html : ( normal | bracket | tokenbracket ) * ;
normal : TEXT ;
bracket : START_BR html END_BR;
tokenbracket : TWO_ST_BR html TWO_ED_BR;

现在,括号成功解析。但是我有以下要求。

  1. 想要获取所有以两个大括号开头的令牌。

  2. 如果它是一个或两个以上,则不应考虑。

我的输入很简单。

This is test {Test}  {{User.Test1}} {{{Test2}}}

所以输出应该只是

   {{User.Test1}}

0 个答案:

没有答案