// $ANTLR start "matrixoperation" // Interp.g:69:1: matrixoperation returns [MatrixOperationElement ret] : ( '(' el1= int_literal ')' '(' el2= int_literal ')' '[' (el3= int_literal )+ ']' ) ; public InterpParser.matrixoperation_return matrixoperation() // throws RecognitionException [1] { InterpParser.matrixoperation_return retval = new InterpParser.matrixoperation_return(); retval.Start = input.LT(1); object root_0 = null; IToken char_literal18 = null; IToken char_literal19 = null; IToken char_literal20 = null; IToken char_literal21 = null; IToken char_literal22 = null; IToken char_literal23 = null; InterpParser.int_literal_return el1 = null; InterpParser.int_literal_return el2 = null; InterpParser.int_literal_return el3 = null; object char_literal18_tree=null; object char_literal19_tree=null; object char_literal20_tree=null; object char_literal21_tree=null; object char_literal22_tree=null; object char_literal23_tree=null; retval.ret = new MatrixOperationElement(); try { // Interp.g:73:2: ( ( '(' el1= int_literal ')' '(' el2= int_literal ')' '[' (el3= int_literal )+ ']' ) ) // Interp.g:73:3: ( '(' el1= int_literal ')' '(' el2= int_literal ')' '[' (el3= int_literal )+ ']' ) { root_0 = (object)adaptor.GetNilNode(); // Interp.g:73:3: ( '(' el1= int_literal ')' '(' el2= int_literal ')' '[' (el3= int_literal )+ ']' ) // Interp.g:73:4: '(' el1= int_literal ')' '(' el2= int_literal ')' '[' (el3= int_literal )+ ']' { char_literal18=(IToken)Match(input,12,FOLLOW_12_in_matrixoperation299); char_literal18_tree = (object)adaptor.Create(char_literal18); adaptor.AddChild(root_0, char_literal18_tree); PushFollow(FOLLOW_int_literal_in_matrixoperation302); el1 = int_literal(); state.followingStackPointer--; adaptor.AddChild(root_0, el1.Tree); retval.ret.setRow(((el1 != null) ? el1.ret : null)); char_literal19=(IToken)Match(input,13,FOLLOW_13_in_matrixoperation305); char_literal19_tree = (object)adaptor.Create(char_literal19); adaptor.AddChild(root_0, char_literal19_tree); char_literal20=(IToken)Match(input,12,FOLLOW_12_in_matrixoperation308); char_literal20_tree = (object)adaptor.Create(char_literal20); adaptor.AddChild(root_0, char_literal20_tree); PushFollow(FOLLOW_int_literal_in_matrixoperation312); el2 = int_literal(); state.followingStackPointer--; adaptor.AddChild(root_0, el2.Tree); retval.ret.setColumn(((el2 != null) ? el2.ret : null)); char_literal21=(IToken)Match(input,13,FOLLOW_13_in_matrixoperation315); char_literal21_tree = (object)adaptor.Create(char_literal21); adaptor.AddChild(root_0, char_literal21_tree); char_literal22=(IToken)Match(input,14,FOLLOW_14_in_matrixoperation318); char_literal22_tree = (object)adaptor.Create(char_literal22); adaptor.AddChild(root_0, char_literal22_tree); // Interp.g:75:5: (el3= int_literal )+ int cnt6 = 0; do { int alt6 = 2; int LA6_0 = input.LA(1); if ( (LA6_0 == INT_LITERAL) ) { alt6 = 1; } switch (alt6) { case 1 : // Interp.g:75:6: el3= int_literal { PushFollow(FOLLOW_int_literal_in_matrixoperation322); el3 = int_literal(); state.followingStackPointer--; adaptor.AddChild(root_0, el3.Tree); retval.ret.setValue(((el3 != null) ? el3.ret : null)); } break; default: if ( cnt6 >= 1 ) goto loop6; EarlyExitException eee6 = new EarlyExitException(6, input); throw eee6; } cnt6++; } while (true); loop6: ; // Stops C# compiler whining that label 'loop6' has no statements char_literal23=(IToken)Match(input,15,FOLLOW_15_in_matrixoperation328); char_literal23_tree = (object)adaptor.Create(char_literal23); adaptor.AddChild(root_0, char_literal23_tree); } } 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 "matrixoperation" // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:69:1: matrixoperation returns [MatrixOperationElement ret] : ( '(' el1= int_literal ')' '(' el2= int_literal ')' '[' (el3= int_literal )+ ']' ) ; public InterpParser.matrixoperation_return matrixoperation() // throws RecognitionException [1] { InterpParser.matrixoperation_return retval = new InterpParser.matrixoperation_return(); retval.Start = input.LT(1); object root_0 = null; IToken char_literal18 = null; IToken char_literal19 = null; IToken char_literal20 = null; IToken char_literal21 = null; IToken char_literal22 = null; IToken char_literal23 = null; InterpParser.int_literal_return el1 = null; InterpParser.int_literal_return el2 = null; InterpParser.int_literal_return el3 = null; object char_literal18_tree=null; object char_literal19_tree=null; object char_literal20_tree=null; object char_literal21_tree=null; object char_literal22_tree=null; object char_literal23_tree=null; retval.ret = new MatrixOperationElement(); try { dbg.EnterRule(GrammarFileName, "matrixoperation"); if ( RuleLevel==0 ) {dbg.Commence();} IncRuleLevel(); dbg.Location(69, 1); try { // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:73:2: ( ( '(' el1= int_literal ')' '(' el2= int_literal ')' '[' (el3= int_literal )+ ']' ) ) dbg.EnterAlt(1); // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:73:3: ( '(' el1= int_literal ')' '(' el2= int_literal ')' '[' (el3= int_literal )+ ']' ) { root_0 = (object)adaptor.GetNilNode(); dbg.Location(73,3); // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:73:3: ( '(' el1= int_literal ')' '(' el2= int_literal ')' '[' (el3= int_literal )+ ']' ) dbg.EnterAlt(1); // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:73:4: '(' el1= int_literal ')' '(' el2= int_literal ')' '[' (el3= int_literal )+ ']' { dbg.Location(73,4); char_literal18=(IToken)Match(input,12,FOLLOW_12_in_matrixoperation299); char_literal18_tree = (object)adaptor.Create(char_literal18); adaptor.AddChild(root_0, char_literal18_tree); dbg.Location(73,10); PushFollow(FOLLOW_int_literal_in_matrixoperation302); el1 = int_literal(); state.followingStackPointer--; adaptor.AddChild(root_0, el1.Tree); dbg.Location(73,23); retval.ret.setRow(((el1 != null) ? el1.ret : null)); dbg.Location(73,54); char_literal19=(IToken)Match(input,13,FOLLOW_13_in_matrixoperation305); char_literal19_tree = (object)adaptor.Create(char_literal19); adaptor.AddChild(root_0, char_literal19_tree); dbg.Location(74,2); char_literal20=(IToken)Match(input,12,FOLLOW_12_in_matrixoperation308); char_literal20_tree = (object)adaptor.Create(char_literal20); adaptor.AddChild(root_0, char_literal20_tree); dbg.Location(74,9); PushFollow(FOLLOW_int_literal_in_matrixoperation312); el2 = int_literal(); state.followingStackPointer--; adaptor.AddChild(root_0, el2.Tree); dbg.Location(74,22); retval.ret.setColumn(((el2 != null) ? el2.ret : null)); dbg.Location(74,56); char_literal21=(IToken)Match(input,13,FOLLOW_13_in_matrixoperation315); char_literal21_tree = (object)adaptor.Create(char_literal21); adaptor.AddChild(root_0, char_literal21_tree); dbg.Location(75,2); char_literal22=(IToken)Match(input,14,FOLLOW_14_in_matrixoperation318); char_literal22_tree = (object)adaptor.Create(char_literal22); adaptor.AddChild(root_0, char_literal22_tree); dbg.Location(75,5); // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:75:5: (el3= int_literal )+ int cnt6 = 0; try { dbg.EnterSubRule(6); do { int alt6 = 2; try { dbg.EnterDecision(6); int LA6_0 = input.LA(1); if ( (LA6_0 == INT_LITERAL) ) { alt6 = 1; } } finally { dbg.ExitDecision(6); } switch (alt6) { case 1 : dbg.EnterAlt(1); // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:75:6: el3= int_literal { dbg.Location(75,9); PushFollow(FOLLOW_int_literal_in_matrixoperation322); el3 = int_literal(); state.followingStackPointer--; adaptor.AddChild(root_0, el3.Tree); dbg.Location(75,22); retval.ret.setValue(((el3 != null) ? el3.ret : null)); } break; default: if ( cnt6 >= 1 ) goto loop6; EarlyExitException eee6 = new EarlyExitException(6, input); dbg.RecognitionException(eee); throw eee6; } cnt6++; } while (true); loop6: ; // Stops C# compiler whinging that label 'loop6' has no statements } finally { dbg.ExitSubRule(6); } dbg.Location(75,58); char_literal23=(IToken)Match(input,15,FOLLOW_15_in_matrixoperation328); char_literal23_tree = (object)adaptor.Create(char_literal23); adaptor.AddChild(root_0, char_literal23_tree); } } 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 { } dbg.Location(75, 62); } finally { dbg.ExitRule(GrammarFileName, "matrixoperation"); DecRuleLevel(); if ( RuleLevel==0 ) {dbg.Terminate();} } return retval; }