== requirements -----------------------------------------

   You must have PLT Scheme v4.1.5 installed. The various
   scripts relies on "mzscheme" being in your path.

== parsing ----------------------------------------------

   To parse a tiger program, run

     cd 1b; parse file.tig

   which will print out the parse tree. 

== type checking ----------------------------------------

   To type check a tiger program, run

     cd 2b; typecheck file.tig

   which will print out its type. 

   Run typecheck -h for options that enable the full Tiger
   language and give good error messages.

== evaluating tiger programs ----------------------------

   To run a tiger program, run:

     cd eval; eval file.tig

== evaluating tiger il programs -------------------------

   To run a tiger intermediate language program, run:

     cd eval; evalil file.il

   where file.il contains a tree-exp (in the parenthesized
   format). For example, this should print "abcdefg":

    (eseq (seq (move (mem 128) 7)
               (move (mem 132) 1633837924) 
               (move (mem 136) 1701209856)) 
          (call "printstr" 128))

   The primary advantage of using evail over the semantics
   is that the error messages are clearer (and it runs a 
   little bit faster, but that only matters for non-trivial
   programs).

== running the il semantics -----------------------------

   To try an example running in the intermediate language
   semantics, follow the instructions in red/ex.ss 
   (use DrScheme v4.1.5 to open the file).

