comparison lwasm/main.c @ 365:6a98cc90c14f

Added resolve passes
author lost@starbug
date Wed, 14 Apr 2010 20:49:04 -0600
parents 0b5a26bedbe1
children 34dfc9747f23
comparison
equal deleted inserted replaced
364:0b5a26bedbe1 365:6a98cc90c14f
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 void do_pass2(asmstate_t *as);
169 extern void do_pass3(asmstate_t *as); 169 extern void do_pass3(asmstate_t *as);
170 extern void do_pass4(asmstate_t *as);
170 extern lw_expr_t lwasm_evaluate_special(int t, void *ptr, void *priv); 171 extern lw_expr_t lwasm_evaluate_special(int t, void *ptr, void *priv);
171 extern lw_expr_t lwasm_evaluate_var(char *var, void *priv); 172 extern lw_expr_t lwasm_evaluate_var(char *var, void *priv);
172 extern lw_expr_t lwasm_parse_term(char **p, void *priv); 173 extern lw_expr_t lwasm_parse_term(char **p, void *priv);
173 174
174 struct passlist_s 175 struct passlist_s
177 void (*fn)(asmstate_t *as); 178 void (*fn)(asmstate_t *as);
178 } passlist[] = { 179 } passlist[] = {
179 { "parse", do_pass1 }, 180 { "parse", do_pass1 },
180 { "symcheck", do_pass2 }, 181 { "symcheck", do_pass2 },
181 { "resolve1", do_pass3 }, 182 { "resolve1", do_pass3 },
183 { "resolve2", do_pass4 },
182 { NULL, NULL } 184 { NULL, NULL }
183 }; 185 };
184 186
185 int main(int argc, char **argv) 187 int main(int argc, char **argv)
186 { 188 {