comparison src/lwasm.h @ 26:d2e86babd958

Added error tracking infrastructure
author lost
date Fri, 02 Jan 2009 02:38:02 +0000
parents 3c0e5f311c95
children f736579569b4
comparison
equal deleted inserted replaced
25:3b818f05dc2a 26:d2e86babd958
26 26
27 #define OUTPUT_DECB 0 // DECB multirecord format 27 #define OUTPUT_DECB 0 // DECB multirecord format
28 #define OUTPUT_RAW 1 // raw sequence of bytes 28 #define OUTPUT_RAW 1 // raw sequence of bytes
29 #define OUTPUT_OBJ 2 // proprietary object file format 29 #define OUTPUT_OBJ 2 // proprietary object file format
30 30
31 // structure for tracking errors
32 typedef struct lwasm_error_s lwasm_error_t;
33 struct lwasm_error_s
34 {
35 char *mess; // the actual error message
36 lwasm_error_t *next; // ptr to next error
37 };
38
31 // structure for keeping track of lines 39 // structure for keeping track of lines
32 typedef struct lwasm_line_s lwasm_line_t; 40 typedef struct lwasm_line_s lwasm_line_t;
33 struct lwasm_line_s { 41 struct lwasm_line_s {
34 char *text; // the actual text of the line 42 char *text; // the actual text of the line
35 int lineno; // line number within the file 43 int lineno; // line number within the file
36 char *filename; // file name reference 44 char *filename; // file name reference
37 lwasm_line_t *next; // next line 45 lwasm_line_t *next; // next line
38 lwasm_line_t *prev; // previous line 46 lwasm_line_t *prev; // previous line
47 lwasm_error_t *err; // error messages
39 }; 48 };
40 49
41 // keep track of current assembler state 50 // keep track of current assembler state
42 typedef struct { 51 typedef struct {
43 int dpval; // current dp value (setdp) 52 int dpval; // current dp value (setdp)
59 int filelistlen; // number of files in the list 68 int filelistlen; // number of files in the list
60 } asmstate_t; 69 } asmstate_t;
61 70
62 #define PRAGMA_NOINDEX0TONONE 1 71 #define PRAGMA_NOINDEX0TONONE 1
63 72
73 #ifndef __lwasm_c_seen__
74 #define __lwasm_E__ extern
75 #else
76 #define __lwasm_E__
77 #endif
78
79 __lwasm_E__ int register_error(asmstate_t *as, lwasm_line_t *l, int pass, const char *fmt, ...);
80
81 #undef __lwasm_E__
82
83
64 #ifndef __symtab_c_seen__ 84 #ifndef __symtab_c_seen__
65 //extern void register_symbol(asmstate_t *as, sourceline_t *cl, char *symstr, int val, int flags); 85 //extern void register_symbol(asmstate_t *as, sourceline_t *cl, char *symstr, int val, int flags);
66 //extern int lookup_symbol(asmstate_t *as, char *symstr); 86 //extern int lookup_symbol(asmstate_t *as, char *symstr);
67 //extern void list_symbols(asmstate_t *as, FILE *f); 87 //extern void list_symbols(asmstate_t *as, FILE *f);
68 #endif 88 #endif