public override Expression VisitStatement_list(Statement_listContext context) { var declarations = new List <ParameterExpression>(); var statements = new List <Expression>(); foreach (var statementContext in context.statement()) { if (statementContext is DeclarationStatementContext) { var declarationParser = new DeclarationParser(_parserContext); var declarationResult = declarationParser.Visit(statementContext); declarations.AddRange(declarationResult.Declarations); statements.AddRange(declarationResult.Initializers); } else { var statement = Visit(statementContext); statements.Add(statement); } } var block = Expression.Block(declarations, statements); return(block); }
public Statement_listContext statement_list() { Statement_listContext _localctx = new Statement_listContext(_ctx, State); EnterRule(_localctx, 182, RULE_statement_list); try { int _alt; EnterOuterAlt(_localctx, 1); { State = 1045; _errHandler.Sync(this); _alt = 1; do { switch (_alt) { case 1: { { State = 1044; statement(); } } break; default: throw new NoViableAltException(this); } State = 1047; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,119,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.ReportError(this, re); _errHandler.Recover(this, re); } finally { ExitRule(); } return _localctx; }