-import modelbuilder
-import exprbuilder
-import rapid_type_analysis
-import global_compiler
-
-# Create a tool context to handle options and paths
-var toolcontext = new ToolContext
-# We do not add other options, so process them now!
-toolcontext.process_options
-
-# We need a model to collect stufs
-var model = new Model
-# An a model builder to parse files
-var modelbuilder = new ModelBuilder(model, toolcontext)
-
-var arguments = toolcontext.option_context.rest
-if arguments.is_empty then
- toolcontext.option_context.usage
- return
+import frontend
+import compiler
+import transform
+
+redef class ToolContext
+ redef fun process_options(args)
+ do
+ super
+
+ var sum = opt_global.value.to_i + opt_separate.value.to_i + opt_erasure.value.to_i
+ if sum > 1 then
+ print "Options --global, --separate and --erasure are exclusive"
+ exit(1)
+ else if sum == 0 then
+ # --separate by default
+ opt_separate.value = true
+ end
+ end