There are a bunch of test cases in the =xmpl= subdirectory of the TigerXmpl package. After you have built the TigerCompiler or just some of its CompilerPackages, you can automatically test them using various =make= targets. For example, there is a test case called =queens.tig= that computes the solutions to the Eight Queens Problem. Running =make queens.tas= will parse and desugar it into =queens.tas=, =make queens.tc.tas= will typecheck it, etc. The targets include: * =filename.tasfix= (from =filename.tig=) - the full parse tree (concrete syntax) * =filename.sweettas= (from =filename.tasfix=) - the imploded parse tree (abstract syntax) * =filename.tas= (from =filename.sweettas=) - the desugared abstract syntax * =filename.tas.check= (from =filename.tas=) - checks the validity of abstract syntax trees * =filename.tc.tas= (from =filename.tas=) - the abstract syntax annotated with type information; fails in case of a type error * =filename.tc.tas.tccheck= (from =filename.tas=) - checks the validity of type annotated abstract syntax trees * =filename.val.tas= (from =filename.tas= and =filename.input=) - interprets a desugared Tiger program, with =filename.input= as input * =filename.flattas= (from =filename.tas=) - resugared abstract syntax * =filename.abox= (from =filename.flattas=) - intermediate step for pretty-printing * =filename.txt= (from =filename.abox=) - pretty-printed Tiger code (i.e., translates abstract syntax back to concrete syntax) Also see the CompilerArchitecture for a picture of how these file types relate to each other and what programs are involved in producing them.