home *** CD-ROM | disk | FTP | other *** search
- SGML Users' Group SGML Parser Materials
- ARCSGML 1.0
-
- Please see the License and Disclaimer of Liability in LICENSE.TXT.
-
- What Is It?
-
- ARCSGML is first and foremost something that is being licensed for
- free, with no perceptible restrictions on its use or distribution.
- That is the good part -- the obverse of the coin is that if no one is
- receiving revenue for ARCSGML, no one is going to take responsibility
- for it either. Therefore, as the "License and Disclaimer of
- Liability" states, no claims are made for ARCSGML and no person or
- organization is responsible if any imagined claims or dreams are
- unfulfilled. The following description should therefore be regarded as
- a fantasy.
-
- Function
-
- ARCSGML is a toolkit for use in developing conforming SGML parsers,
- systems, and applications. It supports the reference concrete syntax
- and all features except LINK, CONCUR, and SUBDOC (although some hooks
- are in place to get you started on these). It was originally written
- to validate the 1983 working draft of the SGML standard, and was
- subsequently maintained to track the standard through its final phases
- of development, culminating in the amendment. (See ARCTECH.DOC for
- system declaration information.)
-
- A parser built with ARCSGML is employed as a coroutine with an
- application, called a "text processor (TP)" in the code comments. All
- memory management, I/O, and error handling occur in separate modules
- that can be revised to suit individual environments without affecting
- the core parser. Message texts are segregated to facilitate
- translation to languages other than English.
-
- The application can either interface directly to parser control
- blocks, or it can be isolated from them by an application programming
- interface (API). APIs for both C and REXX are included. (REXX is an
- easy-to-use interpreted language with powerful parsing and string
- handling functions that are well-suited for converting SGML documents
- to other formats -- such as word processor files.)
-
- A sample application is included in the form of a markup validator
- (VM2). An optional switch instructs the validator to display the
- externals of the SGML parsing process (e.g., current element, current
- entity, current short reference map) as an aid to debugging DTDs.
- (See VM2HELP.DOC for details.)
-
- An annotated list of the package contents can be found in
- ARCFILES.DOC.
-
- Portability
-
- ARCSGML was developed entirely on a succession of IBM PC computers
- running PC-DOS, but has proven to be portable to other hardware and
- software platforms. Preparation for the SGMLUG distribution of
- ARCSGML (ARCSGML 1.0) was done with Borland C++ 2.0 on DOS 4.01
- (but only the C compiler of the integrated development environment was
- used, not C++). Microsoft C 5.1 was used on previous versions (command
- line compiler only).
-
- The code compiles and executes in both the small and large memory
- models.
-
- The code includes internal trace routines for debugging.
- These can be excluded from production versions by defining "FINAL" and
- omitting TRACESET from the build. The distributed executable markup
- validator (VM2.EXE) excludes the trace code.
-
- More technical details can be found in ARCTECH.DOC.
-
- Testing
-
- Although programs derived from ARCSGML have been tested extensively
- with modern SGML test suites, the development of ARCSGML predated the
- establishment of test suite guidelines. The SGMLTEST.EXE archive
- includes a number of ad hoc test cases. Those with filetypes of "VM2"
- contain the (presumably) correct VM2 output from the corresponding
- files with filetype "SGM". (Other filetypes are used for entities
- that are referenced from *.SGM files, and for additional materials.)
-
- Documentation
-
- The documentation files and the extensively commented source code are
- it. (I hope to write more, but don't wait for it!) That may seem
- somewhat daunting, but several successful ports and adaptations of the
- code have been made by programmers with whom I have had little contact
- (and who didn't even have this file to get them started!). Most of
- their questions tended to be about the SGML language -- all of the
- answers I gave them are in The SGML Handbook.
-
- Each source code file usually has a description at its start, although if a
- file contains many functions, there may be descriptions at the
- beginning of each function instead. In some files, descriptions of
- the most recent changes made, or of "TO DO" items, may also occur at
- the start.
-
- I am not in a position personally to answer questions about ARCSGML.
- However, the SGML Project of the University of Exeter is establishing
- a clearinghouse for ARCSGML information. Contact:
-
- Paul Ellison, Director
- The SGML Project
- University of Exeter
- North Park Road
- Exeter EX4 4QE
- United Kingdom
- Phone: +44 392 26 39 46
- E-mail: SGML@EXETER.AC.UK
-
- Please send The SGML Project your comments, enhancements, and bug fixes.
- (Yes, there is at least one bug, left there in the ancient tradition to
- avoid offending the gods by trying to be perfect).
-
- Charles F. Goldfarb,
- Honorary Technical Advisor, SGMLUG
- Saratoga, California
- July 3, 1991