Beispiel #1
0
def get_supported_language_list(CodecName=None):
    if CodecName is None:
        result = []
        for record in parser.get_codec_list_db():
            for language in record[2]:
                if language not in result: 
                    result.append(language)
        result.sort()
        return result
    else:
        for record in parser.get_codec_list_db():
            if record[0] == CodecName: return record[2]
        return []
Beispiel #2
0
def get_supported_language_list(CodecName=None):
    if CodecName is None:
        result = []
        for record in parser.get_codec_list_db():
            for language in record[2]:
                if language not in result:
                    result.append(language)
        result.sort()
        return result
    else:
        for record in parser.get_codec_list_db():
            if record[0] == CodecName: return record[2]
        return []
Beispiel #3
0
def get_supported_codec_list(IncludeAliasesF=False):
    global _supported_codec_list
    global _supported_codec_list_plus_aliases
    assert type(IncludeAliasesF) == bool

    if len(_supported_codec_list) != 0:
        if IncludeAliasesF: return _supported_codec_list_plus_aliases
        else: return _supported_codec_list

    file_name = "%s/00-SUPPORTED.txt" % QUEX_CODEC_DB_PATH
    content = get_file_content_or_die(file_name)

    _supported_codec_list = content.split()
    _supported_codec_list_plus_aliases = copy(_supported_codec_list)

    _supported_codec_list.sort()
    codec_db_list = parser.get_codec_list_db()
    for codec_name, aliases_list, dummy in codec_db_list:
        if codec_name in _supported_codec_list:
            _supported_codec_list_plus_aliases.extend(
                filter(lambda x: x != "", aliases_list))

    _supported_codec_list_plus_aliases.sort()
    if IncludeAliasesF: return _supported_codec_list_plus_aliases
    else: return _supported_codec_list
Beispiel #4
0
def get_codecs_for_language(Language):
    result = []
    for record in parser.get_codec_list_db():
        codec = record[0]
        if codec not in get_supported_codec_list(): continue
        if Language in record[2]: 
            result.append(record[0])
    if len(result) == 0:
        verify_word_in_list(Language, get_supported_language_list(),
                            "No codec found for language '%s'." % Language)
    return result
Beispiel #5
0
def _get_distinct_codec_name_for_alias(CodecAlias, FH=-1, LineN=None):
    """Arguments FH and LineN correspond to the arguments of error_msg."""
    assert len(CodecAlias) != 0

    for record in parser.get_codec_list_db():
        if CodecAlias in record[1] or CodecAlias == record[0]: 
            return record[0]

    verify_word_in_list(CodecAlias, get_supported_codec_list(), 
                        "Character encoding '%s' unknown to current version of quex." % CodecAlias,
                        FH, LineN)
Beispiel #6
0
def get_codecs_for_language(Language):
    result = []
    for record in parser.get_codec_list_db():
        codec = record[0]
        if codec not in get_supported_codec_list(): continue
        if Language in record[2]:
            result.append(record[0])
    if len(result) == 0:
        verify_word_in_list(Language, get_supported_language_list(),
                            "No codec found for language '%s'." % Language)
    return result
Beispiel #7
0
def get_file_name_for_codec_alias(CodecAlias):
    """Arguments FH and LineN correspond to the arguments of error.log."""
    assert CodecAlias

    for record in parser.get_codec_list_db():
        if CodecAlias in record[1] or CodecAlias == record[0]: 
            codec_name = record[0]
            return codec_name, "%s/%s.dat" % (QUEX_CODEC_DB_PATH, codec_name)

    error.verify_word_in_list(CodecAlias, get_supported_codec_list(), 
                        "Character encoding '%s' unknown to current version of quex." % CodecAlias)
Beispiel #8
0
def _get_distinct_codec_name_for_alias(CodecAlias, FH=-1):
    """Arguments FH and LineN correspond to the arguments of error.log."""
    assert len(CodecAlias) != 0

    for record in parser.get_codec_list_db():
        if CodecAlias in record[1] or CodecAlias == record[0]:
            return record[0]

    error.verify_word_in_list(
        CodecAlias, get_supported_codec_list(),
        "Character encoding '%s' unknown to current version of quex." %
        CodecAlias, FH)
Beispiel #9
0
def get_supported_codec_list(IncludeAliasesF=False):
    assert type(IncludeAliasesF) == bool

    global _supported_codec_list
    if len(_supported_codec_list) != 0: 
        if IncludeAliasesF: return _supported_codec_list_plus_aliases
        else:               return _supported_codec_list

    file_name = QUEX_PATH + "/quex/engine/codec_db/database/00-SUPPORTED.txt"
    content   = get_file_content_or_die(file_name)

    _supported_codec_list = content.split()
    _supported_codec_list.sort()
    codec_db_list = parser.get_codec_list_db()
    for codec_name, aliases_list, dummy in codec_db_list:
        if codec_name in _supported_codec_list: 
            _supported_codec_list_plus_aliases.extend(filter(lambda x: x != "", aliases_list))
        
    _supported_codec_list_plus_aliases.sort()
    if IncludeAliasesF: return _supported_codec_list_plus_aliases
    else:               return _supported_codec_list
