||In this assignment you have to implement the semantic analysis of
your j0 compiler. Basically, the semantic analyzer has to perform two
tasks: name analysis (i.e. finding the corresponding definitions to
all identifiers) and type checking (i.e. deriving types for all
j0 constructs and checking their consistency).
For your implementation, we provide several supporting classes:
Your main task is to complete the new visitor
Analyzer.java which performs both name analysis
and type checking.