			     -*- Text -*-

  $Id: README,v 1.1 1998/03/16 07:57:35 foner Exp $

				 BAWK
				 ====

BAWK attempts to recreate as much as possible of AWK, except with a
Scheme syntax.  So far it doesn't do that much, but it does do more
than MAWK its minimal cousin.  To see what is available, see bawk.doc


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

Aubry Jaffer's Scheme, version 4a11


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, STRING:SPLIT.
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 bawk??.scm
	do
		sed '/^(require/d' < $file
	done > bawk.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 bawk.map may help in locating procedures.  For each
  procedure it contains the file in which it is defined.


STRING:SPLIT

  Given a string and an optional character, string, char-set, this
  should split the line into a list of strings.  A portable
  implementation of this is available from the Scheme Repository in
  the collection of string functions called ??.


Demos
-----

A very simple demonstrations of BAWK are included, look for the file
bawkt00.scm.


Author
------

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