Beispiel #1
0
        private void BuildAnd(DAndPattern node, Hints hints, CompilerContext ctx)
        {
            cw.Dup();
            BuildPattern(node.Left, hints, ctx);
            var termLab = cw.DefineLabel();
            var exitLab = cw.DefineLabel();

            cw.Brfalse(termLab);
            BuildPattern(node.Right, hints, ctx);
            AddLinePragma(node);
            cw.Br(exitLab);
            cw.MarkLabel(termLab);
            cw.Pop();
            AddLinePragma(node);
            cw.Push(false);
            cw.MarkLabel(exitLab);
            cw.Nop();
        }
Beispiel #2
0
 private void PreinitAnd(DAndPattern node, Hints hints)
 {
     PreinitPattern(node.Left, hints);
     PreinitPattern(node.Right, hints);
 }