我想解析此列表。 (+我将通过使用访问者获得项目的内容。)
identifier ( item1, item2, item3 ...)
它有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;