[antlr-interest] Matching compound keywords in the lexer

Bart Kiers bkiers at gmail.com
Fri Nov 25 12:54:42 PST 2011


Hi Franck,

On Fri, Nov 25, 2011 at 9:47 PM, franck102 <franck102 at yahoo.com> wrote:

> ...

containOperator : CONTAINS_TEXT | CONTAINS_MATCH
>
> CONTAINS_TEXT
>        :       'contains' WS+ ( 'match' { $type=CONTAINS_MATCH }
>        |                              'text' )
>        ;
>
> // CONTAINS_MATCH:;  // causes "token definitions can never be matched"
> error
>
>
Add CONTAINS_MATCH to your @tokens{...} and create an empty fragment rule
called CONTAINS_MATCH to silence the warning:

-----------------------------

tokens {
  CONTAINS_MATCH;
}

...

CONTAINS_TEXT
  :  'contains' WS+ ( 'match' CONTAINS_MATCH
                    | 'text' )
  ;

...

fragment CONTAINS_MATCH : ;

-----------------------------

Regards,

Bart.


More information about the antlr-interest mailing list