MCPcopy Create free account
hub / github.com/SeaOfNodes/Simple / main

Method main

chapter24/src/test/java/com/seaofnodes/simple/Simple.java:152–289  ·  view source on GitHub ↗
(String[] args)

Source from the content-addressed store, hash-verified

150 }
151
152 public static void main(String[] args) throws Exception {
153 String input_filename = null;
154 boolean do_eval = false;
155 boolean do_run = true;
156 boolean do_codegen = false;
157 boolean do_print_size = false;
158 boolean do_print_time = false;
159 int dump = 0;
160 int first_arg = 0;
161 String src = null;
162 String cpu = null;
163 String abi = null;
164
165 // Parse command line
166 int i; for( i = 0; i < args.length; i++ ) {
167 String arg = args[i];
168 if( arg.charAt(0) != '-' ) {
169 input_filename = arg;
170 break;
171 }
172
173 switch (arg) {
174 case "-": input_filename=""; break;
175 case "--dump": dump |= DUMP_FINAL; break;
176 case "--dump-after-parse": dump |= DUMP_AFTER_PARSE; break;
177 case "--dump-after-opto": dump |= DUMP_AFTER_OPTO; break;
178 case "--dump-after-type-check": dump |= DUMP_AFTER_TYPE_CHECK; break;
179 case "--dump-after-loop-tree": dump |= DUMP_AFTER_LOOP_TREE; break;
180 case "--dump-after-select": dump |= DUMP_AFTER_SELECT; break;
181 case "--dump-after-gcm": dump |= DUMP_AFTER_GCM; break;
182 case "--dump-after-local-sched": dump |= DUMP_AFTER_LOCAL_SCHED; break;
183 case "--dump-after-reg-alloc": dump |= DUMP_AFTER_REG_ALLOC; break;
184 case "--dump-after-encode": dump |= DUMP_AFTER_ENCODE; break;
185 case "--dump-after-all": dump |= DUMP_AFTER_ALL; break;
186 case "--dot": dump |= DUMP_DOT; break;
187 case "-S": dump |= DUMP_DISASSEMBLE; break;
188 case "--eval": do_eval = true ; do_run = false; break;
189 case "--run": do_run = true ; break;
190 case "--norun": do_run = false; break;
191 case "--dump-size": do_print_size = true; break;
192 case "--dump-time": do_print_time = true; break;
193 case "--cpu": if (cpu != null || i + 1 >= args.length || args[i + 1].charAt(0) == '-') bad_usage();
194 cpu = args[++i];
195 break;
196 case "--abi": if (abi != null || i + 1 >= args.length || args[i + 1].charAt(0) == '-') bad_usage();
197 abi = args[++i];
198 break;
199 case "--target": target(); break;
200 case "--version": throw Utils.TODO();
201 case "--help": usage();
202 default: bad_usage();
203 }
204 }
205
206 if (input_filename == null) throw bad("no input file' (use --help)");
207 if( !input_filename.isEmpty() && !input_filename.endsWith(".smp") )
208 throw bad("File extension must be .smp");
209 String base = input_filename.substring(0,input_filename.length()-4);

Callers

nothing calls this directly

Calls 15

bad_usageMethod · 0.95
targetMethod · 0.95
TODOMethod · 0.95
usageMethod · 0.95
badMethod · 0.95
getInputMethod · 0.95
parseMethod · 0.95
dumpMethod · 0.95
optoMethod · 0.95
typeCheckMethod · 0.95
loopTreeMethod · 0.95
instSelectMethod · 0.95

Tested by

no test coverage detected