1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
DSSSL Syntax Checker (dsc) version 1.0
Henry S. Thompson
23 January 1997
(Copyright Henry S. Thompson 1996,1997)
Produced at HCRC, Edinburgh with support from
the UK Economic and Social Research Council
and
SunSoft
This package provides an online syntax checker for DSSSL style and
transform specifications. It implements the full semantics of the
DSSSL standard regarding specification files, composing a specification
body from one or more files conforming to the DSSSL architectural
form, then mapping from the specification body (i.e. sequences of
expression language forms) to a reordered normalised form thereof and
loading the result into a Scheme interpreter with access to a document
source grove.
Comprehensive and detailed error messages, based on a large database
of information about the calling sequences for all specification
language functions and forms are logged to stderr, together with
(optionally) information about feature usage.
The semantics of the query, style and transformation languages are NOT
implemented, although in many cases preliminary stubs are present. A
full implementation framework will be provided in release 2.0, due in
spring 1997. The core expression language, together with a number of
optional compenents, IS implemented, with two exceptions: only 8-bit
characters with single-character names are supported, and the
functions `time' and `time->string' are not implemented.
INSTALLATION
This distribution is designed to work whether or not you have already
installed James Clark's SGML parser package SP-1.1.1 and/or the Scheme
interpreter toolkit Elk 3.0, but of necessity this implies a certain
complexity.
See the file INSTALL for detailed installation instructions.
USAGE
dsc is built on top of SP-1.1.1, and all the command line options for
e.g. spam are available. However, as not one but two sgml documents
are required for DSSSL processing, the DSSSL specification and the
source document, two sets of switches and system ids can be provided:
dsc spec_switches_and_ids [-+ source_switches_and_ids]
For error checking only, the source options are not required.
For example, to use demo.dsl from the distribution as the
specification document and some miscelaneous source file, one would invoke
dsc as follows:
dsc .../data/demo.dsl -+ ~/sgml/mytest.sgm
Options special to dsc, for the specification part only, are
-d Produce debugging output on stdout;
-u Produce feature summary on stderr;
-s <id>: ID of specification to use (defaults to first in document);
-t <type>: Type of spec/dsssl operation (style/transform)
(defaults to type of spec. found in document).
If no source file is provided, only error checking is done. If the -d
switch is set, the reordered, transformed effective specification body
is listed on stdout.
As of this release, only token support for specification semantics is
provided, as an indication of what is planned for the next release.
If you provide a source document, your specifications will be
evaluated, which may well result in errors from this incomplete
support, so unless you are interested in exploring the state of the
implementation, invocation WITHOUT a source document is recommended.
Quantity arithmetic is fully supported -- try typing
(* dum dum)
to the prompt after running dsc on demo.dsl and some source document.
The read-eval-print loop running in this circumstance uses a
DSSSL-compatible reader and gives you the opportunity to explore the
core expression language implementation. The portable Scheme debugger
can be used by invoking `(inspect)' either at the top-level or at an
error prompt.
Note that your spec. document MUST conform to the standard
architectural form, i.e. it MUST include declarations of the form
<!NOTATION DSSSL PUBLIC "ISO/IEC 10179:1996//NOTATION
DSSSL Architecture Definition Document//EN">
<?ArcBase DSSSL>
in its DTD.
The name DSSSL is not required, but it is the architecture enabled by
default by dsc -- if you use a different name, you must include an
appropriate -A option in the spec. portion of the command line.
|