private void BuildOr(DOrPattern node, Hints hints, CompilerContext ctx) { cw.Dup(); BuildPattern(node.Left, hints, ctx); var termLab = cw.DefineLabel(); var exitLab = cw.DefineLabel(); cw.Brtrue(termLab); BuildPattern(node.Right, hints, ctx); AddLinePragma(node); cw.Br(exitLab); cw.MarkLabel(termLab); cw.Pop(); AddLinePragma(node); cw.Push(true); cw.MarkLabel(exitLab); cw.Nop(); }
private void PreinitOr(DOrPattern node, Hints hints) { PreinitPattern(node.Left, hints); PreinitPattern(node.Right, hints); }