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

Quick Reference Card

Previous Chapter Next Chapter Table of Contents


Eli Specifications

The Eli user describes the subproblems of a particular text processing problem in files of different "type". The type is indicated by the file name extension. Any of these files can contain C-style comments and preprocessor directives such as #include, #define and #ifdef.

.specs
A collection of subproblem descriptions, one per line:

word.gla
$/Tool/lib/Name/Nest.gnrc :inst
symbol.lido

.gla
A description of the token structure of the input text:

ident : C_IDENTIFIER
string: $' (auxPascalString) [mkstr]
numb  : $[0-9] [mkint]

.con
A description of the phrase structure of the input text:

def: set_name '=' '{' body '}' .
body: element+ .
cond : 'if' exp 'then' stmt $'else'.

.lido
A description of the structure of a tree and the computations to be carried out on that tree:

ATTR Sym: int;
SYMBOL set_name INHERITS Entity END;
SYMBOL text COMPUTE
  PTGOut(
    PTGTable(
      CONSTITUENTS set_name.Sym
          WITH (int, ADD, ONE, ZERO)));
END;
RULE r_wall: wallspec ::= 'wall' pos ';'
COMPUTE
  wallspec.done = setwall(pos.x, pos.y);
END;

.map
A description of the mapping between the parsing and the tree grammar.

.ctl
Options for evaluator generation.

.h, .c
C modules for user-supplied functions, variables, types etc.

.head
Headers and macro definitions to be inserted into code generated from Lido:

#include "myproc.h"
#define MyValue(s) MyArray[s]

.init, .finl
C code to be executed before any processing begins (.init) or after all other processing is complete (.finl):

{ int s;
  s = GetValue(speed,1);
  setdelay(1000000/s);   }

.ptg
A description of structured output text:

Seq: $ $
List: $ ",\n\t" $

.pdl
A property definition language:

code : mytype; "kcode.h"
size : int;

.oil
A description of operator overloading:

OPER iAdd(integer, integer): integer;
OPER rAdd(real, real): real;
INDICATION Plus: iAdd, rAdd, sUnion;
COERCION Float(integer): real;

.clp
A description of command line arguments for the generated processor:

speed "-s" int
"-s determines steps per second";

.fw
Combines a collection of strongly-coupled specifications with documentation describing their relationships:

@O@<c.ptg@>@{
Seq:   $ $
@}
@O@<c.lido@>@{
SYMBOL Entity INHERITS IdPtg END;
@}

.delit
Specifies literals appearing in a type-`con' file that are to be recognized by special routines.

.gnrc
Defines a generic specification module.


Previous Chapter Next Chapter Table of Contents