Adding an option to parse only the minimal subset of modules needed for code generation
Created by: ars3niy
This works by parsing the modules that need to be rebuilt, obtaining names of modules imported by them, matching those to file names, parsing new ones, obtaining names of modules imported by them, and so on until nothing new is left.
In order to get list of modules imported by the one just parsed, the parse functions are made to return Common::Module* pointer to the parsed module.
This can be used to speed up the compilation significantly.