			     -*- Text -*-

            $Id: README,v 1.1 1998/03/16 07:58:38 foner Exp $

				 MAWK
				 ====

MAWK is Minimal AWK, a very simple implementation of many of the
facilities that can be found AWK.  It doesn't attempt to look like
AWK, just emulate some of its facilities.  To see just what is
available in this minimal AWK, see the file mawk.doc

If I'd have known about Queinnec's work on ``regular parsing'' (as
available in Bigloo) before I started this I probably would never have
bothered.  Look at Queinnec's work, it is -good- stuff.


Scheme implementations tested
-----------------------------

Aubry Jaffer's Scheme, version 4c0


Non-standard requirements
-------------------------

For the most part, the package is written in IEEE Scheme.  The
deviations from this are the use of READ-LINE, REQUIRE, AVL-TREE and
STRING.  None are included in this distribution and are assumed to be
available. 

READ-LINE

  It should read a line (terminated by #\newline) from PORT and return
  it as newly allocated string.  If no lines are available, and object
  which returns #t for EOF-OBJECT? should be returned.  A portable
  implementation satisfying these requirements is available from the
  Scheme Repository (anonymous@nexus.yorku.ca:pub/scheme/scm/readstring.oak)

REQUIRE

  Each of the files in the package contains zero or more REQUIRE calls
  at the start of the file indicating the procedures (not files) that
  the file needs.  Since most files only contain one procedure, this
  means that only those procedures that are actually needed are ever
  loaded (simplifies tree shaking).  If your REQUIRE system cannot
  deal with this type of request, then the simplest solution is to
  remove them all and simply merge all the files into a single file.
  For example, the following would work in a UNIX Bourne shell :-

	for file in mawk??.scm
	do
		sed '/^(require/d' < $file
	done > mawk.scm

  Note the ability to require a procedure rather than a file is the
  reason that the filenames in the package have uniformly boring
  names.  If you don't have a TAGS package that recognises Scheme,
  then the file mawk.map may help in locating procedures.  For each
  procedure it contains the file in which it is defined.


AVL-TREE

  Hunt around the Scheme Repository for AVL avl-tree.shar.  You need
  the a version with a README dated 19931027 or later.


STRING

  This is a package of miscellaneous string munging procedures.  Hunt
  around the Scheme Repository for string.shar.  You need the version
  with a README dated 19931021 or later (actually you only really need
  string57.scm plus a few others, not the whole package).


Demos
-----

A couple of very simple demonstrations of MAWK are included, look for
files mawkt??.scm.  For example, mawkt03.scm contains a naive BSD "cat
-n" / SYS V "nl".  Note some of the demos use procedures that are not
included in this package.

Author
------

Stephen J. Bevan	<bevan@cs.man.ac.uk>	19930526
