public override ZenNode VisitBlock([NotNull] ZenParser.BlockContext ctx) { ZenBlockNode blockNode = new ZenBlockNode { BlockName = ctx.blockName().GetText(), ClassPath = ctx.classPath().GetText(), LeftIndex = int.Parse(ctx.leftIndex.Text), RightIndex = int.Parse(ctx.rightIndex.Text), }; foreach (IParseTree childCtx in ctx.children) { switch (childCtx) { case ZenParser.BlockContext blockContext: blockNode.Children.Add(VisitBlock(blockContext)); break; case ZenParser.AttrContext attrContext: blockNode.Children.Add(VisitAttr(attrContext)); break; } } return(blockNode); }
/// <summary> /// Visit a parse tree produced by <see cref="ZenParser.block"/>. /// <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 VisitBlock([NotNull] ZenParser.BlockContext context) { return(VisitChildren(context)); }