Ejemplo n.º 1
0
    def get_pure_text(self):
        """RETURNS: Text

        The returned text is free from any annotations.
        """
        assert all_isinstance(self.__code, (str, unicode))
        return "".join(self.__code)
Ejemplo n.º 2
0
    def get_text(self):
        """RETURNS: Text

        May contain annotations to the code may by the derived class.
        """
        code = self.get_code()
        assert all_isinstance(code, (str, unicode))
        return "".join(code)
Ejemplo n.º 3
0
def wrap_up(ModeName, FunctionBody, VariableDefs, ModeNameList):
    txt_function = Lng.ANALYZER_FUNCTION(ModeName, Setup, VariableDefs,
                                         FunctionBody, ModeNameList)
    txt_header = Lng.HEADER_DEFINITIONS()
    assert isinstance(txt_header, (str, unicode))

    txt_analyzer = get_plain_strings(txt_function)
    assert all_isinstance(txt_analyzer, (str, unicode))

    return [txt_header] + txt_analyzer
Ejemplo n.º 4
0
def wrap_up(ModeName, FunctionBody, VariableDefs, ModeNameList):
    txt_function = Lng.ANALYZER_FUNCTION(ModeName, Setup, VariableDefs, 
                                         FunctionBody, ModeNameList) 
    txt_header   = Lng.HEADER_DEFINITIONS() 
    assert isinstance(txt_header, (str, unicode))

    txt_analyzer = get_plain_strings(txt_function)
    assert all_isinstance(txt_analyzer, (str, unicode))

    return [ txt_header ] + txt_analyzer
Ejemplo n.º 5
0
    def __init__(self, PatternList):
        assert isinstance(PatternList, list)
        assert len(PatternList) > 0
        assert all_isinstance(PatternList, Pattern)
        assert all_true(PatternList, lambda p: p.incidence_id() is not None)

        # (*) Core SM, Pre-Context SM, ...
        #     ... and sometimes backward input position SMs.
        self.sm,                    \
        self.pre_context_sm,        \
        self.bipd_sm_db,            \
        self.pre_context_sm_id_list = self.__prepare(PatternList)
Ejemplo n.º 6
0
    def __init__(self, PatternList): 
        assert isinstance(PatternList, list)
        assert len(PatternList) > 0
        assert all_isinstance(PatternList, Pattern)
        assert all_true(PatternList, lambda p: p.incidence_id() is not None)

        # (*) Core SM, Pre-Context SM, ...
        #     ... and sometimes backward input position SMs.
        self.sm,                    \
        self.pre_context_sm,        \
        self.bipd_sm_db,            \
        self.pre_context_sm_id_list = self.__prepare(PatternList)
Ejemplo n.º 7
0
    def __get_setting_list(self, Name):
        """RETURNS: [ OptionSetting ] for a given option's Name.

        This function does additional checks for consistency.
        """
        setting_list = dict.get(self, Name)
        if setting_list is None: return None

        assert isinstance(setting_list, list) 
        assert all_isinstance(setting_list, OptionSetting)
        assert (not mode_option_info_db[Name].single_setting_f()) or len(setting_list) == 1
        return setting_list
Ejemplo n.º 8
0
    def __get_setting_list(self, Name):
        """RETURNS: [ OptionSetting ] for a given option's Name.

        This function does additional checks for consistency.
        """
        setting_list = dict.get(self, Name)
        if setting_list is None: return None

        assert isinstance(setting_list, list)
        assert all_isinstance(setting_list, OptionSetting)
        assert (not mode_option_info_db[Name].single_setting_f()
                ) or len(setting_list) == 1
        return setting_list
Ejemplo n.º 9
0
    def get_documentation(self):
        L = max(map(lambda mode: len(mode.name), self.__base_mode_sequence))
        txt = "\nMODE: %s\n" % self.name

        txt += "\n"
        if len(self.__base_mode_sequence) != 1:
            txt += "    BASE MODE SEQUENCE:\n"
            base_mode_name_list = map(lambda mode: mode.name,
                                      self.__base_mode_sequence[:-1])
            base_mode_name_list.reverse()
            for name in base_mode_name_list:
                txt += "      %s\n" % name
            txt += "\n"

        if len(self.__doc_history_deletion) != 0:
            txt += "    DELETION ACTIONS:\n"
            for entry in self.__doc_history_deletion:
                txt += "      %s:  %s%s  (from mode %s)\n" % \
                       (entry[0], " " * (L - len(self.name)), entry[1], entry[2])
            txt += "\n"

        if len(self.__doc_history_reprioritization) != 0:
            txt += "    PRIORITY-MARK ACTIONS:\n"
            self.__doc_history_reprioritization.sort(
                lambda x, y: cmp(x[4], y[4]))
            for entry in self.__doc_history_reprioritization:
                txt += "      %s: %s%s  (from mode %s)  (%i) --> (%i)\n" % \
                       (entry[0], " " * (L - len(self.name)), entry[1], entry[2], entry[3], entry[4])
            txt += "\n"

        assert all_isinstance(self.__pattern_list, Pattern)
        if len(self.__pattern_list) != 0:
            txt += "    PATTERN LIST:\n"
            for x in self.__pattern_list:
                space = " " * (L - len(x.sr.mode_name))
                txt   += "      (%3i) %s: %s%s\n" % \
                         (x.incidence_id(), x.sr.mode_name, space, x.pattern_string())
            txt += "\n"

        return txt
Ejemplo n.º 10
0
    def get_documentation(self):
        L = max(map(lambda mode: len(mode.name), self.__base_mode_sequence))
        txt  = "\nMODE: %s\n" % self.name

        txt += "\n"
        if len(self.__base_mode_sequence) != 1:
            txt += "    BASE MODE SEQUENCE:\n"
            base_mode_name_list = map(lambda mode: mode.name, self.__base_mode_sequence[:-1])
            base_mode_name_list.reverse()
            for name in base_mode_name_list:
                txt += "      %s\n" % name
            txt += "\n"

        if len(self.__doc_history_deletion) != 0:
            txt += "    DELETION ACTIONS:\n"
            for entry in self.__doc_history_deletion:
                txt += "      %s:  %s%s  (from mode %s)\n" % \
                       (entry[0], " " * (L - len(self.name)), entry[1], entry[2])
            txt += "\n"

        if len(self.__doc_history_reprioritization) != 0:
            txt += "    PRIORITY-MARK ACTIONS:\n"
            self.__doc_history_reprioritization.sort(lambda x, y: cmp(x[4], y[4]))
            for entry in self.__doc_history_reprioritization:
                txt += "      %s: %s%s  (from mode %s)  (%i) --> (%i)\n" % \
                       (entry[0], " " * (L - len(self.name)), entry[1], entry[2], entry[3], entry[4])
            txt += "\n"

        assert all_isinstance(self.__pattern_list, Pattern)
        if len(self.__pattern_list) != 0:
            txt += "    PATTERN LIST:\n"
            for x in self.__pattern_list:
                space  = " " * (L - len(x.sr.mode_name)) 
                txt   += "      (%3i) %s: %s%s\n" % \
                         (x.incidence_id(), x.sr.mode_name, space, x.pattern_string())
            txt += "\n"

        return txt
Ejemplo n.º 11
0
 def __init__(self, Code, DropOutF=False):
     assert type(DropOutF) == bool
     self.__drop_out_f = DropOutF
     if isinstance(Code, list): self.__code = Code
     else:                      self.__code = [ Code ]
     assert all_isinstance(self.__code, (int, str, unicode))