Mercurial > hg-old > index.cgi
comparison lwasm/main.c @ 370:6b33faa21a0a
Debugging output and bugfixing pass 0
author | lost@starbug |
---|---|
date | Tue, 20 Apr 2010 21:59:58 -0600 |
parents | 656630007668 |
children | 90de73ba0cac |
comparison
equal
deleted
inserted
replaced
369:898a41f7eb59 | 370:6b33faa21a0a |
---|---|
188 { "finalize", do_pass6 }, | 188 { "finalize", do_pass6 }, |
189 { "emit", do_pass7 }, | 189 { "emit", do_pass7 }, |
190 { NULL, NULL } | 190 { NULL, NULL } |
191 }; | 191 }; |
192 | 192 |
193 extern void dump_state(asmstate_t *as, FILE *fp); | |
194 | |
193 int main(int argc, char **argv) | 195 int main(int argc, char **argv) |
194 { | 196 { |
195 int passnum; | 197 int passnum; |
196 | 198 |
197 /* assembler state */ | 199 /* assembler state */ |
198 asmstate_t asmstate = { 0 }; | 200 asmstate_t asmstate = { 0 }; |
199 program_name = argv[0]; | 201 program_name = argv[0]; |
200 | 202 |
201 lw_expr_set_special_handler(lwasm_evaluate_special); | 203 lw_expr_set_special_handler(lwasm_evaluate_special); |
202 lw_expr_set_var_handler(lwasm_evaluate_var); | 204 lw_expr_set_var_handler(lwasm_evaluate_var); |
205 lw_expr_set_term_parser(lwasm_parse_term); | |
203 | 206 |
204 /* initialize assembler state */ | 207 /* initialize assembler state */ |
205 asmstate.include_list = lw_stringlist_create(); | 208 asmstate.include_list = lw_stringlist_create(); |
206 asmstate.input_files = lw_stringlist_create(); | 209 asmstate.input_files = lw_stringlist_create(); |
207 asmstate.nextcontext = 1; | 210 asmstate.nextcontext = 1; |
218 | 221 |
219 for (passnum = 0; passlist[passnum].fn; passnum++) | 222 for (passnum = 0; passlist[passnum].fn; passnum++) |
220 { | 223 { |
221 fprintf(stderr, "Doing pass %d (%s)\n", passnum, passlist[passnum].passname); | 224 fprintf(stderr, "Doing pass %d (%s)\n", passnum, passlist[passnum].passname); |
222 (passlist[passnum].fn)(&asmstate); | 225 (passlist[passnum].fn)(&asmstate); |
226 fprintf(stderr, "After pass %d (%s):\n", passnum, passlist[passnum].passname); | |
227 dump_state(&asmstate, stderr); | |
223 | 228 |
224 if (asmstate.errorcount > 0) | 229 if (asmstate.errorcount > 0) |
225 { | 230 { |
226 lwasm_show_errors(&asmstate); | 231 lwasm_show_errors(&asmstate); |
227 exit(1); | 232 exit(1); |