to perform semantic analysis (type checking) for Tiger programs. The purpose of the type checker is to determine the type for every expression in a program, and to ensure that expressions appear in places that are type-consistent. The type checker will be a set of mutually recursive routines that will walk over the AST generated by your parser (I will be providing these). Also required is the creation of a symbol table to keep track of declared symbols in a program. This lab will complete the front end of the compiler which will now produce a type-safe AST which can then be manipulated by the optimization and/or code generation phases of the compiler.
For the base assignment, your compiler should be able to correctly type check all Tiger programs except those containing the following constructs:
* Record (structure) declarations and references
* Array declarations and references
* Mutually recursive type declarations
* Mutually recursive functions
I shall be providing with the required files.
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) All the source code fully commented.
3) Exclusive and complete copyrights to all work purchased. (No GPL, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site).