private AstParserRuleReturnScope<object, IToken> outputToken() { EnterRule_outputToken(); EnterRule("outputToken", 6); TraceIn("outputToken", 6); AstParserRuleReturnScope<object, IToken> retval = new AstParserRuleReturnScope<object, IToken>(); retval.Start = (IToken)input.LT(1); object root_0 = default(object); IToken id = default(IToken); IToken char_literal12 = default(IToken); IToken char_literal14 = default(IToken); IToken char_literal15 = default(IToken); IToken char_literal16 = default(IToken); AstParserRuleReturnScope<object, IToken> type13 = default(AstParserRuleReturnScope<object, IToken>); AstParserRuleReturnScope<object, IToken> type17 = default(AstParserRuleReturnScope<object, IToken>); object id_tree = default(object); object char_literal12_tree = default(object); object char_literal14_tree = default(object); object char_literal15_tree = default(object); object char_literal16_tree = default(object); RewriteRuleITokenStream stream_21=new RewriteRuleITokenStream(adaptor,"token 21"); RewriteRuleITokenStream stream_20=new RewriteRuleITokenStream(adaptor,"token 20"); RewriteRuleITokenStream stream_ID=new RewriteRuleITokenStream(adaptor,"token ID"); RewriteRuleITokenStream stream_17=new RewriteRuleITokenStream(adaptor,"token 17"); RewriteRuleSubtreeStream stream_type=new RewriteRuleSubtreeStream(adaptor,"rule type"); try { DebugEnterRule(GrammarFileName, "outputToken"); DebugLocation(39, 1); try { // C:\\Users\\mjr\\src\\TypeSql\\TypeSql\\Parsing\\TypeSql.g:40:2: ( ( ID ':' )=>id= ID ':' type -> ^( OUTPUT_TOKEN $id type ) | ( '[' ID ']' )=> '[' id= ID ']' ':' type -> ^( OUTPUT_TOKEN $id type ) ) int alt5=2; try { DebugEnterDecision(5, false); int LA5_0 = input.LA(1); if ((LA5_0==ID) && (EvaluatePredicate(synpred2_TypeSql_fragment))) { alt5 = 1; } else if ((LA5_0==20) && (EvaluatePredicate(synpred3_TypeSql_fragment))) { alt5 = 2; } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 5, 0, input); DebugRecognitionException(nvae); throw nvae; } } finally { DebugExitDecision(5); } switch (alt5) { case 1: DebugEnterAlt(1); // C:\\Users\\mjr\\src\\TypeSql\\TypeSql\\Parsing\\TypeSql.g:40:4: ( ID ':' )=>id= ID ':' type { DebugLocation(40, 17); id=(IToken)Match(input,ID,Follow._ID_in_outputToken228); if (state.failed) return retval; if (state.backtracking == 0) stream_ID.Add(id); DebugLocation(40, 21); char_literal12=(IToken)Match(input,17,Follow._17_in_outputToken230); if (state.failed) return retval; if (state.backtracking == 0) stream_17.Add(char_literal12); DebugLocation(40, 25); PushFollow(Follow._type_in_outputToken232); type13=type(); PopFollow(); if (state.failed) return retval; if (state.backtracking == 0) stream_type.Add(type13.Tree); { // AST REWRITE // elements: type, id // token labels: id // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if (state.backtracking == 0) { retval.Tree = root_0; RewriteRuleITokenStream stream_id=new RewriteRuleITokenStream(adaptor,"token id",id); RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); root_0 = (object)adaptor.Nil(); // 40:30: -> ^( OUTPUT_TOKEN $id type ) { DebugLocation(40, 33); // C:\\Users\\mjr\\src\\TypeSql\\TypeSql\\Parsing\\TypeSql.g:40:33: ^( OUTPUT_TOKEN $id type ) { object root_1 = (object)adaptor.Nil(); DebugLocation(40, 35); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(OUTPUT_TOKEN, "OUTPUT_TOKEN"), root_1); DebugLocation(40, 49); adaptor.AddChild(root_1, stream_id.NextNode()); DebugLocation(40, 52); adaptor.AddChild(root_1, stream_type.NextTree()); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0; } } } break; case 2: DebugEnterAlt(2); // C:\\Users\\mjr\\src\\TypeSql\\TypeSql\\Parsing\\TypeSql.g:41:4: ( '[' ID ']' )=> '[' id= ID ']' ':' type { DebugLocation(41, 18); char_literal14=(IToken)Match(input,20,Follow._20_in_outputToken256); if (state.failed) return retval; if (state.backtracking == 0) stream_20.Add(char_literal14); DebugLocation(41, 24); id=(IToken)Match(input,ID,Follow._ID_in_outputToken260); if (state.failed) return retval; if (state.backtracking == 0) stream_ID.Add(id); DebugLocation(41, 28); char_literal15=(IToken)Match(input,21,Follow._21_in_outputToken262); if (state.failed) return retval; if (state.backtracking == 0) stream_21.Add(char_literal15); DebugLocation(41, 32); char_literal16=(IToken)Match(input,17,Follow._17_in_outputToken264); if (state.failed) return retval; if (state.backtracking == 0) stream_17.Add(char_literal16); DebugLocation(41, 36); PushFollow(Follow._type_in_outputToken266); type17=type(); PopFollow(); if (state.failed) return retval; if (state.backtracking == 0) stream_type.Add(type17.Tree); { // AST REWRITE // elements: id, type // token labels: id // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if (state.backtracking == 0) { retval.Tree = root_0; RewriteRuleITokenStream stream_id=new RewriteRuleITokenStream(adaptor,"token id",id); RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); root_0 = (object)adaptor.Nil(); // 41:41: -> ^( OUTPUT_TOKEN $id type ) { DebugLocation(41, 44); // C:\\Users\\mjr\\src\\TypeSql\\TypeSql\\Parsing\\TypeSql.g:41:44: ^( OUTPUT_TOKEN $id type ) { object root_1 = (object)adaptor.Nil(); DebugLocation(41, 46); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(OUTPUT_TOKEN, "OUTPUT_TOKEN"), root_1); DebugLocation(41, 60); adaptor.AddChild(root_1, stream_id.NextNode()); DebugLocation(41, 63); adaptor.AddChild(root_1, stream_type.NextTree()); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0; } } } break; } retval.Stop = (IToken)input.LT(-1); if (state.backtracking == 0) { retval.Tree = (object)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); } } catch (RecognitionException re) { ReportError(re); Recover(input,re); retval.Tree = (object)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); } finally { TraceOut("outputToken", 6); LeaveRule("outputToken", 6); LeaveRule_outputToken(); } DebugLocation(42, 1); } finally { DebugExitRule(GrammarFileName, "outputToken"); } return retval; }
private AstParserRuleReturnScope<object, IToken> nameSpace() { EnterRule_nameSpace(); EnterRule("nameSpace", 4); TraceIn("nameSpace", 4); AstParserRuleReturnScope<object, IToken> retval = new AstParserRuleReturnScope<object, IToken>(); retval.Start = (IToken)input.LT(1); object root_0 = default(object); IToken ID6 = default(IToken); IToken char_literal7 = default(IToken); IToken ID8 = default(IToken); object ID6_tree = default(object); object char_literal7_tree = default(object); object ID8_tree = default(object); RewriteRuleITokenStream stream_ID=new RewriteRuleITokenStream(adaptor,"token ID"); RewriteRuleITokenStream stream_16=new RewriteRuleITokenStream(adaptor,"token 16"); try { DebugEnterRule(GrammarFileName, "nameSpace"); DebugLocation(31, 1); try { // C:\\Users\\mjr\\src\\TypeSql\\TypeSql\\Parsing\\TypeSql.g:31:12: ( ID ( '.' ID )* -> ^( NAMESPACE ID ( '.' ID )* ) ) DebugEnterAlt(1); // C:\\Users\\mjr\\src\\TypeSql\\TypeSql\\Parsing\\TypeSql.g:31:14: ID ( '.' ID )* { DebugLocation(31, 14); ID6=(IToken)Match(input,ID,Follow._ID_in_nameSpace142); if (state.failed) return retval; if (state.backtracking == 0) stream_ID.Add(ID6); DebugLocation(31, 18); // C:\\Users\\mjr\\src\\TypeSql\\TypeSql\\Parsing\\TypeSql.g:31:18: ( '.' ID )* try { DebugEnterSubRule(3); while (true) { int alt3=2; try { DebugEnterDecision(3, false); int LA3_0 = input.LA(1); if ((LA3_0==16)) { int LA3_2 = input.LA(2); if ((LA3_2==ID)) { alt3 = 1; } } } finally { DebugExitDecision(3); } switch ( alt3 ) { case 1: DebugEnterAlt(1); // C:\\Users\\mjr\\src\\TypeSql\\TypeSql\\Parsing\\TypeSql.g:31:20: '.' ID { DebugLocation(31, 20); char_literal7=(IToken)Match(input,16,Follow._16_in_nameSpace147); if (state.failed) return retval; if (state.backtracking == 0) stream_16.Add(char_literal7); DebugLocation(31, 24); ID8=(IToken)Match(input,ID,Follow._ID_in_nameSpace149); if (state.failed) return retval; if (state.backtracking == 0) stream_ID.Add(ID8); } break; default: goto loop3; } } loop3: ; } finally { DebugExitSubRule(3); } { // AST REWRITE // elements: ID, 16, ID // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if (state.backtracking == 0) { retval.Tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); root_0 = (object)adaptor.Nil(); // 31:30: -> ^( NAMESPACE ID ( '.' ID )* ) { DebugLocation(31, 33); // C:\\Users\\mjr\\src\\TypeSql\\TypeSql\\Parsing\\TypeSql.g:31:33: ^( NAMESPACE ID ( '.' ID )* ) { object root_1 = (object)adaptor.Nil(); DebugLocation(31, 35); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(NAMESPACE, "NAMESPACE"), root_1); DebugLocation(31, 45); adaptor.AddChild(root_1, stream_ID.NextNode()); DebugLocation(31, 49); // C:\\Users\\mjr\\src\\TypeSql\\TypeSql\\Parsing\\TypeSql.g:31:49: ( '.' ID )* while ( stream_ID.HasNext||stream_16.HasNext ) { DebugLocation(31, 51); adaptor.AddChild(root_1, stream_16.NextNode()); DebugLocation(31, 55); adaptor.AddChild(root_1, stream_ID.NextNode()); } stream_ID.Reset(); stream_16.Reset(); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0; } } } retval.Stop = (IToken)input.LT(-1); if (state.backtracking == 0) { retval.Tree = (object)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); } } catch (RecognitionException re) { ReportError(re); Recover(input,re); retval.Tree = (object)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); } finally { TraceOut("nameSpace", 4); LeaveRule("nameSpace", 4); LeaveRule_nameSpace(); } DebugLocation(32, 1); } finally { DebugExitRule(GrammarFileName, "nameSpace"); } return retval; }
private AstParserRuleReturnScope<object, IToken> type() { EnterRule_type(); EnterRule("type", 8); TraceIn("type", 8); AstParserRuleReturnScope<object, IToken> retval = new AstParserRuleReturnScope<object, IToken>(); retval.Start = (IToken)input.LT(1); object root_0 = default(object); IToken ID21 = default(IToken); IToken char_literal22 = default(IToken); object ID21_tree = default(object); object char_literal22_tree = default(object); RewriteRuleITokenStream stream_ID=new RewriteRuleITokenStream(adaptor,"token ID"); RewriteRuleITokenStream stream_18=new RewriteRuleITokenStream(adaptor,"token 18"); try { DebugEnterRule(GrammarFileName, "type"); DebugLocation(48, 1); try { // C:\\Users\\mjr\\src\\TypeSql\\TypeSql\\Parsing\\TypeSql.g:49:2: ( ID ( '?' )? -> ^( TYPE ID ( '?' )? ) ) DebugEnterAlt(1); // C:\\Users\\mjr\\src\\TypeSql\\TypeSql\\Parsing\\TypeSql.g:49:4: ID ( '?' )? { DebugLocation(49, 4); ID21=(IToken)Match(input,ID,Follow._ID_in_type321); if (state.failed) return retval; if (state.backtracking == 0) stream_ID.Add(ID21); DebugLocation(49, 7); // C:\\Users\\mjr\\src\\TypeSql\\TypeSql\\Parsing\\TypeSql.g:49:7: ( '?' )? int alt6=2; try { DebugEnterSubRule(6); try { DebugEnterDecision(6, false); int LA6_0 = input.LA(1); if ((LA6_0==18)) { alt6 = 1; } } finally { DebugExitDecision(6); } switch (alt6) { case 1: DebugEnterAlt(1); // C:\\Users\\mjr\\src\\TypeSql\\TypeSql\\Parsing\\TypeSql.g:49:7: '?' { DebugLocation(49, 7); char_literal22=(IToken)Match(input,18,Follow._18_in_type323); if (state.failed) return retval; if (state.backtracking == 0) stream_18.Add(char_literal22); } break; } } finally { DebugExitSubRule(6); } { // AST REWRITE // elements: ID, 18 // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if (state.backtracking == 0) { retval.Tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); root_0 = (object)adaptor.Nil(); // 49:12: -> ^( TYPE ID ( '?' )? ) { DebugLocation(49, 15); // C:\\Users\\mjr\\src\\TypeSql\\TypeSql\\Parsing\\TypeSql.g:49:15: ^( TYPE ID ( '?' )? ) { object root_1 = (object)adaptor.Nil(); DebugLocation(49, 17); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(TYPE, "TYPE"), root_1); DebugLocation(49, 22); adaptor.AddChild(root_1, stream_ID.NextNode()); DebugLocation(49, 25); // C:\\Users\\mjr\\src\\TypeSql\\TypeSql\\Parsing\\TypeSql.g:49:25: ( '?' )? if (stream_18.HasNext) { DebugLocation(49, 25); adaptor.AddChild(root_1, stream_18.NextNode()); } stream_18.Reset(); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0; } } } retval.Stop = (IToken)input.LT(-1); if (state.backtracking == 0) { retval.Tree = (object)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); } } catch (RecognitionException re) { ReportError(re); Recover(input,re); retval.Tree = (object)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); } finally { TraceOut("type", 8); LeaveRule("type", 8); LeaveRule_type(); } DebugLocation(50, 1); } finally { DebugExitRule(GrammarFileName, "type"); } return retval; }
private AstParserRuleReturnScope<object, IToken> usingNamespace() { EnterRule_usingNamespace(); EnterRule("usingNamespace", 3); TraceIn("usingNamespace", 3); AstParserRuleReturnScope<object, IToken> retval = new AstParserRuleReturnScope<object, IToken>(); retval.Start = (IToken)input.LT(1); object root_0 = default(object); IToken USING4 = default(IToken); AstParserRuleReturnScope<object, IToken> nameSpace5 = default(AstParserRuleReturnScope<object, IToken>); object USING4_tree = default(object); RewriteRuleITokenStream stream_USING=new RewriteRuleITokenStream(adaptor,"token USING"); RewriteRuleSubtreeStream stream_nameSpace=new RewriteRuleSubtreeStream(adaptor,"rule nameSpace"); try { DebugEnterRule(GrammarFileName, "usingNamespace"); DebugLocation(28, 1); try { // C:\\Users\\mjr\\src\\TypeSql\\TypeSql\\Parsing\\TypeSql.g:28:16: ( USING nameSpace -> ^( USING nameSpace ) ) DebugEnterAlt(1); // C:\\Users\\mjr\\src\\TypeSql\\TypeSql\\Parsing\\TypeSql.g:28:18: USING nameSpace { DebugLocation(28, 18); USING4=(IToken)Match(input,USING,Follow._USING_in_usingNamespace120); if (state.failed) return retval; if (state.backtracking == 0) stream_USING.Add(USING4); DebugLocation(28, 24); PushFollow(Follow._nameSpace_in_usingNamespace122); nameSpace5=nameSpace(); PopFollow(); if (state.failed) return retval; if (state.backtracking == 0) stream_nameSpace.Add(nameSpace5.Tree); { // AST REWRITE // elements: nameSpace, USING // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if (state.backtracking == 0) { retval.Tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); root_0 = (object)adaptor.Nil(); // 28:34: -> ^( USING nameSpace ) { DebugLocation(28, 37); // C:\\Users\\mjr\\src\\TypeSql\\TypeSql\\Parsing\\TypeSql.g:28:37: ^( USING nameSpace ) { object root_1 = (object)adaptor.Nil(); DebugLocation(28, 39); root_1 = (object)adaptor.BecomeRoot(stream_USING.NextNode(), root_1); DebugLocation(28, 45); adaptor.AddChild(root_1, stream_nameSpace.NextTree()); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0; } } } retval.Stop = (IToken)input.LT(-1); if (state.backtracking == 0) { retval.Tree = (object)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); } } catch (RecognitionException re) { ReportError(re); Recover(input,re); retval.Tree = (object)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); } finally { TraceOut("usingNamespace", 3); LeaveRule("usingNamespace", 3); LeaveRule_usingNamespace(); } DebugLocation(29, 1); } finally { DebugExitRule(GrammarFileName, "usingNamespace"); } return retval; }
private AstParserRuleReturnScope<object, IToken> inputToken() { EnterRule_inputToken(); EnterRule("inputToken", 7); TraceIn("inputToken", 7); AstParserRuleReturnScope<object, IToken> retval = new AstParserRuleReturnScope<object, IToken>(); retval.Start = (IToken)input.LT(1); object root_0 = default(object); IToken id = default(IToken); IToken char_literal18 = default(IToken); IToken char_literal19 = default(IToken); AstParserRuleReturnScope<object, IToken> type20 = default(AstParserRuleReturnScope<object, IToken>); object id_tree = default(object); object char_literal18_tree = default(object); object char_literal19_tree = default(object); RewriteRuleITokenStream stream_19=new RewriteRuleITokenStream(adaptor,"token 19"); RewriteRuleITokenStream stream_ID=new RewriteRuleITokenStream(adaptor,"token ID"); RewriteRuleITokenStream stream_17=new RewriteRuleITokenStream(adaptor,"token 17"); RewriteRuleSubtreeStream stream_type=new RewriteRuleSubtreeStream(adaptor,"rule type"); try { DebugEnterRule(GrammarFileName, "inputToken"); DebugLocation(44, 1); try { // C:\\Users\\mjr\\src\\TypeSql\\TypeSql\\Parsing\\TypeSql.g:45:2: ( '@' id= ID ':' type -> ^( INPUT_TOKEN $id type ) ) DebugEnterAlt(1); // C:\\Users\\mjr\\src\\TypeSql\\TypeSql\\Parsing\\TypeSql.g:45:5: '@' id= ID ':' type { DebugLocation(45, 5); char_literal18=(IToken)Match(input,19,Follow._19_in_inputToken290); if (state.failed) return retval; if (state.backtracking == 0) stream_19.Add(char_literal18); DebugLocation(45, 11); id=(IToken)Match(input,ID,Follow._ID_in_inputToken294); if (state.failed) return retval; if (state.backtracking == 0) stream_ID.Add(id); DebugLocation(45, 15); char_literal19=(IToken)Match(input,17,Follow._17_in_inputToken296); if (state.failed) return retval; if (state.backtracking == 0) stream_17.Add(char_literal19); DebugLocation(45, 19); PushFollow(Follow._type_in_inputToken298); type20=type(); PopFollow(); if (state.failed) return retval; if (state.backtracking == 0) stream_type.Add(type20.Tree); { // AST REWRITE // elements: type, id // token labels: id // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if (state.backtracking == 0) { retval.Tree = root_0; RewriteRuleITokenStream stream_id=new RewriteRuleITokenStream(adaptor,"token id",id); RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); root_0 = (object)adaptor.Nil(); // 45:24: -> ^( INPUT_TOKEN $id type ) { DebugLocation(45, 27); // C:\\Users\\mjr\\src\\TypeSql\\TypeSql\\Parsing\\TypeSql.g:45:27: ^( INPUT_TOKEN $id type ) { object root_1 = (object)adaptor.Nil(); DebugLocation(45, 29); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(INPUT_TOKEN, "INPUT_TOKEN"), root_1); DebugLocation(45, 42); adaptor.AddChild(root_1, stream_id.NextNode()); DebugLocation(45, 45); adaptor.AddChild(root_1, stream_type.NextTree()); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0; } } } retval.Stop = (IToken)input.LT(-1); if (state.backtracking == 0) { retval.Tree = (object)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); } } catch (RecognitionException re) { ReportError(re); Recover(input,re); retval.Tree = (object)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); } finally { TraceOut("inputToken", 7); LeaveRule("inputToken", 7); LeaveRule_inputToken(); } DebugLocation(46, 1); } finally { DebugExitRule(GrammarFileName, "inputToken"); } return retval; }