UNPKG

@mike-lischke/antlr-tgen

Version:

A generator for antlr-ng runtime test cases

65 lines (57 loc) 2.1 kB
[notes] This is a regression test for #239 "recoursive parser using implicit tokens ignore white space lexer rule". https://github.com/antlr/antlr4/issues/239 [type] Parser [grammar] grammar Expr; prog : expression EOF; expression : ID '(' expression (',' expression)* ')' # doFunction | '(' expression ')'# doParenthesis | '!' expression # doNot | '-' expression # doNegate | '+' expression # doPositiv | expression '^' expression # doPower | expression '*' expression # doMultipy | expression '/' expression # doDivide | expression '%' expression # doModulo | expression '-' expression # doMinus | expression '+' expression # doPlus | expression '=' expression # doEqual | expression '!=' expression # doNotEqual | expression '>' expression # doGreather | expression '>=' expression # doGreatherEqual | expression '\<' expression # doLesser | expression '\<=' expression # doLesserEqual | expression K_IN '(' expression (',' expression)* ')' # doIn | expression ( '&' | K_AND) expression# doAnd | expression ( '|' | K_OR) expression # doOr | '[' expression (',' expression)* ']'# newArray | K_TRUE # newTrueBoolean | K_FALSE # newFalseBoolean | NUMBER # newNumber | DATE # newDateTime | ID # newIdentifier | SQ_STRING# newString | K_NULL # newNull ; // Fragments fragment DIGIT : '0' .. '9'; fragment UPPER : 'A' .. 'Z'; fragment LOWER : 'a' .. 'z'; fragment LETTER : LOWER | UPPER; fragment WORD : LETTER | '_' | '$' | '#' | '.'; fragment ALPHANUM : WORD | DIGIT; // Tokens ID : LETTER ALPHANUM*; NUMBER : DIGIT+ ('.' DIGIT+)? (('e'|'E')('+'|'-')? DIGIT+)?; DATE : '\'' DIGIT DIGIT DIGIT DIGIT '-' DIGIT DIGIT '-' DIGIT DIGIT (' ' DIGIT DIGIT ':' DIGIT DIGIT ':' DIGIT DIGIT ('.' DIGIT+)?)? '\''; SQ_STRING : '\'' ('\'\'' | ~'\'')* '\''; DQ_STRING : '"' ('\\\\"' | ~'"')* '"'; WS : [ \t\n\r]+ -> skip ; COMMENTS : ('/*' .*? '*' '/' | '//' ~'\n'* '\n' ) -> skip; [start] prog [input] Test(1,3)