Banner showing base of Eiffel tower

Github

Download version 1.4.8: Windows or Linux

Base Library: Strings (Compact Unicode)

This library cluster has 84 classes.

ECF: base.ecf

Source code: directory list

Classes to process strings of type ZSTRING which is a memory compacted string conforming to READABLE_STRING_32.

Class ZSTRING

Class ZSTRING class (alias for EL_ZSTRING) supports the same unicode character range as the ELKS base class STRING_32, but for text in a Western European langauges it has a memory footprint that is close to that of class STRING_8.

Class ZSTRING has a great many additional routines not found in STRING_32 as for example, Python like tuple substitution, or substrings up until a specified character (and the reverse).

See Articles

Benchmarks ZSTRING vs STRING_32

Directory: library/base/text/zstring

[ . ]

. /buffer

. /codec

. /codec/iso

. /codec/windows

. /cursor

. /editor

. /escaping

. /extra

. /implementation

. /intervals

. /list

. /shared

. /support

. /table

[ . ]

EL_ZSTRING

Usually referenced with the alias ZSTRING, this string is a memory efficient alternative to using STRING_32. When an application mainly uses characters from the ISO-8859-15 character set, the memory saving can be as much as 70%, while the execution efficiency is roughly the same as for STRING_8. For short strings the saving is much less: about 50%. ISO-8859-15 covers most Western european languages.

Further Information

Click on class link to see tests, notes and client examples.

buffer

EL_ZSTRING_BUFFER

Implementation of EL_ZSTRING_BUFFER_I

Further Information

Click on class link to see client examples.

EL_ZSTRING_BUFFER_I

Interface for buffer of type EL_ZSTRING

EL_ZSTRING_BUFFER_ROUTINES

Routines to acccess shared buffer of type EL_ZSTRING

codec

EL_SHARED_UTF_8_ZCODEC

Shared utf 8 zcodec

EL_SHARED_ZCODEC_FACTORY

Shared access to frozen class EL_ZCODEC_FACTORY

Further Information

Click on class link to see client examples.

EL_SHARED_ZSTRING_CODEC

Defines codec to be used by class EL_ZSTRING for encoding characters in area

Further Information

Click on class link to see client examples.

EL_UTF_8_ZCODEC

Converts to and from UTF-8

EL_ZCODEC

Base class for Latin, Windows and UTF-8 codecs

Further Information

Click on class link to see notes and client examples.

EL_ZCODEC_FACTORY

Factory for character codecs conforming to EL_ZCODEC

Further Information

Click on class link to see notes.

EL_ZCODEC_IMPLEMENTATION

Implementation routines for EL_ZCODEC

codec/iso

EL_ISO_8859_10_ZCODEC

Codec for ISO_8859_10 automatically generated from decoder.c in VTD-XML source

EL_ISO_8859_11_ZCODEC

Codec for ISO_8859_11 automatically generated from decoder.c in VTD-XML source

EL_ISO_8859_13_ZCODEC

Codec for ISO_8859_13 automatically generated from decoder.c in VTD-XML source

EL_ISO_8859_14_ZCODEC

Codec for ISO_8859_14 automatically generated from decoder.c in VTD-XML source

EL_ISO_8859_15_ZCODEC

Codec for ISO_8859_15 automatically generated from decoder.c in VTD-XML source

EL_ISO_8859_1_ZCODEC

ISO-8859-1 zcodec

EL_ISO_8859_2_ZCODEC

Codec for ISO_8859_2 automatically generated from decoder.c in VTD-XML source

EL_ISO_8859_3_ZCODEC

Codec for ISO_8859_3 automatically generated from decoder.c in VTD-XML source

EL_ISO_8859_4_ZCODEC

Codec for ISO_8859_4 automatically generated from decoder.c in VTD-XML source

EL_ISO_8859_5_ZCODEC

Codec for ISO_8859_5 automatically generated from decoder.c in VTD-XML source

EL_ISO_8859_6_ZCODEC

Codec for ISO_8859_6 automatically generated from decoder.c in VTD-XML source

EL_ISO_8859_7_ZCODEC

Codec for ISO_8859_7 automatically generated from decoder.c in VTD-XML source

EL_ISO_8859_8_ZCODEC

Codec for ISO_8859_8 automatically generated from decoder.c in VTD-XML source

EL_ISO_8859_9_ZCODEC

Codec for ISO_8859_9 automatically generated from decoder.c in VTD-XML source

codec/windows

EL_WINDOWS_1250_ZCODEC

