| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239 | lexer grammar ivprog;// BEGIN i18n Lexical rulesRK_PROGRAM  : 'program'  ;RK_REAL  : 'real'  ;RK_VOID  : 'void'  ;RK_BOOLEAN  : 'boolean'  ;RK_STRING  : 'string'  ;RK_INTEGER  : 'integer'  ;RK_CHARACTER  : 'character'  ;    RK_SWITCH  : 'switch'  ;RK_CASE  : 'case'  ;RK_DEFAULT  : 'otherwise'  ;RK_CONST  : 'const'  ;RK_FUNCTION  : 'function'  ;RK_RETURN  : 'return'  ;  RK_FOR  : 'for'  ;RK_BREAK  : 'break'  ;RK_DO  : 'do'  ;RK_WHILE  : 'while'  ;RK_IF  : 'if'  ;RK_ELSE  : 'else'  ;RK_FALSE  : 'false'  ;RK_TRUE  : 'true'  ;fragment RK_LOGICAL_NOT  : 'not'  ;fragment RK_LOGICAL_AND  : 'AND'  ;fragment RK_LOGICAL_OR  : 'OR'  ;// END i18n Lexical rules// GAMBIARRA   : '.' |'á'| 'à'| 'ã'|'â'|'é'|'ê'|'í'|'ó'|'ô'|'õ'|'ú'|'ü'|'ç'|'Ä'|'À'|'Ã'|'Â'|'É'|'Ê'|'Ë'|'Ó'|'Ô'|'Õ'|'Ú'|'Ü'|'Ç'|'#'|'$'|'"'|'§'|'?'|'¹'|'²'|'³'|'£'|'¢'|'¬'|'ª'|'º'|'~'|'\''|'`'|'\\'|'@';OPEN_PARENTHESIS  : '('  ;CLOSE_PARENTHESIS  : ')'  ;OPEN_BRACE  : '['  ;CLOSE_BRACE  : ']'  ;OPEN_CURLY  : '{'  ;CLOSE_CURLY  : '}'  ;COMMA  : ','  ;EQUAL  : '='  ;SUM_OP  : ('+'|'-')  ;MULTI_OP  : ('*'|'/'|'%')  ;AND_OPERATOR  : RK_LOGICAL_AND  ;OR_OPERATOR  : RK_LOGICAL_OR  ;RELATIONAL_OPERATOR  : ('>='|'=='|'<='|'>'|'<'|'!=')  ;COLON  : ':'  ;NOT_OPERATOR  : RK_LOGICAL_NOT  ;ID  : [a-zA-Z_] [a-zA-Z0-9_]*  ;LIB_ID  : ID '.' ID  ;INTEGER  : [0-9]+  | ('0x'|'0X')(HEX_DIGIT)+  | ('0b'|'0B')[0-1]+  ;REAL  : [0-9]+ '.' [0-9]+  | [0-9]+ '.' [0-9]* ExponentPart  ;fragment ExponentPart  : [eE] [+-]? [0-9]+  ;STRING  : '"' STRING_CHARACTER* '"'  ;    fragment STRING_CHARACTER //String as defined at https://github.com/antlr/grammars-v4/blob/master/java8/Java8.g4  : ~["\\\r\n]  | ESC_SEQ  ;CHARACTER //Character as defined at https://github.com/antlr/grammars-v4/blob/master/java8/Java8.g4  : '\'' ( ESC_SEQ | ~['\\\r\n]) '\''  ;WHITESPACE   : ( ' ' | '\t') -> skip  ;fragment SEMICOLON  : ';'  ;EOS  : [\r\n]+  | SEMICOLON  ;fragment HEX_DIGIT  : [0-9a-fA-F]  ;fragment OCTAL_DIGIT  : [0-7]  ;fragment ESC_SEQ  : '\\' ('b'|'t'|'n'|'f'|'r'|'"'|'\''|'\\')  | ESC_UNICODE  | ESC_OCTAL  ;fragment ESC_OCTAL  : '\\' [0-3] OCTAL_DIGIT OCTAL_DIGIT  | '\\' OCTAL_DIGIT OCTAL_DIGIT  | '\\' OCTAL_DIGIT  ;fragment ESC_UNICODE  : '\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT  ;COMMENTS  : ('//' ~('\n'|'\r')* '\r'? '\n'    | '/*' .*? '*/') -> channel(HIDDEN)  ;
 |