autodoc.git / traditional_manual / chapter_21.html

version» Context lines:

autodoc.git/traditional_manual/chapter_21.html:5:   <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Pike has a builtin C-style preprocessor. It works similar to the    ANSI-C preprocessor but has a few extra features. These and the    default set of preprocessor macros are described here.</p>   <p> The preprocessor is usually accessed via    <code>MasterObject-&gt;compile_file()</code> or <code>MasterObject-&gt;compile_string()</code>,    but may be accessed directly by calling <code>cpp()</code>.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>compile()</code>, <code>cpp()</code>, <code>CompilerEnvironment.CPP</code></p> - </dd></dl></dd></dl><dl><dt><h2 class='header'>Namespace <b class='ms datatype'>predef::</b></h2> + </dd></dl> +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Directive</span> + <span class='homogen--name'><b>#elifdef</b></span><br> + <span class='homogen--type'>Directive</span> + <span class='homogen--name'><b>#elseifdef</b></span><br> + </dt> + <dd><p><code class='directive'>#elifdef</code><br> + <code class='directive'>#elseifdef</code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>These work as a combined <code>#else</code> and <code>#ifdef</code> without +  adding an extra level of nesting.</p> + </dd> + <dt class='head--doc'>Example</dt> + <dd class='example'><pre><p>The following two are equivalent:</p> + <pre><code>#ifdef A +  // Code for A. +  #else +  #ifdef B +  // Code for B. +  #else +  #ifdef C +  // Code for C. +  #else +  // Code for D. +  #endif +  #endif +  #endif</code></pre><p>And</p> + <pre><code>#ifdef A +  // Code for A. +  #elifdef B +  // Code for B. +  #elseifdef C +  // Code for C. +  #else +  // Code for D. +  #endif</code></pre> + </pre></dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>#if</code>, <code>#ifdef</code>, <code>#else</code>, <code>defined()</code>, <code>constant()</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Directive</span> + <span class='homogen--name'><b>#elifndef</b></span><br> + <span class='homogen--type'>Directive</span> + <span class='homogen--name'><b>#elseifndef</b></span><br> + </dt> + <dd><p><code class='directive'>#elifndef</code><br> + <code class='directive'>#elseifndef</code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>These work as a combined <code>#else</code> and <code>#ifndef</code> without +  adding an extra level of nesting.</p> + </dd> + <dt class='head--doc'>Example</dt> + <dd class='example'><pre><p>The following two are equivalent:</p> + <pre><code>#ifndef A +  // Code for not A. +  #else +  #ifndef B +  // Code for not B. +  #else +  #ifdef C +  // Code for not C. +  #else +  // Code for ABC. +  #endif +  #endif +  #endif</code></pre><p>And</p> + <pre><code>#ifndef A +  // Code for not A. +  #elifndef B +  // Code for not B. +  #elseifndef C +  // Code for not C. +  #else +  // Code for ABC. +  #endif</code></pre> + </pre></dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>#if</code>, <code>#ifdef</code>, <code>#else</code>, <code>defined()</code>, <code>constant()</code></p> + </dd></dl> + </dd></dl><dl><dt><h2 class='header'>Namespace <b class='ms datatype'>predef::</b></h2>   </dt><dd><dl class='group--doc'>   <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>This is the default namespace and contains lots of global symbols.</p>   </dd></dl>      <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Constant</span>   <span class='homogen--name'><b>FUSE_MAJOR_VERSION</b></span><br>   <span class='homogen--type'>Constant</span>