Op.Assign(E_R.LexemeStartP, E_R.ReferenceP)) test(Op.ColumnCountAdd(2), Op.LineCountAdd(3)) print "(1.2) Commands with interferring access to registers, solely read ____________" print test(Op.InputPDereference(), Op.StoreInputPosition(0, 1, 0)) test(Op.Assign(E_R.InputP, E_R.ReferenceP), Op.Assign(E_R.LexemeStartP, E_R.ReferenceP)) test(Op.ColumnCountReferencePDeltaAdd(E_R.InputP, 5, False), Op.Assign(E_R.CharacterBeginP, E_R.ReferenceP)) print "(1.3) Commands with interferring access to registers, one read other write ___" print test(Op.Assign(E_R.InputP, E_R.CharacterBeginP), Op.StoreInputPosition(0, 1, 0)) test(Op.Assign(E_R.InputP, E_R.ReferenceP), Op.Assign(E_R.LexemeStartP, E_R.InputP)) test(Op.ColumnCountReferencePDeltaAdd(E_R.ReferenceP, 5, False), Op.Assign(E_R.ReferenceP, E_R.InputP)) print "(1.4) Commands with interferring access to registers, both write _____________" print test(Op.StoreInputPosition(0, 1, 0), Op.StoreInputPosition(0, 1, 0)) test(Op.Assign(E_R.InputP, E_R.ReferenceP), Op.Assign(E_R.InputP, E_R.InputP)) test(Op.ColumnCountReferencePDeltaAdd(E_R.ReferenceP, 5, False), Op.ColumnCountAdd(2)) print "(2) Branchers: _______________________________________________________________" print test(Op.GotoDoorId(DoorID(2, 2)), Op.GotoDoorIdIfInputPNotEqualPointer(DoorID(1, 1), E_R.ReferenceP)) test(Op.GotoDoorId(DoorID(2, 2)), Op.GotoDoorId(DoorID(1, 1))) test(Op.GotoDoorIdIfInputPNotEqualPointer(DoorID(2, 2), E_R.ReferenceP), Op.GotoDoorIdIfInputPNotEqualPointer(DoorID(1, 1), E_R.ReferenceP))
print "___ Initial ___" print print "".join(stdb.get_tree_text(alias_db)) i = 0 while stdb.pop_best(): i += 1 print "___ Step %i ____" % i print print "".join(stdb.get_tree_text(alias_db)) setup_list = [ [], [ (DoorID(0, 1), [A]), ], [ (DoorID(0, 1), [A]), (DoorID(0, 2), [A]), ], [ (DoorID(0, 1), [A]), (DoorID(0, 2), [B]), ], [ (DoorID(0, 1), [A, C]), (DoorID(0, 2), [A, C]), ], [ (DoorID(0, 1), [A, C]),
def get_TargetByStateKey_Element(TargetStateIndex): global dial_db transition_id = TransitionID(TargetStateIndex, 0, 0) door_id = DoorID(TargetStateIndex, 0, dial_db) return TargetByStateKey_Element(transition_id, door_id)
from collections import defaultdict from copy import deepcopy from random import shuffle Setup.language_db = db[Setup.language] example_db = { E_Op.StoreInputPosition: [ Op.StoreInputPosition(4711, 7777, 0), Op.StoreInputPosition(4711, 7777, 1000) ], E_Op.PreContextOK: [Op.PreContextOK(4711)], E_Op.TemplateStateKeySet: [Op.TemplateStateKeySet(66)], E_Op.PathIteratorSet: [Op.PathIteratorSet(11, 22, 1000)], E_Op.PrepareAfterReload: [Op.PrepareAfterReload(DoorID(33, 44), DoorID(55, 66))], E_Op.InputPIncrement: [Op.InputPIncrement()], E_Op.InputPDecrement: [Op.InputPDecrement()], E_Op.InputPDereference: [Op.InputPDereference()], E_Op.LexemeResetTerminatingZero: [Op.LexemeResetTerminatingZero()], E_Op.ColumnCountReferencePSet: [Op.ColumnCountReferencePSet(E_R.CharacterBeginP, 1000)], E_Op.ColumnCountReferencePDeltaAdd: [Op.ColumnCountReferencePDeltaAdd(E_R.CharacterBeginP, 5555, False)], E_Op.ColumnCountAdd: [Op.ColumnCountAdd(1)], E_Op.ColumnCountGridAdd: [ Op.ColumnCountGridAdd(1), Op.ColumnCountGridAdd(2), Op.ColumnCountGridAdd(3), Op.ColumnCountGridAdd(4), Op.ColumnCountGridAdd(5),
from collections import defaultdict from copy import deepcopy from random import shuffle Setup.language_db = db[Setup.language] example_db = { E_Op.StoreInputPosition: [ Op.StoreInputPosition(4711, 7777, 0), Op.StoreInputPosition(4711, 7777, 1000) ], E_Op.PreContextOK: [ Op.PreContextOK(4711) ], E_Op.TemplateStateKeySet: [ Op.TemplateStateKeySet(66) ], E_Op.PathIteratorSet: [ Op.PathIteratorSet(11, 22, 1000) ], E_Op.PrepareAfterReload: [ Op.PrepareAfterReload(DoorID(33, 44), DoorID(55, 66)) ], E_Op.Increment: [ Op.Increment(E_R.InputP) ], E_Op.Decrement: [ Op.Decrement(E_R.InputP) ], E_Op.InputPDereference: [ Op.InputPDereference() ], E_Op.LexemeResetTerminatingZero: [ Op.LexemeResetTerminatingZero() ], E_Op.ColumnCountReferencePSet: [ Op.ColumnCountReferencePSet(E_R.CharacterBeginP, 1000) ], E_Op.ColumnCountReferencePDeltaAdd: [ Op.ColumnCountReferencePDeltaAdd(E_R.CharacterBeginP, 5555, False) ], E_Op.ColumnCountAdd: [ Op.ColumnCountAdd(1) ], E_Op.ColumnCountGridAdd: [ Op.ColumnCountGridAdd(1), Op.ColumnCountGridAdd(2), Op.ColumnCountGridAdd(3), Op.ColumnCountGridAdd(4), Op.ColumnCountGridAdd(5), ], E_Op.LineCountAdd: [ Op.LineCountAdd(1) ],
def get_DoorID(X, Y): global dial_db return DoorID(X, Y, dial_db)
def from_StateIndex_for_DropOut(X): return TargetByStateKey.from_transition(TransitionID(X, X, 0), DoorID(X, 0))
test(Op.ColumnCountReferencePDeltaAdd(E_R.InputP, 5, False), Op.Assign(E_R.LoopRestartP, E_R.CountReferenceP)) print "(1.3) Commands with interferring access to registers, one read other write ___" print test(Op.Assign(E_R.InputP, E_R.LoopRestartP), Op.StoreInputPosition((0, ), 1, 0)) test(Op.Assign(E_R.InputP, E_R.CountReferenceP), Op.Assign(E_R.LexemeStartP, E_R.InputP)) test(Op.ColumnCountReferencePDeltaAdd(E_R.CountReferenceP, 5, False), Op.Assign(E_R.CountReferenceP, E_R.InputP)) print "(1.4) Commands with interferring access to registers, both write _____________" print test(Op.StoreInputPosition((0, ), 1, 0), Op.StoreInputPosition((0, ), 1, 0)) test(Op.Assign(E_R.InputP, E_R.CountReferenceP), Op.Assign(E_R.InputP, E_R.InputP)) test(Op.ColumnCountReferencePDeltaAdd(E_R.CountReferenceP, 5, False), Op.ColumnCountAdd(2)) print "(2) Branchers: _______________________________________________________________" print test( Op.GotoDoorId(DoorID(2, 2, dial_db)), Op.GotoDoorIdIfInputPNotEqualPointer(DoorID(1, 1, dial_db), E_R.CountReferenceP)) test(Op.GotoDoorId(DoorID(2, 2, dial_db)), Op.GotoDoorId(DoorID(1, 1, dial_db))) test( Op.GotoDoorIdIfInputPNotEqualPointer(DoorID(2, 2, dial_db), E_R.CountReferenceP), Op.GotoDoorIdIfInputPNotEqualPointer(DoorID(1, 1, dial_db), E_R.CountReferenceP))
dial_db = DialDB() Setup.language_db = db[Setup.language]() example_db = { # # ANY NEW ENTRY MUST BE STORED IN 'NEW_ENTRIES' # E_Op.StoreInputPosition: [ Op.StoreInputPosition((4711L, ), 7777, 0), Op.StoreInputPosition((4711L, ), 7777, 1000) ], E_Op.PreContextOK: [Op.PreContextOK(4711L)], E_Op.TemplateStateKeySet: [Op.TemplateStateKeySet(66)], E_Op.PathIteratorSet: [Op.PathIteratorSet(11, 22, 1000)], E_Op.PrepareAfterReload: [Op.PrepareAfterReload(DoorID(33, 44, dial_db), DoorID(55, 66, dial_db))], E_Op.Increment: [Op.Increment(E_R.InputP)], E_Op.Decrement: [Op.Decrement(E_R.InputP)], E_Op.InputPDereference: [Op.InputPDereference()], E_Op.LexemeResetTerminatingZero: [Op.LexemeResetTerminatingZero()], E_Op.ColumnCountReferencePSet: [Op.ColumnCountReferencePSet(E_R.LoopRestartP, 1000)], E_Op.ColumnCountReferencePDeltaAdd: [Op.ColumnCountReferencePDeltaAdd(E_R.LoopRestartP, 5555, False)], E_Op.ColumnCountAdd: [Op.ColumnCountAdd(1)], E_Op.ColumnCountGridAdd: [ Op.ColumnCountGridAdd(1), Op.ColumnCountGridAdd(2), Op.ColumnCountGridAdd(3), Op.ColumnCountGridAdd(4), Op.ColumnCountGridAdd(5),