Beispiel #1
0
    def plug_wildcard(self, Target):
        assert isinstance(Target, DoorID) or Target == E_StateIndices.DROP_OUT, repr(Target)
        assert self.__wildcard_char is not None
        assert transition_map_tools.get_target(self.__transition_map, self.__wildcard_char) == E_StateIndices.VOID

        transition_map_tools.set(self.__transition_map, self.__wildcard_char, Target)

        self.__wildcard_char = None
        return 
Beispiel #2
0
    def plug_wildcard(self, Target):
        assert isinstance(Target, DoorID) or Target == E_StateIndices.DROP_OUT, repr(Target)
        assert self.__wildcard_char is not None
        assert transition_map_tools.get_target(self.__transition_map, self.__wildcard_char) == E_StateIndices.VOID

        ## print "#wildcard:", chr(self.__wildcard_char), Target
        ## print "#before plug: {\n%s}" % transition_map_tools.get_string(self.__transition_map)

        transition_map_tools.set(self.__transition_map, self.__wildcard_char, Target)

        ## print "#after plug: {\n%s}" % transition_map_tools.get_string(self.__transition_map)
        
        self.__wildcard_char = None
        return 
Beispiel #3
0
    def __init__(self, StartState, StartCharacter, AdaptedTransitionMap):
        assert StartState is None     or isinstance(StartState, AnalyzerState)
        assert StartCharacter is None or isinstance(StartCharacter, (int, long))
        assert AdaptedTransitionMap is None or isinstance(AdaptedTransitionMap, list)

        if StartState is None: return # Only for Clone

        self.index    = index.get()
        self.entry    = PathWalkerState_Entry(self.index, StartState.entry)
        self.drop_out = MegaState_DropOut(StartState) 

        self.__sequence         = [ CharacterPathElement(StartState.index, StartCharacter) ]
        self.__transition_map   = AdaptedTransitionMap
        # Set the 'void' target to indicate wildcard.
        transition_map_tools.set(self.__transition_map, StartCharacter, E_StateIndices.VOID)
        self.__wildcard_char  = StartCharacter
Beispiel #4
0
    def __init__(self, StartState, StartCharacter, AdaptedTransitionMap):
        if StartState is None: return # Only for Clone

        assert StartState is None           or isinstance(StartState, AnalyzerState)
        assert StartCharacter is None       or isinstance(StartCharacter, (int, long))
        assert AdaptedTransitionMap is None or isinstance(AdaptedTransitionMap, list)

        self.index    = index.get()
        self.entry    = PathWalkerState_Entry(self.index, StartState.entry)
        self.drop_out = MegaState_DropOut(StartState) 

        self.__sequence         = [ CharacterPathElement(StartState.index, StartCharacter) ]
        self.__transition_map   = AdaptedTransitionMap

        # Set the 'void' target to indicate wildcard.
        self.__wildcard_char    = StartCharacter
        transition_map_tools.set(self.__transition_map, StartCharacter, E_StateIndices.VOID)