grammar Test; start_ : abstract EOF; abstract : and; and : array; array : as; as : break; break: callable; callable: case; case: class; // catch : 'a'; error(50): Test.g4:17:5: syntax error: mismatched input ':' expecting ARG_ACTION while matching a rule class: clone; clone: const; const: continue; continue: declare; declare : default; default: die; die: do; do: echo; echo: else; else: elseif; elseif : empty; empty : enddeclare; enddeclare: endfor; endfor: endforeach; endforeach: endif; endif: endswitch; endswitch: endwhile; endwhile: eval; eval: exit; exit: extends; extends: final; final: for; // finally : 'a'; error(50): Test.g4:52:7: syntax error: mismatched input ':' expecting ACTION while matching a rule for: foreach; foreach: function; function: global; global: goto; goto: if; if: implements; implements: include; include: include_one; include_one: instanceof; instanceof: insteadof; insteadof: interface; interface: isset; isset: list; list: namespace; namespace: new; new: or; or: print; print: private; private: protected; protected: public; public: require; require: require_once; require_once: return; return: static; static: switch; switch: throw; throw: trait; trait: try; try: unset; unset: use; use: var; var: while; while: xor; xor: yield; yield: rule; rule: 'a'; // parserRule : 'a'; PHP Fatal error: Cannot declare class Context\ParserRuleContext because the name is already in use in /mnt/c/msys64/home/Kenne/current/tests/Generated/TestParser.php on line 3597 ABSTRACT: 'b1'; AND: 'b2'; ARRAY:'b3'; AS:'b4'; BREAK:'b5'; CALLABLE:'b6'; CASE:'b7'; CATCH:'b7a'; // CLASS :'b8'; CONST:'b9'; CONTINUE:'b10'; DECLARE:'b11'; DEFAULT:'b12'; DIE:'b13'; DO:'b14'; ECHO:'b15'; ELSE:'b16'; ELSEIF:'b17'; EMPTY:'b18'; ENDDECLARE:'b19'; ENDFOREACH:'b20'; ENDIF:'b21'; ENDSWITCH:'b22'; ENDWHILE:'b23'; EVAL:'b24'; EXIT:'b25'; EXTENDS:'b26'; FINAL:'b27'; FINALLY:'b28'; FOR:'b29'; FOREACH:'b30'; FUNCTION:'b31'; GLOBAL:'b32'; GOTO:'b33'; IF: 'b34'; IMPLEMENTS:'b35'; INCLUDE:'b36'; INCLUDE_ONE:'b37'; INSTANCEOF:'b38'; INTERFACE:'b39'; ISSET:'b40'; LIST:'b41'; NAMESPACE:'b42'; NEW:'b43'; OR:'b44'; PRINT:'b45'; PRIVATE:'b46'; PROTECTED:'b47'; PUBLIC:'b48'; REQUIRE:'b49'; REQUIRE_ONCE:'b50'; RETURN:'b51'; STATIC:'b52'; SWITCH:'b53'; THROW:'b54'; TRAIT:'b55'; TRY:'b56'; UNSET:'b57'; USE:'b58'; VAR:'b59'; WHILE:'b60'; XOR:'b61'; YIELD:'b62'; RULE:'b63'; PARSERRULE:'b64'; // getCurrentToken :'a'; // match :'a'; // reset :'a'; // matchWildcard :'a'; // getBuildParseTree :'a'; // setBuildParseTree :'a'; // getParseListeners :'a'; // addParseListener :'a'; // removeParseListener :'a'; // removeParseListeners :'a'; // triggerEnterRuleEvent :'a'; // triggerExitRuleEvent :'a'; // getNumberOfSyntaxErrors :'a'; // getTokenFactory :'a'; // setTokenFactory :'a'; // getATNWithBypassAlts :'a'; // getErrorHandler :'a'; // setErrorHandler :'a'; // getInputStream :'a'; // setInputStream :'a'; // getTokenStream :'a'; tokenStream:'a'; // setTokenStream :'a'; token:'a'; // notifyErrorListeners :'a'; // consume :'a'; // createTerminalNode :'a'; // createErrorNode :'a'; // addContextToParseTree :'a'; // enterRule :'a'; // exitRule :'a'; // enterOuterAlt :'a'; // getPrecedence :'a'; // enterRecursionRule :'a'; // pushNewRecursionContext :'a'; // unrollRecursionContexts :'a'; // getInvokingContext :'a'; // getContext :'a'; context:'a'; // getCurrentRuleName :'a'; // setContext :'a'; // precpred :'a'; // inContext :'a'; // isExpectedToken :'a'; // isMatchedEOF :'a'; // getExpectedTokens :'a'; // getExpectedTokensWithinCurrentRule :'a'; // getRuleIndex :'a'; // getRuleInvocationStack :'a'; // getDFAStrings :'a'; // dumpDFA :'a'; // getSourceName :'a'; // setTrace :'a'; // isTrace :'a';