Check that the graph is well-formed. More details on each of these are given below. As a result of assignment 3, your parser builds abstract syntax trees. The file dumptype.cc illustrates how to traverse the AST and gather information from it. The inheritance graph is built and checked for errors.
Compilation is halted if an error is detected between the sub-passes.
For each class, each attribute and method is typechecked. An invariant is maintained that all parents of a class are checked before a class is checked. There is a place in the AST for you to attach customized information. You may add members to the macros to make nodes of that type hold whatever information you wish. You may also modify cool-tree.h directly.