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);