1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3 <title>ohcount: /Users/andy/dev/ohcount/src/parser_macros.h Source File</title>
4 <link href="tabs.css" rel="stylesheet" type="text/css">
5 <link href="doxygen.css" rel="stylesheet" type="text/css">
7 <!-- Generated by Doxygen 1.5.9 -->
8 <div class="navigation" id="top">
11 <li><a href="index.html"><span>Main Page</span></a></li>
12 <li><a href="pages.html"><span>Related Pages</span></a></li>
13 <li><a href="annotated.html"><span>Data Structures</span></a></li>
14 <li class="current"><a href="files.html"><span>Files</span></a></li>
19 <li><a href="files.html"><span>File List</span></a></li>
20 <li><a href="globals.html"><span>Globals</span></a></li>
23 <h1>/Users/andy/dev/ohcount/src/parser_macros.h</h1><a href="parser__macros_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">// parser_macros.h written by Mitchell Foral. mitchell<att>caladbolg.net.</span>
24 <a name="l00002"></a>00002 <span class="comment">// See COPYING for license information.</span>
25 <a name="l00003"></a>00003
26 <a name="l00004"></a>00004 <span class="preprocessor">#ifndef OHCOUNT_PARSER_MACROS_H</span>
27 <a name="l00005"></a>00005 <span class="preprocessor"></span><span class="preprocessor">#define OHCOUNT_PARSER_MACROS_H</span>
28 <a name="l00006"></a>00006 <span class="preprocessor"></span>
29 <a name="l00007"></a>00007 <span class="preprocessor">#include <stdio.h></span>
30 <a name="l00008"></a>00008 <span class="preprocessor">#include <stdlib.h></span>
31 <a name="l00009"></a>00009
32 <a name="l00010"></a>00010 <span class="preprocessor">#include "<a class="code" href="languages_8h.html">languages.h</a>"</span>
33 <a name="l00011"></a>00011
34 <a name="l00016"></a><a class="code" href="structCallbackItem.html">00016</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structCallbackItem.html" title="Holds a series of callbacks for in a queue (linked list).">CallbackItem</a> {
35 <a name="l00021"></a><a class="code" href="structCallbackItem.html#237c8f04fb54776907b484a4ad035378">00021</a> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structCallbackItem.html#237c8f04fb54776907b484a4ad035378">lang</a>;
36 <a name="l00022"></a>00022
37 <a name="l00027"></a><a class="code" href="structCallbackItem.html#1f75241a44f402eeda9dcc343a42ca5f">00027</a> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structCallbackItem.html#1f75241a44f402eeda9dcc343a42ca5f">entity</a>;
38 <a name="l00028"></a>00028
39 <a name="l00030"></a><a class="code" href="structCallbackItem.html#34b3dcf62463c3e3d87cce3750037875">00030</a> <span class="keywordtype">int</span> <a class="code" href="structCallbackItem.html#34b3dcf62463c3e3d87cce3750037875">s</a>;
40 <a name="l00031"></a>00031
41 <a name="l00033"></a><a class="code" href="structCallbackItem.html#9081e86db26139a01568c1564b22757e">00033</a> <span class="keywordtype">int</span> <a class="code" href="structCallbackItem.html#9081e86db26139a01568c1564b22757e">e</a>;
42 <a name="l00034"></a>00034
43 <a name="l00036"></a><a class="code" href="structCallbackItem.html#7cf52c1b04b39c611e640b6e9b294bfb">00036</a> <span class="keywordtype">void</span> *<a class="code" href="structCallbackItem.html#7cf52c1b04b39c611e640b6e9b294bfb">udata</a>;
44 <a name="l00037"></a>00037
45 <a name="l00039"></a><a class="code" href="structCallbackItem.html#c8d931750f9fdd82adc6b61d88da6e78">00039</a> <span class="keyword">struct </span><a class="code" href="structCallbackItem.html" title="Holds a series of callbacks for in a queue (linked list).">CallbackItem</a> *<a class="code" href="structCallbackItem.html#c8d931750f9fdd82adc6b61d88da6e78">next</a>;
46 <a name="l00040"></a>00040
47 <a name="l00041"></a>00041 } <a class="code" href="structCallbackItem.html" title="Holds a series of callbacks for in a queue (linked list).">Callback</a>;
48 <a name="l00042"></a>00042
49 <a name="l00044"></a><a class="code" href="parser__macros_8h.html#55de8ae2eeb299ec915f3f3dc354476e">00044</a> <a class="code" href="structCallbackItem.html" title="Holds a series of callbacks for in a queue (linked list).">Callback</a> *<a class="code" href="parser__macros_8h.html#55de8ae2eeb299ec915f3f3dc354476e">callback_list_head</a> = NULL;
50 <a name="l00045"></a>00045
51 <a name="l00047"></a><a class="code" href="parser__macros_8h.html#72a0d9ad9216bded86e30678b4972814">00047</a> <a class="code" href="structCallbackItem.html" title="Holds a series of callbacks for in a queue (linked list).">Callback</a> *<a class="code" href="parser__macros_8h.html#72a0d9ad9216bded86e30678b4972814">callback_list_tail</a> = NULL;
52 <a name="l00048"></a>00048
53 <a name="l00070"></a><a class="code" href="parser__macros_8h.html#cef933f90a0bd6318613e93f39067ac8">00070</a> <span class="keywordtype">void</span> <a class="code" href="parser__macros_8h.html#cef933f90a0bd6318613e93f39067ac8">enqueue</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structCallbackItem.html#237c8f04fb54776907b484a4ad035378">lang</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="parser__macros_8h.html#d4e4601988acb4a95ecd1ec380359ae5">entity</a>, <span class="keywordtype">int</span> <a class="code" href="structCallbackItem.html#34b3dcf62463c3e3d87cce3750037875">s</a>, <span class="keywordtype">int</span> <a class="code" href="structCallbackItem.html#9081e86db26139a01568c1564b22757e">e</a>, <span class="keywordtype">void</span> *<a class="code" href="structCallbackItem.html#7cf52c1b04b39c611e640b6e9b294bfb">udata</a>) {
54 <a name="l00071"></a>00071 <a class="code" href="structCallbackItem.html" title="Holds a series of callbacks for in a queue (linked list).">Callback</a> *item = (<a class="code" href="structCallbackItem.html" title="Holds a series of callbacks for in a queue (linked list).">Callback</a> *) malloc(<span class="keyword">sizeof</span>(<a class="code" href="structCallbackItem.html" title="Holds a series of callbacks for in a queue (linked list).">Callback</a>));
55 <a name="l00072"></a>00072 <span class="keywordflow">if</span> (!item) printf(<span class="stringliteral">"Failed to allocate memory for enqueued callback.\n"</span>);
56 <a name="l00073"></a>00073
57 <a name="l00074"></a>00074 item-><a class="code" href="structCallbackItem.html#237c8f04fb54776907b484a4ad035378">lang</a> = lang;
58 <a name="l00075"></a>00075 item-><a class="code" href="structCallbackItem.html#1f75241a44f402eeda9dcc343a42ca5f">entity</a> = entity;
59 <a name="l00076"></a>00076 item-><a class="code" href="structCallbackItem.html#34b3dcf62463c3e3d87cce3750037875">s</a> = s;
60 <a name="l00077"></a>00077 item-><a class="code" href="structCallbackItem.html#9081e86db26139a01568c1564b22757e">e</a> = e;
61 <a name="l00078"></a>00078 item-><a class="code" href="structCallbackItem.html#7cf52c1b04b39c611e640b6e9b294bfb">udata</a> = udata;
62 <a name="l00079"></a>00079 item-><a class="code" href="structCallbackItem.html#c8d931750f9fdd82adc6b61d88da6e78">next</a> = NULL;
63 <a name="l00080"></a>00080
64 <a name="l00081"></a>00081 <span class="keywordflow">if</span> (!callback_list_head) {
65 <a name="l00082"></a>00082 callback_list_head = item;
66 <a name="l00083"></a>00083 callback_list_tail = item;
67 <a name="l00084"></a>00084 } <span class="keywordflow">else</span> {
68 <a name="l00085"></a>00085 callback_list_tail-><a class="code" href="structCallbackItem.html#c8d931750f9fdd82adc6b61d88da6e78">next</a> = item;
69 <a name="l00086"></a>00086 callback_list_tail = item;
70 <a name="l00087"></a>00087 }
71 <a name="l00088"></a>00088 }
72 <a name="l00089"></a>00089
73 <a name="l00091"></a><a class="code" href="parser__macros_8h.html#666ec961128241e997f03af3ae16a2ea">00091</a> <span class="keywordtype">void</span> <a class="code" href="parser__macros_8h.html#666ec961128241e997f03af3ae16a2ea">free_queue</a>() {
74 <a name="l00092"></a>00092 <a class="code" href="structCallbackItem.html" title="Holds a series of callbacks for in a queue (linked list).">Callback</a> *item = callback_list_head;
75 <a name="l00093"></a>00093 <span class="keywordflow">while</span> (item) {
76 <a name="l00094"></a>00094 <a class="code" href="structCallbackItem.html" title="Holds a series of callbacks for in a queue (linked list).">Callback</a> *<a class="code" href="structCallbackItem.html#c8d931750f9fdd82adc6b61d88da6e78">next</a> = item-><a class="code" href="structCallbackItem.html#c8d931750f9fdd82adc6b61d88da6e78">next</a>;
77 <a name="l00095"></a>00095 free(item);
78 <a name="l00096"></a>00096 item = next;
79 <a name="l00097"></a>00097 }
80 <a name="l00098"></a>00098 callback_list_head = NULL;
81 <a name="l00099"></a>00099 callback_list_tail = NULL;
82 <a name="l00100"></a>00100 }
83 <a name="l00101"></a>00101
84 <a name="l00107"></a><a class="code" href="parser__macros_8h.html#6da05469a748b57f676bbf67a842b25e">00107</a> <span class="preprocessor">#define dequeue { \</span>
85 <a name="l00108"></a>00108 <span class="preprocessor"> inqueue = 0; \</span>
86 <a name="l00109"></a>00109 <span class="preprocessor"> line_start = last_line_start; \</span>
87 <a name="l00110"></a>00110 <span class="preprocessor"> line_contains_code = last_line_contains_code; \</span>
88 <a name="l00111"></a>00111 <span class="preprocessor"> whole_line_comment = last_whole_line_comment; \</span>
89 <a name="l00112"></a>00112 <span class="preprocessor">}</span>
90 <a name="l00113"></a>00113 <span class="preprocessor"></span>
91 <a name="l00119"></a><a class="code" href="parser__macros_8h.html#a4df6978a0e35c95ca051f1da0dd7e86">00119</a> <span class="preprocessor">#define ls { \</span>
92 <a name="l00120"></a>00120 <span class="preprocessor"> if (inqueue) { dequeue; } \</span>
93 <a name="l00121"></a>00121 <span class="preprocessor"> if (!line_start) line_start = ts; \</span>
94 <a name="l00122"></a>00122 <span class="preprocessor">}</span>
95 <a name="l00123"></a>00123 <span class="preprocessor"></span>
96 <a name="l00130"></a><a class="code" href="parser__macros_8h.html#814f6dab3b0678113d97a3684282934a">00130</a> <span class="preprocessor">#define code { \</span>
97 <a name="l00131"></a>00131 <span class="preprocessor"> if (inqueue) { dequeue; } \</span>
98 <a name="l00132"></a>00132 <span class="preprocessor"> if (!line_contains_code && !line_start) line_start = ts; \</span>
99 <a name="l00133"></a>00133 <span class="preprocessor"> line_contains_code = 1; \</span>
100 <a name="l00134"></a>00134 <span class="preprocessor">}</span>
101 <a name="l00135"></a>00135 <span class="preprocessor"></span>
102 <a name="l00141"></a><a class="code" href="parser__macros_8h.html#43be22b7a1b528eaf759e034ec581543">00141</a> <span class="preprocessor">#define comment { \</span>
103 <a name="l00142"></a>00142 <span class="preprocessor"> if (inqueue) { dequeue; } \</span>
104 <a name="l00143"></a>00143 <span class="preprocessor"> if (!line_contains_code) { \</span>
105 <a name="l00144"></a>00144 <span class="preprocessor"> whole_line_comment = 1; \</span>
106 <a name="l00145"></a>00145 <span class="preprocessor"> if (!line_start) line_start = ts; \</span>
107 <a name="l00146"></a>00146 <span class="preprocessor"> } \</span>
108 <a name="l00147"></a>00147 <span class="preprocessor">}</span>
109 <a name="l00148"></a>00148 <span class="preprocessor"></span>
110 <a name="l00157"></a><a class="code" href="parser__macros_8h.html#e9fb722b81bbd8bb0e1de37941fab172">00157</a> <span class="preprocessor">#define saw(lang) { \</span>
111 <a name="l00158"></a>00158 <span class="preprocessor"> seen = lang; \</span>
112 <a name="l00159"></a>00159 <span class="preprocessor"> whole_line_comment = 0; \</span>
113 <a name="l00160"></a>00160 <span class="preprocessor"> line_contains_code = 0; \</span>
114 <a name="l00161"></a>00161 <span class="preprocessor">}</span>
115 <a name="l00162"></a>00162 <span class="preprocessor"></span>
116 <a name="l00169"></a><a class="code" href="parser__macros_8h.html#b08c3ed468f4ad3e1a9d391c1a4337d0">00169</a> <span class="preprocessor">#define std_internal_newline(lang) { \</span>
117 <a name="l00170"></a>00170 <span class="preprocessor"> if (callback && p > line_start) { \</span>
118 <a name="l00171"></a>00171 <span class="preprocessor"> if (line_contains_code) { \</span>
119 <a name="l00172"></a>00172 <span class="preprocessor"> if (inqueue) \</span>
120 <a name="l00173"></a>00173 <span class="preprocessor"> enqueue(lang, "lcode", cint(line_start), cint(p), userdata); \</span>
121 <a name="l00174"></a>00174 <span class="preprocessor"> else \</span>
122 <a name="l00175"></a>00175 <span class="preprocessor"> callback(lang, "lcode", cint(line_start), cint(p), userdata); \</span>
123 <a name="l00176"></a>00176 <span class="preprocessor"> } else if (whole_line_comment) { \</span>
124 <a name="l00177"></a>00177 <span class="preprocessor"> if (inqueue) \</span>
125 <a name="l00178"></a>00178 <span class="preprocessor"> enqueue(lang, "lcomment", cint(line_start), cint(p), userdata); \</span>
126 <a name="l00179"></a>00179 <span class="preprocessor"> else \</span>
127 <a name="l00180"></a>00180 <span class="preprocessor"> callback(lang, "lcomment", cint(line_start), cint(p), userdata); \</span>
128 <a name="l00181"></a>00181 <span class="preprocessor"> } else { \</span>
129 <a name="l00182"></a>00182 <span class="preprocessor"> if (inqueue) \</span>
130 <a name="l00183"></a>00183 <span class="preprocessor"> enqueue(lang, "lblank", cint(line_start), cint(p), userdata); \</span>
131 <a name="l00184"></a>00184 <span class="preprocessor"> else \</span>
132 <a name="l00185"></a>00185 <span class="preprocessor"> callback(lang, "lblank", cint(line_start), cint(p), userdata); \</span>
133 <a name="l00186"></a>00186 <span class="preprocessor"> } \</span>
134 <a name="l00187"></a>00187 <span class="preprocessor"> } \</span>
135 <a name="l00188"></a>00188 <span class="preprocessor"> whole_line_comment = 0; \</span>
136 <a name="l00189"></a>00189 <span class="preprocessor"> line_contains_code = 0; \</span>
137 <a name="l00190"></a>00190 <span class="preprocessor"> line_start = p; \</span>
138 <a name="l00191"></a>00191 <span class="preprocessor">}</span>
139 <a name="l00192"></a>00192 <span class="preprocessor"></span>
140 <a name="l00201"></a><a class="code" href="parser__macros_8h.html#2822d59197758531b6f4a0cc13d0257b">00201</a> <span class="preprocessor">#define emb_internal_newline(lang) { \</span>
141 <a name="l00202"></a>00202 <span class="preprocessor"> if (seen && seen != lang) \</span>
142 <a name="l00203"></a>00203 <span class="preprocessor"> std_internal_newline(seen) \</span>
143 <a name="l00204"></a>00204 <span class="preprocessor"> else \</span>
144 <a name="l00205"></a>00205 <span class="preprocessor"> std_internal_newline(lang) \</span>
145 <a name="l00206"></a>00206 <span class="preprocessor"> seen = 0; \</span>
146 <a name="l00207"></a>00207 <span class="preprocessor">}</span>
147 <a name="l00208"></a>00208 <span class="preprocessor"></span>
148 <a name="l00215"></a><a class="code" href="parser__macros_8h.html#aaf8abebfd56b683567c15bfa3f063f1">00215</a> <span class="preprocessor">#define std_newline(lang) {\</span>
149 <a name="l00216"></a>00216 <span class="preprocessor"> if (inqueue) { dequeue; } \</span>
150 <a name="l00217"></a>00217 <span class="preprocessor"> if (callback && te > line_start) { \</span>
151 <a name="l00218"></a>00218 <span class="preprocessor"> if (line_contains_code) \</span>
152 <a name="l00219"></a>00219 <span class="preprocessor"> callback(lang, "lcode", cint(line_start), cint(te), userdata); \</span>
153 <a name="l00220"></a>00220 <span class="preprocessor"> else if (whole_line_comment) \</span>
154 <a name="l00221"></a>00221 <span class="preprocessor"> callback(lang, "lcomment", cint(line_start), cint(te), userdata); \</span>
155 <a name="l00222"></a>00222 <span class="preprocessor"> else \</span>
156 <a name="l00223"></a>00223 <span class="preprocessor"> callback(lang, "lblank", cint(ts), cint(te), userdata); \</span>
157 <a name="l00224"></a>00224 <span class="preprocessor"> } \</span>
158 <a name="l00225"></a>00225 <span class="preprocessor"> whole_line_comment = 0; \</span>
159 <a name="l00226"></a>00226 <span class="preprocessor"> line_contains_code = 0; \</span>
160 <a name="l00227"></a>00227 <span class="preprocessor"> line_start = 0; \</span>
161 <a name="l00228"></a>00228 <span class="preprocessor">}</span>
162 <a name="l00229"></a>00229 <span class="preprocessor"></span>
163 <a name="l00238"></a><a class="code" href="parser__macros_8h.html#b5304b201ce6824e3c021e245d6a5e94">00238</a> <span class="preprocessor">#define emb_newline(lang) { \</span>
164 <a name="l00239"></a>00239 <span class="preprocessor"> if (seen && seen != lang) \</span>
165 <a name="l00240"></a>00240 <span class="preprocessor"> std_newline(seen) \</span>
166 <a name="l00241"></a>00241 <span class="preprocessor"> else \</span>
167 <a name="l00242"></a>00242 <span class="preprocessor"> std_newline(lang) \</span>
168 <a name="l00243"></a>00243 <span class="preprocessor"> seen = 0; \</span>
169 <a name="l00244"></a>00244 <span class="preprocessor">}</span>
170 <a name="l00245"></a>00245 <span class="preprocessor"></span>
171 <a name="l00253"></a><a class="code" href="parser__macros_8h.html#1adf47f60e418da0f0c3caa471728021">00253</a> <span class="preprocessor">#define process_last_line(lang) {\</span>
172 <a name="l00254"></a>00254 <span class="preprocessor"> if ((whole_line_comment || line_contains_code) && callback) { \</span>
173 <a name="l00255"></a>00255 <span class="preprocessor"> if (line_contains_code) \</span>
174 <a name="l00256"></a>00256 <span class="preprocessor"> callback(lang, "lcode", cint(line_start), cint(pe), userdata); \</span>
175 <a name="l00257"></a>00257 <span class="preprocessor"> else if (whole_line_comment) \</span>
176 <a name="l00258"></a>00258 <span class="preprocessor"> callback(lang, "lcomment", cint(line_start), cint(pe), userdata); \</span>
177 <a name="l00259"></a>00259 <span class="preprocessor"> } \</span>
178 <a name="l00260"></a>00260 <span class="preprocessor">}</span>
179 <a name="l00261"></a>00261 <span class="preprocessor"></span>
180 <a name="l00270"></a><a class="code" href="parser__macros_8h.html#33c0ec8adc93c385bb9560eb42cb52e2">00270</a> <span class="keywordtype">int</span> <a class="code" href="parser__macros_8h.html#33c0ec8adc93c385bb9560eb42cb52e2">is_blank_entry</a>(<span class="keywordtype">char</span> **<a class="code" href="parser__macros_8h.html#aa1ebe818ec1c763a776cc580551f3e6">p</a>) {
181 <a name="l00271"></a>00271 <span class="keywordtype">char</span> *pos = *p+1;
182 <a name="l00272"></a>00272 <span class="keywordflow">while</span> (*pos != <span class="charliteral">'\n'</span> && *pos != <span class="charliteral">'\r'</span> && *pos != <span class="charliteral">'\f'</span>) {
183 <a name="l00273"></a>00273 <span class="keywordflow">if</span> (*pos != <span class="charliteral">'\t'</span> && *pos != <span class="charliteral">' '</span>) <span class="keywordflow">return</span> 0;
184 <a name="l00274"></a>00274 pos++;
185 <a name="l00275"></a>00275 }
186 <a name="l00276"></a>00276 <span class="keywordflow">if</span> (*pos == <span class="charliteral">'\r'</span> && *(pos+1) == <span class="charliteral">'\n'</span>) pos++;
187 <a name="l00277"></a>00277 *p = pos;
188 <a name="l00278"></a>00278 <span class="keywordflow">return</span> 1;
189 <a name="l00279"></a>00279 }
190 <a name="l00280"></a>00280
191 <a name="l00291"></a><a class="code" href="parser__macros_8h.html#dcdd4261cb35490ebe8f88afd0b4787c">00291</a> <span class="preprocessor">#define check_blank_entry(lang) { \</span>
192 <a name="l00292"></a>00292 <span class="preprocessor"> if (is_blank_entry(&p)) { \</span>
193 <a name="l00293"></a>00293 <span class="preprocessor"> te = p + 1; \</span>
194 <a name="l00294"></a>00294 <span class="preprocessor"> std_newline(lang) \</span>
195 <a name="l00295"></a>00295 <span class="preprocessor"> } \</span>
196 <a name="l00296"></a>00296 <span class="preprocessor">}</span>
197 <a name="l00297"></a>00297 <span class="preprocessor"></span>
198 <a name="l00298"></a>00298 <span class="comment">// Variables used by all parsers. Do not modify.</span>
199 <a name="l00299"></a>00299
200 <a name="l00304"></a><a class="code" href="parser__macros_8h.html#806511f4930171733227c99101dc0606">00304</a> <span class="preprocessor">#define NEWLINE -1</span>
201 <a name="l00305"></a>00305 <span class="preprocessor"></span>
202 <a name="l00312"></a><a class="code" href="parser__macros_8h.html#7e82c89c9a3dc533077791088d1ee77b">00312</a> <span class="preprocessor">#define INTERNAL_NL -2</span>
203 <a name="l00313"></a>00313 <span class="preprocessor"></span>
204 <a name="l00321"></a><a class="code" href="parser__macros_8h.html#a48fd5c8dbc18cdf9daaa5810227f829">00321</a> <span class="preprocessor">#define CHECK_BLANK_ENTRY -3</span>
205 <a name="l00322"></a>00322 <span class="preprocessor"></span>
206 <a name="l00324"></a><a class="code" href="parser__macros_8h.html#d35c7ed2784f4fb57849237ce534f17e">00324</a> <span class="keywordtype">int</span> <a class="code" href="parser__macros_8h.html#d35c7ed2784f4fb57849237ce534f17e">cs</a>;
207 <a name="l00325"></a>00325
208 <a name="l00327"></a><a class="code" href="parser__macros_8h.html#534c5331d9ff060f0e653d61e72f489f">00327</a> <span class="keywordtype">int</span> <a class="code" href="parser__macros_8h.html#534c5331d9ff060f0e653d61e72f489f">act</a>;
209 <a name="l00328"></a>00328
210 <a name="l00330"></a><a class="code" href="parser__macros_8h.html#aa1ebe818ec1c763a776cc580551f3e6">00330</a> <span class="keywordtype">char</span> *<a class="code" href="parser__macros_8h.html#aa1ebe818ec1c763a776cc580551f3e6">p</a>;
211 <a name="l00331"></a>00331
212 <a name="l00333"></a><a class="code" href="parser__macros_8h.html#46103ad966e7f0e086263030e54a2615">00333</a> <span class="keywordtype">char</span> *<a class="code" href="parser__macros_8h.html#46103ad966e7f0e086263030e54a2615">pe</a>;
213 <a name="l00334"></a>00334
214 <a name="l00336"></a><a class="code" href="parser__macros_8h.html#0f4922f5f610d7bd7db8c21a597b3641">00336</a> <span class="keywordtype">char</span> *<a class="code" href="parser__macros_8h.html#0f4922f5f610d7bd7db8c21a597b3641">eof</a>;
215 <a name="l00337"></a>00337
216 <a name="l00339"></a><a class="code" href="parser__macros_8h.html#366fc4d3a72013313c8b00233a5a7690">00339</a> <span class="keywordtype">char</span> *<a class="code" href="parser__macros_8h.html#366fc4d3a72013313c8b00233a5a7690">ts</a>;
217 <a name="l00340"></a>00340
218 <a name="l00342"></a><a class="code" href="parser__macros_8h.html#49aa6b4212d238e0be3312cf89738b98">00342</a> <span class="keywordtype">char</span> *<a class="code" href="parser__macros_8h.html#49aa6b4212d238e0be3312cf89738b98">te</a>;
219 <a name="l00343"></a>00343
220 <a name="l00345"></a><a class="code" href="parser__macros_8h.html#1998d6eddc359fdb029fe1dc0b9a50b3">00345</a> <span class="keywordtype">int</span> <a class="code" href="parser__macros_8h.html#1998d6eddc359fdb029fe1dc0b9a50b3">stack</a>[5];
221 <a name="l00346"></a>00346
222 <a name="l00348"></a><a class="code" href="parser__macros_8h.html#f93f4f37fc2ad9c37af4a715423b110c">00348</a> <span class="keywordtype">int</span> <a class="code" href="parser__macros_8h.html#f93f4f37fc2ad9c37af4a715423b110c">top</a>;
223 <a name="l00349"></a>00349
224 <a name="l00351"></a><a class="code" href="parser__macros_8h.html#f127db1c17ed58547ff5125a912d02b9">00351</a> <span class="keywordtype">char</span> *<a class="code" href="parser__macros_8h.html#f127db1c17ed58547ff5125a912d02b9">buffer_start</a>;
225 <a name="l00352"></a>00352
226 <a name="l00359"></a><a class="code" href="parser__macros_8h.html#cc0eb0fbef1d4e1ccb5cf27961af93ad">00359</a> <span class="preprocessor">#define cint(c) ((int) (c - buffer_start))</span>
227 <a name="l00360"></a>00360 <span class="preprocessor"></span>
228 <a name="l00365"></a><a class="code" href="parser__macros_8h.html#6610fa10e2ad8df10bb6e04babf0bbd8">00365</a> <span class="keywordtype">int</span> <a class="code" href="parser__macros_8h.html#6610fa10e2ad8df10bb6e04babf0bbd8">whole_line_comment</a>;
229 <a name="l00366"></a>00366
230 <a name="l00371"></a><a class="code" href="parser__macros_8h.html#6c107b5ead58c230e358212891737cc3">00371</a> <span class="keywordtype">int</span> <a class="code" href="parser__macros_8h.html#6c107b5ead58c230e358212891737cc3">line_contains_code</a>;
231 <a name="l00372"></a>00372
232 <a name="l00377"></a><a class="code" href="parser__macros_8h.html#6f5b3cc3254a82d5d28a418a40f59272">00377</a> <span class="keywordtype">char</span> *<a class="code" href="parser__macros_8h.html#6f5b3cc3254a82d5d28a418a40f59272">line_start</a>;
233 <a name="l00378"></a>00378
234 <a name="l00380"></a><a class="code" href="parser__macros_8h.html#d4e4601988acb4a95ecd1ec380359ae5">00380</a> <span class="keywordtype">int</span> <a class="code" href="parser__macros_8h.html#d4e4601988acb4a95ecd1ec380359ae5">entity</a>;
235 <a name="l00381"></a>00381
236 <a name="l00386"></a><a class="code" href="parser__macros_8h.html#289e4572ae2214b56c963362620009ce">00386</a> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="parser__macros_8h.html#289e4572ae2214b56c963362620009ce">seen</a>;
237 <a name="l00387"></a>00387
238 <a name="l00393"></a><a class="code" href="parser__macros_8h.html#a38b98ec2e96f92062cc7d5fa8ece8a4">00393</a> <span class="keywordtype">int</span> <a class="code" href="parser__macros_8h.html#a38b98ec2e96f92062cc7d5fa8ece8a4">inqueue</a>;
239 <a name="l00394"></a>00394
240 <a name="l00399"></a><a class="code" href="parser__macros_8h.html#207101bbc948307c92f53d6521e3e85c">00399</a> <span class="keywordtype">char</span> *<a class="code" href="parser__macros_8h.html#207101bbc948307c92f53d6521e3e85c">last_line_start</a>;
241 <a name="l00400"></a>00400
242 <a name="l00405"></a><a class="code" href="parser__macros_8h.html#c85645edbf093d7ab236c9861ddcdc05">00405</a> <span class="keywordtype">int</span> <a class="code" href="parser__macros_8h.html#c85645edbf093d7ab236c9861ddcdc05">last_line_contains_code</a>;
243 <a name="l00406"></a>00406
244 <a name="l00411"></a><a class="code" href="parser__macros_8h.html#00405ce6c748a07e6ed3e3f91fe1d25e">00411</a> <span class="keywordtype">int</span> <a class="code" href="parser__macros_8h.html#00405ce6c748a07e6ed3e3f91fe1d25e">last_whole_line_comment</a>;
245 <a name="l00412"></a>00412
246 <a name="l00417"></a><a class="code" href="parser__macros_8h.html#c1af3f499e72dfc161f2fce616dfd8e7">00417</a> <span class="preprocessor">#define init { \</span>
247 <a name="l00418"></a>00418 <span class="preprocessor"> p = buffer; \</span>
248 <a name="l00419"></a>00419 <span class="preprocessor"> pe = buffer + length; \</span>
249 <a name="l00420"></a>00420 <span class="preprocessor"> eof = pe; \</span>
250 <a name="l00421"></a>00421 <span class="preprocessor"> \</span>
251 <a name="l00422"></a>00422 <span class="preprocessor"> buffer_start = buffer; \</span>
252 <a name="l00423"></a>00423 <span class="preprocessor"> whole_line_comment = 0; \</span>
253 <a name="l00424"></a>00424 <span class="preprocessor"> line_contains_code = 0; \</span>
254 <a name="l00425"></a>00425 <span class="preprocessor"> line_start = 0; \</span>
255 <a name="l00426"></a>00426 <span class="preprocessor"> entity = 0; \</span>
256 <a name="l00427"></a>00427 <span class="preprocessor"> seen = 0; \</span>
257 <a name="l00428"></a>00428 <span class="preprocessor"> inqueue = 0; \</span>
258 <a name="l00429"></a>00429 <span class="preprocessor">}</span>
259 <a name="l00430"></a>00430 <span class="preprocessor"></span>
260 <a name="l00431"></a>00431 <span class="preprocessor">#endif</span>
262 <hr size="1"><address style="text-align: right;"><small>Generated on Fri Aug 28 15:20:08 2009 for ohcount by
263 <a href="http://www.doxygen.org/index.html">
264 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>