// $ANTLR start "start" // abevformula.g:22:0: start : funcwithparams ; private abevformulaParser.start_return start( ) { abevformulaParser.start_return retval = new abevformulaParser.start_return(); retval.start = input.LT(1); int start_StartIndex = input.Index; CommonTree root_0 = null; abevformulaParser.funcwithparams_return funcwithparams1 = default(abevformulaParser.funcwithparams_return); try { if (state.backtracking > 0 && AlreadyParsedRule(input, 1)) { return(retval); } // abevformula.g:22:10: ( funcwithparams ) // abevformula.g:22:10: funcwithparams { root_0 = (CommonTree)adaptor.Nil(); PushFollow(Follow._funcwithparams_in_start100); funcwithparams1 = funcwithparams(); state._fsp--; if (state.failed) { return(retval); } if (state.backtracking == 0) { adaptor.AddChild(root_0, funcwithparams1.Tree); } } retval.stop = input.LT(-1); if (state.backtracking == 0) { retval.tree = (CommonTree)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException re) { ReportError(re); Recover(input, re); retval.tree = (CommonTree)adaptor.ErrorNode(input, retval.start, input.LT(-1), re); } finally { if (state.backtracking > 0) { Memoize(input, 1, start_StartIndex); } } return(retval); }
// $ANTLR start "param" // abevformula.g:29:0: param : ( word | sentence | funcwithparams ); private abevformulaParser.param_return param( ) { abevformulaParser.param_return retval = new abevformulaParser.param_return(); retval.start = input.LT(1); int param_StartIndex = input.Index; CommonTree root_0 = null; abevformulaParser.word_return word13 = default(abevformulaParser.word_return); abevformulaParser.sentence_return sentence14 = default(abevformulaParser.sentence_return); abevformulaParser.funcwithparams_return funcwithparams15 = default(abevformulaParser.funcwithparams_return); try { if (state.backtracking > 0 && AlreadyParsedRule(input, 7)) { return(retval); } // abevformula.g:29:10: ( word | sentence | funcwithparams ) int alt2 = 3; switch (input.LA(1)) { case WORD: { alt2 = 1; } break; case STRING: { alt2 = 2; } break; case 9: { alt2 = 3; } break; default: { if (state.backtracking > 0) { state.failed = true; return(retval); } NoViableAltException nvae = new NoViableAltException("", 2, 0, input); throw nvae; } } switch (alt2) { case 1: // abevformula.g:29:10: word { root_0 = (CommonTree)adaptor.Nil(); PushFollow(Follow._word_in_param180); word13 = word(); state._fsp--; if (state.failed) { return(retval); } if (state.backtracking == 0) { adaptor.AddChild(root_0, word13.Tree); } } break; case 2: // abevformula.g:30:6: sentence { root_0 = (CommonTree)adaptor.Nil(); PushFollow(Follow._sentence_in_param188); sentence14 = sentence(); state._fsp--; if (state.failed) { return(retval); } if (state.backtracking == 0) { adaptor.AddChild(root_0, sentence14.Tree); } } break; case 3: // abevformula.g:31:6: funcwithparams { root_0 = (CommonTree)adaptor.Nil(); PushFollow(Follow._funcwithparams_in_param195); funcwithparams15 = funcwithparams(); state._fsp--; if (state.failed) { return(retval); } if (state.backtracking == 0) { adaptor.AddChild(root_0, funcwithparams15.Tree); } } break; } retval.stop = input.LT(-1); if (state.backtracking == 0) { retval.tree = (CommonTree)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException re) { ReportError(re); Recover(input, re); retval.tree = (CommonTree)adaptor.ErrorNode(input, retval.start, input.LT(-1), re); } finally { if (state.backtracking > 0) { Memoize(input, 7, param_StartIndex); } } return(retval); }
// $ANTLR start "funcwithparams" // abevformula.g:24:0: funcwithparams : '[' func ',' paramlist ']' -> ^( FUNC func paramlist ) ; private abevformulaParser.funcwithparams_return funcwithparams( ) { abevformulaParser.funcwithparams_return retval = new abevformulaParser.funcwithparams_return(); retval.start = input.LT(1); int funcwithparams_StartIndex = input.Index; CommonTree root_0 = null; IToken char_literal2 = null; IToken char_literal4 = null; IToken char_literal6 = null; abevformulaParser.func_return func3 = default(abevformulaParser.func_return); abevformulaParser.paramlist_return paramlist5 = default(abevformulaParser.paramlist_return); CommonTree char_literal2_tree = null; CommonTree char_literal4_tree = null; CommonTree char_literal6_tree = null; RewriteRuleITokenStream stream_9 = new RewriteRuleITokenStream(adaptor, "token 9"); RewriteRuleITokenStream stream_8 = new RewriteRuleITokenStream(adaptor, "token 8"); RewriteRuleITokenStream stream_10 = new RewriteRuleITokenStream(adaptor, "token 10"); RewriteRuleSubtreeStream stream_func = new RewriteRuleSubtreeStream(adaptor, "rule func"); RewriteRuleSubtreeStream stream_paramlist = new RewriteRuleSubtreeStream(adaptor, "rule paramlist"); try { if (state.backtracking > 0 && AlreadyParsedRule(input, 2)) { return(retval); } // abevformula.g:24:18: ( '[' func ',' paramlist ']' -> ^( FUNC func paramlist ) ) // abevformula.g:24:18: '[' func ',' paramlist ']' { char_literal2 = (IToken)Match(input, 9, Follow._9_in_funcwithparams109); if (state.failed) { return(retval); } if (state.backtracking == 0) { stream_9.Add(char_literal2); } PushFollow(Follow._func_in_funcwithparams111); func3 = func(); state._fsp--; if (state.failed) { return(retval); } if (state.backtracking == 0) { stream_func.Add(func3.Tree); } char_literal4 = (IToken)Match(input, 8, Follow._8_in_funcwithparams113); if (state.failed) { return(retval); } if (state.backtracking == 0) { stream_8.Add(char_literal4); } PushFollow(Follow._paramlist_in_funcwithparams115); paramlist5 = paramlist(); state._fsp--; if (state.failed) { return(retval); } if (state.backtracking == 0) { stream_paramlist.Add(paramlist5.Tree); } char_literal6 = (IToken)Match(input, 10, Follow._10_in_funcwithparams117); if (state.failed) { return(retval); } if (state.backtracking == 0) { stream_10.Add(char_literal6); } { // AST REWRITE // elements: func, paramlist // 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 = (CommonTree)adaptor.Nil(); // 24:45: -> ^( FUNC func paramlist ) { // abevformula.g:24:48: ^( FUNC func paramlist ) { CommonTree root_1 = (CommonTree)adaptor.Nil(); root_1 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(FUNC, "FUNC"), root_1); adaptor.AddChild(root_1, stream_func.NextTree()); adaptor.AddChild(root_1, stream_paramlist.NextTree()); adaptor.AddChild(root_0, root_1); } } retval.tree = root_0; } } } retval.stop = input.LT(-1); if (state.backtracking == 0) { retval.tree = (CommonTree)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException re) { ReportError(re); Recover(input, re); retval.tree = (CommonTree)adaptor.ErrorNode(input, retval.start, input.LT(-1), re); } finally { if (state.backtracking > 0) { Memoize(input, 2, funcwithparams_StartIndex); } } return(retval); }