Banner showing base of Eiffel tower

Github

Download version 1.4.8: Windows or Linux

Text Library: Evolicity Text Substitution Engine

This library has 56 classes.

ECF: evolicity.ecf

Source code: directory list

Evolicity is a text substitution language that was inspired by the Velocity text substitution language for Java. Evolicity provides a way to merge the data from Eiffel objects into a text template. The template can be either supplied externally or hard-coded into an Eiffel class. The language includes, substitution variables, conditional statements and loops. Substitution variables have a BASH like syntax. Conditionals and loops have an Eiffel like syntax.

The text of this web site was generated by the Eiffel-view repository publisher (See class REPOSITORY_PUBLISHER_APP) using the following combination of Evolicity templates:

  1. doc-config/main-template.html.evol
  2. doc-config/site-map-content.html.evol
  3. doc-config/directory-tree-content.html.evol
  4. doc-config/eiffel-source-code.html.evol

To make an Eiffel class serializable with Evolicity you inherit from class EVOLICITY_SERIALIZEABLE. Read the class notes for details on how to use. You can also access the substitution engine directly from the shared instance in class EVOLICITY_SHARED_TEMPLATES

Features

Syntax Documentation

See class EVOLICITY_SHARED_TEMPLATES

Directory: library/text/template/evolicity

[ . ]

. /context

. /directives

. /expressions

. /expressions/boolean

. /expressions/comparison

. /serialization

. /support

[ . ]

EVOLICITY_COMPILER

Evolicity compiler

EVOLICITY_FILE_LEXER

Evolicity file lexer

EVOLICITY_SHARED_TEMPLATES

Provides global access to the Evolicity template substitution engine.

The templating substitution language was named "Evolicity" as a portmanteau of "Evolve" and "Felicity" which is also a partial anagram of "Velocity" the Apache project which inspired it. It also bows to an established tradition of naming Eiffel orientated projects starting with the letter 'E'.

Further Information

Click on class link to see notes and client examples.

EVOLICITY_TEMPLATES

Top level class for Evolicity accessible via class EVOLICITY_SHARED_TEMPLATES

The templating substitution language was named Evolicity as a portmanteau of "Evolve" and "Felicity" which is also a partial anagram of "Velocity" the Apache project which inspired it. It also bows to an established tradition of naming Eiffel orientated projects starting with the letter 'E'.

Further Information

Click on class link to see client examples.

context

EVOLICITY_CONTEXT

Evolicity context

Further Information

Click on class link to see client examples.

EVOLICITY_CONTEXT_IMP

A createable Evolicity context where you add variables in the following ways:

Further Information

Click on class link to see client examples.

EVOLICITY_EIFFEL_CONTEXT

Evolicity eiffel context

Further Information

Click on class link to see client examples.

EVOLICITY_REFLECTIVE_EIFFEL_CONTEXT

Evolicity Eiffel context with attribute field values available available by reflection

Further Information

Click on class link to see notes.

EVOLICITY_TUPLE_CONTEXT

Evolicity tuple context

Further Information

Click on class link to see client examples.

directives

EVOLICITY_ACROSS_DIRECTIVE

Implements an across loop imitating Eiffel syntax as alternative to foreach syntax

EVOLICITY_COMPILED_TEMPLATE

Evolicity compiled template

EVOLICITY_COMPOUND_DIRECTIVE

Evolicity compound directive

EVOLICITY_DIRECTIVE

Evolicity directive

EVOLICITY_EVALUATE_DIRECTIVE

Evolicity evaluate directive

EVOLICITY_FOREACH_DIRECTIVE

Implemention of iteration of a container conforming to ITERABLE [G]

Further Information

Click on class link to see notes.

EVOLICITY_FREE_TEXT_DIRECTIVE

Evolicity free text directive

EVOLICITY_IF_ELSE_DIRECTIVE

Evolicity if else directive

EVOLICITY_INCLUDE_DIRECTIVE

Evolicity include directive

EVOLICITY_NESTED_TEMPLATE_DIRECTIVE

Evolicity nested template directive

EVOLICITY_VARIABLE_SUBST_DIRECTIVE

Evolicity variable subst directive

expressions

EVOLICITY_COMPARABLE