Codec for WINDOWS_1250 automatically generated from decoder.c in VTD-XML source

EL_WINDOWS_1251_ZCODEC

Codec for WINDOWS_1251 automatically generated from decoder.c in VTD-XML source

EL_WINDOWS_1252_ZCODEC

Codec for WINDOWS_1252 automatically generated from decoder.c in VTD-XML source

EL_WINDOWS_1253_ZCODEC

Codec for WINDOWS_1253 automatically generated from decoder.c in VTD-XML source

EL_WINDOWS_1254_ZCODEC

Codec for WINDOWS_1254 automatically generated from decoder.c in VTD-XML source

EL_WINDOWS_1255_ZCODEC

Codec for WINDOWS_1255 automatically generated from decoder.c in VTD-XML source

EL_WINDOWS_1256_ZCODEC

Codec for WINDOWS_1256 automatically generated from decoder.c in VTD-XML source

EL_WINDOWS_1257_ZCODEC

Codec for WINDOWS_1257 automatically generated from decoder.c in VTD-XML source

EL_WINDOWS_1258_ZCODEC

Codec for WINDOWS_1258 automatically generated from decoder.c in VTD-XML source

cursor

EL_COMPACT_ZSTRING_ITERATION_CURSOR

Iteration_cursor for EL_COMPACT_ZSTRING_LIST

EL_SPLIT_ZSTRING_ON_CHARACTER

Optimized implementation of EL_SPLIT_ON_CHARACTER [ZSTRING]

Further Information

Click on class link to see client examples.

EL_SPLIT_ZSTRING_ON_CHARACTER_CURSOR

Optimized implementation of EL_SPLIT_ON_CHARACTER_CURSOR [ZSTRING]

EL_SPLIT_ZSTRING_ON_STRING

Optimized implementation of EL_SPLIT_ON_STRING [ZSTRING]

EL_SPLIT_ZSTRING_ON_STRING_CURSOR

Optimized implementation of EL_SPLIT_ON_STRING_CURSOR [ZSTRING]

EL_ZSTRING_ITERATION_CURSOR

CHARACTER_32 iterator for EL_READABLE_ZSTRING

editor

EL_ZSTRING_EDITOR

Edit strings of type EL_ZSTRING by applying an editing procedure to all occurrences of substrings that begin and end with a pair of delimiters.

See {EL_STRING_EDITOR}.delete_interior for an example of an editing procedure

Further Information

Click on class link to see client examples.

EL_ZSTRING_OCCURRENCE_EDITOR

Object that edits substring intervals of a ZSTRING instance

Further Information

Click on class link to see client examples.

escaping

EL_ZSTRING_ESCAPER_IMP

ZSTRING implementation of EL_STRING_ESCAPER_IMP [STRING_GENERAL]

EL_ZSTRING_UNESCAPER

Unescape strings conforming to EL_READABLE_ZSTRING

Further Information

Click on class link to see client examples.

extra

EL_FLOATING_ZSTRING

A read-only ZSTRING that has the concept of text that is floating in the middle of some arbitrary whitespace to the left and right. The function groups starts_with* and ends_with* relate only to this embedded "floating text".

EL_ZSTRING_ROUTINES

Expanded instance of EL_ZSTRING_ROUTINES_IMP

Further Information

Click on class link to see client examples.

EL_ZSTRING_ROUTINES_IMP

EL_STRING_X_ROUTINES implemented for EL_READABLE_ZSTRING plus a few extra convenience routines

implementation

EL_APPENDABLE_ZSTRING

Appendable aspects of ZSTRING that use only 8-bit implemenation

EL_CASELESS_COMPARE_ZSTRING_TO_STRING_32

EL_COMPARE_ZSTRING_TO_STRING_32 with case-insensitive comparisons

EL_CASELESS_COMPARE_ZSTRING_TO_STRING_8

EL_COMPARE_ZSTRING_TO_STRING_8 with case-insensitive comparisons

EL_CHARACTER_TESTABLE_ZSTRING

Implementation of status queries for EL_READABLE_ZSTRING related to presence of specified character sets for whole string or substring.

EL_COMPARABLE_ZSTRING

Comparison of current EL_READABLE_ZSTRING with other strings

EL_COMPARABLE_ZSTRING_INTERVALS

EL_ZSTRING_INTERVALS that is comparable to string types other than ZSTRING

EL_COMPARE_ZSTRING_TO_STRING_32

Implementation of EL_ZSTRING_INTERVALS for comparing with strings conforming to READABLE_STRING_32

EL_COMPARE_ZSTRING_TO_STRING_8

