private void OpVerify() { if (!MainStack.PopBool()) { throw new VerifyFailedException(); } }
private void OpNotIf() { switch (BranchStack.Peek()) { case BranchOption.Skip: case BranchOption.False: BranchStack.Push(BranchOption.Skip); break; case BranchOption.True: BranchStack.Push(!MainStack.PopBool() ? BranchOption.True : BranchOption.False); break; } }
private bool RunInternal(Script script) { foreach (var subScriptOps in script.Subscripts) { // Reset operation counter between subscripts this.NumOperations = 0; foreach (var op in subScriptOps) { if (!CanExecuteNextOpCode(op)) { continue; } IncrementOpCounter(op.Code); VerifyOpDataSize(op.Data.Length); Execute(op); } EnsureBranchStackClean(); } return(MainStack.PopBool()); }