lexer grammar Simple; options { language = Java; } @header { package test; } fragment DOT_PROG: ; fragment DOT_SL: ; fragment DOT_PRINT: ; fragment DOT_ADD: ; fragment DOT_SPP: ; DOT: '.' ( ('PROG')=>'PROG' {$type=DOT_PROG;} |('SL')=>'SL' {$type=DOT_SL;} |('PRT')=>'PRT' {$type=DOT_PRINT;} // |('ADD')=>'ADD' {$type=DOT_ADD;} |('SPP')=>'SPP' {$type=DOT_SPP;} )? ; WORD: ('A'..'Z')+;