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 Eli4.0

Previous Chapter Next Chapter Table of Contents


Changes in Specification Module Library

General Modifications

The library modules of version 3.6 that have been marked outdated in version 3.8 are removed now. See Migration of Eli Version 3.6 modules of Migration of Old Library Module Usage, for migration.

All changes to modules of version 3.8 which may require updates in existing specifications are described in Migration of Eli Version 3.8 modules of Migration of Old Library Module Usage.

Modules that do not have a generic parameter are used by their name occurring in a `.specs' file, rather than by :inst instantiation. If generic parameters are omitted for an instantiation the :inst command has still to be used.

All SYMBOL roles provided by any library module are specified CLASS SYMBOL. By this means accidental name clashes with tree grammar symbols result in warnings. The INHERITS construct has to be used to associate a module role to a tree grammar symbol.

Symbol roles that issue a message are separated from roles that compute the condition for such messages. Hence, the message roles can be substituted by individual ones.

New Modules

Solutions of common type analysis tasks are supported by the following new modules:

The module BasicType provides roles for definition and use of typed objects, for type notations and type definitions, Typed Entities of Type Analysis Reference Manual.

The module Defer allows to defer association of properties to objects, as required in the presence of type definitions or constant definitions, see Deferred Property Association of Association of properties to definitions.

The module Operator supports resolution of overloaded operators using the Oil tool, see Language-defined operators of Type Analysis Reference Manual. Its functionality is increased compared to the outdated module AdaptOil.

In the abstract data type library the List module has been augmented by a module that can be used if instantiations for several different pointer types are needed, see Linear Lists of Any Type of Specification Module Library: Abstract Data Types. In that case a fully typed interface is provided without duplicating the code.

In the output library, two modules for support of pretty printed output have been added. Pretty Printing of Specification Module Library: Generating Output, is a module for the support of word wrapping at a specified right margin. Typesetting for Block Structured Output of Specification Module Library: Generating Output, is designed to output block-oriented program text. Both modules are very similar and use the new Ptg-Feature of post-processed output.

Modified Modules

Many details in the name analysis modules are improved. The significant modifications are described in more detail in Migration of Eli Version 3.8 modules of Migration of Old Library Module Usage. It is recommended to check the tables of changed modules and modified features for adaption of existing specifications.

Most specifications will be affected by the change of the names IdDef to IdDefScope, and IdUse to IdUseEnv, which help to adapt certain specifications to the use of CLASS SYMBOLS.

The generic paramerisation of the PreDefId module is another prominent change in the name analysis modules.


Previous Chapter Next Chapter Table of Contents