Announcing dsc-2.0: An online DSSSL syntax checker and implementation framework, including the DSSSL transformation language


Warning

This release has been languishing in a not-quite-well-packaged state for over a year. I've released it due to popular demand, but with minimal testing and no guarantees it will build in your environment. See the README file for details.

Overview

This tool, which embeds a full R4RS Scheme interpreter in James Clark's SP parser, is designed both to provide an online syntax checker for all DSSSL expression, style and transformation language programs, and to serve as a preprocessor for any Scheme-embedded DSSSL implementation. Virtually the entire language as specified in chapters 8 through 12 of the standard is checked for syntactic correctness, and a virtually complete implementation of the core expression language is included, as is the first-ever (as far as I know) implementation of the DSSSL transformation language.

This is a UNIX-only release, tested so far under SunOS 5.

You will find DSC of interest if you are:

  1. A Jade user who has difficulty debugging your specifications: dsc provides a very comprehensive set of diagnostic error and warning messages;
  2. Someone responsible for teaching or otherwise presenting DSSSL: You can present examples with confidence that they are valid if they get through DSC without error;
  3. Someone interested in implementing DSSSL: DSC gives you a solid platform to build on;
  4. Someone interested in the DSSSL transformation language: DSC's implementation is not fast, but it works!

You can download DSC by ftp.

My thanks to SunSoft for providing partial support for producing this tool.

Details

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 style language is not implemented, but the query and transformation languages are implemented, as is the core expression language, together with a number of optional compenents, with two exceptions: only 8-bit characters with single-character names are supported, and the functions `time' and `time->string' are not implemented.

Usage

dsc is built on top of SP-1.3.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]