perform intermediate pass before compiling the AST