comparison src/expr.c @ 91:718998b673ee

Added incomplete references to object output and added support for section base terms in expression handler
author lost
date Sat, 17 Jan 2009 05:56:40 +0000
parents 2fe5fd7d65a3
children
comparison
equal deleted inserted replaced
90:6097cb1486f8 91:718998b673ee
85 t -> term_type = LWASM_TERM_INT; 85 t -> term_type = LWASM_TERM_INT;
86 t -> value = val; 86 t -> value = val;
87 return t; 87 return t;
88 } 88 }
89 89
90 lwasm_expr_term_t *lwasm_expr_term_create_secbase(void)
91 {
92 lwasm_expr_term_t *t;
93 debug_message(10, "Creating section base term");
94
95 t = lwasm_alloc(sizeof(lwasm_expr_term_t));
96 t -> term_type = LWASM_TERM_SECBASE;
97 return t;
98 }
99
90 lwasm_expr_term_t *lwasm_expr_term_create_sym(char *sym) 100 lwasm_expr_term_t *lwasm_expr_term_create_sym(char *sym)
91 { 101 {
92 lwasm_expr_term_t *t; 102 lwasm_expr_term_t *t;
93 103
94 debug_message(10, "Creating symbol term: %s", sym); 104 debug_message(10, "Creating symbol term: %s", sym);
109 case LWASM_TERM_OPER: 119 case LWASM_TERM_OPER:
110 return lwasm_expr_term_create_oper(t -> value); 120 return lwasm_expr_term_create_oper(t -> value);
111 121
112 case LWASM_TERM_SYM: 122 case LWASM_TERM_SYM:
113 return lwasm_expr_term_create_sym(t -> symbol); 123 return lwasm_expr_term_create_sym(t -> symbol);
124
125 case LWASM_TERM_SECBASE:
126 return lwasm_expr_term_create_secbase();
114 127
115 default: 128 default:
116 debug_message(0, "lwasm_expr_term_dup(): invalid term type %d", t -> term_type); 129 debug_message(0, "lwasm_expr_term_dup(): invalid term type %d", t -> term_type);
117 exit(1); 130 exit(1);
118 } 131 }