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

New Features of Eli Version 4.4

Previous Chapter Next Chapter Table of Contents


Additional property access function

The access function Has has been added to the PDL library (see Predefined query and update operations of Definition Table). Here is the signature:

int HasName(DefTableKey key)

If Has is applied to a definition table key that has an associated Name property, then it yields 1; otherwise it yields 0.

Since NoKey represents an invalid entity that has no properties, applying Has to NoKey yields 0.

If a property is to be queried by Has, then Has must be added to that property's operation list. For example, suppose that we wantto be able to ask whether a definition table key has the DefTableKey-valued property Proc. Here is a declaration of the property:

Proc: DefTableKey [Has];

Given that declaration, the following query could be made in LIDO:

RULE: Expr ::= AppliedOccurrence '(' ArgList ')'
COMPUTE
  IF(NOT(HasProc(AppliedOccurrence.Key)),
    message(ERROR,"Not a procedure identifier",0,COORDREF));
END;


Previous Chapter Next Chapter Table of Contents