コード例 #1
0
ファイル: incidence_db.py プロジェクト: smmckay/quex3
    def get_CodeTerminal(self, IncidenceId):
        """TODO: RETURN [0] code
                        [1] LexemeBeginF required
                        [2] LexemeTerminatingZeroF required
        """

        if IncidenceId not in self: return CodeTerminal([""])

        return CodeTerminal.from_CodeFragment(self[IncidenceId])
コード例 #2
0
    def extract_terminal_db(self, factory, ReloadRequiredF):
        """SpecialTerminals: END_OF_STREAM
                             FAILURE
                             BAD_LEXATOM
                             ...
        """
        result = {}
        for incidence_id, code_fragment in self.iteritems():
            terminal_type = standard_incidence_db_get_terminal_type(incidence_id)
            if terminal_type is None:
                continue
            elif   incidence_id == E_IncidenceIDs.END_OF_STREAM \
               and not ReloadRequiredF:
                continue
            code_terminal = CodeTerminal.from_CodeFragment(code_fragment)
            assert terminal_type not in result
            terminal = factory.do(terminal_type, code_terminal)
            terminal.set_incidence_id(incidence_id)
            result[incidence_id] = terminal

        return result
コード例 #3
0
    def get_CodeTerminal(self, IncidenceId):
        if IncidenceId not in self: return CodeTerminal([""])

        return CodeTerminal.from_CodeFragment(self[IncidenceId], 
                                              LexemeRelevanceF=True)