General Information
Tutorials
Reference Manuals
Libraries
Translation Tasks
Tools
Administration
|
New Features of Eli Version 4.1LIDO Language and Liga SystemThe modifications of the Lido language and the Liga system refer to the following topics: The use of symbol computations is further simplified by removal of certain restrictions, and by introduction of some new constructs. Some restrictions on bottom-up evaluation are removed. A mechanism has been installed such that messages given by the C compiler on the generated evaluator are related back to the Lido text. None of the modifications invalidates existing Lido specifications. For complete descriptions of the modified constructs see the Liga documentation: See LIDO -- Reference Manual. See LIDO - Computation in Trees.
CONSTITUENTS Restrictions RemovedIf a symbol computation contains a CONSTITUENTS construct, like CLASS SYMBOL CS COMPUTE SYNT.c = f (CONSTITUENTS X.a WITH (t, f2, f1, f0)); END;it was not allowed to inherit CS to a symbol that has a production with an empty right-hand side. It was also a violation if X were a CLASS symbol that is not inherited to any symbol. This was sometimes annoying, especially when using library modules.
Both restrictions have been removed. The result of the CONSTITUENTS
is in such cases the result of the See CONSTITUENT(S) of LIDO -- Reference Manual.
CHAIN in Empty RulesIt was a violation if a computation containing a TAIL chain access is inherited to a symbol that has a production with an empty right-hand side. A HEAD computation was dropped in such cases. This was sometimes annoying, especially when using library modules. This restriction has been removed. Now, if a computation that contains a CHAINSTART, HEAD, or TAIL is inherited to a rule with an empty right-hand side, its effect is as if there was a symbol on the right-hand side that passes the chain unchanged. See CHAIN of LIDO -- Reference Manual.
Grammar Root SymbolThe CLASS SYMBOL ROOTCLASS END;is predefined without any computation. It is inherited to the particular root symbol of the tree grammar. This facility is especially useful for writing grammar independent modules which need to associate computations to the grammar root. Module users then do not need to explicitly inherit a root role. See Predefined Entities of LIDO -- Reference Manual.
Right-Hand Side Access
The entities See Predefined Entities of LIDO -- Reference Manual.
A function CLASS SYMBOL LeafNode COMPUTE SYNT.Ptg = TermFct ("ToPtg", TERM); END; SYMBOL LiteralExpr INHERITS LeafNode END;
If there were the following two rules for RULE: LiteralExpr ::= IntNumber COMPUTE LiteralExpr.Ptg = ToPtgIntNumber (IntNumber); END; RULE: LiteralExpr ::= FloatNumber COMPUTE LiteralExpr.Ptg = ToPtgFloatNumber (FloatNumber); END;Suitable functions have to be defined for the calls constructed by prefixing the terminal name with the string given in the TermFct call.
A call of the predefined function
Bottom-up Evaluation
Liga's strategy for scheduling See Computations of LIDO -- Reference Manual.
Requesting See Order Options of LIGA - Control Language.
Attributes are
computed during the tree construction phase only if they are needed for
Information about the results of Liga's analysis for
The restrictions on
Furthermore, chain productions may be introduced into the tree grammar,
if necessary, without having corresponding chain productions in the
concrete grammar, as long as they are not involved in
|