grammar test2; options { language=Java; k=*; } procedureDecl : PROCEDURE IDENTIFIER SEMICOLON subroutineBlock SEMICOLON ; subroutineBlock : IDENTIFIER | IDENTIFIER SEMICOLON ASM END ; SEMICOLON: ';'; PROCEDURE: 'PROCEDURE'; ASM: 'ASM'; BEGIN: 'BEGIN'; END: 'END'; IDENTIFIER: ('a'..'z'|'A'..'Z')+; WS: (' '|'\r'|'\n')+ {$channel = HIDDEN;};