tools: move run_global_phases/process_mainmodule into modelbuilder
[nit.git] / src / modelbuilder.nit
index bb7d46c..fda8b67 100644 (file)
@@ -52,8 +52,22 @@ redef class ToolContext
        fun modelbuilder: ModelBuilder do return modelbuilder_real.as(not null)
        private var modelbuilder_real: nullable ModelBuilder = null
 
+       fun run_global_phases(mainmodule: MModule)
+       do
+               for phase in phases_list do
+                       phase.process_mainmodule(mainmodule)
+               end
+       end
 end
 
+redef class Phase
+       # Specific action to execute on the whole program
+       # Called by the `ToolContext::run_global_phases`
+       # @toimplement
+       fun process_mainmodule(mainmodule: MModule) do end
+end
+
+
 # A model builder knows how to load nit source files and build the associated model
 class ModelBuilder
        # The model where new modules, classes and properties are added