Mercurial > hg-old > index.cgi
diff src/lwasm.h @ 26:d2e86babd958
Added error tracking infrastructure
author | lost |
---|---|
date | Fri, 02 Jan 2009 02:38:02 +0000 |
parents | 3c0e5f311c95 |
children | f736579569b4 |
line wrap: on
line diff
--- a/src/lwasm.h Fri Jan 02 02:03:48 2009 +0000 +++ b/src/lwasm.h Fri Jan 02 02:38:02 2009 +0000 @@ -28,6 +28,14 @@ #define OUTPUT_RAW 1 // raw sequence of bytes #define OUTPUT_OBJ 2 // proprietary object file format +// structure for tracking errors +typedef struct lwasm_error_s lwasm_error_t; +struct lwasm_error_s +{ + char *mess; // the actual error message + lwasm_error_t *next; // ptr to next error +}; + // structure for keeping track of lines typedef struct lwasm_line_s lwasm_line_t; struct lwasm_line_s { @@ -36,6 +44,7 @@ char *filename; // file name reference lwasm_line_t *next; // next line lwasm_line_t *prev; // previous line + lwasm_error_t *err; // error messages }; // keep track of current assembler state @@ -61,6 +70,17 @@ #define PRAGMA_NOINDEX0TONONE 1 +#ifndef __lwasm_c_seen__ +#define __lwasm_E__ extern +#else +#define __lwasm_E__ +#endif + +__lwasm_E__ int register_error(asmstate_t *as, lwasm_line_t *l, int pass, const char *fmt, ...); + +#undef __lwasm_E__ + + #ifndef __symtab_c_seen__ //extern void register_symbol(asmstate_t *as, sourceline_t *cl, char *symstr, int val, int flags); //extern int lookup_symbol(asmstate_t *as, char *symstr);