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