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);