File indexing completed on 2024-05-19 15:23:13

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