Banner showing base of Eiffel tower

Github

Download version 1.4.8: Windows or Linux

Base Library: Strings (Compact Unicode)

This library cluster has 86 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_SHARED_ZSTRING_BUFFER_SCOPES

Shared instances of reusable string buffers for type ZSTRING accessible via across loop scope.

Further Information

Click on class link to see notes and client examples.

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_BORROWED_ZSTRING_CURSOR

Cursor to use an across loop as an artificial scope in which a temporary ZSTRING buffer can be borrowed from a shared pool. After iterating just once the scope finishes and the buffer item is automatically returned to the shared pool stack.

Further Information

Click on class link to see tests.

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

Hash table of URL query string name-value pairs

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.