Evolicity comparable

EVOLICITY_COMPARABLE_VARIABLE

Evolicity comparable variable

EVOLICITY_DOUBLE_COMPARABLE

Evolicity double comparable

EVOLICITY_EXPRESSION

Evolicity expression

EVOLICITY_INTEGER_64_COMPARABLE

Evolicity integer 64 comparable

EVOLICITY_NUMERIC_EXPRESSION

Evolicity numeric expression

EVOLICITY_REFERENCE_EXPRESSION

Evolicity reference expression

expressions/boolean

EVOLICITY_BOOLEAN_AND_EXPRESSION

Evolicity boolean and expression

EVOLICITY_BOOLEAN_CONJUNCTION_EXPRESSION

Evolicity boolean conjunction expression

EVOLICITY_BOOLEAN_EXPRESSION

Evolicity boolean expression

EVOLICITY_BOOLEAN_NOT_EXPRESSION

Evolicity boolean not expression

EVOLICITY_BOOLEAN_OR_EXPRESSION

Evolicity boolean or expression

EVOLICITY_BOOLEAN_REFERENCE_EXPRESSION

Evolicity boolean reference expression

expressions/comparison

EVOLICITY_COMPARISON

Evolicity comparison

EVOLICITY_EQUAL_TO_COMPARISON

Evolicity equal to comparison

EVOLICITY_GREATER_THAN_COMPARISON

Evolicity greater than comparison

EVOLICITY_LESS_THAN_COMPARISON

Evolicity less than comparison

serialization

EVOLICITY_CACHEABLE_SERIALIZEABLE

Caches the output of as_text for either EVOLICITY_SERIALIZEABLE_AS_STRING_8 or EVOLICITY_SERIALIZEABLE_AS_ZSTRING

EVOLICITY_REFLECTIVE_SERIALIZEABLE

Reflective Evolicity serializeable context

Further Information

Click on class link to see client examples.

EVOLICITY_SERIALIZEABLE

Objects conforming to this class can be serialized as text files using an Evolicity template. A template contains a mixture of literal text and Evolicity code that outputs data from Eiffel objects. The template can be an either an external file or hard coded in the class by implementing the function template: READABLE_STRING_GENERAL.

Further Information

Click on class link to see notes and client examples.

EVOLICITY_SERIALIZEABLE_AS_STRING_8

Object that is serializeable to string of type STRING_8

EVOLICITY_SERIALIZEABLE_AS_STRING_GENERAL

Object that is serializeable to string of type like once_medium.text

EVOLICITY_SERIALIZEABLE_AS_XML

Evolicity serializeable as xml

Further Information

Click on class link to see client examples.

EVOLICITY_SERIALIZEABLE_AS_ZSTRING

Object that is serializeable to string of type ZSTRING

Further Information

Click on class link to see client examples.

EVOLICITY_SERIALIZEABLE_TEXT_VALUE

Evolicity serializeable text value

Further Information

Click on class link to see client examples.

support

EVOLICITY_CLIENT

Provide access to internal Evolicity features

EVOLICITY_FUNCTION_REFERENCE

Evolicity function reference

EVOLICITY_FUNCTION_TABLE

Evolicity object table

EVOLICITY_LOCALIZED_VARIABLES

Helper class to translate variable text-values which have a localization translation id of the form "{evol.<variable-name>}" where $<variable-name> corresponds to a template substitution variable.

Variable_translation_keys returns all localization identifiers which match that pattern.

translated_variables_tables can be merged with getter_function_table in an Evolicity context.

EVOLICITY_PARSE_ACTIONS

Evolicity parse actions

EVOLICITY_REFLECTIVE_XML_CONTEXT

Evolicity XML escaped context

EVOLICITY_SHARED_TOKEN_ENUM

Shared instance of EVOLICITY_TOKEN_ENUM

EVOLICITY_TEMPLATE_STACK_TABLE

Stacks of templates to enable use of recursive templates

EVOLICITY_TOKEN_ENUM

Parser keyword and symbol tokens

EVOLICITY_VARIABLE_REFERENCE

Evolicity variable reference

Further Information

Click on class link to see client examples.

EVOLICITY_XML_VALUE

Evolicity xml value