Merge branch 'phases'
[nit.git] / src / nit.nit
index 5fbefd5..a658d4d 100644 (file)
 module nit
 
 import modelbuilder
-import exprbuilder
-import naiveinterpreter
+import frontend
+import naive_interpreter
+import debugger
+#import interpretor_type_test
 
 # Create a tool context to handle options and paths
 var toolcontext = new ToolContext
@@ -35,19 +37,26 @@ var model = new Model
 var modelbuilder = new ModelBuilder(model, toolcontext)
 
 var arguments = toolcontext.option_context.rest
-if arguments.is_empty then
+if arguments.is_empty or toolcontext.opt_help.value then
        toolcontext.option_context.usage
        return
 end
 var progname = arguments.first
 
 # Here we load an process all modules passed on the command line
-var mmodules = modelbuilder.parse_and_build([progname])
-modelbuilder.full_propdef_semantic_analysis
+var mmodules = modelbuilder.parse([progname])
+modelbuilder.run_phases
 
 if toolcontext.opt_only_metamodel.value then exit(0)
 
 # Here we launch the interpreter on the main module
 assert mmodules.length == 1
 var mainmodule = mmodules.first
-modelbuilder.run_naive_interpreter(mainmodule, arguments)
+
+if toolcontext.opt_debugger_autorun.value then
+       modelbuilder.run_debugger_autorun(mainmodule, arguments)
+else if toolcontext.opt_debugger_mode.value then
+       modelbuilder.run_debugger(mainmodule, arguments)
+else
+       modelbuilder.run_naive_interpreter(mainmodule, arguments)
+end