Steps:
CodeContext.accept
Parser.visit_source_file
bunch of parse_xxxx(), skip_xxxx(), and get_xxxx() calls
CodeContext.accept again
Genie.Parser.visit_source_file
CodeContext.accept again
GirParser.visit_source_file()
bunch of accept() calls
CodeContext.accept again
SemanticAnalyzer.visit_source_file
SourceFile.check
bunch of check() calls
FlowAnalyzer.visit_source_file
bunch of accept() calls