libyasm

libyasm/linemap.h

Go to the documentation of this file.
00001 
00030 #ifndef YASM_LINEMAP_H
00031 #define YASM_LINEMAP_H
00032 
00033 #ifndef YASM_LIB_DECL
00034 #define YASM_LIB_DECL
00035 #endif
00036 
00040 YASM_LIB_DECL
00041 yasm_linemap *yasm_linemap_create(void);
00042 
00046 YASM_LIB_DECL
00047 void yasm_linemap_destroy(yasm_linemap *linemap);
00048 
00053 YASM_LIB_DECL
00054 unsigned long yasm_linemap_get_current(yasm_linemap *linemap);
00055 
00065 YASM_LIB_DECL
00066 int yasm_linemap_get_source(yasm_linemap *linemap, unsigned long line,
00067                             /*@null@*/ yasm_bytecode **bcp,
00068                             const char **sourcep);
00069 
00078 YASM_LIB_DECL
00079 void yasm_linemap_add_source(yasm_linemap *linemap,
00080                              /*@null@*/ yasm_bytecode *bc,
00081                              const char *source);
00082 
00087 YASM_LIB_DECL
00088 unsigned long yasm_linemap_goto_next(yasm_linemap *linemap);
00089 
00099 YASM_LIB_DECL
00100 void yasm_linemap_set(yasm_linemap *linemap, /*@null@*/ const char *filename,
00101                       unsigned long virtual_line, unsigned long file_line,
00102                       unsigned long line_inc);
00103 
00112 YASM_LIB_DECL
00113 unsigned long yasm_linemap_poke(yasm_linemap *linemap,
00114                                 /*@null@*/ const char *filename,
00115                                 unsigned long file_line);
00116 
00123 YASM_LIB_DECL
00124 void yasm_linemap_lookup(yasm_linemap *linemap, unsigned long line,
00125                          /*@out@*/ const char **filename,
00126                          /*@out@*/ unsigned long *file_line);
00127 
00136 YASM_LIB_DECL
00137 int yasm_linemap_traverse_filenames
00138     (yasm_linemap *linemap, /*@null@*/ void *d,
00139      int (*func) (const char *filename, void *d));
00140 
00141 #endif