Eli   Documents Get Eli: Translator Construction Made Easy at SourceForge.net.
    Fast, secure and Free Open Source software downloads

General Information

 o Eli: Translator Construction Made Easy
 o Global Index
 o Frequently Asked Questions
 o Typical Eli Usage Errors


 o Quick Reference Card
 o Guide For new Eli Users
 o Release Notes of Eli
 o Tutorial on Name Analysis
 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


 o Eli library routines
 o Specification Module Library

Translation Tasks

 o Lexical analysis specification
 o Syntactic Analysis Manual
 o Computation in Trees


 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


 o System Administration Guide

Mail Home

Eli User Interface Reference Manual

Previous Chapter Next Chapter Table of Contents


The behavior of Eli can be modified by changing the value of an Odin variable. The functions affected by Odin variables are the current working directory, the distributed parallel build facility, the help facility, the error and log facility, the file change notification facility, and the maximum total file system space used by derived objects.

A variable assignment odin-command consists of the name of an Odin variable followed by an = operator and an odin-expression. For example, the following odin-commands assign the value ../src to the Dir variable and the value 4 to the WarnLevel variable (Odin variable names are case-insensitive).

-> dir = ../src
-> warnlevel = 4

If the value is omitted from a variable assignment odin-command, Eli displays the current value of the specified variable. After the preceding odin-commands, the current value of WarnLevel is found by the command:

-> warnlevel =

The Odin variables and their default values are:

  • Dir = eli_invocation_directory
  • MaxBuilds = 2
  • BuildHosts = LOCAL : LOCAL
  • Size = 0
  • KeepGoing = yes
  • History = yes
  • LogLevel = 2
  • ErrLevel = 3
  • WarnLevel = 2
  • HelpLevel = 1
  • VerifyLevel = 2

An initial value for an Odin variable can be specified in an environment variable whose name is the the Odin variable name in capital letters preceded by the string ODIN. For example, the initial value for MaxBuilds is specified in the ODINMAXBUILDS environment variable.


The current working directory can be changed by assigning a new value to the Dir variable. The value of the current working directory is especially significant for Eli, since it identifies source objects by their absolute pathname, and the current working directory provides the absolute pathname for all relative names.

BuildHosts, MaxBuilds

The BuildHosts variable specifies the list of hosts that are used to execute the tools that generate the derived objects. A tool is executed on the first entry in the BuildHosts list that does not have a currently executing tool. The name LOCAL refers to the local host. The MaxBuilds variable specifies the maximum number of tools to execute in parallel.

The hosts in BuildHosts must have the same machine architecture and file namespace as the local host.

A remote build host is activated by executing the shell script rbs.sh from the odin package. It may be necessary to customize this script for different operating systems.


When a build step reports errors, Eli will continue with build steps that do not depend on the failed build step. Setting the value of the KeepGoing variable to no will cause Eli to terminate the build when any build step reports an error.


The History variable specifies whether the command line editing is supported by Eli when it is used as an interactive command interpreter (see The Command Editing Mechanism).

ErrLevel, WarnLevel, LogLevel

When an odin-command is executed, Eli indicates any errors or warnings associated with the odin-expressions specified in that odin-command. The ErrLevel and WarnLevel variables specify how detailed this report is. In particular, the user can choose whether to see final status information, to see messages incrementally as they are produced by tools steps, or to see a summary of all relevant messages (including those from previously cached tool steps).

Eli can also produce a variety of information about the activities it is performing, such as a brief description of each tool that is invoked to satisfy a given request. The LogLevel variable specifies how detailed these messages are.


The HelpLevel variable specifies what degree of detail is provided when the user asks for a list of possible file or parameter types (see The Help Facility). Normally, only commonly used types are described, but the HelpLevel can be increased to have all possible types described.


By default, Eli checks the modification dates of all relevant source files at the beginning of a session and before each interactive odin-command. If all file modifications during the session are performed through copy odin-commands or through an editor that has been upgraded to send a filename!:test odin-command to Eli whenever filename is modified, the VerifyLevel variable can be set to 1 and only the check at the beginning of the session is performed. If all file modifications since the last session have been performed in the above manner, VerifyLevel can be set to 0 and the initial check is avoided as well.


The value of the Size variable indicates how much disk space (in kilobytes) is currently being used by derived files.

Environment Variables

Environment variables can be used in odin-commands given during interactive sessions, but are not allowed in an Odinfile (see The Odinfile). For example, if the environment variable $HOME has the value `/u/geoff', then the following two odin-commands are equivalent.

-> $HOME/sets.specs :exe
-> /u/geoff/sets.specs :exe

The value of an environment variable can be quoted by immediately preceding it with a quoted identifier. For example, if the value of $DATA is /french/words, then the following two odin-commands are equivalent.

-> sets.specs +monitor +arg='/u/geoff'$DATA :mon
-> sets.specs +monitor +arg='/u/geoff/french/words' :mon

An environment variable is given a new value with a variable assignment odin-command of the form: Variable = ! Value. (Note the use of !, in contrast to an odin-variable assignment. It suspends Eli's lexical conventions -- see Execute Commands.) Thus the following odin-command sets the value of the environment variable $HOME to the value `/u/clemm':

-> HOME = !/u/clemm

The expressions ~ and ~name are treated as if they were environment variables, bound respectively to the login directory of the current user and the login directory of the user with login name.

Previous Chapter Next Chapter Table of Contents