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(); } }
protected abstract void VisitBranchOnFalseInstruction(BranchOnFalseInstruction instruction);