Axiom.Runtime.AbstractMachineState.Backtrack C# (CSharp) Method

Backtrack() public method

public Backtrack ( ) : void
return void
        public void Backtrack()
        {
            AMProgram program = (AMProgram)_program;
            if (_b == null)
            {
                program.P = new ProgramNode(new HaltInstruction());
            }
            else
            {
                _fail = false;
                program.P = _b.NextClause;
            }
        }

Usage Example

Ejemplo n.º 1
0
        public override void Execute(AbstractMachineState state)
        {
            AMProgram prog = (AMProgram)state.Program;

            AbstractTerm X0 = ((AbstractTerm)state["X0"]).Dereference();
            AbstractTerm X1 = ((AbstractTerm)state["X1"]).Dereference();

            if (!X0.IsConstant)
            {
                Console.WriteLine("Invalid class type of object/2");
                state.Backtrack();
            }

            if (X1.IsConstant)
            {
                Console.WriteLine("object/2: object instantiation error.");
                state.Backtrack();
            }

            if (CreateObject(X0.Data() as string, X1, state))
            {
                prog.Next();
            }
            else
            {
                state.Backtrack();
            }
        }
All Usage Examples Of Axiom.Runtime.AbstractMachineState::Backtrack