New Features of Eli Version 4.1
Many library modules provide some symbol role, e.g.
All name analysis modules have been adapted to the modifications of the environment module. These changes should not invalidate existing uses of the modules.
The environment module
The module was also augmented by functions that return a binding
instead of a definition table key. A binding is a triple
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.).
Existing uses of the module should not be invalidated by these changes.
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 3is written to the standard output file. In general it is sufficient just to instantiate the module
To collect PTG-Nodes for output, use
See Using LIDO CONSTITUENTS of Pattern-Based Text Generator, for details.
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.
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.
To instanciate modules, that require filenames as their arguments from
For example, to instanciate the
$/Name/PreDefId.gnrc +referto=(Predef.d) :inst
See Predefined Identifiers of Specification Module Library: Name Analysis, and `Operator Identification' of Specification Module Library: Type Analysis, for more information.