; -*- mode:     Text ------------------------------------------------ ;
; File:         README
; Author:     Joachim H. Laubsch, laubsch@hplabs.hpl.hp.com
***********************************************************
;;; Copyright (c) 1989, Hewlett-Packard Company
;;; All rights reserved.
;;;
;;; Use and copying of this software and preparation of derivative works
;;; based upon this software are permitted.  Any distribution of this
;;; software or derivative works must comply with all applicable United
;;; States export control laws.
;;; 
;;; This software is made available AS IS, and Hewlett-Packard Company
;;; makes no warranty about the software, its performance or its conformity
;;; to any specification.
;;; 
;;; Suggestions, comments and requests for improvements are welcome
;;; and should be mailed to laubsch@hplabs.hpl.hp.com
;;; ***********************************************************

Zebu is a kind of YACC, and was originally implemented in Scheme by
William M. Wells III.  It generates an LALR(1) parsing table. To parse
a string with a grammar, only this table and a driver need to be
loaded.

The present version of Zebu is an extension, rewritten in Common Lisp.
It contains the ability to define several grammars and parsers
simultaneously, a declarative framework for specifying the semantics,
capabilities to define and use meta-grammars (grammars to express a
grammar in), generation of unparsers (generators) using a 'reversible
grammar' notation, as well as efficiency related improvements.  

Zebu also contains a lexical analyzer which is based on the regular 
expression compiler written by Lawrence E. Freil <lef@nscf.org>.

Zebu compiles a grammar with 300 productions (including
dumping of the tables to disk) in approx 2 minutes and 30 seconds on a
HP 9000/370.

This implementation has been tested in Lucid CL, Allegro CL, and
MCL 2.0b.

For documentation look into the doc/ directory:

	Zebu_intro.tex 	contains an introduction to the Common Lisp
  version and the enhancements.  This is a LaTeX file.  The PostScript
  version is Zebu_intro.ps.

	zebu.text 	contains an introduction to the original
  Scheme version. (This documentation is now mostly obsolete.)

The test/ directory contains a few examples.  The file exercise.lisp runs
many of them.  Most example files also have a commented section at the end
that suggest some tests.

Other features, like grammar-names, string- or symbol-delimiters,
parameterization of lexical analysis, and modes of interpretation of
the grammar actions are also documented in zebu-loader.lisp.

If you need help or have suggestions, send email to

        laubsch@hplabs.hpl.hp.com

	Joachim H. Laubsch
	Computer Research Center, Bldg. 1U, Mail Stop 1U-17

	P.O. Box 10490
	Hewlett-Packard Laboratories
	1501 Page Mill Road
	Palo Alto, CA 94304-1126

	Tel. (415) 857 7695

************************************************************