Beispiel #10
0
def get_supported_codec_list(IncludeAliasesF=False):
    assert type(IncludeAliasesF) == bool

    global _supported_codec_list
    if len(_supported_codec_list) != 0:
        if IncludeAliasesF: return _supported_codec_list_plus_aliases
        else: return _supported_codec_list

    file_name = QUEX_PATH + "/quex/engine/codec_db/database/00-SUPPORTED.txt"
    content = get_file_content_or_die(file_name)

    _supported_codec_list = content.split()
    _supported_codec_list.sort()
    codec_db_list = parser.get_codec_list_db()
    for codec_name, aliases_list, dummy in codec_db_list:
        if codec_name in _supported_codec_list:
            _supported_codec_list_plus_aliases.extend(
                filter(lambda x: x != "", aliases_list))

    _supported_codec_list_plus_aliases.sort()
    if IncludeAliasesF: return _supported_codec_list_plus_aliases
    else: return _supported_codec_list
Beispiel #11
0
def get_supported_codec_list(IncludeAliasesF=False):
    global _supported_codec_list
    global _supported_codec_list_plus_aliases
    assert type(IncludeAliasesF) == bool

    if len(_supported_codec_list) != 0: 
        if IncludeAliasesF: return _supported_codec_list_plus_aliases
        else:               return _supported_codec_list

    file_name = "%s/00-SUPPORTED.txt" % QUEX_CODEC_DB_PATH
    content   = get_file_content_or_die(file_name)

    _supported_codec_list = content.split()
    _supported_codec_list_plus_aliases = copy(_supported_codec_list)

    _supported_codec_list.sort()
    codec_db_list = parser.get_codec_list_db()
    for codec_name, aliases_list, dummy in codec_db_list:
        if codec_name in _supported_codec_list: 
            _supported_codec_list_plus_aliases.extend(filter(lambda x: x != "", aliases_list))
        
    _supported_codec_list_plus_aliases.sort()
    if IncludeAliasesF: return _supported_codec_list_plus_aliases
    else:               return _supported_codec_list
Beispiel #12
0
        db.append((input_interval, target_interval_begin))

    fh = open_file_or_die(QUEX_CODEC_DB_PATH + "/%s.dat" % TargetEncoding, "wb")
    fh.write("// Describes mapping from Unicode Code pointer to Character code in %s (%s)\n" \
             % (TargetEncoding, TargetEncodingName))
    fh.write("// [SourceInterval.begin] [SourceInterval.Size]  [TargetInterval.begin] (all in hexidecimal)\n")
    for i, t in db:
        fh.write("0x%X %i 0x%X\n" % (i.begin, i.end - i.begin, t))
    fh.close()

    return True

if __name__ == "__main__":
    # PURPOSE: Helper script to create database files that describe the mapping from
    #          unicode characters to character codes of a particular encoding.
    fh           = open("00-ALL.txt")
    fh_supported = open("00-SUPPORTED.txt", "wb")
    # FIELD SEPARATOR:  ';'
    # RECORD SEPARATOR: '\n'
    # FIELDS:           [Python Coding Name]   [Aliases]   [Languages] 
    # Aliases and Languages are separated by ','
    db_list = get_codec_list_db()
    for record in db_list:
        codec         = record[0]
        language_list = record[2]
        print repr(language_list) + " (", codec, ")",
        if __create_database_file(codec, language_list):
            fh_supported.write("%s " % codec)
            print "[OK]"
            
Beispiel #13
0
                          "wb")
    fh.write("// Describes mapping from Unicode Code pointer to Character code in %s (%s)\n" \
             % (TargetEncoding, TargetEncodingName))
    fh.write(
        "// [SourceInterval.begin] [SourceInterval.Size]  [TargetInterval.begin] (all in hexidecimal)\n"
    )
    for i, t in db:
        fh.write("0x%X %i 0x%X\n" % (i.begin, i.end - i.begin, t))
    fh.close()

    return True


if __name__ == "__main__":
    # PURPOSE: Helper script to create database files that describe the mapping from
    #          unicode characters to character codes of a particular encoding.
    fh = open("00-ALL.txt")
    fh_supported = open("00-SUPPORTED.txt", "wb")
    # FIELD SEPARATOR:  ';'
    # RECORD SEPARATOR: '\n'
    # FIELDS:           [Python Coding Name]   [Aliases]   [Languages]
    # Aliases and Languages are separated by ','
    db_list = get_codec_list_db()
    for record in db_list:
        codec = record[0]
        language_list = record[2]
        print repr(language_list) + " (", codec, ")",
        if __create_database_file(codec, language_list):
            fh_supported.write("%s " % codec)
            print "[OK]"