protected override void VisitBranchOnFalseInstruction(BranchOnFalseInstruction instruction)
        {
            ControlState.EvaluationStack.Pop(out var stackVal);
            var branch = ComputeUnaryBranchOperation(
                stackVal,
                a => a.Value == 0,
                a => a.Value == 0
                );

            if (branch)
            {
                ControlState.Move(instruction.Offset, instruction.Label);
            }
            else
            {
                ControlState.MoveToNextInstruction();
            }
        }
示例#2
0
 protected abstract void VisitBranchOnFalseInstruction(BranchOnFalseInstruction instruction);