ML-Twig 1.0  June 1989.

Copyright (c) 1989 by Johan Lilius, Jari Porra, Jussi Rintanen.

This software comes with ABSOLUTELY NO WARRANTY.
This software is subject only to the GNU GENERAL PUBLIC LICENSE
(in the file "LICENSE", distributed with this software, and available
from the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139).
You may copy and distribute this software; see the LICENSE
for details and restrictions.


Source files of ML-Twig : (compile in this order)

	analyzer.lex.sml
	lexer.sml
	parser.sml
	automata.sml
	main.sml

Other files :

	analyzer.lex		The lexer. Use Lexgen to produce
				analyzer.lex.sml.
	runtime.sml		Runtime system to be loaded before the file
				produced by ML-Twig. Contains a functor.
	man.tex			ML-Twig User Manual (LaTeX)
	example.mtw		The example from the manual.
	invoke.sml		User interface (If you compile ML-Twig
				non-interactively with the batch compiler.
				Load after main.sml)


There are no known bugs in ML-Twig, but the tree references ($n.m ... $)
together with rewrite rules currently pose a small problem.
References to the labeled subtrees of a tree pattern always refer
to the original tree, not to a new tree possibly returned by a 
rewrite rule.


Bug reports, comments and suggestions may be sent to

	jur@hutcs.hut.fi

or

	Jussi Rintanen
	Helsinki University of Technology
	Laboratory of Information Processing Science, U401
	02150 ESPOO
	Finland


Note:

We have tested the program with a large subset of the Vax code generator
of Andrew Appel rewritten for Standard ML and ML-Twig, and I think
the program is fairly reliable. The run-time system is not very efficient
and there are some parts that could be cleaned up. However, I think that
possible modifications are not critical.
  I could also later send for distribution a small front-end for a pascal-like
language, and the Vax CG, if Andrew Appel does not mind. The CG very closely
resembles the original code generator written in C for Twig, and is merely
a translation of the original. 
