File indexing completed on 2024-05-12 04:02:06

0001 <!DOCTYPE html>
0002 <html><head>
0003 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
0004 <title>highlight.d</title>
0005 <meta name="generator" content="KF5::SyntaxHighlighting - Definition (D) - Theme (Breeze Dark)"/>
0006 </head><body style="background-color:#232629;color:#cfcfc2"><pre>
0007 <span style="color:#7a7c7d">/********</span>
0008 <span style="color:#7a7c7d">*</span><span style="color:#a43340"> Highlight testing module.</span>
0009 <span style="color:#7a7c7d">*</span>
0010 <span style="color:#7a7c7d">*</span><span style="color:#a43340"> Do not attempt to run this!</span>
0011 <span style="color:#7a7c7d">***********/</span>
0012 <span style="color:#27ae60;font-weight:bold">module</span><span style="color:#27ae60"> highlighttest</span><span style="color:#3f8058">;</span>
0013 <span style="color:#27ae60;font-weight:bold">import</span><span style="color:#27ae60"> X = null</span><span style="color:#3f8058">;</span>
0014 
0015 <span style="color:#7a7c7d">/++</span><span style="color:#a43340"> Pragma directives. DDoc + DDoc embedded items. Special Tokens.</span>
0016 <span style="color:#7a7c7d">+</span>
0017 <span style="color:#7a7c7d">+</span><span style="color:#a43340"> </span><span style="color:#7a7c7d">---</span>
0018 <span style="color:#7a7c7d">+</span><span style="font-style:italic"> </span><span style="color:#7a7c7d">// comment</span>
0019 <span style="color:#7a7c7d">+</span><span style="font-style:italic"> </span><span style="color:#27ae60;font-weight:bold">#line </span><span style="color:#f67400">12</span><span style="color:#27ae60;font-weight:bold"> </span><span style="color:#f44f4f">"hightlighttest.d"</span><span style="color:#27ae60;font-weight:bold">  </span><span style="color:#7a7c7d">/* block comment */</span>
0020 <span style="color:#7a7c7d">+</span><span style="font-style:italic"> </span><span style="color:#27ae60;font-weight:bold">#line </span><span style="color:#27ae60;font-weight:bold">__LINE__</span><span style="color:#27ae60;font-weight:bold"> </span><span style="color:#27ae60;font-weight:bold">__FILE__</span><span style="color:#27ae60;font-weight:bold">    </span><span style="color:#7a7c7d">/++</span><span style="color:#a43340"> embedded block comment </span><span style="color:#7a7c7d">+/</span>
0021 <span style="color:#7a7c7d">+</span>
0022 <span style="color:#7a7c7d">+</span><span style="font-style:italic"> </span><span style="color:#27ae60;font-weight:bold">pragma </span><span style="color:#7a7c7d">/* */</span><span style="color:#27ae60;font-weight:bold"> </span>(<span style="font-weight:bold">msg</span>,<span style="color:#27ae60;font-weight:bold"> </span><span style="color:#f44f4f">"what?"</span>)<span style="color:#3f8058">;</span>
0023 <span style="color:#7a7c7d">+</span><span style="font-style:italic"> </span><span style="color:#27ae60;font-weight:bold">pragma</span>(<span style="color:#7a7c7d">/++</span><span style="color:#a43340"> </span><span style="color:#7a7c7d">+/</span><span style="color:#27ae60;font-weight:bold"> </span><span style="font-weight:bold">lib</span>,<span style="color:#27ae60;font-weight:bold"> </span><span style="color:#f44f4f">"insane.a"</span>)<span style="color:#3f8058">;</span>
0024 <span style="color:#7a7c7d">+</span><span style="font-style:italic"> </span><span style="color:#27ae60;font-weight:bold">pragma</span>(<span style="font-weight:bold">inline</span>)<span style="color:#3f8058">;</span>
0025 <span style="color:#7a7c7d">+</span><span style="font-style:italic"> </span><span style="color:#27ae60;font-weight:bold">pragma</span>(<span style="font-weight:bold">linkerDirective</span>)<span style="color:#3f8058">;</span>
0026 <span style="color:#7a7c7d">+</span><span style="font-style:italic"> </span><span style="color:#27ae60;font-weight:bold">pragma</span>(<span style="font-weight:bold">mangle</span>)<span style="color:#3f8058">;</span>
0027 <span style="color:#7a7c7d">+</span><span style="font-style:italic"> </span><span style="color:#27ae60;font-weight:bold">pragma</span>(<span style="font-weight:bold">startaddress</span>)<span style="color:#3f8058">;</span>
0028 <span style="color:#7a7c7d">+</span><span style="font-style:italic"> </span><span style="color:#27ae60;font-weight:bold">pragma</span>(D_Custom_Extension,<span style="color:#27ae60;font-weight:bold"> </span><span style="color:#f44f4f">"custom data"</span>)<span style="color:#3f8058">;</span>
0029 <span style="color:#7a7c7d">+</span><span style="font-style:italic"> </span><span style="color:#27ae60;font-weight:bold">pragma</span>(foo<span style="color:#27ae60;font-weight:bold"> </span><span style="color:#da4453;text-decoration:underline">0</span><span style="color:#3f8058">);</span>
0030 <span style="color:#7a7c7d">+</span><span style="font-style:italic"> </span><span style="color:#7a7c7d">---</span>
0031 <span style="color:#7a7c7d">+/</span>
0032 
0033 <span style="color:#7a7c7d">///</span><span style="color:#a43340"> version condition</span>
0034 <span style="color:#f67400">version</span> = X;
0035 <span style="color:#f67400">version</span> = <span style="color:#f67400">1_2_3</span>;
0036 <span style="color:#f67400">version</span> (X) <span style="color:#3f8058">;</span>
0037 <span style="color:#f67400">version</span>(<span style="font-weight:bold">linux</span>) <span style="color:#3f8058">{}</span>
0038 
0039 <span style="color:#7a7c7d">///</span><span style="color:#a43340"> linkage</span>
0040 <span style="color:#c45b00;font-weight:bold">extern</span>
0041     (<span style="font-weight:bold">C</span>) <span style="color:#3f8058">{}</span>
0042 <span style="color:#c45b00;font-weight:bold">extern</span> <span style="color:#3f8058">:</span>
0043 <span style="color:#3f8058">;</span>
0044 <span style="color:#c45b00;font-weight:bold">extern</span> (<span style="font-weight:bold">C++</span>) <span style="color:#3f8058">{}</span>
0045 <span style="color:#c45b00;font-weight:bold">extern</span> (<span style="font-weight:bold">C++</span>, foo.bar.baz) <span style="color:#3f8058">{}</span>
0046 <span style="color:#c45b00;font-weight:bold">extern</span> (<span style="font-weight:bold">D</span>) <span style="color:#3f8058">{}</span>
0047 <span style="color:#c45b00;font-weight:bold">extern</span> (<span style="font-weight:bold">Windows</span>) <span style="color:#3f8058">{}</span>
0048 <span style="color:#c45b00;font-weight:bold">extern</span> (<span style="font-weight:bold">Pascal</span>) <span style="color:#3f8058">{}</span>
0049 <span style="color:#c45b00;font-weight:bold">extern</span> (<span style="font-weight:bold">System</span>) <span style="color:#3f8058">{}</span>
0050 <span style="color:#c45b00;font-weight:bold">extern</span> (<span style="color:#da4453;text-decoration:underline">unknown</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">{}</span>
0051 <span style="color:#c45b00;font-weight:bold">extern</span> (<span style="font-weight:bold">C</span><span style="color:#da4453;text-decoration:underline">,</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">{}</span>
0052 <span style="color:#c45b00;font-weight:bold">extern</span> (<span style="font-weight:bold">C++</span>, foo<span style="color:#da4453;text-decoration:underline">,</span> bar) <span style="color:#3f8058">{}</span>
0053 
0054 <span style="color:#7a7c7d">///</span><span style="color:#a43340"> alias &amp; typedef</span>
0055 <span style="color:#da4453;font-weight:bold">alias</span> <span style="color:#2980b9">int</span>.<span style="color:#2980b9;font-weight:bold">min</span> minint<span style="color:#3f8058">;</span>
0056 <span style="color:#da4453;font-weight:bold">typedef</span> <span style="color:#2980b9">int</span> myint<span style="color:#3f8058">;</span>
0057 
0058 <span style="color:#2980b9">int</span> main<span style="color:#3f8058">(</span><span style="color:#2980b9">char</span><span style="color:#3f8058">[][]</span> args<span style="color:#3f8058">)</span> <span style="color:#3f8058">{</span>
0059     <span style="color:#7a7c7d">///</span><span style="color:#a43340"> statements</span>
0060     <span style="font-weight:bold">if</span> <span style="color:#3f8058">(</span><span style="color:#f67400">1</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">{}</span>
0061     <span style="font-weight:bold">else</span> <span style="color:#3f8058">{}</span>
0062     <span style="font-weight:bold">with</span> <span style="color:#3f8058">(</span>N<span style="color:#3f8058">)</span> <span style="color:#3f8058">{</span>x <span style="color:#3f8058">=</span> B<span style="color:#3f8058">}</span>
0063     
0064     <span style="color:#7a7c7d">///</span><span style="color:#a43340"> attributes</span>
0065     <span style="color:#8e44ad;font-weight:bold">auto</span> x <span style="color:#3f8058">=</span> <span style="color:#f67400">1</span><span style="color:#3f8058">;</span>
0066     <span style="color:#8e44ad;font-weight:bold">static</span> <span style="font-weight:bold">if</span> <span style="color:#3f8058">(</span><span style="color:#2980b9;font-weight:bold">true</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">{}</span>
0067     <span style="color:#2980b9">void</span> <span style="color:#3f8058">(</span><span style="color:#2980b9;font-weight:bold">in</span> X<span style="color:#3f8058">,</span> <span style="color:#8e44ad;font-weight:bold">out</span> Y<span style="color:#3f8058">)</span> <span style="color:#3f8058">{}</span>    <span style="color:#7a7c7d">// </span><span style="color:#81ca2d;background-color:#4d1f24;font-weight:bold">NOTE</span><span style="color:#7a7c7d">: using in like this is rare, more common to use as an expression and no way to tell apart?</span>
0068     
0069     <span style="color:#7a7c7d">///</span><span style="color:#a43340"> deprecated</span>
0070     <span style="color:#8e44ad;font-weight:bold;text-decoration:line-through">deprecated</span> <span style="color:#2980b9">void</span> fct <span style="color:#3f8058">();</span>
0071     
0072     <span style="color:#7a7c7d">///</span><span style="color:#a43340"> types</span>
0073     <span style="color:#2980b9">void</span> a<span style="color:#3f8058">;</span>
0074     <span style="color:#2980b9">ushort</span> u<span style="color:#3f8058">;</span>
0075     <span style="color:#2980b9">int</span><span style="color:#3f8058">[</span><span style="color:#2980b9">uint</span><span style="color:#3f8058">]</span> AA<span style="color:#3f8058">;</span>
0076     <span style="color:#da4453;font-weight:bold">class</span> C<span style="color:#3f8058">;</span>
0077     <span style="color:#da4453;font-weight:bold">enum</span> N <span style="color:#3f8058">:</span> <span style="color:#2980b9">int</span> <span style="color:#3f8058">{</span> A <span style="color:#3f8058">=</span> <span style="color:#f67400">5</span><span style="color:#3f8058">,</span> B <span style="color:#3f8058">}</span>
0078     <span style="color:#2980b9">typeof</span><span style="color:#3f8058">(</span>u<span style="color:#3f8058">)</span> u2<span style="color:#3f8058">;</span>
0079     
0080     <span style="color:#7a7c7d">///</span><span style="color:#a43340"> expressions</span>
0081     x <span style="color:#3f8058">=</span> <span style="color:#2980b9;font-weight:bold">cast</span><span style="color:#3f8058">(</span><span style="color:#2980b9">int</span><span style="color:#3f8058">)</span> <span style="color:#f67400">55</span><span style="color:#3f8058">;</span>
0082     <span style="color:#2980b9">void</span><span style="color:#3f8058">*</span> p <span style="color:#3f8058">=</span> <span style="color:#2980b9;font-weight:bold">null</span><span style="color:#3f8058">;</span>
0083     p <span style="color:#3f8058">=</span> <span style="color:#2980b9;font-weight:bold">cast</span><span style="color:#3f8058">(</span><span style="color:#2980b9">void</span><span style="color:#3f8058">*)</span> <span style="color:#2980b9;font-weight:bold">new</span> <span style="color:#2980b9">int</span><span style="color:#3f8058">;</span>
0084     x <span style="color:#3f8058">=</span> <span style="color:#f67400">1</span> <span style="color:#2980b9;font-weight:bold">in</span> AA<span style="color:#3f8058">;</span>   <span style="color:#7a7c7d">// </span><span style="color:#81ca2d;background-color:#4d1f24;font-weight:bold">NOTE</span><span style="color:#7a7c7d">: a THIRD use of in. How to detect??</span>
0085     <span style="color:#2980b9;font-weight:bold">assert</span> <span style="color:#3f8058">(</span><span style="color:#2980b9;font-weight:bold">true</span><span style="color:#3f8058">);</span>
0086         
0087     <span style="color:#7a7c7d">///</span><span style="color:#a43340"> libsymbols</span>
0088     <span style="color:#7f8c8d;font-style:italic">string</span> s <span style="color:#3f8058">=</span> <span style="color:#f44f4f">""</span><span style="color:#3f8058">;</span>
0089     <span style="font-weight:bold">throw</span> <span style="color:#2980b9;font-weight:bold">new</span> <span style="color:#7f8c8d;font-style:italic">Exception</span><span style="color:#3f8058">;</span>
0090     <span style="color:#7f8c8d;font-style:italic">TypeInfo</span> ti <span style="color:#3f8058">=</span> <span style="color:#2980b9;font-weight:bold">typeid</span><span style="color:#3f8058">(</span><span style="color:#2980b9">int</span><span style="color:#3f8058">);</span>
0091     
0092     <span style="color:#7a7c7d">///</span><span style="color:#a43340"> tests</span>
0093     <span style="color:#8e44ad;font-weight:bold">debug</span> <span style="color:#3f8058">{}</span>
0094     <span style="color:#8e44ad;font-weight:bold">debug</span> <span style="color:#3f8058">(</span><span style="color:#f67400">2</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">{}</span>
0095     <span style="color:#8e44ad;font-weight:bold">debug</span> <span style="color:#3f8058">(</span>DSymb<span style="color:#3f8058">)</span> <span style="color:#3f8058">{}</span>
0096     <span style="color:#8e44ad;font-weight:bold">unittest</span> <span style="color:#3f8058">{}</span>
0097     
0098     <span style="color:#7a7c7d">///</span><span style="color:#a43340"> scope (as attribute and as statement)</span>
0099     <span style="color:#8e44ad;font-weight:bold">scope</span> <span style="color:#da4453;font-weight:bold">struct</span> S<span style="color:#3f8058">;</span>
0100     <span style="font-weight:bold">scope </span>(<span style="color:#2980b9;font-weight:bold">exit</span>) <span style="color:#3f8058">{}</span>
0101     <span style="color:#8e44ad;font-weight:bold">scope</span> 
0102      <span style="color:#3f8058">(</span>success<span style="color:#3f8058">)</span> <span style="color:#3f8058">{}</span>  <span style="color:#7a7c7d">// </span><span style="color:#81ca2d;background-color:#4d1f24;font-weight:bold">NOTE</span><span style="color:#7a7c7d">: rules cannot match across new-lines</span>
0103     <span style="font-weight:bold">scope </span>(<span style="color:#2980b9;font-weight:bold">failure</span>) <span style="color:#3f8058">{}</span>
0104     
0105     <span style="color:#7a7c7d">///</span><span style="color:#a43340"> Properties</span>
0106     x <span style="color:#3f8058">=</span> <span style="color:#2980b9">int</span>.<span style="color:#2980b9;font-weight:bold">min</span><span style="color:#3f8058">;</span>
0107     s <span style="color:#3f8058">=</span> <span style="color:#3f8058">(</span><span style="color:#f67400">5</span><span style="color:#3f8058">-</span><span style="color:#f67400">3</span><span style="color:#3f8058">)</span>.<span style="color:#2980b9;font-weight:bold">stringof</span><span style="color:#3f8058">;</span>
0108     
0109     <span style="color:#7a7c7d">///</span><span style="color:#a43340"> strings</span>
0110     s <span style="color:#3f8058">=</span> <span style="color:#da4453">r"raw string"</span><span style="color:#3f8058">;</span>
0111     s <span style="color:#3f8058">=</span> <span style="color:#da4453">x"00FF"</span><span style="color:#3f8058">;</span>
0112     s <span style="color:#3f8058">=</span> <span style="color:#3daee9">\n</span> <span style="color:#3daee9">\a</span><span style="color:#3f8058">;</span>
0113     s <span style="color:#3f8058">=</span> <span style="color:#3daee9">\u1234</span><span style="color:#3f8058">;</span>
0114     s <span style="color:#3f8058">=</span> <span style="color:#3daee9">\U12345678</span><span style="color:#3f8058">;</span>
0115     s <span style="color:#3f8058">=</span> <span style="color:#3daee9">\&amp;amp;</span> <span style="color:#3f8058">;</span>
0116     <span style="color:#2980b9">char</span> c <span style="color:#3f8058">=</span> <span style="color:#3daee9">'a'</span><span style="color:#3f8058">;</span>
0117     s <span style="color:#3f8058">=</span> <span style="color:#f44f4f">"abc 012 </span><span style="color:#3daee9">\"</span><span style="color:#f44f4f"> </span><span style="color:#3daee9">\n</span><span style="color:#f44f4f"> </span><span style="color:#3daee9">\x12</span><span style="color:#f44f4f"> </span><span style="color:#3daee9">\u1234</span><span style="color:#f44f4f"> </span><span style="color:#3daee9">\U12345678</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">;</span>
0118     s <span style="color:#3f8058">=</span> <span style="color:#da4453">`BQString '"`</span><span style="color:#3f8058">;</span>
0119     s <span style="color:#3f8058">=</span> <span style="font-weight:bold">q{</span>foo <span style="color:#f44f4f">"bar"</span> <span style="color:#f67400">123</span><span style="font-weight:bold">}</span><span style="color:#3f8058">;</span>
0120     s <span style="color:#3f8058">=</span> <span style="font-weight:bold">q"FOO</span>
0121 <span style="color:#da4453">foo</span>
0122 <span style="font-weight:bold">FOO"</span><span style="color:#3f8058">;</span>
0123     s <span style="color:#3f8058">=</span> <span style="font-weight:bold">q"[</span><span style="color:#da4453">foo [bar] q"[baz]"</span><span style="font-weight:bold">]"</span><span style="color:#3f8058">;</span>
0124     s <span style="color:#3f8058">=</span> <span style="font-weight:bold">q"(</span><span style="color:#da4453">foo (bar) q"(baz)"</span><span style="font-weight:bold">)"</span><span style="color:#3f8058">;</span>
0125     s <span style="color:#3f8058">=</span> <span style="font-weight:bold">q"&lt;</span><span style="color:#da4453">foo &lt;bar> q"&lt;baz>"</span><span style="font-weight:bold">>"</span><span style="color:#3f8058">;</span>
0126     s <span style="color:#3f8058">=</span> <span style="font-weight:bold">q"{</span><span style="color:#da4453">foo {bar} q"{baz}"</span><span style="font-weight:bold">}"</span><span style="color:#3f8058">;</span>
0127     s <span style="color:#3f8058">=</span> <span style="font-weight:bold">q"/</span><span style="color:#da4453">foo</span><span style="font-weight:bold">/"</span><span style="color:#3f8058">;</span>
0128     s <span style="color:#3f8058">=</span> <span style="font-weight:bold">q"!</span><span style="color:#da4453">foo</span><span style="font-weight:bold">!"</span><span style="color:#3f8058">;</span>
0129     
0130     <span style="color:#7a7c7d">///</span><span style="color:#a43340"> region markers</span>
0131     <span style="color:#2980b9;background-color:#153042">//BEGIN x</span>
0132     <span style="color:#2980b9;background-color:#153042">//END x</span>
0133     
0134     <span style="color:#7a7c7d">///</span><span style="color:#a43340"> DDoc</span>
0135     <span style="color:#7a7c7d">/*******</span>
0136 <span style="color:#a43340">    </span><span style="color:#7a7c7d">*</span><span style="color:#a43340"> DDoc</span>
0137 <span style="color:#a43340">    </span><span style="color:#7a7c7d">*</span>
0138 <span style="color:#a43340">    </span><span style="color:#7a7c7d">*</span><span style="color:#a43340"> Section:</span>
0139 <span style="color:#a43340">    </span><span style="color:#7a7c7d">*</span><span style="color:#a43340"> New section.</span>
0140 <span style="color:#a43340">    </span><span style="color:#7a7c7d">*</span><span style="color:#a43340"> </span><span style="color:#3daee9;font-weight:bold">$(I</span><span style="color:#2980b9"> italic</span><span style="color:#3daee9;font-weight:bold">)</span>
0141 <span style="color:#a43340">    </span><span style="color:#7a7c7d">*******/</span>
0142     <span style="color:#7a7c7d">/+++++++</span>
0143 <span style="color:#a43340">    </span><span style="color:#7a7c7d">+</span><span style="color:#a43340"> DDoc</span>
0144 <span style="color:#a43340">    </span><span style="color:#7a7c7d">+</span><span style="color:#a43340"> /+</span>
0145 <span style="color:#a43340">    </span><span style="color:#7a7c7d">+</span><span style="color:#a43340"> +/</span>
0146 <span style="color:#a43340">    </span><span style="color:#7a7c7d">+++++++/</span>
0147     
0148     <span style="color:#7a7c7d">// comments</span>
0149     <span style="color:#7a7c7d">// </span><span style="color:#ca9219;background-color:#451e1a;font-weight:bold">FIXME</span><span style="color:#7a7c7d"> </span><span style="color:#81ca2d;background-color:#4d1f24;font-weight:bold">NOTE</span>
0150     <span style="color:#7a7c7d">/* comment */</span>
0151     <span style="color:#7a7c7d">/+ comment /+ nested comment +/ +/</span>
0152     
0153     <span style="color:#7a7c7d">///</span><span style="color:#a43340"> brace folding</span>
0154     <span style="color:#3f8058">{</span>
0155     <span style="color:#3f8058">}</span>
0156     
0157     <span style="color:#7a7c7d">/**</span><span style="color:#a43340"> normal text</span>
0158 <span style="color:#a43340">    </span><span style="color:#7a7c7d">*</span><span style="color:#a43340"> </span><span style="color:#7a7c7d">---</span>
0159 <span style="font-style:italic">    </span><span style="color:#7a7c7d">*</span><span style="font-style:italic"> </span>.x<span style="color:#3f8058">;</span>
0160 <span style="font-style:italic">    </span><span style="color:#7a7c7d">*</span><span style="font-style:italic"> </span>..
0161 <span style="font-style:italic">    </span><span style="color:#7a7c7d">*</span><span style="font-style:italic"> </span>...
0162 <span style="font-style:italic">    </span><span style="color:#7a7c7d">*</span><span style="font-style:italic"> </span>....
0163 <span style="font-style:italic">    </span><span style="color:#7a7c7d">*</span><span style="font-style:italic"> </span>.....
0164 <span style="font-style:italic">    </span><span style="color:#7a7c7d">*</span><span style="font-style:italic"> </span>_._
0165 <span style="font-style:italic">    </span><span style="color:#7a7c7d">*</span><span style="font-style:italic"> </span>_e1
0166 <span style="font-style:italic">    </span><span style="color:#7a7c7d">*</span><span style="font-style:italic"> </span><span style="color:#7a7c7d">---</span>
0167 <span style="color:#a43340">    </span><span style="color:#7a7c7d">*/</span>
0168     
0169     <span style="color:#7a7c7d">///</span><span style="color:#a43340"> float and int literals</span>
0170     <span style="color:#2980b9">int</span> i<span style="color:#3f8058">;</span>
0171     <span style="color:#2980b9">real</span> r<span style="color:#3f8058">;</span>
0172     <span style="color:#2980b9">ireal</span> ir<span style="color:#3f8058">;</span>
0173     r <span style="color:#3f8058">=</span> <span style="color:#f67400">.0</span><span style="color:#3f8058">;</span>
0174     r <span style="color:#3f8058">=</span> <span style="color:#f67400">0f</span><span style="color:#3f8058">;</span>
0175     ir <span style="color:#3f8058">=</span> <span style="color:#f67400">0e0i</span><span style="color:#3f8058">;</span>
0176     ir <span style="color:#3f8058">=</span> <span style="color:#f67400">0.fi</span><span style="color:#3f8058">;</span>
0177     r <span style="color:#3f8058">=</span> <span style="color:#f67400">0.0e0</span><span style="color:#3f8058">;</span>
0178     r <span style="color:#3f8058">=</span> <span style="color:#f67400">0xF.Fp0</span><span style="color:#3f8058">;</span>
0179     r <span style="color:#3f8058">=</span> <span style="color:#f67400">0x_._p0_</span><span style="color:#3f8058">;</span>
0180     i <span style="color:#3f8058">=</span> <span style="color:#f67400">5</span><span style="color:#3f8058">;</span>
0181     i <span style="color:#3f8058">=</span> <span style="color:#3f8058">-</span><span style="color:#f67400">1</span><span style="color:#3f8058">;</span>
0182     i <span style="color:#3f8058">=</span> <span style="color:#f67400">0b10</span><span style="color:#3f8058">;</span>
0183     i <span style="color:#3f8058">=</span> <span style="color:#f67400">0070</span><span style="color:#3f8058">;</span>
0184     i <span style="color:#3f8058">=</span> <span style="color:#f67400">00</span><span style="color:#3f8058">;</span>
0185     i <span style="color:#3f8058">=</span> <span style="color:#f67400">0xF0</span><span style="color:#3f8058">;</span>
0186     
0187     <span style="color:#7a7c7d">///</span><span style="color:#a43340"> ranges</span>
0188     <span style="color:#2980b9">int</span><span style="color:#3f8058">[]</span> A<span style="color:#3f8058">;</span>
0189     i <span style="color:#3f8058">=</span> A<span style="color:#3f8058">[</span><span style="color:#f67400">1</span><span style="color:#3f8058">];</span>
0190     A <span style="color:#3f8058">=</span> A<span style="color:#3f8058">[</span><span style="color:#f67400">0</span>..$<span style="color:#3f8058">];</span>
0191     A <span style="color:#3f8058">=</span> A<span style="color:#3f8058">[</span><span style="color:#f67400">0</span>..<span style="color:#f67400">0</span><span style="color:#3f8058">];</span>
0192     A <span style="color:#3f8058">=</span> A<span style="color:#3f8058">[</span><span style="color:#f67400">0</span>..length<span style="color:#3f8058">];</span>
0193     
0194     <span style="color:#7a7c7d">///</span><span style="color:#a43340"> labels</span>
0195     label<span style="color:#3f8058">:</span>
0196     <span style="font-weight:bold">goto</span> label<span style="color:#3f8058">;</span>
0197     
0198     <span style="color:#7a7c7d">///</span><span style="color:#a43340"> function, delegate</span>
0199     <span style="color:#2980b9">creal</span> <span style="color:#da4453;font-weight:bold">function </span><span style="color:#3f8058">()</span> fp <span style="color:#3f8058">=</span> <span style="color:#2980b9;font-weight:bold">function</span> <span style="color:#2980b9">creal</span><span style="color:#3f8058">()</span> <span style="color:#3f8058">{</span> <span style="font-weight:bold">return</span> <span style="color:#f67400">0f</span><span style="color:#3f8058">+</span><span style="color:#f67400">0fi</span><span style="color:#3f8058">;</span> <span style="color:#3f8058">};</span>
0200     <span style="color:#2980b9">void</span> <span style="color:#da4453;font-weight:bold">delegate </span><span style="color:#3f8058">(</span><span style="color:#2980b9;font-weight:bold">in</span> <span style="color:#2980b9">int</span> i<span style="color:#3f8058">,</span> <span style="color:#8e44ad;font-weight:bold">lazy</span> <span style="color:#2980b9">int</span> b<span style="color:#3f8058">)</span> dg <span style="color:#3f8058">=</span> <span style="color:#2980b9;font-weight:bold">delegate</span> <span style="color:#2980b9">void</span> <span style="color:#3f8058">(</span><span style="color:#2980b9">int</span><span style="color:#3f8058">,</span> <span style="color:#2980b9">int</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">{}</span>
0201     
0202     <span style="color:#7a7c7d">///</span><span style="color:#a43340"> in, out, body</span>
0203     <span style="color:#7a7c7d">// </span><span style="color:#81ca2d;background-color:#4d1f24;font-weight:bold">NOTE</span><span style="color:#7a7c7d">: highlighting in &amp; out as statements here could be difficult</span>
0204     <span style="color:#2980b9">float</span> F <span style="color:#3f8058">()</span>
0205     <span style="font-weight:bold">in </span><span style="color:#3f8058">{}</span>
0206     <span style="font-weight:bold">out </span><span style="color:#3f8058">(</span>result<span style="color:#3f8058">)</span> <span style="color:#3f8058">{}</span>
0207     <span style="font-weight:bold">body</span> <span style="color:#3f8058">{}</span>
0208     
0209     <span style="color:#7a7c7d">///</span><span style="color:#a43340"> try, catch, finally</span>
0210     <span style="font-weight:bold">try</span> <span style="color:#3f8058">{</span>
0211         <span style="font-weight:bold">throw</span> <span style="color:#2980b9;font-weight:bold">new</span> <span style="color:#7f8c8d;font-style:italic">Exception</span><span style="color:#3f8058">(</span><span style="color:#f44f4f">"oh no... "</span><span style="color:#3f8058">);</span>
0212     <span style="color:#3f8058">}</span> <span style="font-weight:bold">catch</span> <span style="color:#3f8058">(</span><span style="color:#7f8c8d;font-style:italic">Exception</span> e<span style="color:#3f8058">)</span> <span style="color:#3f8058">{</span>
0213     <span style="color:#3f8058">}</span> <span style="font-weight:bold">finally</span> <span style="color:#3f8058">{</span>
0214     <span style="color:#3f8058">}</span>
0215     
0216     <span style="color:#7a7c7d">///</span><span style="color:#a43340"> mixin</span>
0217     <span style="font-weight:bold">mixin</span><span style="color:#3f8058">(</span><span style="color:#f44f4f">"return false;"</span><span style="color:#3f8058">)</span>.<span style="color:#2980b9;font-weight:bold">stringof</span><span style="color:#3f8058">;</span>
0218     
0219     <span style="color:#7a7c7d">///</span><span style="color:#a43340"> templates</span>
0220     <span style="color:#27ae60;font-weight:bold">macro</span><span style="color:#3f8058">;</span> <span style="color:#7a7c7d">// what does this do?</span>
0221     <span style="color:#27ae60;font-weight:bold">template</span> Tp <span style="color:#3f8058">(</span>T<span style="color:#3f8058">)</span> <span style="color:#3f8058">{</span>
0222         Tp t<span style="color:#3f8058">;</span>
0223     <span style="color:#3f8058">}</span>
0224     Tp<span style="color:#3f8058">!(</span><span style="color:#2980b9">int</span><span style="color:#3f8058">)</span> y<span style="color:#3f8058">;</span>
0225 <span style="color:#3f8058">}</span>
0226 </pre></body></html>