Esempio n. 1
0
        public bool ShouldWireBeSnipped(VennWireComponent component, int indexOfCutWire, bool log)
        {
            VennSnippableWire wire = null;

            foreach (VennSnippableWire vennSnippableWire in component.ActiveWires)
            {
                if (indexOfCutWire == vennSnippableWire.WireIndex)
                {
                    wire = vennSnippableWire;
                    break;
                }
            }
            CutInstruction cutInstructionForWire = this.GetCutInstructionForWire(component, wire, log);

            return(this.ShouldCut(component, cutInstructionForWire));
        }
Esempio n. 2
0
        public void Cut()
        {
            AbstractMachineState state = SetupMachine();

            Choicepoint old = new Choicepoint();

            state.E = new EnvironmentFrame(null, null, old, 0);

            CutInstruction i = new CutInstruction();

            i.Process(null);

            i.Execute(state);

            Assert.AreEqual("cut", i.Name());
            Assert.AreEqual(0, i.NumberOfArguments());
            Assert.AreSame(state.B, old);
        }
Esempio n. 3
0
 public AMInstructionSet()
 {
     _instructions["allocate"]          = new AllocateInstruction();
     _instructions["bcall"]             = new BCallInstruction();
     _instructions["call"]              = new CallInstruction();
     _instructions["cut"]               = new CutInstruction();
     _instructions["deallocate"]        = new DeallocateInstruction();
     _instructions["execute"]           = new ExecuteInstruction();
     _instructions["fcall"]             = new FCallInstruction();
     _instructions["fail"]              = new FailInstruction();
     _instructions["get_constant"]      = new GetConstantInstruction();
     _instructions["get_list"]          = new GetListInstruction();
     _instructions["get_structure"]     = new GetStructureInstruction();
     _instructions["get_value"]         = new GetValueInstruction();
     _instructions["get_variable"]      = new GetVariableInstruction();
     _instructions["halt"]              = new HaltInstruction();
     _instructions["nop"]               = new NopInstruction();
     _instructions["proceed"]           = new ProceedInstruction();
     _instructions["put_constant"]      = new PutConstantInstruction();
     _instructions["put_list"]          = new PutListInstruction();
     _instructions["put_structure"]     = new PutStructureInstruction();
     _instructions["put_unsafe_value"]  = new PutUnsafeValueInstruction();
     _instructions["put_variable"]      = new PutVariableInstruction();
     _instructions["put_value"]         = new PutValueInstruction();
     _instructions["retry_me_else"]     = new RetryMeElseInstruction();
     _instructions["set_constant"]      = new SetConstantInstruction();
     _instructions["set_local_value"]   = new SetLocalValueInstruction();
     _instructions["set_value"]         = new SetValueInstruction();
     _instructions["set_variable"]      = new SetVariableInstruction();
     _instructions["set_void"]          = new SetVoidInstruction();
     _instructions["trust_me"]          = new TrustMeInstruction();
     _instructions["try_me_else"]       = new TryMeElseInstruction();
     _instructions["unify_constant"]    = new UnifyConstantInstruction();
     _instructions["unify_local_value"] = new UnifyLocalValueInstruction();
     _instructions["unify_variable"]    = new UnifyVariableInstruction();
     _instructions["unify_value"]       = new UnifyValueInstruction();
     _instructions["unify_void"]        = new UnifyVoidInstruction();
     _instructions["procedure"]         = new ProcedureInstruction();
 }
Esempio n. 4
0
        protected bool ShouldCut(VennWireComponent component, CutInstruction instruction)
        {
            switch (instruction)
            {
            case CutInstruction.Cut:
                return(true);

            case CutInstruction.DoNotCut:
                return(false);

            case CutInstruction.CutIfSerialEven:
                return(SerialNumber.SerialNumberLastDigitEven());

            case CutInstruction.CutIfParallelPortPresent:
                return(PortPlate.IsPortPresent(PortTypes.Parallel));

            case CutInstruction.CutIfTwoOrMoreBatteriesPresent:
                return(Batteries.TotalBatteries >= 2);

            default:
                return(false);
            }
        }