comparison lwasm/lwasm.h @ 226:7c2c2239ec9c

Make unicorns grok errors and warnings. Added unicorn formatted error and warning output and also a framework to handle errors which know which character position in the line they occurred in.
author William Astle <lost@l-w.ca>
date Sun, 15 Jul 2012 21:19:43 -0600
parents 211fc8038b8d
children d0e9dbe9afbe
comparison
equal deleted inserted replaced
225:823560a8c251 226:7c2c2239ec9c
121 121
122 typedef struct lwasm_error_s lwasm_error_t; 122 typedef struct lwasm_error_s lwasm_error_t;
123 struct lwasm_error_s 123 struct lwasm_error_s
124 { 124 {
125 char *mess; // actual error message 125 char *mess; // actual error message
126 int charpos; // character position on line where parsing stopped
126 lwasm_error_t *next; // ptr to next error 127 lwasm_error_t *next; // ptr to next error
127 }; 128 };
128 129
129 struct line_expr_s 130 struct line_expr_s
130 { 131 {
320 321
321 #ifndef ___lwasm_c_seen___ 322 #ifndef ___lwasm_c_seen___
322 323
323 extern void lwasm_register_error(asmstate_t *as, line_t *cl, const char *msg, ...); 324 extern void lwasm_register_error(asmstate_t *as, line_t *cl, const char *msg, ...);
324 extern void lwasm_register_warning(asmstate_t *as, line_t *cl, const char *msg, ...); 325 extern void lwasm_register_warning(asmstate_t *as, line_t *cl, const char *msg, ...);
326
327 extern void lwasm_register_error_n(asmstate_t *as, line_t *cl, char *iptr, const char *msg, ...);
328 extern void lwasm_register_warning_n(asmstate_t *as, line_t *cl, char *iptr, const char *msg, ...);
329
325 extern int lwasm_next_context(asmstate_t *as); 330 extern int lwasm_next_context(asmstate_t *as);
326 extern void lwasm_emit(line_t *cl, int byte); 331 extern void lwasm_emit(line_t *cl, int byte);
327 extern void lwasm_emitop(line_t *cl, int opc); 332 extern void lwasm_emitop(line_t *cl, int opc);
328 333
329 extern void lwasm_save_expr(line_t *cl, int id, lw_expr_t expr); 334 extern void lwasm_save_expr(line_t *cl, int id, lw_expr_t expr);