highlightjs-chaos
Version:
highlight.js syntax definition for the Chaos language
85 lines (68 loc) • 5.49 kB
Plain Text
<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 > <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> </span><span class="hljs-type">str</span> message = <span class="hljs-string">"hello world"</span>
<span class="hljs-meta">kaos> </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>