//
// A lexer implemented in ATS and for ATS
//

Author: Hongwei Xi (* hwxi AT cs DOT bu DOT edu *)
Time: July 2007.

###### beg of [README] ######

This is a plain implementation of a lexer.  Except for a few minor changes,
the algorithm used in the implementation basically follows the one given in
the following book by Aho, Sethi and Ullman:

"Compilers: principles, techniques and tools" 

The primary purpose of this implementation (as of now) is for bootstrapping
ATS/Geizella.

//

atslex.dats	: for defining the main function
charset.dats	: for representing sets of characters
intset.dats	: for representing sets of states
position.dats	: for recording positions in an input file
lexgen.dats	: for generating code for lexical analysis
states.dats	: for assigning numbers to states
token.dats	: for tokenization
top.sats	: for exporting various functions

//

Makefile: the makefile for [atslex]

//

lexing.sats	: for exporting functions used in the generated code
lexing.dats	: for definiting functions used in the generated code
tables.dats	: for creating and accessing transition and accept tables

//

Usuage:

[atslex] receives its input from STDIN and emits its output to STDOUT.  For
instance, the following command line reads from an input file named 
xyz.lats and write the generated ATS code to a file named xyz_lats.dats.

atslex < xyz.lats > xyz_lats.dats

It is recommended that .lats be used as the name extension for input
files passed to atslex.

###### end of [README] ######
