// $ANTLR start "mathAtom" // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:375:1: mathAtom : ( '(' conditionalExpression ')' | IntegerAtom | FloatAtom | BooleanAtom | 'new' Sprite '(' ( arguments )? ')' -> ^( Sprite ( arguments )? ) | 'new' Animation '(' ( arguments )? ')' -> ^( Animation ( arguments )? ) | Identifier | methodCall | stringQuote | Layer -> ^( STRINGNOQUOTES Layer ) | Origin -> ^( STRINGNOQUOTES Origin ) ); public SGLParser.mathAtom_return mathAtom() // throws RecognitionException [1] { SGLParser.mathAtom_return retval = new SGLParser.mathAtom_return(); retval.Start = input.LT(1); object root_0 = null; IToken char_literal137 = null; IToken char_literal139 = null; IToken IntegerAtom140 = null; IToken FloatAtom141 = null; IToken BooleanAtom142 = null; IToken string_literal143 = null; IToken Sprite144 = null; IToken char_literal145 = null; IToken char_literal147 = null; IToken string_literal148 = null; IToken Animation149 = null; IToken char_literal150 = null; IToken char_literal152 = null; IToken Identifier153 = null; IToken Layer156 = null; IToken Origin157 = null; SGLParser.conditionalExpression_return conditionalExpression138 = default(SGLParser.conditionalExpression_return); SGLParser.arguments_return arguments146 = default(SGLParser.arguments_return); SGLParser.arguments_return arguments151 = default(SGLParser.arguments_return); SGLParser.methodCall_return methodCall154 = default(SGLParser.methodCall_return); SGLParser.stringQuote_return stringQuote155 = default(SGLParser.stringQuote_return); object char_literal137_tree=null; object char_literal139_tree=null; object IntegerAtom140_tree=null; object FloatAtom141_tree=null; object BooleanAtom142_tree=null; object string_literal143_tree=null; object Sprite144_tree=null; object char_literal145_tree=null; object char_literal147_tree=null; object string_literal148_tree=null; object Animation149_tree=null; object char_literal150_tree=null; object char_literal152_tree=null; object Identifier153_tree=null; object Layer156_tree=null; object Origin157_tree=null; RewriteRuleTokenStream stream_Layer = new RewriteRuleTokenStream(adaptor,"token Layer"); RewriteRuleTokenStream stream_Animation = new RewriteRuleTokenStream(adaptor,"token Animation"); RewriteRuleTokenStream stream_52 = new RewriteRuleTokenStream(adaptor,"token 52"); RewriteRuleTokenStream stream_53 = new RewriteRuleTokenStream(adaptor,"token 53"); RewriteRuleTokenStream stream_Origin = new RewriteRuleTokenStream(adaptor,"token Origin"); RewriteRuleTokenStream stream_84 = new RewriteRuleTokenStream(adaptor,"token 84"); RewriteRuleTokenStream stream_Sprite = new RewriteRuleTokenStream(adaptor,"token Sprite"); RewriteRuleSubtreeStream stream_arguments = new RewriteRuleSubtreeStream(adaptor,"rule arguments"); try { // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:376:5: ( '(' conditionalExpression ')' | IntegerAtom | FloatAtom | BooleanAtom | 'new' Sprite '(' ( arguments )? ')' -> ^( Sprite ( arguments )? ) | 'new' Animation '(' ( arguments )? ')' -> ^( Animation ( arguments )? ) | Identifier | methodCall | stringQuote | Layer -> ^( STRINGNOQUOTES Layer ) | Origin -> ^( STRINGNOQUOTES Origin ) ) int alt36 = 11; alt36 = dfa36.Predict(input); switch (alt36) { case 1 : // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:376:7: '(' conditionalExpression ')' { root_0 = (object)adaptor.GetNilNode(); char_literal137=(IToken)Match(input,52,FOLLOW_52_in_mathAtom1580); PushFollow(FOLLOW_conditionalExpression_in_mathAtom1583); conditionalExpression138 = conditionalExpression(); state.followingStackPointer--; adaptor.AddChild(root_0, conditionalExpression138.Tree); char_literal139=(IToken)Match(input,53,FOLLOW_53_in_mathAtom1585); } break; case 2 : // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:377:9: IntegerAtom { root_0 = (object)adaptor.GetNilNode(); IntegerAtom140=(IToken)Match(input,IntegerAtom,FOLLOW_IntegerAtom_in_mathAtom1596); IntegerAtom140_tree = (object)adaptor.Create(IntegerAtom140); adaptor.AddChild(root_0, IntegerAtom140_tree); } break; case 3 : // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:378:7: FloatAtom { root_0 = (object)adaptor.GetNilNode(); FloatAtom141=(IToken)Match(input,FloatAtom,FOLLOW_FloatAtom_in_mathAtom1604); FloatAtom141_tree = (object)adaptor.Create(FloatAtom141); adaptor.AddChild(root_0, FloatAtom141_tree); } break; case 4 : // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:379:9: BooleanAtom { root_0 = (object)adaptor.GetNilNode(); BooleanAtom142=(IToken)Match(input,BooleanAtom,FOLLOW_BooleanAtom_in_mathAtom1614); BooleanAtom142_tree = (object)adaptor.Create(BooleanAtom142); adaptor.AddChild(root_0, BooleanAtom142_tree); } break; case 5 : // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:381:9: 'new' Sprite '(' ( arguments )? ')' { string_literal143=(IToken)Match(input,84,FOLLOW_84_in_mathAtom1625); stream_84.Add(string_literal143); Sprite144=(IToken)Match(input,Sprite,FOLLOW_Sprite_in_mathAtom1627); stream_Sprite.Add(Sprite144); char_literal145=(IToken)Match(input,52,FOLLOW_52_in_mathAtom1629); stream_52.Add(char_literal145); // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:381:26: ( arguments )? int alt34 = 2; int LA34_0 = input.LA(1); if ( (LA34_0 == Identifier || (LA34_0 >= IntegerAtom && LA34_0 <= BooleanAtom) || (LA34_0 >= Layer && LA34_0 <= StringAtom) || LA34_0 == 52 || LA34_0 == 78 || LA34_0 == 84) ) { alt34 = 1; } switch (alt34) { case 1 : // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:381:26: arguments { PushFollow(FOLLOW_arguments_in_mathAtom1631); arguments146 = arguments(); state.followingStackPointer--; stream_arguments.Add(arguments146.Tree); } break; } char_literal147=(IToken)Match(input,53,FOLLOW_53_in_mathAtom1634); stream_53.Add(char_literal147); // AST REWRITE // elements: Sprite, arguments // 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 = (object)adaptor.GetNilNode(); // 381:41: -> ^( Sprite ( arguments )? ) { // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:381:44: ^( Sprite ( arguments )? ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot(stream_Sprite.NextNode(), root_1); // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:381:53: ( arguments )? if ( stream_arguments.HasNext() ) { adaptor.AddChild(root_1, stream_arguments.NextTree()); } stream_arguments.Reset(); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0;retval.Tree = root_0; } break; case 6 : // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:382:9: 'new' Animation '(' ( arguments )? ')' { string_literal148=(IToken)Match(input,84,FOLLOW_84_in_mathAtom1653); stream_84.Add(string_literal148); Animation149=(IToken)Match(input,Animation,FOLLOW_Animation_in_mathAtom1655); stream_Animation.Add(Animation149); char_literal150=(IToken)Match(input,52,FOLLOW_52_in_mathAtom1657); stream_52.Add(char_literal150); // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:382:29: ( arguments )? int alt35 = 2; int LA35_0 = input.LA(1); if ( (LA35_0 == Identifier || (LA35_0 >= IntegerAtom && LA35_0 <= BooleanAtom) || (LA35_0 >= Layer && LA35_0 <= StringAtom) || LA35_0 == 52 || LA35_0 == 78 || LA35_0 == 84) ) { alt35 = 1; } switch (alt35) { case 1 : // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:382:29: arguments { PushFollow(FOLLOW_arguments_in_mathAtom1659); arguments151 = arguments(); state.followingStackPointer--; stream_arguments.Add(arguments151.Tree); } break; } char_literal152=(IToken)Match(input,53,FOLLOW_53_in_mathAtom1662); stream_53.Add(char_literal152); // AST REWRITE // elements: arguments, Animation // 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 = (object)adaptor.GetNilNode(); // 382:44: -> ^( Animation ( arguments )? ) { // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:382:47: ^( Animation ( arguments )? ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot(stream_Animation.NextNode(), root_1); // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:382:59: ( arguments )? if ( stream_arguments.HasNext() ) { adaptor.AddChild(root_1, stream_arguments.NextTree()); } stream_arguments.Reset(); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0;retval.Tree = root_0; } break; case 7 : // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:384:4: Identifier { root_0 = (object)adaptor.GetNilNode(); Identifier153=(IToken)Match(input,Identifier,FOLLOW_Identifier_in_mathAtom1678); Identifier153_tree = (object)adaptor.Create(Identifier153); adaptor.AddChild(root_0, Identifier153_tree); } break; case 8 : // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:385:4: methodCall { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_methodCall_in_mathAtom1683); methodCall154 = methodCall(); state.followingStackPointer--; adaptor.AddChild(root_0, methodCall154.Tree); } break; case 9 : // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:386:4: stringQuote { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_stringQuote_in_mathAtom1688); stringQuote155 = stringQuote(); state.followingStackPointer--; adaptor.AddChild(root_0, stringQuote155.Tree); } break; case 10 : // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:387:4: Layer { Layer156=(IToken)Match(input,Layer,FOLLOW_Layer_in_mathAtom1693); stream_Layer.Add(Layer156); // AST REWRITE // elements: Layer // 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 = (object)adaptor.GetNilNode(); // 387:10: -> ^( STRINGNOQUOTES Layer ) { // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:387:13: ^( STRINGNOQUOTES Layer ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(STRINGNOQUOTES, "STRINGNOQUOTES"), root_1); adaptor.AddChild(root_1, stream_Layer.NextNode()); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0;retval.Tree = root_0; } break; case 11 : // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:388:4: Origin { Origin157=(IToken)Match(input,Origin,FOLLOW_Origin_in_mathAtom1706); stream_Origin.Add(Origin157); // AST REWRITE // elements: Origin // 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 = (object)adaptor.GetNilNode(); // 388:11: -> ^( STRINGNOQUOTES Origin ) { // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:388:14: ^( STRINGNOQUOTES Origin ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(STRINGNOQUOTES, "STRINGNOQUOTES"), root_1); adaptor.AddChild(root_1, stream_Origin.NextNode()); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0;retval.Tree = root_0; } break; } retval.Stop = input.LT(-1); retval.Tree = (object)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 = (object)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re); } finally { } return retval; }
// $ANTLR start "mathAtom" // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:341:1: mathAtom : ( '(' expression ')' | IntAtom | FloatAtom | BooleanAtom | stringAtom | LayerAtom | OriginAtom | LoopTypeAtom | LoopTriggerAtom | ColorAtom | Null | lookup ); public SGLParser.mathAtom_return mathAtom() // throws RecognitionException [1] { SGLParser.mathAtom_return retval = new SGLParser.mathAtom_return(); retval.Start = input.LT(1); int mathAtom_StartIndex = input.Index(); object root_0 = null; IToken char_literal110 = null; IToken char_literal112 = null; IToken IntAtom113 = null; IToken FloatAtom114 = null; IToken BooleanAtom115 = null; IToken LayerAtom117 = null; IToken OriginAtom118 = null; IToken LoopTypeAtom119 = null; IToken LoopTriggerAtom120 = null; IToken ColorAtom121 = null; IToken Null122 = null; SGLParser.expression_return expression111 = default(SGLParser.expression_return); SGLParser.stringAtom_return stringAtom116 = default(SGLParser.stringAtom_return); SGLParser.lookup_return lookup123 = default(SGLParser.lookup_return); object char_literal110_tree=null; object char_literal112_tree=null; object IntAtom113_tree=null; object FloatAtom114_tree=null; object BooleanAtom115_tree=null; object LayerAtom117_tree=null; object OriginAtom118_tree=null; object LoopTypeAtom119_tree=null; object LoopTriggerAtom120_tree=null; object ColorAtom121_tree=null; object Null122_tree=null; try { if ( (state.backtracking > 0) && AlreadyParsedRule(input, 30) ) { return retval; } // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:342:2: ( '(' expression ')' | IntAtom | FloatAtom | BooleanAtom | stringAtom | LayerAtom | OriginAtom | LoopTypeAtom | LoopTriggerAtom | ColorAtom | Null | lookup ) int alt34 = 12; switch ( input.LA(1) ) { case 59: { alt34 = 1; } break; case IntAtom: { alt34 = 2; } break; case FloatAtom: { alt34 = 3; } break; case BooleanAtom: { alt34 = 4; } break; case StringAtom: { alt34 = 5; } break; case LayerAtom: { alt34 = 6; } break; case OriginAtom: { alt34 = 7; } break; case LoopTypeAtom: { alt34 = 8; } break; case LoopTriggerAtom: { alt34 = 9; } break; case ColorAtom: { alt34 = 10; } break; case Null: { alt34 = 11; } break; case Identifier: { alt34 = 12; } break; default: if ( state.backtracking > 0 ) {state.failed = true; return retval;} NoViableAltException nvae_d34s0 = new NoViableAltException("", 34, 0, input); throw nvae_d34s0; } switch (alt34) { case 1 : // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:342:4: '(' expression ')' { root_0 = (object)adaptor.GetNilNode(); char_literal110=(IToken)Match(input,59,FOLLOW_59_in_mathAtom1319); if (state.failed) return retval; PushFollow(FOLLOW_expression_in_mathAtom1322); expression111 = expression(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, expression111.Tree); char_literal112=(IToken)Match(input,60,FOLLOW_60_in_mathAtom1324); if (state.failed) return retval; } break; case 2 : // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:343:7: IntAtom { root_0 = (object)adaptor.GetNilNode(); IntAtom113=(IToken)Match(input,IntAtom,FOLLOW_IntAtom_in_mathAtom1336); if (state.failed) return retval; if ( state.backtracking == 0 ) {IntAtom113_tree = (object)adaptor.Create(IntAtom113); adaptor.AddChild(root_0, IntAtom113_tree); } } break; case 3 : // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:344:7: FloatAtom { root_0 = (object)adaptor.GetNilNode(); FloatAtom114=(IToken)Match(input,FloatAtom,FOLLOW_FloatAtom_in_mathAtom1351); if (state.failed) return retval; if ( state.backtracking == 0 ) {FloatAtom114_tree = (object)adaptor.Create(FloatAtom114); adaptor.AddChild(root_0, FloatAtom114_tree); } } break; case 4 : // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:345:9: BooleanAtom { root_0 = (object)adaptor.GetNilNode(); BooleanAtom115=(IToken)Match(input,BooleanAtom,FOLLOW_BooleanAtom_in_mathAtom1367); if (state.failed) return retval; if ( state.backtracking == 0 ) {BooleanAtom115_tree = (object)adaptor.Create(BooleanAtom115); adaptor.AddChild(root_0, BooleanAtom115_tree); } } break; case 5 : // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:346:4: stringAtom { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_stringAtom_in_mathAtom1378); stringAtom116 = stringAtom(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, stringAtom116.Tree); } break; case 6 : // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:347:4: LayerAtom { root_0 = (object)adaptor.GetNilNode(); LayerAtom117=(IToken)Match(input,LayerAtom,FOLLOW_LayerAtom_in_mathAtom1389); if (state.failed) return retval; if ( state.backtracking == 0 ) {LayerAtom117_tree = (object)adaptor.Create(LayerAtom117); adaptor.AddChild(root_0, LayerAtom117_tree); } } break; case 7 : // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:348:4: OriginAtom { root_0 = (object)adaptor.GetNilNode(); OriginAtom118=(IToken)Match(input,OriginAtom,FOLLOW_OriginAtom_in_mathAtom1400); if (state.failed) return retval; if ( state.backtracking == 0 ) {OriginAtom118_tree = (object)adaptor.Create(OriginAtom118); adaptor.AddChild(root_0, OriginAtom118_tree); } } break; case 8 : // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:349:4: LoopTypeAtom { root_0 = (object)adaptor.GetNilNode(); LoopTypeAtom119=(IToken)Match(input,LoopTypeAtom,FOLLOW_LoopTypeAtom_in_mathAtom1411); if (state.failed) return retval; if ( state.backtracking == 0 ) {LoopTypeAtom119_tree = (object)adaptor.Create(LoopTypeAtom119); adaptor.AddChild(root_0, LoopTypeAtom119_tree); } } break; case 9 : // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:350:4: LoopTriggerAtom { root_0 = (object)adaptor.GetNilNode(); LoopTriggerAtom120=(IToken)Match(input,LoopTriggerAtom,FOLLOW_LoopTriggerAtom_in_mathAtom1424); if (state.failed) return retval; if ( state.backtracking == 0 ) {LoopTriggerAtom120_tree = (object)adaptor.Create(LoopTriggerAtom120); adaptor.AddChild(root_0, LoopTriggerAtom120_tree); } } break; case 10 : // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:351:4: ColorAtom { root_0 = (object)adaptor.GetNilNode(); ColorAtom121=(IToken)Match(input,ColorAtom,FOLLOW_ColorAtom_in_mathAtom1434); if (state.failed) return retval; if ( state.backtracking == 0 ) {ColorAtom121_tree = (object)adaptor.Create(ColorAtom121); adaptor.AddChild(root_0, ColorAtom121_tree); } } break; case 11 : // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:352:4: Null { root_0 = (object)adaptor.GetNilNode(); Null122=(IToken)Match(input,Null,FOLLOW_Null_in_mathAtom1445); if (state.failed) return retval; if ( state.backtracking == 0 ) {Null122_tree = (object)adaptor.Create(Null122); adaptor.AddChild(root_0, Null122_tree); } } break; case 12 : // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:354:4: lookup { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_lookup_in_mathAtom1459); lookup123 = lookup(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, lookup123.Tree); } break; } retval.Stop = input.LT(-1); if ( (state.backtracking==0) ) { retval.Tree = (object)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 = (object)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re); } finally { if ( state.backtracking > 0 ) { Memoize(input, 30, mathAtom_StartIndex); } } return retval; }