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.1

Previous Chapter Next Chapter Table of Contents


Specification Module Library

Many library modules provide some symbol role, e.g. RootScope, that has to be inherited to a tree grammar symbol which is usually the root of the tree grammar. These moduls are modified such that those root roles are automatically associated to ROOTCLASS, which stands for the tree grammar root. See Grammar Root Symbol.

All name analysis modules have been adapted to the modifications of the environment module. These changes should not invalidate existing uses of the modules.

See Name Analysis Library of Specification Module Library: Name Analysis.

Environment Module Enhancements

The environment module envmod.[ch] has been augmented by functions and macros that further support name analysis for object-oriented languages, i.e. name analysis with scopes that inherit from other scopes.

The module was also augmented by functions that return a binding instead of a definition table key. A binding is a triple (int idn, Environment sc, DefTableKey key), for an identifier idn that is bound to key in the scope sc.

A full description of the interface of the module is given in the name analysis part of the module library documentation. (It has been moved there from its previous place in the documentation of Eli library routines.).

See Environment Module of Specification Module Library: Name Analysis.

Existing uses of the module should not be invalidated by these changes.

Module for Testing Name Analysis

A module is provided which augments the specified processor such that it produces output that makes the results of name analysis visible. For each identifier occurrence that has one of the identifier roles of the name analysis modules a line of the form

   m in line 23 bound in line 4 of scope in line 3
is written to the standard output file. In general it is sufficient just to instantiate the module ShowBinding with the same instance parameter as used for the basic name analysis module.

See Name Analysis Test of Specification Module Library: Name Analysis.

Module ChainPtg obsolete

Module ChainPtg was obsolete with Version 3.6 of the Eli-System. This module has now been removed without replacement.

To collect PTG-Nodes for output, use CONSTITUENTS-Construct in Combination with the Pattern Seq of the new Module PtgCommon.

See Using LIDO CONSTITUENTS of Pattern-Based Text Generator, for details.

Module Sort added

A generic sorting module has been added to the library. This module can be instantiated for any data type, and sorts an array whose elements are of that data type. A user-supplied function defines the collating sequence, so that any arbitrary ordering is possible. The sort is done in place, so that the array after the sort is a permutation of the array before the sort.

See Sorting Elements of an Array of Specification Module Library: Common Problems, for details.

Module Separator added

This is a new PTG output module that allows separators to be inserted into the output stream depending on the last string printed and the next string to be printed.

See Introduce Separators in PTG Output of Specification Module Library: Generating Output, for details.

Instanciation of Modules with Filenames

To instanciate modules, that require filenames as their arguments from within a .fw-files previously required specification of the .fw-file generating it. This is now no longer required.

For example, to instanciate the PreDefId-Module with a filename predef.d, the following example now works within and outside from a .fw specification:

   $/Name/PreDefId.gnrc +referto=(Predef.d) :inst

See Predefined Identifiers of Name analysis according to scope rules, and Language-defined operators of Type Analysis Reference Manual, for more information.


Previous Chapter Next Chapter Table of Contents