diff lwasm/main.c @ 337:04c80c51b16a

Checkpoint development
author lost
date Fri, 12 Mar 2010 06:01:38 +0000
parents 9f58e3bca6e3
children 7b4123dce741
line wrap: on
line diff
--- a/lwasm/main.c	Fri Mar 05 02:34:16 2010 +0000
+++ b/lwasm/main.c	Fri Mar 12 06:01:38 2010 +0000
@@ -165,6 +165,8 @@
 assembler on the first file
 */
 extern void do_pass1(asmstate_t *as);
+extern void lwasm_evaluate_special(int t, void *ptr);
+extern void lwasm_evaluate_var(char *var);
 
 int main(int argc, char **argv)
 {
@@ -172,6 +174,9 @@
 	asmstate_t asmstate = { 0 };
 	program_name = argv[0];
 
+	lw_expr_set_special_handler(lwasm_evaluate_special);
+	lw_expr_set_var_handler(lwasm_evaluate_var);
+
 	/* initialize assembler state */
 	asmstate.include_list = lw_stringlist_create();
 	asmstate.input_files = lw_stringlist_create();
@@ -186,34 +191,6 @@
 
 	input_init(&asmstate);
 
-//	do_pass1(&asmstate);
-{
-	lw_expr_t te;
-	
-	te = lw_expr_build(lw_expr_type_oper, lw_expr_oper_plus,
-			lw_expr_build_noref(lw_expr_type_oper, lw_expr_oper_plus,
-				lw_expr_build_noref(lw_expr_type_oper, lw_expr_oper_times,
-					lw_expr_build_noref(lw_expr_type_int, 2),
-					lw_expr_build_noref(lw_expr_type_var, "tvar")
-				),
-				lw_expr_build_noref(lw_expr_type_oper, lw_expr_oper_times,
-					lw_expr_build_noref(lw_expr_type_var, "tvar"),
-					lw_expr_build_noref(lw_expr_type_int, 3)
-				)
-			),
-			lw_expr_build_noref(lw_expr_type_oper, lw_expr_oper_times,
-				lw_expr_build_noref(lw_expr_type_int, 16),
-				lw_expr_build_noref(lw_expr_type_var, "avar")
-			)
-		);
-	
-	lw_expr_print(te);
-	printf("\n");
-	
-	lw_expr_simplify(te);
-	lw_expr_print(te);
-	printf("\n");
-}
-
+	do_pass1(&asmstate);
 	exit(0);
 }