Implementation of EL_ZSTRING_INTERVALS for comparing with strings conforming to READABLE_STRING_8

EL_CONVERTABLE_ZSTRING

Routines to convert instance of ZSTRING to another type or form

EL_MEASUREABLE_ZSTRING

Measureable aspects of ZSTRING

EL_PREPENDABLE_ZSTRING

Prependable aspects of ZSTRING that use only 8-bit implemenation

EL_READABLE_ZSTRING

Read only interface to class ZSTRING

Further Information

Click on class link to see tests and client examples.

EL_READABLE_ZSTRING_I

Abstract interface to class ZSTRING for use in implementation ancestors

Further Information

Click on class link to see descendants.

EL_SEARCHABLE_ZSTRING

Searchable aspects of ZSTRING

EL_STRING_8_IMPLEMENTATION

EL_STRING_8 argument wrappers for EL_READABLE_ZSTRING

EL_TRANSFORMABLE_ZSTRING

Implementation routines to transform instance of ZSTRING

EL_WRITEABLE_ZSTRING

Writing contents of ZSTRING to external strings/objects

EL_ZSTRING_CHARACTER_8_IMPLEMENTATION

Aspect of ZSTRING as an array of 8-bit characters

EL_ZSTRING_IMPLEMENTATION

Core implementation of ZSTRING using an 8 bit array to store characters encodeable by codec, and a compacted array of 32-bit arrays to encode any character not defined by the 8-bit encoding.

EL_ZSTRING_INTERVALS

Traverseable intervals for ZSTRING including both encoded and unencoded

EL_ZSTRING_TO_BASIC_TYPES

Routines to convert instance of ZSTRING to basic and numeric types

intervals

EL_ZSTRING_OCCURRENCE_INTERVALS

EL_OCCURRENCE_INTERVALS optimized for strings of type ZSTRING

Further Information

Click on class link to see client examples.

EL_ZSTRING_SPLIT_INTERVALS

EL_SPLIT_INTERVALS optimized for strings of type ZSTRING

list

EL_COMPACT_ZSTRING_LIST

Memory efficient list of ZSTRING with character data stored as a single UTF-8 encoding instance of IMMUTABLE_STRING_8 using class EL_SPLIT_IMMUTABLE_UTF_8_LIST

Further Information

Click on class link to see client examples.

EL_SPLIT_ZSTRING_LIST

A list of substring index intervals conforming to EL_SPLIT_INTERVALS for a string of type ZSTRING

Further Information

Click on class link to see client examples.

EL_STYLED_ZSTRING_LIST

Implementation of EL_STYLED_TEXT_LIST [ZSTRING]

Further Information

Click on class link to see client examples.

EL_ZSTRING_LIST

List of strings of type ZSTRING

Further Information

Click on class link to see client examples.

shared

EL_SHARED_ZSTRING_CURSOR

Shared instance of EL_ZSTRING_ITERATION_CURSOR

Further Information

Click on class link to see client examples.

EL_ZSTRING_CONSTANTS

Constants for class EL_ZSTRING (AKA ZSTRING)

Further Information

Click on class link to see client examples.

support

EL_ZCODE_CONVERSION

For use with class ZSTRING which redefines {READABLE_STRING_GENERAL}.code as z_code. A z_code is a hybrid of a Latin-x or Windows-x encoding and a UCS4 encoding. (We only refer to "latin" from here on)

Occassionaly a unicode character might clash with the range 0 .. 255 reserved for latin encodings. To get around this we set the sign bit to 1 to distinguish it. We can do this because the sign bit is unused in UCS4 unicode.

Further Information

Click on class link to see client examples.

EL_ZSTRING_IO_MEDIUM_LINE_SOURCE

ZSTRING IO medium line source

Further Information

Click on class link to see client examples.

EL_ZSTRING_SEARCHER

Zstring searcher

EL_ZSUBSTRING

Implementation of ${EL_SUBSTRING [STRING_GENERAL} for ZSTRING

Further Information

Click on class link to see client examples.

TRANSFORMABLE_ZSTRING

Use to test

table

EL_FILLED_ZSTRING_TABLE

Table of filled strings of type EL_ZSTRING

EL_URI_QUERY_ZSTRING_HASH_TABLE

Implementation of EL_URI_QUERY_HASH_TABLE for strings of type ZSTRING

Further Information

Click on class link to see client examples.

EL_ZSTRING_HASH_TABLE

Hash table with ZSTRING as lookup key

Further Information

Click on class link to see client examples.