![]() |
![]() |
![]() |
General Information
Tutorials
Reference Manuals
Libraries
Translation Tasks
Tools
Administration
![]() ![]() |
![]() |
Products and Parameters ReferenceGenerating Specifications
Sometimes a common problem can be solved by a collection of specifications
having a particular structure.
These specifications themselves can be generated, given simpler
specifications.
The products and parameters described in this chapter are most often used
in requests that appear in type-
consyntax -- Concrete Syntax:consyntax
Requesting
abstree -- Abstract Tree Grammar:abstree
Requesting
absyntax -- Abstract Syntax:absyntax
Requesting
pgram -- Parsing Grammar:pgram
The parsing grammar requested by the
Note that the mapping process may cause the injection of certain chain
rules due to
kwd -- Recognize Specified Literals as Identifiersfile.gla :kwd
Specifications that force literals whose lexical structure is defined by
Normally, each literal found in the context-free grammar is recognized
explicitly by the scanner as the specified character sequence.
This is in contrast to identifiers, denotations and comments,
whose lexical structures are defined by regular expressions.
The literals are defined by their appearance in the grammar, and no
type-
The
Suppose that file
pkeys.gla :kwd
This would prevent the scanner of the generated compiler from recognizing
Pascal keywords explicitly as the character sequences specified
by the literals given in the grammar.
Other literals (such as
It is important to remember that the type-`gla' file to which the
inst -- Instantiate a Generic Modulefile.gnrc :inst
A specification consisting of one or more files is generated from
$elipkg/Name/AlgScope.gnrc :inst Here the path `$elipkg/Name' accesses the portion of the library devoted to problems arising in the context of name analysis (see Name Analysis Library of Specification Module Library: Name Analysis).
Type-
Scripts appearing as type-
Here is an example of a type-
#!/bin/sh # $Id: pp.tnf,v 2.15 2012/07/30 22:55:15 profw Exp $ # Copyright, 1994, AG-Kastens, University Of Paderborn moddir=`expr $0 : '\(.*\)/.*' \| '.'` $1 -e "s/|NAME|/$2/g s/|KEY|/$3/g" "$moddir"/AlgScope.fw > "$2"AlgScope.fw
It first sets
The output file will become part of the specification that contained the
ExpInfo -- Information about remote attribute access:ExpInfo Obtain information about the processing of LIDO specifications, especially information concerning the expansion of remote attribute accesses (i. e. INCLUDING, CONSTITUENTS, and CHAIN). The generated listing describes how each remote access construct can be replaced by a set of equivalent computations propagating the accessed values through adjacent contexts. This file is useful if special difficult cases regarding problems with remote dependences arise.
Additional information about attribute dependences and attribute
storage optimization can be obtained by adding the parameters
Example: foo.specs+OrdI:ExpInfo> For a more detailed description of Liga's protocol options and more advanced options, see Liga Control Language Manual of Liga Control Language Manual.
OrdInfo -- Information about attribute dependence:OrdInfo Obtain information about the processing of LIDO specifications, especially information concerning the attribute dependences. The protocol provides for each grammar rule the set of direct dependences between attributes occurring in this rule.
Additional information about remote attribute access and attribute
storage optimization can be obtained by adding the parameters
Example: foo.specs+ExpI:OrdInfo> For a more detailed description of Liga's protocol options and more advanced options, see Liga Control Language Manual of Liga Control Language Manual.
OptimInfo -- Information about attribute storage optimization:OptimInfo Obtain information about the processing of LIDO specifications, especially information on attribute storage optimization. For each attribute this protocol provides information where this attribute is stored. Possible storage locations are "tree node", "global variable" and "global stack".
Additional information about remote attribute access and attribute
dependences can be obtained by adding the parameters
Example: foo.specs+ExpI:OptimInfo> For a more detailed description of Liga's protocol options and more advanced options, see Liga Control Language Manual of Liga Control Language Manual.
show -- LIDO Table Viewers showFe and showMe:showFe :showMe
Obtain a list of files that contain internal representations of LIDO text
translated into readable text. These informations can be useful for debugging a LIDO-Specification or to understand LIGA-Processing in more depth. See Overview of SHOW - Debugging Information for LIDO, for more details.
instance -- Name an Instance of a Generic Module+instance='string'
Use string to name the instance generated by the request.
No spaces are allowed within the string, and characters meaningful to
the shell that interprets the associated type-
Not all generic modules allow distinct instances to be created.
See the documentation of each such module for the precise effect of
referto -- Relate Instances of Generic Modules+referto='string' Use string to relate the current instance of a generic module to some specific instance of another generic module.
Not all generic modules allow relationships to be specified.
See the documentation of each such module for the precise effect of
|