Codebase list ohcount / d4c3f612-6685-4dc0-9339-5433a0a275c0/main doc / html / parser__macros_8h_source.html
d4c3f612-6685-4dc0-9339-5433a0a275c0/main

Tree @d4c3f612-6685-4dc0-9339-5433a0a275c0/main (Download .tar.gz)

parser__macros_8h_source.html @d4c3f612-6685-4dc0-9339-5433a0a275c0/mainraw · history · blame

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>ohcount: /Users/andy/dev/ohcount/src/parser_macros.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<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&lt;att&gt;caladbolg.net.</span>
<a name="l00002"></a>00002 <span class="comment">// See COPYING for license information.</span>
<a name="l00003"></a>00003 
<a name="l00004"></a>00004 <span class="preprocessor">#ifndef OHCOUNT_PARSER_MACROS_H</span>
<a name="l00005"></a>00005 <span class="preprocessor"></span><span class="preprocessor">#define OHCOUNT_PARSER_MACROS_H</span>
<a name="l00006"></a>00006 <span class="preprocessor"></span>
<a name="l00007"></a>00007 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
<a name="l00008"></a>00008 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
<a name="l00009"></a>00009 
<a name="l00010"></a>00010 <span class="preprocessor">#include "<a class="code" href="languages_8h.html">languages.h</a>"</span>
<a name="l00011"></a>00011 
<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> {
<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>;
<a name="l00022"></a>00022 
<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>;
<a name="l00028"></a>00028 
<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>;
<a name="l00031"></a>00031 
<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>;
<a name="l00034"></a>00034 
<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>;
<a name="l00037"></a>00037 
<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>;
<a name="l00040"></a>00040 
<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>;
<a name="l00042"></a>00042 
<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;
<a name="l00045"></a>00045 
<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;
<a name="l00048"></a>00048 
<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>) {
<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>));
<a name="l00072"></a>00072   <span class="keywordflow">if</span> (!item) printf(<span class="stringliteral">"Failed to allocate memory for enqueued callback.\n"</span>);
<a name="l00073"></a>00073 
<a name="l00074"></a>00074   item-&gt;<a class="code" href="structCallbackItem.html#237c8f04fb54776907b484a4ad035378">lang</a> = lang;
<a name="l00075"></a>00075   item-&gt;<a class="code" href="structCallbackItem.html#1f75241a44f402eeda9dcc343a42ca5f">entity</a> = entity;
<a name="l00076"></a>00076   item-&gt;<a class="code" href="structCallbackItem.html#34b3dcf62463c3e3d87cce3750037875">s</a> = s;
<a name="l00077"></a>00077   item-&gt;<a class="code" href="structCallbackItem.html#9081e86db26139a01568c1564b22757e">e</a> = e;
<a name="l00078"></a>00078   item-&gt;<a class="code" href="structCallbackItem.html#7cf52c1b04b39c611e640b6e9b294bfb">udata</a> = udata;
<a name="l00079"></a>00079   item-&gt;<a class="code" href="structCallbackItem.html#c8d931750f9fdd82adc6b61d88da6e78">next</a> = NULL;
<a name="l00080"></a>00080 
<a name="l00081"></a>00081   <span class="keywordflow">if</span> (!callback_list_head) {
<a name="l00082"></a>00082     callback_list_head = item;
<a name="l00083"></a>00083     callback_list_tail = item;
<a name="l00084"></a>00084   } <span class="keywordflow">else</span> {
<a name="l00085"></a>00085     callback_list_tail-&gt;<a class="code" href="structCallbackItem.html#c8d931750f9fdd82adc6b61d88da6e78">next</a> = item;
<a name="l00086"></a>00086     callback_list_tail = item;
<a name="l00087"></a>00087   }
<a name="l00088"></a>00088 }
<a name="l00089"></a>00089 
<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>() {
<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;
<a name="l00093"></a>00093   <span class="keywordflow">while</span> (item) {
<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-&gt;<a class="code" href="structCallbackItem.html#c8d931750f9fdd82adc6b61d88da6e78">next</a>;
<a name="l00095"></a>00095     free(item);
<a name="l00096"></a>00096     item = next;
<a name="l00097"></a>00097   }
<a name="l00098"></a>00098   callback_list_head = NULL;
<a name="l00099"></a>00099   callback_list_tail = NULL;
<a name="l00100"></a>00100 }
<a name="l00101"></a>00101 
<a name="l00107"></a><a class="code" href="parser__macros_8h.html#6da05469a748b57f676bbf67a842b25e">00107</a> <span class="preprocessor">#define dequeue { \</span>
<a name="l00108"></a>00108 <span class="preprocessor">  inqueue = 0; \</span>
<a name="l00109"></a>00109 <span class="preprocessor">  line_start = last_line_start; \</span>
<a name="l00110"></a>00110 <span class="preprocessor">  line_contains_code = last_line_contains_code; \</span>
<a name="l00111"></a>00111 <span class="preprocessor">  whole_line_comment = last_whole_line_comment; \</span>
<a name="l00112"></a>00112 <span class="preprocessor">}</span>
<a name="l00113"></a>00113 <span class="preprocessor"></span>
<a name="l00119"></a><a class="code" href="parser__macros_8h.html#a4df6978a0e35c95ca051f1da0dd7e86">00119</a> <span class="preprocessor">#define ls { \</span>
<a name="l00120"></a>00120 <span class="preprocessor">  if (inqueue) { dequeue; } \</span>
<a name="l00121"></a>00121 <span class="preprocessor">  if (!line_start) line_start = ts; \</span>
<a name="l00122"></a>00122 <span class="preprocessor">}</span>
<a name="l00123"></a>00123 <span class="preprocessor"></span>
<a name="l00130"></a><a class="code" href="parser__macros_8h.html#814f6dab3b0678113d97a3684282934a">00130</a> <span class="preprocessor">#define code { \</span>
<a name="l00131"></a>00131 <span class="preprocessor">  if (inqueue) { dequeue; } \</span>
<a name="l00132"></a>00132 <span class="preprocessor">  if (!line_contains_code &amp;&amp; !line_start) line_start = ts; \</span>
<a name="l00133"></a>00133 <span class="preprocessor">  line_contains_code = 1; \</span>
<a name="l00134"></a>00134 <span class="preprocessor">}</span>
<a name="l00135"></a>00135 <span class="preprocessor"></span>
<a name="l00141"></a><a class="code" href="parser__macros_8h.html#43be22b7a1b528eaf759e034ec581543">00141</a> <span class="preprocessor">#define comment { \</span>
<a name="l00142"></a>00142 <span class="preprocessor">  if (inqueue) { dequeue; } \</span>
<a name="l00143"></a>00143 <span class="preprocessor">  if (!line_contains_code) { \</span>
<a name="l00144"></a>00144 <span class="preprocessor">    whole_line_comment = 1; \</span>
<a name="l00145"></a>00145 <span class="preprocessor">    if (!line_start) line_start = ts; \</span>
<a name="l00146"></a>00146 <span class="preprocessor">  } \</span>
<a name="l00147"></a>00147 <span class="preprocessor">}</span>
<a name="l00148"></a>00148 <span class="preprocessor"></span>
<a name="l00157"></a><a class="code" href="parser__macros_8h.html#e9fb722b81bbd8bb0e1de37941fab172">00157</a> <span class="preprocessor">#define saw(lang) { \</span>
<a name="l00158"></a>00158 <span class="preprocessor">  seen = lang; \</span>
<a name="l00159"></a>00159 <span class="preprocessor">  whole_line_comment = 0; \</span>
<a name="l00160"></a>00160 <span class="preprocessor">  line_contains_code = 0; \</span>
<a name="l00161"></a>00161 <span class="preprocessor">}</span>
<a name="l00162"></a>00162 <span class="preprocessor"></span>
<a name="l00169"></a><a class="code" href="parser__macros_8h.html#b08c3ed468f4ad3e1a9d391c1a4337d0">00169</a> <span class="preprocessor">#define std_internal_newline(lang) { \</span>
<a name="l00170"></a>00170 <span class="preprocessor">  if (callback &amp;&amp; p &gt; line_start) { \</span>
<a name="l00171"></a>00171 <span class="preprocessor">    if (line_contains_code) { \</span>
<a name="l00172"></a>00172 <span class="preprocessor">      if (inqueue) \</span>
<a name="l00173"></a>00173 <span class="preprocessor">        enqueue(lang, "lcode", cint(line_start), cint(p), userdata); \</span>
<a name="l00174"></a>00174 <span class="preprocessor">      else \</span>
<a name="l00175"></a>00175 <span class="preprocessor">        callback(lang, "lcode", cint(line_start), cint(p), userdata); \</span>
<a name="l00176"></a>00176 <span class="preprocessor">    } else if (whole_line_comment) { \</span>
<a name="l00177"></a>00177 <span class="preprocessor">      if (inqueue) \</span>
<a name="l00178"></a>00178 <span class="preprocessor">        enqueue(lang, "lcomment", cint(line_start), cint(p), userdata); \</span>
<a name="l00179"></a>00179 <span class="preprocessor">      else \</span>
<a name="l00180"></a>00180 <span class="preprocessor">        callback(lang, "lcomment", cint(line_start), cint(p), userdata); \</span>
<a name="l00181"></a>00181 <span class="preprocessor">    } else { \</span>
<a name="l00182"></a>00182 <span class="preprocessor">      if (inqueue) \</span>
<a name="l00183"></a>00183 <span class="preprocessor">        enqueue(lang, "lblank", cint(line_start), cint(p), userdata); \</span>
<a name="l00184"></a>00184 <span class="preprocessor">      else \</span>
<a name="l00185"></a>00185 <span class="preprocessor">        callback(lang, "lblank", cint(line_start), cint(p), userdata); \</span>
<a name="l00186"></a>00186 <span class="preprocessor">    } \</span>
<a name="l00187"></a>00187 <span class="preprocessor">  } \</span>
<a name="l00188"></a>00188 <span class="preprocessor">  whole_line_comment = 0; \</span>
<a name="l00189"></a>00189 <span class="preprocessor">  line_contains_code = 0; \</span>
<a name="l00190"></a>00190 <span class="preprocessor">  line_start = p; \</span>
<a name="l00191"></a>00191 <span class="preprocessor">}</span>
<a name="l00192"></a>00192 <span class="preprocessor"></span>
<a name="l00201"></a><a class="code" href="parser__macros_8h.html#2822d59197758531b6f4a0cc13d0257b">00201</a> <span class="preprocessor">#define emb_internal_newline(lang) { \</span>
<a name="l00202"></a>00202 <span class="preprocessor">  if (seen &amp;&amp; seen != lang) \</span>
<a name="l00203"></a>00203 <span class="preprocessor">    std_internal_newline(seen) \</span>
<a name="l00204"></a>00204 <span class="preprocessor">  else \</span>
<a name="l00205"></a>00205 <span class="preprocessor">    std_internal_newline(lang) \</span>
<a name="l00206"></a>00206 <span class="preprocessor">  seen = 0; \</span>
<a name="l00207"></a>00207 <span class="preprocessor">}</span>
<a name="l00208"></a>00208 <span class="preprocessor"></span>
<a name="l00215"></a><a class="code" href="parser__macros_8h.html#aaf8abebfd56b683567c15bfa3f063f1">00215</a> <span class="preprocessor">#define std_newline(lang) {\</span>
<a name="l00216"></a>00216 <span class="preprocessor">  if (inqueue) { dequeue; } \</span>
<a name="l00217"></a>00217 <span class="preprocessor">  if (callback &amp;&amp; te &gt; line_start) { \</span>
<a name="l00218"></a>00218 <span class="preprocessor">    if (line_contains_code) \</span>
<a name="l00219"></a>00219 <span class="preprocessor">      callback(lang, "lcode", cint(line_start), cint(te), userdata); \</span>
<a name="l00220"></a>00220 <span class="preprocessor">    else if (whole_line_comment) \</span>
<a name="l00221"></a>00221 <span class="preprocessor">      callback(lang, "lcomment", cint(line_start), cint(te), userdata); \</span>
<a name="l00222"></a>00222 <span class="preprocessor">    else \</span>
<a name="l00223"></a>00223 <span class="preprocessor">      callback(lang, "lblank", cint(ts), cint(te), userdata); \</span>
<a name="l00224"></a>00224 <span class="preprocessor">  } \</span>
<a name="l00225"></a>00225 <span class="preprocessor">  whole_line_comment = 0; \</span>
<a name="l00226"></a>00226 <span class="preprocessor">  line_contains_code = 0; \</span>
<a name="l00227"></a>00227 <span class="preprocessor">  line_start = 0; \</span>
<a name="l00228"></a>00228 <span class="preprocessor">}</span>
<a name="l00229"></a>00229 <span class="preprocessor"></span>
<a name="l00238"></a><a class="code" href="parser__macros_8h.html#b5304b201ce6824e3c021e245d6a5e94">00238</a> <span class="preprocessor">#define emb_newline(lang) { \</span>
<a name="l00239"></a>00239 <span class="preprocessor">  if (seen &amp;&amp; seen != lang) \</span>
<a name="l00240"></a>00240 <span class="preprocessor">    std_newline(seen) \</span>
<a name="l00241"></a>00241 <span class="preprocessor">  else \</span>
<a name="l00242"></a>00242 <span class="preprocessor">    std_newline(lang) \</span>
<a name="l00243"></a>00243 <span class="preprocessor">  seen = 0; \</span>
<a name="l00244"></a>00244 <span class="preprocessor">}</span>
<a name="l00245"></a>00245 <span class="preprocessor"></span>
<a name="l00253"></a><a class="code" href="parser__macros_8h.html#1adf47f60e418da0f0c3caa471728021">00253</a> <span class="preprocessor">#define process_last_line(lang) {\</span>
<a name="l00254"></a>00254 <span class="preprocessor">  if ((whole_line_comment || line_contains_code) &amp;&amp; callback) { \</span>
<a name="l00255"></a>00255 <span class="preprocessor">    if (line_contains_code) \</span>
<a name="l00256"></a>00256 <span class="preprocessor">      callback(lang, "lcode", cint(line_start), cint(pe), userdata); \</span>
<a name="l00257"></a>00257 <span class="preprocessor">    else if (whole_line_comment) \</span>
<a name="l00258"></a>00258 <span class="preprocessor">      callback(lang, "lcomment", cint(line_start), cint(pe), userdata); \</span>
<a name="l00259"></a>00259 <span class="preprocessor">  } \</span>
<a name="l00260"></a>00260 <span class="preprocessor">}</span>
<a name="l00261"></a>00261 <span class="preprocessor"></span>
<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>) {
<a name="l00271"></a>00271   <span class="keywordtype">char</span> *pos = *p+1;
<a name="l00272"></a>00272   <span class="keywordflow">while</span> (*pos != <span class="charliteral">'\n'</span> &amp;&amp; *pos != <span class="charliteral">'\r'</span> &amp;&amp; *pos != <span class="charliteral">'\f'</span>) {
<a name="l00273"></a>00273     <span class="keywordflow">if</span> (*pos != <span class="charliteral">'\t'</span> &amp;&amp; *pos != <span class="charliteral">' '</span>) <span class="keywordflow">return</span> 0;
<a name="l00274"></a>00274     pos++;
<a name="l00275"></a>00275   }
<a name="l00276"></a>00276   <span class="keywordflow">if</span> (*pos == <span class="charliteral">'\r'</span> &amp;&amp; *(pos+1) == <span class="charliteral">'\n'</span>) pos++;
<a name="l00277"></a>00277   *p = pos;
<a name="l00278"></a>00278   <span class="keywordflow">return</span> 1;
<a name="l00279"></a>00279 }
<a name="l00280"></a>00280 
<a name="l00291"></a><a class="code" href="parser__macros_8h.html#dcdd4261cb35490ebe8f88afd0b4787c">00291</a> <span class="preprocessor">#define check_blank_entry(lang) { \</span>
<a name="l00292"></a>00292 <span class="preprocessor">  if (is_blank_entry(&amp;p)) { \</span>
<a name="l00293"></a>00293 <span class="preprocessor">    te = p + 1; \</span>
<a name="l00294"></a>00294 <span class="preprocessor">    std_newline(lang) \</span>
<a name="l00295"></a>00295 <span class="preprocessor">  } \</span>
<a name="l00296"></a>00296 <span class="preprocessor">}</span>
<a name="l00297"></a>00297 <span class="preprocessor"></span>
<a name="l00298"></a>00298 <span class="comment">// Variables used by all parsers. Do not modify.</span>
<a name="l00299"></a>00299 
<a name="l00304"></a><a class="code" href="parser__macros_8h.html#806511f4930171733227c99101dc0606">00304</a> <span class="preprocessor">#define NEWLINE -1</span>
<a name="l00305"></a>00305 <span class="preprocessor"></span>
<a name="l00312"></a><a class="code" href="parser__macros_8h.html#7e82c89c9a3dc533077791088d1ee77b">00312</a> <span class="preprocessor">#define INTERNAL_NL -2</span>
<a name="l00313"></a>00313 <span class="preprocessor"></span>
<a name="l00321"></a><a class="code" href="parser__macros_8h.html#a48fd5c8dbc18cdf9daaa5810227f829">00321</a> <span class="preprocessor">#define CHECK_BLANK_ENTRY -3</span>
<a name="l00322"></a>00322 <span class="preprocessor"></span>
<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>;
<a name="l00325"></a>00325 
<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>;
<a name="l00328"></a>00328 
<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>;
<a name="l00331"></a>00331 
<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>;
<a name="l00334"></a>00334 
<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>;
<a name="l00337"></a>00337 
<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>;
<a name="l00340"></a>00340 
<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>;
<a name="l00343"></a>00343 
<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];
<a name="l00346"></a>00346 
<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>;
<a name="l00349"></a>00349 
<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>;
<a name="l00352"></a>00352 
<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>
<a name="l00360"></a>00360 <span class="preprocessor"></span>
<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>;
<a name="l00366"></a>00366 
<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>;
<a name="l00372"></a>00372 
<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>;
<a name="l00378"></a>00378 
<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>;
<a name="l00381"></a>00381 
<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>;
<a name="l00387"></a>00387 
<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>;
<a name="l00394"></a>00394 
<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>;
<a name="l00400"></a>00400 
<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>;
<a name="l00406"></a>00406 
<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>;
<a name="l00412"></a>00412 
<a name="l00417"></a><a class="code" href="parser__macros_8h.html#c1af3f499e72dfc161f2fce616dfd8e7">00417</a> <span class="preprocessor">#define init { \</span>
<a name="l00418"></a>00418 <span class="preprocessor">  p = buffer; \</span>
<a name="l00419"></a>00419 <span class="preprocessor">  pe = buffer + length; \</span>
<a name="l00420"></a>00420 <span class="preprocessor">  eof = pe; \</span>
<a name="l00421"></a>00421 <span class="preprocessor">  \</span>
<a name="l00422"></a>00422 <span class="preprocessor">  buffer_start = buffer; \</span>
<a name="l00423"></a>00423 <span class="preprocessor">  whole_line_comment = 0; \</span>
<a name="l00424"></a>00424 <span class="preprocessor">  line_contains_code = 0; \</span>
<a name="l00425"></a>00425 <span class="preprocessor">  line_start = 0; \</span>
<a name="l00426"></a>00426 <span class="preprocessor">  entity = 0; \</span>
<a name="l00427"></a>00427 <span class="preprocessor">  seen = 0; \</span>
<a name="l00428"></a>00428 <span class="preprocessor">  inqueue = 0; \</span>
<a name="l00429"></a>00429 <span class="preprocessor">}</span>
<a name="l00430"></a>00430 <span class="preprocessor"></span>
<a name="l00431"></a>00431 <span class="preprocessor">#endif</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Aug 28 15:20:08 2009 for ohcount by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>