Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
 private void PreinitOr(DOrPattern node, Hints hints)
 {
     PreinitPattern(node.Left, hints);
     PreinitPattern(node.Right, hints);
 }