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

Eli User Interface Reference Manual

Previous Chapter Next Chapter Table of Contents


Bringing Objects Up To Date

A command consisting simply of an odin-expression requests Eli to bring the object named by the odin-expression up to date and report information (such as error and warning messages produced by tool steps that were run) concerning the object's status. The level of detail of this information is controlled by the value of the ErrLevel and WarnLevel variables (see ErrLevel, WarnLevel, LogLevel).

Status of Objects

Associated with each object is a status level, where the status level is one of OK, WARNING, ERROR, CIRCULAR, NOFILE, and ABORT. OK is the maximum status level and ABORT the minimum.

The status of a given derived object depends on the results of the tools that produced that object. If any tool generated warning messages, the status level of the given object is at most WARNING. If any tool generated error messages, the status level of the given object is at most ERROR. If an object that was needed to create the given object is the object itself, the status level of the given object is at most CIRCULAR. If any object that was needed to generate the given object did not exist, the status level of the given object is at most NOFILE. If any object that was needed to generate the given object had status level ERROR or less, then the status level of the given object is set to be ABORT.

The status of a source object is NOFILE if the host file does not exist, the status of the value of its target value (see The Odinfile) if it is a target, and otherwise OK.

Error and Warning Messages

The warning or error messages produced by all tool invocations are saved by Eli. The difference between an error and a warning is that an error prevents the tool from generating its output, while a warning indicates that although output was generated, it might be faulty. An example of an error message from a loader is:

Unsatisfied external reference: "proc1".

An example of a warning message from a loader is:

Multiply defined external: "proc2", first copy loaded.

A text file containing a summary of all error messages for an object can be obtained by applying the :err derivation to the object:

prog.c :exe :err

Here file prog.c:exe:err contains a summary of all error messages produced by any tool used in the generation of the prog.c:exe object. The :warn derivation produces a text file containing both warning and error messages for an object.

The :err and :warn derivations show the error reports just as they are produced by the tools. Eli's error derivation relates error messages to the source files causing them, and :warning does the same for both error and warning messages. Still more sophisticated anlysis is provided by the :help derivation, which starts a browsing session that links the errors to documentation and also makes the appropriate files available to the editor. These derivations have the same form as the derivations yielding the raw reports:

prog.c :exe :error
prog.c :exe :warning
prog.c :exe :help


Previous Chapter Next Chapter Table of Contents