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.7

Next Chapter Table of Contents


Abstract Rule Names in Mapping Rules

Some abstract grammars have several rules with different names and identical signatures (this is relatively common in computed trees, see Computed Subtrees of LIDO - Reference Manual). If such rules are represented in an unambiguous manner in text, and that text is parsed, one must be able to map the disambiguated concrete rules into the appropriate abstract rules. Because the abstract rules have identical signatures, pattern matching won't work.

In order to solve this problem, the Maptool now accepts an optional rule name in a rule mapping (see Specifying rule mappings of Syntactic Analysis). A simple example might be a representation of dyadic expressions without explicit operators:

RULE Add: Expression ::= Expression Expression END;
RULE Mul: Expression ::= Expression Expression END;
...
Suppose that such nodes are represented in text by fully-parenthesized arithmetic expressions in the standard notation. Rule mappings specifying the rule names explicitly would then be needed to disambiguate the pattern match:

MAPRULE
Expression: '(' Expression '+' Expression ')' < $1 $2 >: Add .
Expression: '(' Expression '*' Expression ')' < $1 $2 >: Mul .
...


Next Chapter Table of Contents