예제 #1
0
        internal PrologStackFrameList(PrologMachine machine)
        {
            if (machine == null)
            {
                throw new ArgumentNullException("machine");
            }

            Machine = machine;
        }
 void OnMachineChanged(object sender, MachineChangedEventArgs e)
 {
     if (_currentMachine != null)
     {
         _currentMachine.ExecutionComplete -= OnExecutionComplete;
         _currentMachine.ExecutionSuspended -= OnExecutionSuspended;
     }
     _currentMachine = e.Machine;
     if (_currentMachine != null)
     {
         _currentMachine.ExecutionComplete += OnExecutionComplete;
         _currentMachine.ExecutionSuspended += OnExecutionSuspended;
     }
     AdjustVariables();
 }
예제 #3
0
파일: PrologRun.cs 프로젝트: Slesa/Poseidon
 PrologMachine Execute(PrologMachine machine, Query query)
 {
     try
     {
         machine.ExecutionComplete += CodeExecuted;
         machine.RunToBacktrack();
         machine.Restart();
         var result = machine.RunToSuccess();
         Console.WriteLine(Enum.GetName(typeof(ExecutionResults), result));
         return machine;
     }
     catch (Exception ex)
     {
         Console.WriteLine("Error, got exception: {0}", ex.Message);
         return null;
     }
 }
예제 #4
0
 public void Reset()
 {
     Machine = null;
 }
예제 #5
0
 public MachineChangedEventArgs(PrologMachine machine)
 {
     Machine = machine;
 }