All file accesses and
incremental compilation are
encapsulated in FileLoader:
loads files from
disk
check syntax of the
program
builds the ASTs
loadCompileUnit(filename,pass)
loadCompileUnit(pkg,class,pass)
Tasks of semantic
passes
check semantics of the
program
add semantic
annotations
refine the abstract syntax trees, e.g. Name ฎ FieldAccess