OLD | NEW |
1 /** | 1 /** |
2 * \file libyasm/linemap.h | 2 * \file libyasm/linemap.h |
3 * \brief YASM virtual line mapping interface. | 3 * \brief YASM virtual line mapping interface. |
4 * | 4 * |
5 * \rcs | 5 * \rcs |
6 * $Id: linemap.h 2101 2008-05-23 06:46:51Z peter $ | 6 * $Id: linemap.h 2259 2010-01-03 01:58:23Z peter $ |
7 * \endrcs | 7 * \endrcs |
8 * | 8 * |
9 * \license | 9 * \license |
10 * Copyright (C) 2002-2007 Peter Johnson | 10 * Copyright (C) 2002-2007 Peter Johnson |
11 * | 11 * |
12 * Redistribution and use in source and binary forms, with or without | 12 * Redistribution and use in source and binary forms, with or without |
13 * modification, are permitted provided that the following conditions | 13 * modification, are permitted provided that the following conditions |
14 * are met: | 14 * are met: |
15 * 1. Redistributions of source code must retain the above copyright | 15 * 1. Redistributions of source code must retain the above copyright |
16 * notice, this list of conditions and the following disclaimer. | 16 * notice, this list of conditions and the following disclaimer. |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
84 /*@null@*/ yasm_bytecode *bc, | 84 /*@null@*/ yasm_bytecode *bc, |
85 const char *source); | 85 const char *source); |
86 | 86 |
87 /** Go to the next line (increments the current virtual line). | 87 /** Go to the next line (increments the current virtual line). |
88 * \param linemap line mapping repository | 88 * \param linemap line mapping repository |
89 * \return The current (new) virtual line. | 89 * \return The current (new) virtual line. |
90 */ | 90 */ |
91 YASM_LIB_DECL | 91 YASM_LIB_DECL |
92 unsigned long yasm_linemap_goto_next(yasm_linemap *linemap); | 92 unsigned long yasm_linemap_goto_next(yasm_linemap *linemap); |
93 | 93 |
94 /** Set a new file/line physical association starting point at the current | 94 /** Set a new file/line physical association starting point at the specified |
95 * virtual line. line_inc indicates how much the "real" line is incremented | 95 * virtual line. line_inc indicates how much the "real" line is incremented |
96 * by for each virtual line increment (0 is perfectly legal). | 96 * by for each virtual line increment (0 is perfectly legal). |
97 * \param linemap line mapping repository | 97 * \param linemap line mapping repository |
98 * \param filename physical file name (if NULL, not changed) | 98 * \param filename physical file name (if NULL, not changed) |
| 99 * \param virtual_line virtual line number (if 0, linemap->current is used) |
99 * \param file_line physical line number | 100 * \param file_line physical line number |
100 * \param line_inc line increment | 101 * \param line_inc line increment |
101 */ | 102 */ |
102 YASM_LIB_DECL | 103 YASM_LIB_DECL |
103 void yasm_linemap_set(yasm_linemap *linemap, /*@null@*/ const char *filename, | 104 void yasm_linemap_set(yasm_linemap *linemap, /*@null@*/ const char *filename, |
104 unsigned long file_line, unsigned long line_inc); | 105 unsigned long virtual_line, unsigned long file_line, |
| 106 unsigned long line_inc); |
105 | 107 |
106 /** Poke a single file/line association, restoring the original physical | 108 /** Poke a single file/line association, restoring the original physical |
107 * association starting point. Caution: increments the current virtual line | 109 * association starting point. Caution: increments the current virtual line |
108 * twice. | 110 * twice. |
109 * \param linemap line mapping repository | 111 * \param linemap line mapping repository |
110 * \param filename physical file name (if NULL, not changed) | 112 * \param filename physical file name (if NULL, not changed) |
111 * \param file_line physical line number | 113 * \param file_line physical line number |
112 * \return The virtual line number of the poked association. | 114 * \return The virtual line number of the poked association. |
113 */ | 115 */ |
114 YASM_LIB_DECL | 116 YASM_LIB_DECL |
(...skipping 19 matching lines...) Expand all Loading... |
134 * \param func function | 136 * \param func function |
135 * \return Stops early (and returns func's return value) if func returns a | 137 * \return Stops early (and returns func's return value) if func returns a |
136 * nonzero value; otherwise 0. | 138 * nonzero value; otherwise 0. |
137 */ | 139 */ |
138 YASM_LIB_DECL | 140 YASM_LIB_DECL |
139 int yasm_linemap_traverse_filenames | 141 int yasm_linemap_traverse_filenames |
140 (yasm_linemap *linemap, /*@null@*/ void *d, | 142 (yasm_linemap *linemap, /*@null@*/ void *d, |
141 int (*func) (const char *filename, void *d)); | 143 int (*func) (const char *filename, void *d)); |
142 | 144 |
143 #endif | 145 #endif |
OLD | NEW |