// $ANTLR start "getExpr" // C:\\Development\\TT.Net\\TT\\Template.g:85:1: getExpr : ( ( 'GET' )? ID -> ^( GET ID ) | ( 'GET' )? LITERAL -> ^( GET LITERAL ) | ( 'GET' )? ILITERAL -> ^( GET ILITERAL ) ); public TemplateParser.getExpr_return getExpr() // throws RecognitionException [1] { TemplateParser.getExpr_return retval = new TemplateParser.getExpr_return(); retval.Start = input.LT(1); CommonTree root_0 = null; IToken string_literal7 = null; IToken ID8 = null; IToken string_literal9 = null; IToken LITERAL10 = null; IToken string_literal11 = null; IToken ILITERAL12 = null; CommonTree string_literal7_tree=null; CommonTree ID8_tree=null; CommonTree string_literal9_tree=null; CommonTree LITERAL10_tree=null; CommonTree string_literal11_tree=null; CommonTree ILITERAL12_tree=null; RewriteRuleTokenStream stream_LITERAL = new RewriteRuleTokenStream(adaptor,"token LITERAL"); RewriteRuleTokenStream stream_55 = new RewriteRuleTokenStream(adaptor,"token 55"); RewriteRuleTokenStream stream_ID = new RewriteRuleTokenStream(adaptor,"token ID"); RewriteRuleTokenStream stream_ILITERAL = new RewriteRuleTokenStream(adaptor,"token ILITERAL"); try { dbg.EnterRule(GrammarFileName, "getExpr"); if ( RuleLevel==0 ) {dbg.Commence();} IncRuleLevel(); dbg.Location(85, 1); try { // C:\\Development\\TT.Net\\TT\\Template.g:86:2: ( ( 'GET' )? ID -> ^( GET ID ) | ( 'GET' )? LITERAL -> ^( GET LITERAL ) | ( 'GET' )? ILITERAL -> ^( GET ILITERAL ) ) int alt6 = 3; try { dbg.EnterDecision(6); switch ( input.LA(1) ) { case 55: { switch ( input.LA(2) ) { case ILITERAL: { alt6 = 3; } break; case ID: { alt6 = 1; } break; case LITERAL: { alt6 = 2; } break; default: NoViableAltException nvae_d6s1 = new NoViableAltException("", 6, 1, input); dbg.RecognitionException(nvae_d6s1); throw nvae_d6s1; } } break; case ID: { alt6 = 1; } break; case LITERAL: { alt6 = 2; } break; case ILITERAL: { alt6 = 3; } break; default: NoViableAltException nvae_d6s0 = new NoViableAltException("", 6, 0, input); dbg.RecognitionException(nvae_d6s0); throw nvae_d6s0; } } finally { dbg.ExitDecision(6); } switch (alt6) { case 1 : dbg.EnterAlt(1); // C:\\Development\\TT.Net\\TT\\Template.g:86:4: ( 'GET' )? ID { dbg.Location(86,4); // C:\\Development\\TT.Net\\TT\\Template.g:86:4: ( 'GET' )? int alt3 = 2; try { dbg.EnterSubRule(3); try { dbg.EnterDecision(3); int LA3_0 = input.LA(1); if ( (LA3_0 == 55) ) { alt3 = 1; } } finally { dbg.ExitDecision(3); } switch (alt3) { case 1 : dbg.EnterAlt(1); // C:\\Development\\TT.Net\\TT\\Template.g:86:4: 'GET' { dbg.Location(86,4); string_literal7=(IToken)Match(input,55,FOLLOW_55_in_getExpr522); stream_55.Add(string_literal7); } break; } } finally { dbg.ExitSubRule(3); } dbg.Location(86,11); ID8=(IToken)Match(input,ID,FOLLOW_ID_in_getExpr525); stream_ID.Add(ID8); // AST REWRITE // elements: ID // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.Tree = root_0; RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (CommonTree)adaptor.GetNilNode(); // 86:20: -> ^( GET ID ) { dbg.Location(86,23); // C:\\Development\\TT.Net\\TT\\Template.g:86:23: ^( GET ID ) { CommonTree root_1 = (CommonTree)adaptor.GetNilNode(); dbg.Location(86,25); root_1 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(GET, "GET"), root_1); dbg.Location(86,29); adaptor.AddChild(root_1, stream_ID.NextNode()); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0;retval.Tree = root_0; } break; case 2 : dbg.EnterAlt(2); // C:\\Development\\TT.Net\\TT\\Template.g:87:4: ( 'GET' )? LITERAL { dbg.Location(87,4); // C:\\Development\\TT.Net\\TT\\Template.g:87:4: ( 'GET' )? int alt4 = 2; try { dbg.EnterSubRule(4); try { dbg.EnterDecision(4); int LA4_0 = input.LA(1); if ( (LA4_0 == 55) ) { alt4 = 1; } } finally { dbg.ExitDecision(4); } switch (alt4) { case 1 : dbg.EnterAlt(1); // C:\\Development\\TT.Net\\TT\\Template.g:87:4: 'GET' { dbg.Location(87,4); string_literal9=(IToken)Match(input,55,FOLLOW_55_in_getExpr544); stream_55.Add(string_literal9); } break; } } finally { dbg.ExitSubRule(4); } dbg.Location(87,11); LITERAL10=(IToken)Match(input,LITERAL,FOLLOW_LITERAL_in_getExpr547); stream_LITERAL.Add(LITERAL10); // AST REWRITE // elements: LITERAL // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.Tree = root_0; RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (CommonTree)adaptor.GetNilNode(); // 87:20: -> ^( GET LITERAL ) { dbg.Location(87,23); // C:\\Development\\TT.Net\\TT\\Template.g:87:23: ^( GET LITERAL ) { CommonTree root_1 = (CommonTree)adaptor.GetNilNode(); dbg.Location(87,25); root_1 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(GET, "GET"), root_1); dbg.Location(87,29); adaptor.AddChild(root_1, stream_LITERAL.NextNode()); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0;retval.Tree = root_0; } break; case 3 : dbg.EnterAlt(3); // C:\\Development\\TT.Net\\TT\\Template.g:88:4: ( 'GET' )? ILITERAL { dbg.Location(88,4); // C:\\Development\\TT.Net\\TT\\Template.g:88:4: ( 'GET' )? int alt5 = 2; try { dbg.EnterSubRule(5); try { dbg.EnterDecision(5); int LA5_0 = input.LA(1); if ( (LA5_0 == 55) ) { alt5 = 1; } } finally { dbg.ExitDecision(5); } switch (alt5) { case 1 : dbg.EnterAlt(1); // C:\\Development\\TT.Net\\TT\\Template.g:88:4: 'GET' { dbg.Location(88,4); string_literal11=(IToken)Match(input,55,FOLLOW_55_in_getExpr561); stream_55.Add(string_literal11); } break; } } finally { dbg.ExitSubRule(5); } dbg.Location(88,11); ILITERAL12=(IToken)Match(input,ILITERAL,FOLLOW_ILITERAL_in_getExpr564); stream_ILITERAL.Add(ILITERAL12); // AST REWRITE // elements: ILITERAL // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.Tree = root_0; RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (CommonTree)adaptor.GetNilNode(); // 88:20: -> ^( GET ILITERAL ) { dbg.Location(88,23); // C:\\Development\\TT.Net\\TT\\Template.g:88:23: ^( GET ILITERAL ) { CommonTree root_1 = (CommonTree)adaptor.GetNilNode(); dbg.Location(88,25); root_1 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(GET, "GET"), root_1); dbg.Location(88,29); adaptor.AddChild(root_1, stream_ILITERAL.NextNode()); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0;retval.Tree = root_0; } break; } retval.Stop = input.LT(-1); retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop); } catch (RecognitionException re) { ReportError(re); Recover(input,re); // Conversion of the second argument necessary, but harmless retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re); } finally { } dbg.Location(89, 2); } finally { dbg.ExitRule(GrammarFileName, "getExpr"); DecRuleLevel(); if ( RuleLevel==0 ) {dbg.Terminate();} } return retval; }
// $ANTLR start "getExpr" // TT\\Template.g:98:1: getExpr : ( ( 'GET' )? ID -> ^( GET ID ) | ( 'GET' )? LITERAL -> ^( GET LITERAL ) | ( 'GET' )? ILITERAL -> ^( GET ILITERAL ) ); public TemplateParser.getExpr_return getExpr() // throws RecognitionException [1] { TemplateParser.getExpr_return retval = new TemplateParser.getExpr_return(); retval.Start = input.LT(1); CommonTree root_0 = null; IToken string_literal28 = null; IToken ID29 = null; IToken string_literal30 = null; IToken LITERAL31 = null; IToken string_literal32 = null; IToken ILITERAL33 = null; CommonTree string_literal28_tree=null; CommonTree ID29_tree=null; CommonTree string_literal30_tree=null; CommonTree LITERAL31_tree=null; CommonTree string_literal32_tree=null; CommonTree ILITERAL33_tree=null; RewriteRuleTokenStream stream_LITERAL = new RewriteRuleTokenStream(adaptor,"token LITERAL"); RewriteRuleTokenStream stream_57 = new RewriteRuleTokenStream(adaptor,"token 57"); RewriteRuleTokenStream stream_ID = new RewriteRuleTokenStream(adaptor,"token ID"); RewriteRuleTokenStream stream_ILITERAL = new RewriteRuleTokenStream(adaptor,"token ILITERAL"); try { // TT\\Template.g:99:2: ( ( 'GET' )? ID -> ^( GET ID ) | ( 'GET' )? LITERAL -> ^( GET LITERAL ) | ( 'GET' )? ILITERAL -> ^( GET ILITERAL ) ) int alt14 = 3; switch ( input.LA(1) ) { case 57: { switch ( input.LA(2) ) { case ID: { alt14 = 1; } break; case ILITERAL: { alt14 = 3; } break; case LITERAL: { alt14 = 2; } break; default: NoViableAltException nvae_d14s1 = new NoViableAltException("", 14, 1, input); throw nvae_d14s1; } } break; case ID: { alt14 = 1; } break; case LITERAL: { alt14 = 2; } break; case ILITERAL: { alt14 = 3; } break; default: NoViableAltException nvae_d14s0 = new NoViableAltException("", 14, 0, input); throw nvae_d14s0; } switch (alt14) { case 1 : // TT\\Template.g:99:4: ( 'GET' )? ID { // TT\\Template.g:99:4: ( 'GET' )? int alt11 = 2; int LA11_0 = input.LA(1); if ( (LA11_0 == 57) ) { alt11 = 1; } switch (alt11) { case 1 : // TT\\Template.g:99:4: 'GET' { string_literal28=(IToken)Match(input,57,FOLLOW_57_in_getExpr639); stream_57.Add(string_literal28); } break; } ID29=(IToken)Match(input,ID,FOLLOW_ID_in_getExpr642); stream_ID.Add(ID29); // AST REWRITE // elements: ID // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.Tree = root_0; RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (CommonTree)adaptor.GetNilNode(); // 99:20: -> ^( GET ID ) { // TT\\Template.g:99:23: ^( GET ID ) { CommonTree root_1 = (CommonTree)adaptor.GetNilNode(); root_1 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(GET, "GET"), root_1); adaptor.AddChild(root_1, stream_ID.NextNode()); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0;retval.Tree = root_0; } break; case 2 : // TT\\Template.g:100:4: ( 'GET' )? LITERAL { // TT\\Template.g:100:4: ( 'GET' )? int alt12 = 2; int LA12_0 = input.LA(1); if ( (LA12_0 == 57) ) { alt12 = 1; } switch (alt12) { case 1 : // TT\\Template.g:100:4: 'GET' { string_literal30=(IToken)Match(input,57,FOLLOW_57_in_getExpr661); stream_57.Add(string_literal30); } break; } LITERAL31=(IToken)Match(input,LITERAL,FOLLOW_LITERAL_in_getExpr664); stream_LITERAL.Add(LITERAL31); // AST REWRITE // elements: LITERAL // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.Tree = root_0; RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (CommonTree)adaptor.GetNilNode(); // 100:20: -> ^( GET LITERAL ) { // TT\\Template.g:100:23: ^( GET LITERAL ) { CommonTree root_1 = (CommonTree)adaptor.GetNilNode(); root_1 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(GET, "GET"), root_1); adaptor.AddChild(root_1, stream_LITERAL.NextNode()); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0;retval.Tree = root_0; } break; case 3 : // TT\\Template.g:101:4: ( 'GET' )? ILITERAL { // TT\\Template.g:101:4: ( 'GET' )? int alt13 = 2; int LA13_0 = input.LA(1); if ( (LA13_0 == 57) ) { alt13 = 1; } switch (alt13) { case 1 : // TT\\Template.g:101:4: 'GET' { string_literal32=(IToken)Match(input,57,FOLLOW_57_in_getExpr678); stream_57.Add(string_literal32); } break; } ILITERAL33=(IToken)Match(input,ILITERAL,FOLLOW_ILITERAL_in_getExpr681); stream_ILITERAL.Add(ILITERAL33); // AST REWRITE // elements: ILITERAL // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.Tree = root_0; RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (CommonTree)adaptor.GetNilNode(); // 101:20: -> ^( GET ILITERAL ) { // TT\\Template.g:101:23: ^( GET ILITERAL ) { CommonTree root_1 = (CommonTree)adaptor.GetNilNode(); root_1 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(GET, "GET"), root_1); adaptor.AddChild(root_1, stream_ILITERAL.NextNode()); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0;retval.Tree = root_0; } break; } retval.Stop = input.LT(-1); retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop); } catch (RecognitionException re) { ReportError(re); Recover(input,re); // Conversion of the second argument necessary, but harmless retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re); } finally { } return retval; }