X-Git-Url: http://nitlanguage.org diff --git a/src/nitg.nit b/src/nitg.nit index c32af98..7b442a0 100644 --- a/src/nitg.nit +++ b/src/nitg.nit @@ -18,13 +18,19 @@ module nitg import modelbuilder -import exprbuilder +import frontend import rapid_type_analysis import global_compiler +import separate_erasure_compiler import separate_compiler # Create a tool context to handle options and paths var toolcontext = new ToolContext + +# Create a new option for --global +var opt_global = new OptionBool("Use global compilation", "--global") +toolcontext.option_context.add_option(opt_global) + # We do not add other options, so process them now! toolcontext.process_options @@ -38,12 +44,17 @@ if arguments.is_empty then toolcontext.option_context.usage return end +if arguments.length > 1 then + print "Too much arguments: {arguments.join(" ")}" + 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]) +var mmodules = modelbuilder.parse([progname]) if mmodules.is_empty then return -modelbuilder.full_propdef_semantic_analysis +modelbuilder.run_phases if toolcontext.opt_only_metamodel.value then exit(0) @@ -51,4 +62,11 @@ if toolcontext.opt_only_metamodel.value then exit(0) assert mmodules.length == 1 var mainmodule = mmodules.first var analysis = modelbuilder.do_rapid_type_analysis(mainmodule) -modelbuilder.run_global_compiler(mainmodule, analysis) + +if toolcontext.opt_erasure.value then + modelbuilder.run_separate_erasure_compiler(mainmodule, analysis) +else if toolcontext.opt_separate.value then + modelbuilder.run_separate_compiler(mainmodule, analysis) +else + modelbuilder.run_global_compiler(mainmodule, analysis) +end