General Information
Tutorials
Reference Manuals
Libraries
Translation Tasks
Tools
Administration
|
Products and Parameters ReferenceDiagnosing Specification InconsistenciesInconsistencies in the specification are detected by Eli in much the same way as a compiler detects inconsistencies in a normal program. Depending upon the nature of the inconsistency, Eli will set the status of the requested processor to either "warning" or "abort". In either case, the user is informed of the status of the requested product. If the status is "abort", the product will not be delivered. To obtain further information about the inconsistencies, a request should be made to derive one of the diagnostic products discussed in this section from the product whose status was reported as "warning" or "abort". For example, suppose that the following request (see exe -- Executable Version of the Processor) led to an abort status:
pascal.specs :exe Further information could then be obtained by making the request:
pascal.specs :exe :help
Note that the original request is repeated exactly, with
warning -- Warning Messages and Error Reports:warning A listing of all error reports and warning messages delivered by any step in a derivation. For example, the following request might be used during development of a set of specifications for a Pascal compiler:
pascal.specs:exe:warning
The product being requested here is the reports of anomalies encountered
during the derivation
error -- Error Reports:error
A listing of all error reports
delivered by any step in a derivation.
During development it is preferable to use the
help -- Cross-Reference to Documentation:help Starts an interactive session with the hypertext reader (see System Documentation of Guide for New Eli Users). This session is an explanation of reports delivered during a derivation. The session provides a menu of files containing the reports, and for each file a menu of hypertext document nodes pertaining to the errors in that file. Any file supplied as part of the specification can be altered (using the edit command of the hypertext reader), and when the session ends Eli will take account of those alterations. Generated files can be examined with the edit command, and altered copies created for testing purposes, but those alterations will not be permanent.
There is no use in requesting the
parsable -- Verify that the Grammar is Parsable:parsable Verifies that the grammar satisfies the conditions necessary to generate a parser.
The result of this derivation should be directed to the screen or an editor
(see Extracting and Editing Objects of Eli User Interface Reference Manual).
Using the
gencode -- Code Derived from the Specifications:gencode A directory containing the original specification files and all files generated from them. This directory is useful for exploring the relationships among the generated code files when certain inconsistencies are detected.
Although the directory can be extracted from the cache
(see Extracting and Editing Objects of Eli User Interface Reference Manual),
it is usually examined by requesting the
sets.specs :gencode :viewlist
This derived object is an interactive execution of the user's preferred
shell in the derived directory At the beginning of the session, the directory contains only symbolic links. If you want to alter a file temporarily, simply delete the symbolic link and replace it with the copy of the file. You may also create other files in the directory as you see fit. If you create subdirectories of the local directory, you should delete those subdirectories before exiting the shell. Plain files need not be deleted.
If you exit the shell and then re-derive
|