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

LCL

Next Chapter Table of Contents


Introduction

The analysis and translation of an attribute grammar by the LIGA system may be influenced in various ways. For that purpose the user specifies certain options in the LIGA Control Language LCL. You can introduce options to the ELI system in a file ending in .ctl. A default is assumed for each option if it is not set or if no LCL specification is given. The denotations of the options are headed by a prefix indicating one of the liga phases the option mainly refers to.

LCL has a simple, keyword-oriented syntax. Each keyword consists solely of upper-case letters and underscores. Comments are enclosed in '/*' and '*/', and must not be nested.

Options  ::=   ( Option ';' )*
Option   ::=   'EXPAND'  ':' ExpandOpts /
               'ORDER'   ':' OrderOpts /
               'OPTIM'   ':' OptimOpts

ExpandOpts  ::=  ExpandOpt  ',' ExpandOpts / ExpandOpt
OrderOpts   ::=  OrderOpt   ',' OrderOpts / OrderOpt
OptimOpts   ::=  OptimOpt   ',' OptimOpts / OptimOpt

Expandopt   ::= 'INFO' / 'INCLUDINGS_SEPARATE' /
                'INCLUDING' 'ON' / 'INCLUDING' 'OFF'

OrderOpt    ::= 'PARTITION' Strategy / 'TOPOLOGICAL' Strategy /
                'GRAPH' Type ( ident ) * /
                'ARRANGE' arrangePart
Strategy    ::= 'EARLY' / 'LATE'
Type        ::= 'DIRECT_SYMBOL' / 'TRANSITIVE_SYMBOL' / 'INDUCED_SYMBOL' /
                'DIRECT_RULE' / 'TRANSITIVE_RULE' / 'INDUCED_RULE' /
                'PARTITIONED_RULE' / 'PARTITION' / 'VISIT_SEQUENCE'
arrangePart ::= 'AUTOMATICALLY' / 'FAST' /
                'FOR' 'SYMB' ident 'EVAL' ident 'BEFORE' ident /
                'IN' 'RULE' ident 'EVAL' ident '[' intval ']' '.' ident
                'BEFORE' ident '[' intval ']' '.' ident

OptimOpt    ::= 'OFF' / 'INFO' / 'MORE_GLOBALS' /
                'NO_VARIABLES' / 'NO_STACKS' / 'GROUPING' 'VARIABLE' /
                'ATTRSPEZ' Type ( symbname '[' ( ident ) + ']' ) *
symbname    ::= ident / 'ANYSYMBOL'
Type        ::= 'GLOBAL VAR' / 'GLOBAL STACK' / 'TREE_NODE' /
                'GROUP VAR' / 'GROUP STACK'


            Figure 1: Context-free grammar for LCL

The next four sections of this manual describe the detailed syntax and effects of the options.


Next Chapter Table of Contents