Eli   Documents

General Information

 o Eli: Translator Construction Made Easy
 o Global Index
 o Frequently Asked Questions
 o Typical Eli Usage Errors

Tutorials

 o Quick Reference Card
 o Guide For new Eli Users
 o Release Notes of Eli
 o Tutorial on Name Analysis
 o Tutorial on Scope Graphs
 o Tutorial on Type Analysis
 o Typical Eli Usage Errors

Reference Manuals

 o User Interface
 o Eli products and parameters
 o LIDO Reference Manual
 o Typical Eli Usage Errors

Libraries

 o Eli library routines
 o Specification Module Library

Translation Tasks

 o Lexical analysis specification
 o Syntactic Analysis Manual
 o Computation in Trees

Tools

 o LIGA Control Language
 o Debugging Information for LIDO
 o Graphical ORder TOol

 o FunnelWeb User's Manual

 o Pattern-based Text Generator
 o Property Definition Language
 o Operator Identification Language
 o Tree Grammar Specification Language
 o Command Line Processing
 o COLA Options Reference Manual

 o Generating Unparsing Code

 o Monitoring a Processor's Execution

Administration

 o System Administration Guide

Mail Home

New Features of Eli Version 4.3

Next Chapter Table of Contents


Specification Module Library

Name Analysis Library

Predefined Identifiers

The name analysis modules establish bindings of type Bind, which are triples of an identifier code, a definition table key, and an environment. The modules used for predefinitions PreDefine and PreDefId now provide three additional macros which allow to introduce and initialize Bind variables for predefined entities: PreDefSymKeyBind, PreDefKeyBind, and PreDefBind.

A C module PreDefMod is separated from the two predefinition modules. It provides the two function PreDefine and PreDefineSym. They now can be used directly e.g. in order to predefine entities in other environments than the outermost one. In that case PreDefMod.specs is used instead of instances of the modules Predefine and PreDefId. Existing uses of the Predefine and PreDefId are not affected by this modification.

Environment Module

Most of the macros that access components of structured values via pointers, e.g. IdnOf, KeyOf, EnvOf, are changed into functions to avoid multiple execution of side-effects caused by arguments of the macro calls.

Abstract Data Types

Lists in LIDO Specifications

In the module LidoList three alternative symbol roles are provided for tree nodes that carry list elements in construction or distribution of lists. They have different effects in cases where the element node can occur recursively in the tree. They handle the association between list elements and attribute of tree nodes in pre-order, post-order, or ignore recursive occurrences.

A condition attribute is introduced which decides at an element node whether it is considered for the list. By overriding its computation skipping of list elements can be controlled by non-trivial conditions.

Hence, the existing symbol role for that purpose, FilterListElem, is now outdated. It may be removed in a future version.

Linear Lists of Any Type

A function AddToOrderedSet has been added to be used for ordered lists without duplicates, which may implement sets.

A macro SingleList has been added especially to be used as the unary function of a CONSTITUENTS WITH clause.

The above facilities are added to both modules List and PtrList

Bit Sets of Arbitrary Length

A macro ElemToBitSet has been added especially to be used as the unary function of a CONSTITUENTS WITH clause.

Property Library

Map Objects to Integers

In the module ObjCnt the start value and the increment of the mapping can be modified by overriding of attributes.

Solutions of Common Problems

Counting Symbol Occurrences

In the module Counter the start value and the increment of the mapping can be modified by overriding of attributes.


Next Chapter Table of Contents