Exemple #1
0
        private bool CanExecuteNextOpCode(ParsedOpCode op)
        {
            // Ensure that disabled opcodes are always executed.
            var branchOp = BranchStack.Peek();

            return(branchOp == BranchOption.True ||
                   op.Code.IsConditional() ||
                   op.Code.IsDisabled());
        }
        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 void OpElse()
        {
            switch (BranchStack.Peek())
            {
            case BranchOption.Skip:
                break;

            case BranchOption.False:
                BranchStack.Replace(BranchOption.True);
                break;

            case BranchOption.True:
                BranchStack.Replace(BranchOption.False);
                break;
            }
        }