public override Node VisitCodeBlock(TParser.CodeBlockContext context) { var body = new NodesCollection <Node>(context.Start); if (context.expression() != null && !context.expression().IsEmpty) { body.Add(Visit(context.expression())); } else if (context.statements() != null && !context.statements().IsEmpty) { body = VisitStatements(context.statements()).As <NodesCollection <Node> >(); } else if (context.statement() != null && !context.statement().IsEmpty) { body.Add(Visit(context.statement())); } return(body); }
/// <summary> /// Visit a parse tree produced by <see cref="TParser.codeBlock"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitCodeBlock([NotNull] TParser.CodeBlockContext context) { return(VisitChildren(context)); }
/// <summary> /// Exit a parse tree produced by <see cref="TParser.codeBlock"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitCodeBlock([NotNull] TParser.CodeBlockContext context) { }