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


Obtaining Information About the Derivation

Eli derives the requested product via a sequence of steps. Like any expert system, it is capable of providing information about those steps. Since one of the major goals of Eli is to hide the steps required to derive a particular product, thus reducing the cognitive load on the user, it does not automatically provide this information. By setting the LogLevel variable, a user can control the amount of feedback that Eli provides about the derivation as it is being carried out (see Hints on Session Management of Guide for New Eli Users). This feedback only provides information about what is happening, not why. Sometimes it is important to discover things like the names of intermediate products, what objects a given object depends upon, and what objects a given object influences. That information must be accessed via specific requests.

Eli does not bring an object up to date before applying any of the derivations discussed in this chapter. If you wish to execute one of these derivations on an up-to-date object, you must first bring that object up to date with an explicit request.

inputs -- Objects on which a Given Object Depends

!:inputs

A list of the objects on which the given object directly depends. The number used to name the file in the cache and the Eli derivation is given for each object.

outputs -- Objects Depending on a Given Object

!:outputs

A list of the objects that directly depend on the given object. The number used to name the file in the cache and the Eli derivation is given for each object.

test -- Check Whether an Object has been Modified

!:test

The given object is checked to see whether its last modification time agrees with the value held by Eli. This product is used when you have modified an object by some external means, and wish to inform Eli of that modification. For example, suppose that Eli complains that a particular object needed to satisfy the current request is unavailable. You supply the object (say its name is pascal.lido) by copying it from some other directory. The following request will inform Eli of your action:

pascal.lido!:test

redo -- Ask Eli to Carry Out a Derivation

!:redo

Tells Eli that a particular step in a derivation should be recomputed when it is next requested, even if the that step has already been computed and inputs to that step have not changed.

This utility is useful when a transient error in a derivation step occurs, but the tool that implements the derivation step did not recognize it as a transient error:

sets.specs :level_6_specs !:redo

The next time any derivation requires the object sets.specs :level_6_specs, it will be recomputed.


Previous Chapter Next Chapter Table of Contents