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

Products and Parameters Reference

Previous Chapter Next Chapter Table of Contents


Examining Specifications

It is often useful to examine properties of large specifications. The products described in this chapter generate browsable files summarizing relevant aspects of those specifications.

feInfo -- Information about the attribute grammar

:feInfo

A file that provides detailed information about the complete attribute grammar that Eli generates from the given specification. Suppose that you are generating a processor via the following Eli request, where `product' is some (possibly complex) derivation:

-> `product' :exe

In order to obtain the analysis of the complete attribute grammar, use the request:

-> `product' :feInfo:viewlist

This request will open a browser window in a directory containing two symbolic links, `compoundLido' and `feInfo', pointing to the composite `.lido' file and the analysis file respectively. It is important to note that you should use the full `product' derivation, in order to ensure that the complete attribute grammar is available for analysis.

The analysis output has four components:

Symbol and rule information
lists all of the symbols and rules used in the grammar. The relevant information is different for TREE symbols, CLASS symbols, and rules. Therefore this component consists of three distinct lists:

    A list of all TREE symbols of the grammar by symbol name. For each symbol, all of the attributes are listed with the coordinates of the assignment to that attribute, its definition, or a use of it. The entry also lists all of the CLASS symbols from which the TREE symbol inherits (both directly and indirectly).

    A list of all CLASS symbols of the grammar by symbol name. For each symbol, the attributes declared for that symbol, assigned in a symbol computation for that symbol, or used in a symbol computation for that symbol, are listed with the coordinates of the definition, assignment, or some use. The entry also lists all of the CLASS symbols from which the CLASS symbol inherits (both directly and indirectly).

    A list of all rules of the grammar by rule name. For each rule, all of the rule attributes are listed with the coordinates of either the assignment to that attribute or a use of it.

Remote access information
lists all of the INCLUDING, CONSTITUENT, and CONSTITUENTS constructs used in the grammar. For each construct, the coordiates of every occurrence of that construct in the composite `.lido' file is given.

Inheritance of computations
lists all of the SYMBOL computations in the grammar. For each computation, the line number of the computation and the line numbers of every rule using that computation are given.

For a TREE symbol `X' it is correct to ask "Which attributes does `X' have?". Therefore all attributes of a TREE symbol are listed, whether they are actually introduced by that TREE symbol or inherited from some CLASS symbol.

There are three possible scenarios for CLASS symbols:

  • If `ai' is assigned in a computation of a CLASS symbol `X', then that computation is inherited by any symbol which inherits from `X'. The attribute `ai' should be listed for `X'.

  • If `ai' is not assigned, but only declared for a CLASS symbol `X', or if it is only used in a computation of `X', no computation is inherited. Since every attribute must be assigned exactly once, this scenario imposes a computation obligation for any TREE symbol inheriting from `X'. The attribute `ai' should be listed for `X'.

  • If `ai' is not mentioned for `X', `X' neither provides nor requires anything with respect to `ai' for symbols that inherit from `X'. The attribute `ai' should not be listed for `X'.

ExpInfo -- Information about remote attribute access

:ExpInfo

Obtain information about the processing of LIDO specifications, especially information concerning the expansion of remote attribute accesses (i. e. INCLUDING, CONSTITUENTS, and CHAIN). The generated listing describes how each remote access construct can be replaced by a set of equivalent computations propagating the accessed values through adjacent contexts. This file is useful if special difficult cases regarding problems with remote dependences arise.

Additional information about attribute dependences and attribute storage optimization can be obtained by adding the parameters +OrdI and +OptimI.

Example: foo.specs+OrdI:ExpInfo>

For a more detailed description of Liga's listing options and more advanced options, see Liga Control Language Manual of Liga Control Language Manual.

OrdInfo -- Information about attribute dependence

:OrdInfo

Obtain information about the processing of LIDO specifications, especially information concerning the attribute dependences. The listing provides for each grammar rule the set of direct dependences between attributes occurring in this rule.

Additional information about remote attribute access and attribute storage optimization can be obtained by adding the parameters +ExpI and +OptimI.

Example: foo.specs+ExpI:OrdInfo>

For a more detailed description of Liga's listing options and more advanced options, see Liga Control Language Manual of Liga Control Language Manual.

OptimInfo -- Information about attribute storage optimization

:OptimInfo

Obtain information about the processing of LIDO specifications, especially information on attribute storage optimization. For each attribute this listing provides information where this attribute is stored. Possible storage locations are "tree node", "global variable" and "global stack".

Additional information about remote attribute access and attribute dependences can be obtained by adding the parameters +ExpI and +OrdI.

Example: foo.specs+ExpI:OptimInfo>

For a more detailed description of Liga's listing options and more advanced options, see Liga Control Language Manual of Liga Control Language Manual.

show -- LIDO Table Viewers showFe and showMe

:showFe
:showMe

Obtain a list of files that contain internal representations of LIDO text translated into readable text.

:showFe shows LIDO text after the processing by the frontend of the Liga-System.

:showMe shows the same information after attribute evaluator construction.

These informations can be useful for debugging a LIDO-Specification or to understand LIGA-Processing in more depth.

See Overview of SHOW - Debugging Information for LIDO, for more details.


Previous Chapter Next Chapter Table of Contents