C# source code protected override void VisitOr(ExpOr node, OpDest dest, ControlDest ctrl) { var truthy = ctrl.Truthy ?? Invariant($"lbl{label++}"); var branchLeft = new ControlDest(truthy, null, FallthroughTo.Falsey); Visit(node.Left, OpDest.Accumulator, new ControlDest(truthy, truthy, default)); PlugReg(dest, branchLeft, Accum); Visit(node.Right, OpDest.Accumulator, new ControlDest(truthy, truthy, default)); PlugReg(dest, ctrl, Accum); if (truthy != ctrl.Truthy) { Console.WriteLine($"{truthy}:"); } }
https://s3.wasabisys.com/pmg-media/media_attachments/files/113/216/743/271/499/833/original/d1310c47350362c3.png