comparison lwasm/main.c @ 363:d96c30e60ddf

Added pass2 and various supporting logic including symbol lookups
author lost@starbug
date Tue, 06 Apr 2010 21:03:19 -0600
parents f5b77989f675
children 0b5a26bedbe1
comparison
equal deleted inserted replaced
362:4867f18c872f 363:d96c30e60ddf
163 /* 163 /*
164 main function; parse command line, set up assembler state, and run the 164 main function; parse command line, set up assembler state, and run the
165 assembler on the first file 165 assembler on the first file
166 */ 166 */
167 extern void do_pass1(asmstate_t *as); 167 extern void do_pass1(asmstate_t *as);
168 extern void do_pass2(asmstate_t *as);
168 extern lw_expr_t lwasm_evaluate_special(int t, void *ptr, void *priv); 169 extern lw_expr_t lwasm_evaluate_special(int t, void *ptr, void *priv);
169 extern lw_expr_t lwasm_evaluate_var(char *var, void *priv); 170 extern lw_expr_t lwasm_evaluate_var(char *var, void *priv);
170 extern lw_expr_t lwasm_parse_term(char **p, void *priv); 171 extern lw_expr_t lwasm_parse_term(char **p, void *priv);
171 int main(int argc, char **argv) 172 int main(int argc, char **argv)
172 { 173 {
191 } 192 }
192 193
193 input_init(&asmstate); 194 input_init(&asmstate);
194 195
195 do_pass1(&asmstate); 196 do_pass1(&asmstate);
197 if (asmstate.errorcount > 0)
198 {
199 lwasm_show_errors(&asmstate);
200 exit(1);
201 }
202 do_pass2(&asmstate);
203
196 exit(0); 204 exit(0);
197 } 205 }