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