Mercurial > hg > index.cgi
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); |