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

LIDO - Reference Manual

Previous Chapter Next Chapter Table of Contents


Outdated Constructs

The following constructs are still supported to achieve compatibility with previous LIDO versions. Their use is strongly discouraged.

Terminals

In previous versions of LIDO terminal symbols could have attributes, at most one synthesized and several inherited. They were associated explicitly by specifications of the form

   TERM Identifier: Sym: int;

Attributes of terminals could be used in attribute notations or CONSTITUENT(S) constructs:

   Identifier.Sym
   CONSTITUENT Identifier.Sym
If the above constructs occur in a specification a new nonterminal symbol that has the specified attributes is introduced by LIGA, as well as a production that derives to the terminal.

Terminal symbols could be element of a LISTOF production:

   Idents LISTOF Identifier
This facility is NOT allowed anymore. It is indicated by an error message, and has to be transformed explicitly.

Keywords

The key word DEPENDS_ON introducing a DependsClause is now abbreviated by the token <-.

The key word NONTERM should be replaced by SYMBOL.

   NONTERM Stmt: code: PTGNode;
   NONTERM Stmt COMPUTE ... END;

Pragmas

The pragma notations are substituted by simpler notations:

Calling a function the name of which is composed from a string and the rule name, e.g.

   LIGAPragma (RuleFct, "PTG", ...)
is now achieved by
   RuleFct ("PTG", ...)
See see Predefined Entities.

A pattern for the sequence of right-hand side attributes, e.g

   LIGAPragma (RhsAttrs, Ptg)
is now written
   RHS.Ptg
Hence a combination of both features above, like
  SYMBOL Reproduce COMPUTE
     SYNT.Ptg = LIGAPragma (RuleFct, "PTG", LIGAPragma (RhsAttrs, Ptg));
  END;
is now written
  SYMBOL Reproduce COMPUTE
     SYNT.Ptg = RuleFct ("PTG", RHS.Ptg);
  END:
See see Attributes.

Computations were specified to be executed while the input is being read and the tree is being built using a pragma

   LIGAPragma (BottomUp, printf("early output\n"));
Now the keyword BOTTOMUP is added to the computation:
   printf("early output\n") BOTTOMUP;
See see Computations.


Previous Chapter Next Chapter Table of Contents