识别Antlr4中的空令牌

时间:2019-01-29 02:04:35

标签: null antlr4

我想解析此列表。 (+我将通过使用访问者获得项目的内容。)

identifier ( item1, item2, item3 ...)

它有2条重要规则。

  1. 项目之间用','或空格分隔。
  2. 如果有逗号,则它将空标记识别为''。

例如,这些是相同的句子

func ( ' ' item2 ' ')
func ( ' ',item2,' ')
func (   , item2 ,  )    << problem case
func (,item2,)           << problem case

我制定了一条规则,但是它无法识别空令牌。实际上,我的所有尝试都没有效果。

我如何识别空项目?

r  : sentence+; 
sentence : TOKEN '(' TOKEN (','? TOKEN)* ')';
TOKEN : [a-zA-Z0-9]+ | '\'' ~[']+ '\'' ;
WS : ([ ]+ | ',') -> skip;
NL : [\r\n] ->skip;

0 个答案:

没有答案