New Features of Eli Version 4.1
A non-product output file, named by @N , is now available.
A non-product output file is identical to a normal output file except that
it is not included in the set of files making up the final product
specification.
Non-product files are files that are used in the derivation of
product components, but are not themselves components of the product.
For example, consider the problem of making keywords case-insensitive but
retaining case sensitivity in identifiers
(see Making Literal Symbols Case Insensitive of Lexical Analysis).
Here is a portion of a FunnelWeb file implementing such a processor:
@O@<nolit.gla@>==@{
identifier: C_IDENTIFIER
@}
@N@<keyword.gla@>==@{
$[a-z]+
@}
@O@<keyword.specs@>==@{
keyword.gla :kwd
@}
Note that the file `keyword.gla' can not form part of the final
product specification.
If it did, the specified processor would treat all completely lower case
identifiers as comments!
Nevertheless, file `keyword.gla' is necessary to specify the
representation of the keywords in the grammar so that they can be
extracted and processed separately
(see Making Literal Symbols Case Insensitive of Lexical Analysis).
Thus file `keyword.gla' is defined as a non-product file by using
@N instead of @O when specifying its name and content.
|