[antlr-interest] How to deal with this kind of situation?

Stefan Mätje Stefan.Maetje at esd-electronics.com
Mon Jun 4 08:17:35 PDT 2012

Am 04.06.2012 14:14, schrieb Felix.徐:
> Hi,all, here is the gramma:
> columnName (',' columnName)* ->  ^(SM_TOK columnName)
> I want the output ast of "A,B" to have multiple SM_TOK , like : (SM_TOK A)
> (SM_TOK B)
> But,currently,I only have: (SM_TOK A)
> It seems that 'B' will be ignored.
> Can anyone help me to fix this gramma?

Use something like:

columnName (',' columnName)* ->  ^(SM_TOK columnName)+

Please note the '+' sign I added to your rewrite rule.

If you want to have something like


instead use

columnName (',' columnName)* ->  ^(SM_TOK columnName+)

Please observe the different position of '+' here.

Best regards,

More information about the antlr-interest mailing list