public IfNode(LeafParser.IfContext ctx) { Line = ctx.Start.Line; Check = ValueNode.Create(ctx.value()); Scope = new ScopeNode(ctx.conditional_scope(0)); if (ctx.Else() != null) { if (ctx.conditional_scope(1) != null) { Else = new ElseNode(ctx.conditional_scope(1)); } else { ElseIf = new ElseIfNode(ctx.@if()); } } }
public static Value Compile(this LeafParser.IfContext i, in LocalCompilationContext ctx)
/// <summary> /// Visit a parse tree produced by <see cref="LeafParser.if"/>. /// <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 VisitIf([NotNull] LeafParser.IfContext context) { return(VisitChildren(context)); }