227 lines
32 KiB
HTML
227 lines
32 KiB
HTML
<!DOCTYPE html>
|
|
<html><head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
|
<title>highlight.pony</title>
|
|
<meta name="generator" content="KF5::SyntaxHighlighting - Definition (Pony) - Theme (Breeze Dark)"/>
|
|
</head><body style="background-color:#232629;color:#cfcfc2"><pre>
|
|
<span style="color:#7a7c7d">// Test file for Pony syntax highlighting, released under MIT License</span>
|
|
|
|
<span style="font-weight:bold">primitive</span> <span style="color:#2980b9">Red</span> <span style="font-weight:bold">fun</span> <span style="color:#8e44ad">apply</span><span style="color:#3f8058">():</span> <span style="color:#2980b9">U32</span> <span style="color:#3f8058">=></span> <span style="color:#f67400">0xFFFF0000</span>
|
|
|
|
<span style="font-weight:bold">primitive</span> <span style="color:#2980b9">Colours</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#8e44ad">black</span><span style="color:#3f8058">():</span> <span style="color:#2980b9">U32</span> <span style="color:#3f8058">=></span> <span style="color:#f67400">0xFF000000</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#8e44ad">red</span><span style="color:#3f8058">():</span> <span style="color:#2980b9">U32</span> <span style="color:#3f8058">=></span> <span style="color:#f67400">0xFFFF0000</span>
|
|
|
|
<span style="font-weight:bold">primitive</span> <span style="color:#2980b9">Black</span>
|
|
<span style="font-weight:bold">primitive</span> <span style="color:#2980b9">Blue</span>
|
|
|
|
<span style="font-weight:bold">type</span> <span style="color:#2980b9">Colour</span> <span style="font-weight:bold">is</span> <span style="color:#3f8058">(</span><span style="color:#2980b9">Black</span> <span style="color:#3f8058">|</span> <span style="color:#2980b9">Blue</span> <span style="color:#3f8058">)</span>
|
|
|
|
<span style="font-weight:bold">primitive</span> <span style="color:#2980b9">ColourList</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#2980b9;font-style:italic">tag</span> <span style="color:#8e44ad">apply</span><span style="color:#3f8058">():</span> <span style="color:#2980b9">Array</span><span style="color:#3f8058">[</span><span style="color:#2980b9">Colour</span><span style="color:#3f8058">]</span> <span style="color:#3f8058">=></span>
|
|
<span style="color:#3f8058">[</span><span style="color:#2980b9">Black</span><span style="color:#3f8058">;</span> <span style="color:#2980b9">Blue</span><span style="color:#3f8058">]</span>
|
|
|
|
<span style="color:#fdbc4b;font-weight:bold">for</span> colour <span style="font-weight:bold">in</span> <span style="color:#2980b9">ColourList</span><span style="color:#3f8058">().</span>values<span style="color:#3f8058">()</span> <span style="color:#fdbc4b;font-weight:bold">do</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
|
|
<span style="font-weight:bold">type</span> <span style="color:#2980b9">EGLEvent</span> <span style="font-weight:bold">is</span> <span style="color:#3f8058">(</span><span style="color:#2980b9">U8</span><span style="color:#3f8058">,</span> <span style="color:#2980b9">F32</span><span style="color:#3f8058">,</span> <span style="color:#2980b9">F32</span><span style="color:#3f8058">)</span>
|
|
<span style="color:#3f8058">(</span><span style="font-weight:bold">var</span> code<span style="color:#3f8058">,</span> <span style="font-weight:bold">var</span> x<span style="color:#3f8058">,</span> <span style="font-weight:bold">var</span> y<span style="color:#3f8058">)</span> <span style="color:#3f8058">=</span> <span style="color:#8e44ad">@getEvent</span><span style="color:#3f8058">[</span><span style="color:#2980b9">EGLEvent</span><span style="color:#3f8058">]()</span>
|
|
|
|
<span style="font-weight:bold">primitive</span> <span style="color:#2980b9">_XDisplayHandle</span>
|
|
<span style="font-weight:bold">primitive</span> <span style="color:#2980b9">_EGLDisplayHandle</span>
|
|
|
|
<span style="font-weight:bold">let</span> x_dpy <span style="color:#3f8058">=</span> <span style="color:#8e44ad">@XOpenDisplay</span><span style="color:#3f8058">[</span><span style="color:#2980b9">Pointer</span><span style="color:#3f8058">[</span><span style="color:#2980b9">_XDisplayHandle</span><span style="color:#3f8058">]](</span><span style="color:#2980b9">U32</span><span style="color:#3f8058">(</span><span style="color:#f67400">0</span><span style="color:#3f8058">))</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">if</span> x_dpy<span style="color:#3f8058">.</span>is_null<span style="color:#3f8058">()</span> <span style="color:#fdbc4b;font-weight:bold">then</span>
|
|
env<span style="color:#3f8058">.</span>out<span style="color:#3f8058">.</span>print<span style="color:#3f8058">(</span><span style="color:#f44f4f">"XOpenDisplay failed"</span><span style="color:#3f8058">)</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
|
|
<span style="font-weight:bold">let</span> e_dpy <span style="color:#3f8058">=</span> <span style="color:#8e44ad">@eglGetDisplay</span><span style="color:#3f8058">[</span><span style="color:#2980b9">Pointer</span><span style="color:#3f8058">[</span><span style="color:#2980b9">_EGLDisplayHandle</span><span style="color:#3f8058">]](</span>x_dpy<span style="color:#3f8058">)</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">if</span> e_dpy<span style="color:#3f8058">.</span>is_null<span style="color:#3f8058">()</span> <span style="color:#fdbc4b;font-weight:bold">then</span>
|
|
env<span style="color:#3f8058">.</span>out<span style="color:#3f8058">.</span>print<span style="color:#3f8058">(</span><span style="color:#f44f4f">"eglGetDisplay failed"</span><span style="color:#3f8058">)</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
|
|
<span style="font-weight:bold">primitive</span> <span style="color:#2980b9">_EGLConfigHandle</span>
|
|
<span style="font-weight:bold">let</span> a <span style="color:#3f8058">=</span> <span style="color:#2980b9">Array</span><span style="color:#3f8058">[</span><span style="color:#2980b9">U16</span><span style="color:#3f8058">](</span><span style="color:#f67400">8</span><span style="color:#3f8058">)</span>
|
|
a<span style="color:#3f8058">.</span>push<span style="color:#3f8058">(</span><span style="color:#f67400">0x3040</span><span style="color:#3f8058">)</span>
|
|
a<span style="color:#3f8058">.</span>push<span style="color:#3f8058">(</span><span style="color:#f67400">0b01011</span><span style="color:#3f8058">)</span>
|
|
<span style="font-weight:bold">let</span> config <span style="color:#3f8058">=</span> <span style="color:#2980b9">Pointer</span><span style="color:#3f8058">[</span><span style="color:#2980b9">_EGLConfigHandle</span><span style="color:#3f8058">]</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">if</span> <span style="color:#8e44ad">@eglChooseConfig</span><span style="color:#3f8058">[</span><span style="color:#2980b9">U32</span><span style="color:#3f8058">](</span>e_dpy<span style="color:#3f8058">,</span> a<span style="color:#3f8058">,</span> config<span style="color:#3f8058">,</span> <span style="color:#2980b9">U32</span><span style="color:#3f8058">(</span><span style="color:#f67400">1</span><span style="color:#3f8058">),</span> <span style="color:#2980b9">Pointer</span><span style="color:#3f8058">[</span><span style="color:#2980b9">U32</span><span style="color:#3f8058">])</span> <span style="color:#3f8058">==</span> <span style="color:#f67400">0</span> <span style="color:#fdbc4b;font-weight:bold">then</span>
|
|
env<span style="color:#3f8058">.</span>out<span style="color:#3f8058">.</span>print<span style="color:#3f8058">(</span><span style="color:#f44f4f">"eglChooseConfig failed"</span><span style="color:#3f8058">)</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
|
|
|
|
<span style="font-weight:bold">actor</span> <span style="color:#2980b9">Main</span>
|
|
<span style="font-weight:bold">new</span> <span style="color:#8e44ad">create</span><span style="color:#3f8058">(</span>env<span style="color:#3f8058">:</span> <span style="color:#2980b9">Env</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">=></span>
|
|
<span style="color:#7a7c7d">// The no of arguments</span>
|
|
env<span style="color:#3f8058">.</span>out<span style="color:#3f8058">.</span>print<span style="color:#3f8058">(</span>env<span style="color:#3f8058">.</span>args<span style="color:#3f8058">.</span>size<span style="color:#3f8058">().</span>string<span style="color:#3f8058">())</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">for</span> value <span style="font-weight:bold">in</span> env<span style="color:#3f8058">.</span>args<span style="color:#3f8058">.</span>values<span style="color:#3f8058">()</span> <span style="color:#fdbc4b;font-weight:bold">do</span>
|
|
env<span style="color:#3f8058">.</span>out<span style="color:#3f8058">.</span>print<span style="color:#3f8058">(</span>value<span style="color:#3f8058">)</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
<span style="color:#7a7c7d">// Access the arguments the first one will always be the the appication name</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">try</span> env<span style="color:#3f8058">.</span>out<span style="color:#3f8058">.</span>print<span style="color:#3f8058">(</span>env<span style="color:#3f8058">.</span>args<span style="color:#3f8058">(</span><span style="color:#f67400">0</span><span style="color:#3f8058">)?)</span> <span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
|
|
<span style="font-weight:bold">actor</span> <span style="color:#2980b9">Main</span>
|
|
<span style="font-weight:bold">new</span> <span style="color:#8e44ad">create</span><span style="color:#3f8058">(</span>env<span style="color:#3f8058">:</span> <span style="color:#2980b9">Env</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">=></span>
|
|
<span style="font-weight:bold">var</span> options <span style="color:#3f8058">=</span> <span style="color:#2980b9">Options</span><span style="color:#3f8058">(</span>env<span style="color:#3f8058">)</span>
|
|
|
|
options
|
|
<span style="color:#3f8058">.</span>add<span style="color:#3f8058">(</span><span style="color:#f44f4f">"output"</span><span style="color:#3f8058">,</span> <span style="color:#f44f4f">"o"</span><span style="color:#3f8058">,</span> <span style="color:#2980b9">StringArgument</span><span style="color:#3f8058">)</span>
|
|
|
|
env<span style="color:#3f8058">.</span>out<span style="color:#3f8058">.</span>print<span style="color:#3f8058">(</span>options<span style="color:#3f8058">.</span>has_argument<span style="color:#3f8058">())</span>
|
|
|
|
<span style="color:#fdbc4b;font-weight:bold">for</span> option <span style="font-weight:bold">in</span> options <span style="color:#fdbc4b;font-weight:bold">do</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">match</span> option
|
|
<span style="color:#3f8058">|</span> <span style="color:#3f8058">(</span><span style="color:#f44f4f">"output"</span><span style="color:#3f8058">,</span> <span style="font-weight:bold">var</span> arg<span style="color:#3f8058">:</span> <span style="color:#2980b9">String</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">=></span> _outputFileName <span style="color:#3f8058">=</span> arg<span style="color:#3f8058">.</span>string<span style="color:#3f8058">()</span>
|
|
<span style="color:#3f8058">|</span> <span style="font-weight:bold">let</span> err<span style="color:#3f8058">:</span> <span style="color:#2980b9">ParseError</span> <span style="color:#3f8058">=></span>
|
|
err<span style="color:#3f8058">.</span>report<span style="color:#3f8058">(</span>env<span style="color:#3f8058">.</span>out<span style="color:#3f8058">)</span>
|
|
env<span style="color:#3f8058">.</span>out<span style="color:#3f8058">.</span>print<span style="color:#3f8058">(</span>
|
|
<span style="color:#f44f4f">"""</span>
|
|
<span style="color:#f44f4f"> pony-embed [OPTIONS]</span>
|
|
<span style="color:#f44f4f"> --output name string output filename.</span>
|
|
<span style="color:#f44f4f"> """</span>
|
|
<span style="color:#3f8058">)</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
|
|
<span style="font-weight:bold">use</span> <span style="color:#f44f4f">"ponytest"</span>
|
|
|
|
<span style="font-weight:bold">actor</span> <span style="color:#2980b9">Main</span> <span style="font-weight:bold">is</span> <span style="color:#2980b9">TestList</span>
|
|
<span style="font-weight:bold">new</span> <span style="color:#8e44ad">create</span><span style="color:#3f8058">(</span>env<span style="color:#3f8058">:</span> <span style="color:#2980b9">Env</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">=></span> <span style="color:#2980b9">PonyTest</span><span style="color:#3f8058">(</span>env<span style="color:#3f8058">,</span> <span style="font-weight:bold">this</span><span style="color:#3f8058">)</span>
|
|
<span style="font-weight:bold">new</span> <span style="color:#8e44ad">make</span><span style="color:#3f8058">()</span> <span style="color:#3f8058">=></span> <span style="color:#2980b9">None</span>
|
|
|
|
<span style="font-weight:bold">fun</span> <span style="color:#2980b9;font-style:italic">tag</span> <span style="color:#8e44ad">tests</span><span style="color:#3f8058">(</span>test<span style="color:#3f8058">:</span> <span style="color:#2980b9">PonyTest</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">=></span>
|
|
test<span style="color:#3f8058">(</span><span style="color:#2980b9">_TestAddition</span><span style="color:#3f8058">)</span>
|
|
|
|
<span style="font-weight:bold">class</span> <span style="color:#2980b9;font-style:italic">iso</span> <span style="color:#2980b9">_TestAddition</span> <span style="font-weight:bold">is</span> <span style="color:#2980b9">UnitTest</span>
|
|
<span style="color:#f44f4f">"""</span>
|
|
<span style="color:#f44f4f"> Adding 2 numbers</span>
|
|
<span style="color:#f44f4f"> """</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#8e44ad">name</span><span style="color:#3f8058">():</span> <span style="color:#2980b9">String</span> <span style="color:#3f8058">=></span> <span style="color:#f44f4f">"u32/add"</span>
|
|
|
|
<span style="font-weight:bold">fun</span> <span style="color:#8e44ad">apply</span><span style="color:#3f8058">(</span>h<span style="color:#3f8058">:</span> <span style="color:#2980b9">TestHelper</span><span style="color:#3f8058">):</span> <span style="color:#2980b9">TestResult</span> <span style="color:#3f8058">=></span>
|
|
h<span style="color:#3f8058">.</span>expect_eq<span style="color:#3f8058">[</span><span style="color:#2980b9">U32</span><span style="color:#3f8058">](</span><span style="color:#f67400">2</span> <span style="color:#3f8058">+</span> <span style="color:#f67400">2</span><span style="color:#3f8058">,</span> <span style="color:#f67400">4</span><span style="color:#3f8058">)</span>
|
|
|
|
<span style="font-weight:bold">fun</span> <span style="color:#2980b9;font-style:italic">tag</span> <span style="color:#8e44ad">log</span><span style="color:#3f8058">(</span>msg<span style="color:#3f8058">:</span> <span style="color:#2980b9">String</span><span style="color:#3f8058">,</span> verbose<span style="color:#3f8058">:</span> <span style="color:#2980b9">Bool</span> <span style="color:#3f8058">=</span> <span style="font-weight:bold">false</span><span style="color:#3f8058">)</span>
|
|
<span style="font-weight:bold">be</span> <span style="color:#8e44ad">fail</span><span style="color:#3f8058">()</span> <span style="color:#3f8058">=></span>
|
|
<span style="font-weight:bold">be</span> <span style="color:#8e44ad">assert_failed</span><span style="color:#3f8058">(</span>msg<span style="color:#3f8058">:</span> <span style="color:#2980b9">String</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">=></span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#2980b9;font-style:italic">tag</span> <span style="color:#8e44ad">assert_true</span><span style="color:#3f8058">(</span>actual<span style="color:#3f8058">:</span> <span style="color:#2980b9">Bool</span><span style="color:#3f8058">,</span> msg<span style="color:#3f8058">:</span> <span style="color:#2980b9">String</span> <span style="color:#3f8058">=</span> <span style="color:#f44f4f">""</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">?</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#2980b9;font-style:italic">tag</span> <span style="color:#8e44ad">expect_true</span><span style="color:#3f8058">(</span>actual<span style="color:#3f8058">:</span> <span style="color:#2980b9">Bool</span><span style="color:#3f8058">,</span> msg<span style="color:#3f8058">:</span> <span style="color:#2980b9">String</span> <span style="color:#3f8058">=</span> <span style="color:#f44f4f">""</span><span style="color:#3f8058">):</span> <span style="color:#2980b9">Bool</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#2980b9;font-style:italic">tag</span> <span style="color:#8e44ad">expect_eq</span><span style="color:#3f8058">[</span><span style="color:#2980b9">A</span><span style="color:#3f8058">:</span> <span style="color:#3f8058">(</span><span style="color:#2980b9">Equatable</span><span style="color:#3f8058">[</span><span style="color:#2980b9">A</span><span style="color:#3f8058">]</span> <span style="color:#2980b9">#read</span> <span style="color:#3f8058">&</span> <span style="color:#2980b9">Stringable</span><span style="color:#3f8058">)]</span>
|
|
<span style="color:#3f8058">(</span>expect<span style="color:#3f8058">:</span> <span style="color:#2980b9">A</span><span style="color:#3f8058">,</span> actual<span style="color:#3f8058">:</span> <span style="color:#2980b9">A</span><span style="color:#3f8058">,</span> msg<span style="color:#3f8058">:</span> <span style="color:#2980b9">String</span> <span style="color:#3f8058">=</span> <span style="color:#f44f4f">""</span><span style="color:#3f8058">):</span> <span style="color:#2980b9">Bool</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#2980b9;font-style:italic">tag</span> <span style="color:#8e44ad">expect_eq</span><span style="color:#3f8058">[</span><span style="color:#2980b9">A</span><span style="color:#3f8058">:</span> <span style="color:#3f8058">(</span><span style="color:#2980b9">Equatable</span><span style="color:#3f8058">[</span><span style="color:#2980b9">A</span><span style="color:#3f8058">]</span> <span style="color:#da4453;text-decoration:underline">#unknown</span> <span style="color:#3f8058">&</span> <span style="color:#2980b9">Stringable</span><span style="color:#3f8058">)]</span>
|
|
<span style="color:#3f8058">(</span>expect<span style="color:#3f8058">:</span> <span style="color:#2980b9">A</span><span style="color:#3f8058">,</span> actual<span style="color:#3f8058">:</span> <span style="color:#2980b9">A</span><span style="color:#3f8058">,</span> msg<span style="color:#3f8058">:</span> <span style="color:#2980b9">String</span> <span style="color:#3f8058">=</span> <span style="color:#f44f4f">""</span><span style="color:#3f8058">):</span> <span style="color:#2980b9">Bool</span>
|
|
|
|
<span style="font-weight:bold">fun</span> <span style="color:#8e44ad">add</span><span style="color:#3f8058">(</span>other<span style="color:#3f8058">:</span> <span style="color:#2980b9">A</span><span style="color:#3f8058">):</span> <span style="color:#2980b9">A</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#8e44ad">sub</span><span style="color:#3f8058">(</span>other<span style="color:#3f8058">:</span> <span style="color:#2980b9">A</span><span style="color:#3f8058">):</span> <span style="color:#2980b9">A</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#8e44ad">mul</span><span style="color:#3f8058">(</span>other<span style="color:#3f8058">:</span> <span style="color:#2980b9">A</span><span style="color:#3f8058">):</span> <span style="color:#2980b9">A</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#8e44ad">div</span><span style="color:#3f8058">(</span>other<span style="color:#3f8058">:</span> <span style="color:#2980b9">A</span><span style="color:#3f8058">):</span> <span style="color:#2980b9">A</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#8e44ad">mod</span><span style="color:#3f8058">(</span>other<span style="color:#3f8058">:</span> <span style="color:#2980b9">A</span><span style="color:#3f8058">):</span> <span style="color:#2980b9">A</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#8e44ad">eq</span><span style="color:#3f8058">(</span>other<span style="color:#3f8058">:</span> <span style="color:#2980b9">A</span><span style="color:#3f8058">):</span> <span style="color:#2980b9">Bool</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#8e44ad">ne</span><span style="color:#3f8058">(</span>other<span style="color:#3f8058">:</span> <span style="color:#2980b9">A</span><span style="color:#3f8058">):</span> <span style="color:#2980b9">Bool</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#8e44ad">lt</span><span style="color:#3f8058">(</span>other<span style="color:#3f8058">:</span> <span style="color:#2980b9">A</span><span style="color:#3f8058">):</span> <span style="color:#2980b9">Bool</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#8e44ad">le</span><span style="color:#3f8058">(</span>other<span style="color:#3f8058">:</span> <span style="color:#2980b9">A</span><span style="color:#3f8058">):</span> <span style="color:#2980b9">Bool</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#8e44ad">ge</span><span style="color:#3f8058">(</span>other<span style="color:#3f8058">:</span> <span style="color:#2980b9">A</span><span style="color:#3f8058">):</span> <span style="color:#2980b9">Bool</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#8e44ad">gt</span><span style="color:#3f8058">(</span>other<span style="color:#3f8058">:</span> <span style="color:#2980b9">A</span><span style="color:#3f8058">):</span> <span style="color:#2980b9">Bool</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#8e44ad">shl</span><span style="color:#3f8058">(</span>other<span style="color:#3f8058">:</span> <span style="color:#2980b9">A</span><span style="color:#3f8058">):</span> <span style="color:#2980b9">A</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#8e44ad">shr</span><span style="color:#3f8058">(</span>other<span style="color:#3f8058">:</span> <span style="color:#2980b9">A</span><span style="color:#3f8058">):</span> <span style="color:#2980b9">A</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#8e44ad">op_and</span><span style="color:#3f8058">(</span>other<span style="color:#3f8058">:</span><span style="color:#2980b9">A</span><span style="color:#3f8058">):</span> <span style="color:#2980b9">A</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#8e44ad">op_or</span><span style="color:#3f8058">(</span>other<span style="color:#3f8058">:</span> <span style="color:#2980b9">A</span><span style="color:#3f8058">):</span> <span style="color:#2980b9">A</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#8e44ad">op_xor</span><span style="color:#3f8058">(</span>othr<span style="color:#3f8058">:</span> <span style="color:#2980b9">A</span><span style="color:#3f8058">):</span> <span style="color:#2980b9">A</span>
|
|
|
|
<span style="font-weight:bold">class</span> <span style="color:#2980b9">Test</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#8e44ad">alpha</span><span style="color:#3f8058">()</span> <span style="color:#3f8058">=></span>
|
|
<span style="color:#f44f4f">"""</span>
|
|
<span style="color:#f44f4f"> """</span>
|
|
|
|
<span style="font-weight:bold">let</span> dice<span style="color:#3f8058">:</span> <span style="color:#2980b9">Array</span><span style="color:#3f8058">[</span><span style="color:#2980b9">U32</span><span style="color:#3f8058">]</span> <span style="color:#3f8058">=</span> <span style="color:#3f8058">[</span><span style="color:#f67400">1</span><span style="color:#3f8058">;</span> <span style="color:#f67400">2</span><span style="color:#3f8058">;</span> <span style="color:#f67400">3</span>
|
|
<span style="color:#f67400">4</span>
|
|
<span style="color:#f67400">5</span>
|
|
<span style="color:#f67400">6</span>
|
|
<span style="color:#3f8058">]</span>
|
|
|
|
<span style="font-weight:bold">actor</span> <span style="color:#2980b9">Main</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#8e44ad">foo</span><span style="color:#3f8058">(</span>n<span style="color:#3f8058">:</span><span style="color:#2980b9">U32</span><span style="color:#3f8058">):</span> <span style="color:#3f8058">{</span><span style="color:#2980b9;font-style:italic">ref</span><span style="color:#3f8058">(</span><span style="color:#2980b9">U32</span><span style="color:#3f8058">):</span> <span style="color:#2980b9">U32</span><span style="color:#3f8058">}</span> <span style="color:#3f8058">=></span>
|
|
<span style="font-weight:bold">var</span> s<span style="color:#3f8058">:</span> <span style="color:#2980b9">Array</span><span style="color:#3f8058">[</span><span style="color:#2980b9">U32</span><span style="color:#3f8058">]</span> <span style="color:#3f8058">=</span> <span style="color:#2980b9">Array</span><span style="color:#3f8058">[</span><span style="color:#2980b9">U32</span><span style="color:#3f8058">].</span>init<span style="color:#3f8058">(</span>n<span style="color:#3f8058">,</span> <span style="color:#f67400">1</span><span style="color:#3f8058">)</span>
|
|
<span style="color:#3f8058">{</span><span style="color:#2980b9;font-style:italic">ref</span><span style="color:#3f8058">(</span>i<span style="color:#3f8058">:</span><span style="color:#2980b9">U32</span><span style="color:#3f8058">)(</span>s<span style="color:#3f8058">):</span> <span style="color:#2980b9">U32</span> <span style="color:#3f8058">=></span>
|
|
<span style="color:#fdbc4b;font-weight:bold">try</span>
|
|
s<span style="color:#3f8058">(</span><span style="color:#f67400">0</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">=</span> s<span style="color:#3f8058">(</span><span style="color:#f67400">0</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">+</span> i
|
|
s<span style="color:#3f8058">(</span><span style="color:#f67400">0</span><span style="color:#3f8058">)</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">else</span>
|
|
<span style="color:#f67400">0</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
<span style="color:#3f8058">}</span>
|
|
|
|
<span style="font-weight:bold">new</span> <span style="color:#8e44ad">create</span><span style="color:#3f8058">(</span>env<span style="color:#3f8058">:</span><span style="color:#2980b9">Env</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">=></span>
|
|
<span style="font-weight:bold">var</span> f <span style="color:#3f8058">=</span> foo<span style="color:#3f8058">(</span><span style="color:#f67400">5</span><span style="color:#3f8058">)</span>
|
|
env<span style="color:#3f8058">.</span>out<span style="color:#3f8058">.</span>print<span style="color:#3f8058">(</span>f<span style="color:#3f8058">(</span><span style="color:#f67400">10</span><span style="color:#3f8058">).</span>string<span style="color:#3f8058">())</span>
|
|
env<span style="color:#3f8058">.</span>out<span style="color:#3f8058">.</span>print<span style="color:#3f8058">(</span>f<span style="color:#3f8058">(</span><span style="color:#f67400">20</span><span style="color:#3f8058">).</span>string<span style="color:#3f8058">())</span>
|
|
|
|
<span style="color:#7a7c7d">/* nested /* commentary */ */</span>
|
|
<span style="color:#7a7c7d">// single comment</span>
|
|
|
|
<span style="font-weight:bold">class</span> <span style="color:#2980b9">A</span>
|
|
<span style="font-weight:bold">class</span> <span style="color:#2980b9">_A</span>
|
|
x'
|
|
x''
|
|
x'<span style="color:#3f8058">.</span>string<span style="color:#3f8058">()</span>
|
|
<span style="color:#3daee9">'\uaaaa'</span>
|
|
<span style="color:#3daee9">'\Ubbbbbb'</span>
|
|
<span style="color:#3daee9">'\xcc'</span>
|
|
<span style="color:#3daee9">'\''</span>
|
|
<span style="color:#3daee9">'\n'</span>
|
|
<span style="color:#f44f4f">"</span><span style="color:#3daee9">\uaaaa</span><span style="color:#f44f4f">a"</span>
|
|
<span style="color:#f44f4f">"</span><span style="color:#3daee9">\Ubbbbbb</span><span style="color:#f44f4f">b"</span>
|
|
<span style="color:#f44f4f">"</span><span style="color:#3daee9">\xcc</span><span style="color:#f44f4f">c"</span>
|
|
<span style="color:#f44f4f">"</span><span style="color:#3daee9">\"</span><span style="color:#f44f4f">"</span>
|
|
<span style="color:#f44f4f">"</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span>
|
|
<span style="color:#f67400">34.4</span>
|
|
<span style="color:#f67400">34.4e43</span>
|
|
<span style="color:#f67400">43e4</span>
|
|
<span style="color:#f67400">0x3040</span>
|
|
<span style="color:#f67400">0xaF</span>
|
|
<span style="color:#f67400">0b01</span>
|
|
<span style="color:#f67400">3_43_4</span>
|
|
<span style="color:#f67400">0x0_4</span>
|
|
|
|
<span style="font-weight:bold">fun</span> <span style="color:#8e44ad">create</span><span style="color:#3f8058">():</span> <span style="color:#2980b9">U32</span> <span style="color:#3f8058">=></span> <span style="color:#f67400">0</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#2980b9;font-style:italic">iso</span> <span style="color:#8e44ad">create</span><span style="color:#3f8058">():</span> <span style="color:#2980b9">U32</span> <span style="color:#3f8058">=></span> <span style="color:#f67400">0</span>
|
|
<span style="font-weight:bold">fun</span> <span style="color:#2980b9">\\ abc \\</span> <span style="color:#2980b9;font-style:italic">iso</span> <span style="color:#8e44ad">create</span><span style="color:#3f8058">():</span> <span style="color:#2980b9">U32</span> <span style="color:#3f8058">=></span> <span style="color:#f67400">0</span>
|
|
<span style="font-weight:bold">class</span> <span style="color:#2980b9">\\ packet, blah \\</span> <span style="color:#2980b9;font-style:italic">iso</span> <span style="color:#2980b9">Xyz</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">if</span> <span style="color:#2980b9">\\ likely \\</span> a <span style="color:#fdbc4b;font-weight:bold">then</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
|
|
a<span style="color:#3f8058">.</span>endnormal
|
|
|
|
print<span style="color:#3f8058">();</span>print<span style="color:#3f8058">()</span>
|
|
|
|
<span style="color:#7a7c7d">/* syntactically false: */</span>
|
|
|
|
<span style="font-weight:bold">class</span> <span style="color:#da4453;text-decoration:underline">_aA</span>
|
|
<span style="font-weight:bold">class</span> <span style="color:#da4453;text-decoration:underline">_a</span>
|
|
<span style="font-weight:bold">class</span> <span style="color:#da4453;text-decoration:underline">a</span>
|
|
<span style="color:#da4453;text-decoration:underline">0b2332</span>
|
|
<span style="color:#da4453;text-decoration:underline">0b</span>
|
|
<span style="color:#da4453;text-decoration:underline">0x</span>
|
|
<span style="color:#da4453;text-decoration:underline">0xgf</span>
|
|
<span style="color:#da4453;text-decoration:underline">0f00</span>
|
|
<span style="color:#da4453;text-decoration:underline">3.</span>
|
|
<span style="color:#da4453;text-decoration:underline">.3</span>
|
|
<span style="color:#da4453;text-decoration:underline">3.</span>e3
|
|
<span style="color:#da4453;text-decoration:underline">3_</span>
|
|
<span style="color:#da4453;text-decoration:underline">3__43_4</span>
|
|
<span style="color:#da4453;text-decoration:underline">''</span>
|
|
<span style="color:#da4453;text-decoration:underline">'</span>\u'
|
|
<span style="color:#da4453;text-decoration:underline">'</span>\ua'
|
|
<span style="color:#da4453;text-decoration:underline">'</span>\uaaa'
|
|
<span style="color:#da4453;text-decoration:underline">'</span>\uaaaaa'
|
|
<span style="color:#da4453;text-decoration:underline">'</span>\uyyyy'
|
|
<span style="color:#f44f4f">"</span><span style="color:#da4453;text-decoration:underline">\u</span><span style="color:#f44f4f">"</span>
|
|
<span style="color:#f44f4f">"</span><span style="color:#da4453;text-decoration:underline">\u</span><span style="color:#f44f4f">a"</span>
|
|
<span style="color:#f44f4f">"</span><span style="color:#da4453;text-decoration:underline">\u</span><span style="color:#f44f4f">aaa"</span>
|
|
<span style="color:#f44f4f">"</span><span style="color:#da4453;text-decoration:underline">\u</span><span style="color:#f44f4f">yyyy"</span>
|
|
a<span style="color:#da4453;text-decoration:underline">'</span>a
|
|
|
|
<span style="font-weight:bold">class</span> <span style="color:#da4453;text-decoration:underline">badType</span>
|
|
print<span style="color:#3f8058">()</span><span style="color:#da4453;text-decoration:underline">;</span>
|
|
</pre></body></html>
|