UNPKG

highlightjs-chaos

Version:

highlight.js syntax definition for the Chaos language

85 lines (68 loc) 5.49 kB
<span class="hljs-keyword">import</span> math <span class="hljs-keyword">from</span> math <span class="hljs-keyword">import</span> cos <span class="hljs-keyword">import</span> math <span class="hljs-keyword">as</span> math2 <span class="hljs-comment">/* This is a multiline comment for the function below <span class="hljs-doctag">@description</span> Adds to numbers together */</span> <span class="hljs-type">num</span> <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">add</span>(<span class="hljs-params"><span class="hljs-type">num</span> x, <span class="hljs-type">str</span> y</span>)</span> <span class="hljs-type">num</span> z = x + y <span class="hljs-type">bool</span> a = <span class="hljs-literal">true</span> <span class="hljs-type">num</span> b = <span class="hljs-number">576.34</span> <span class="hljs-comment">// This is a comment</span> <span class="hljs-type">list</span> c = [<span class="hljs-string">'foo'</span>, <span class="hljs-string">"bar"</span>, <span class="hljs-number">17</span>, <span class="hljs-number">3.14</span>, a, <span class="hljs-literal">false</span>] <span class="hljs-comment">// End of Line(EOL) comment</span> <span class="hljs-built_in">pretty</span> <span class="hljs-keyword">echo</span> c <span class="hljs-comment"># This is a comment too</span> <span class="hljs-type">dict</span> d = {<span class="hljs-string">'a'</span>: <span class="hljs-number">1</span>, <span class="hljs-string">'b'</span>: b, <span class="hljs-string">'c'</span>: [<span class="hljs-number">2</span>, <span class="hljs-number">3</span>, <span class="hljs-number">4</span>]} <span class="hljs-comment"># End of Line(EOL) comment</span> <span class="hljs-built_in">pretty</span> <span class="hljs-keyword">print</span> d <span class="hljs-keyword">del</span> c <span class="hljs-keyword">end</span> { z == <span class="hljs-number">8</span> : f1(), z &gt; <span class="hljs-number">10</span> : f2(), <span class="hljs-keyword">default</span> : f3() } <span class="hljs-keyword">print</span> add(<span class="hljs-number">3</span>, <span class="hljs-number">5</span>) <span class="hljs-keyword">echo</span> math.sin(<span class="hljs-number">30</span>) <span class="hljs-keyword">print</span> cos(<span class="hljs-number">60</span>) <span class="hljs-keyword">print</span> math2.tan(<span class="hljs-number">45</span>) <span class="hljs-type">num</span> <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">f1</span>(<span class="hljs-params"></span>)</span> <span class="hljs-type">num</span> a = <span class="hljs-number">101</span> <span class="hljs-keyword">return</span> a <span class="hljs-keyword">end</span> <span class="hljs-type">num</span> <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">f2</span>(<span class="hljs-params"></span>)</span> <span class="hljs-type">num</span> b = <span class="hljs-number">102</span> <span class="hljs-keyword">return</span> b <span class="hljs-keyword">end</span> <span class="hljs-type">num</span> <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">f3</span>(<span class="hljs-params"></span>)</span> <span class="hljs-type">num</span> c = <span class="hljs-number">103</span> <span class="hljs-keyword">return</span> c <span class="hljs-keyword">end</span> <span class="hljs-literal">void</span> <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">f4</span>(<span class="hljs-params"></span>)</span> <span class="hljs-keyword">print</span> <span class="hljs-string">"baz"</span> <span class="hljs-keyword">end</span> <span class="hljs-type">list</span> a = [ <span class="hljs-number">1</span>, <span class="hljs-number">2</span>, <span class="hljs-number">3</span> ] <span class="hljs-keyword">foreach</span> a <span class="hljs-keyword">as</span> el <span class="hljs-keyword">print</span> el el = <span class="hljs-number">5</span> <span class="hljs-number">2</span> <span class="hljs-keyword">times</span> <span class="hljs-keyword">do</span> <span class="hljs-keyword">print</span> el <span class="hljs-keyword">end</span> <span class="hljs-keyword">end</span> <span class="hljs-type">dict</span> n = {<span class="hljs-string">'a'</span>: <span class="hljs-string">'foo'</span>, <span class="hljs-string">'b'</span>: <span class="hljs-string">'bar'</span>, <span class="hljs-string">'c'</span>: <span class="hljs-string">'baz'</span>} <span class="hljs-keyword">foreach</span> n <span class="hljs-keyword">as</span> key : val <span class="hljs-keyword">print</span> key <span class="hljs-keyword">print</span> val <span class="hljs-keyword">end</span> <span class="hljs-built_in">symbol_table</span> <span class="hljs-built_in">function_table</span> <span class="hljs-comment">// Interactive shell example</span> <span class="hljs-meta">kaos&gt; </span><span class="hljs-type">str</span> message = <span class="hljs-string">"hello world"</span> <span class="hljs-meta">kaos&gt; </span><span class="hljs-built_in">INFINITE</span> <span class="hljs-keyword">times</span> <span class="hljs-keyword">do</span> <span class="hljs-meta">.... </span> <span class="hljs-keyword">print</span> message <span class="hljs-meta">.... </span> <span class="hljs-keyword">end</span>