Warning, /frameworks/syntax-highlighting/autotests/reference/test.nim.ref is written in an unsupported language. File is not indexed.

0001 <Comment># Nim Sample file</Comment><br/>
0002 <Comment># Obtained form: https://nim-by-example.github.io/</Comment><br/>
0003 <Normal Text></Normal Text><br/>
0004 <Comment># Comment </Comment><Alert Level 1>ALERT</Alert Level 1><Comment> </Comment><Alert Level 3>NOTE</Alert Level 3><Comment> </Comment><Alert Level 2>FIXME</Alert Level 2><br/>
0005 <Comment>#[ Multi-line</Comment><br/>
0006 <Comment>comment ]#</Comment><br/>
0007 <Normal Text></Normal Text><br/>
0008 <DocComment>## Documentation comment</DocComment><br/>
0009 <DocComment>##[ Multi-line</DocComment><br/>
0010 <DocComment>    documentation comment ]##</DocComment><br/>
0011 <Normal Text></Normal Text><br/>
0012 <Keywords>import</Keywords><Normal Text> strformat</Normal Text><br/>
0013 <Normal Text></Normal Text><br/>
0014 <Keywords>type</Keywords><br/>
0015 <Normal Text>    </Normal Text><Types>Person</Types><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Keywords>object</Keywords><br/>
0016 <Normal Text>        name</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>string</Types><br/>
0017 <Normal Text>        age</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>Natural</Types><Normal Text> </Normal Text><Comment># Ensures the age is positive</Comment><br/>
0018 <Normal Text></Normal Text><br/>
0019 <Keywords>let</Keywords><Normal Text> people </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Brackets>[</Brackets><br/>
0020 <Normal Text>    </Normal Text><Types>Person</Types><Brackets>(</Brackets><Normal Text>name</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><String>"John"</String><Brackets>,</Brackets><Normal Text> age</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Decimal>45</Decimal><Brackets>),</Brackets><br/>
0021 <Normal Text>    </Normal Text><Types>Person</Types><Brackets>(</Brackets><Normal Text>name</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><String>"Kate"</String><Brackets>,</Brackets><Normal Text> age</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Decimal>30</Decimal><Brackets>)</Brackets><br/>
0022 <Brackets>]</Brackets><br/>
0023 <Normal Text></Normal Text><br/>
0024 <Controls>for</Controls><Normal Text> person </Normal Text><Operators>in</Operators><Normal Text> people</Normal Text><Brackets>:</Brackets><br/>
0025 <Normal Text>    </Normal Text><Comment># Type-safe string interpolation,</Comment><br/>
0026 <Normal Text>    </Normal Text><Comment># evaluated at compile time.</Comment><br/>
0027 <Normal Text>    </Normal Text><Controls>echo</Controls><Brackets>(</Brackets><Funcs>fmt</Funcs><String>"{person.name} is {person.age} years old"</String><Brackets>)</Brackets><br/>
0028 <Normal Text></Normal Text><br/>
0029 <Comment># Thanks to Nim's 'iterator' and 'yield' constructs,</Comment><br/>
0030 <Comment># iterators are as easy to write as ordinary</Comment><br/>
0031 <Comment># functions. They are compiled to inline loops.</Comment><br/>
0032 <Keywords>iterator</Keywords><Normal Text> </Normal Text><ProcDefs>oddNumbers</ProcDefs><Brackets>[</Brackets><Types>Idx</Types><Brackets>,</Brackets><Normal Text> </Normal Text><Types>T</Types><Brackets>](</Brackets><Normal Text>a</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>array</Types><Brackets>[</Brackets><Types>Idx</Types><Brackets>,</Brackets><Normal Text> </Normal Text><Types>T</Types><Brackets>]):</Brackets><Normal Text> </Normal Text><Types>T</Types><Normal Text> </Normal Text><Symbols>=</Symbols><br/>
0033 <Normal Text>    </Normal Text><Controls>for</Controls><Normal Text> x </Normal Text><Operators>in</Operators><Normal Text> a</Normal Text><Brackets>:</Brackets><br/>
0034 <Normal Text>        </Normal Text><Controls>if</Controls><Normal Text> x </Normal Text><Operators>mod</Operators><Normal Text> </Normal Text><Decimal>2</Decimal><Normal Text> </Normal Text><Symbols>==</Symbols><Normal Text> </Normal Text><Decimal>1</Decimal><Brackets>:</Brackets><br/>
0035 <Normal Text>            </Normal Text><Controls>yield</Controls><Normal Text> x</Normal Text><br/>
0036 <Normal Text></Normal Text><br/>
0037 <Controls>for</Controls><Normal Text> odd </Normal Text><Operators>in</Operators><Normal Text> </Normal Text><Funcs>oddNumbers</Funcs><Brackets>([</Brackets><Decimal>3</Decimal><Brackets>,</Brackets><Normal Text> </Normal Text><Decimal>6</Decimal><Brackets>,</Brackets><Normal Text> </Normal Text><Decimal>9</Decimal><Brackets>,</Brackets><Normal Text> </Normal Text><Decimal>12</Decimal><Brackets>,</Brackets><Normal Text> </Normal Text><Decimal>15</Decimal><Brackets>,</Brackets><Normal Text> </Normal Text><Decimal>18</Decimal><Brackets>]):</Brackets><br/>
0038 <Normal Text>    </Normal Text><Controls>echo</Controls><Normal Text> odd</Normal Text><br/>
0039 <Normal Text></Normal Text><br/>
0040 <Comment># Use Nim's macro system to transform a dense</Comment><br/>
0041 <Comment># data-centric description of x86 instructions</Comment><br/>
0042 <Comment># into lookup tables that are used by</Comment><br/>
0043 <Comment># assemblers and JITs.</Comment><br/>
0044 <Keywords>import</Keywords><Normal Text> macros</Normal Text><Brackets>,</Brackets><Normal Text> strutils</Normal Text><br/>
0045 <Normal Text></Normal Text><br/>
0046 <Keywords>macro</Keywords><Normal Text> </Normal Text><ProcDefs>toLookupTable</ProcDefs><Brackets>(</Brackets><Normal Text>data</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Attrs>static</Attrs><Brackets>[</Brackets><Types>string</Types><Brackets>]):</Brackets><Normal Text> </Normal Text><Types>untyped</Types><Normal Text> </Normal Text><Symbols>=</Symbols><br/>
0047 <Normal Text>    </Normal Text><Others>result</Others><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Funcs>newTree</Funcs><Brackets>(</Brackets><Normal Text>nnkBracket</Normal Text><Brackets>)</Brackets><br/>
0048 <Normal Text>    </Normal Text><Controls>for</Controls><Normal Text> w </Normal Text><Operators>in</Operators><Normal Text> data</Normal Text><Brackets>.</Brackets><Funcs>split</Funcs><Brackets>(</Brackets><Char>';'</Char><Brackets>):</Brackets><br/>
0049 <Normal Text>        </Normal Text><Others>result</Others><Brackets>.</Brackets><Props>add</Props><Normal Text> </Normal Text><Funcs>newLit</Funcs><Brackets>(</Brackets><Normal Text>w</Normal Text><Brackets>)</Brackets><br/>
0050 <Normal Text></Normal Text><br/>
0051 <Keywords>const</Keywords><br/>
0052 <Normal Text>    data </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><String>"mov;btc;cli;xor"</String><br/>
0053 <Normal Text>    opcodes </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Funcs>toLookupTable</Funcs><Brackets>(</Brackets><Normal Text>data</Normal Text><Brackets>)</Brackets><br/>
0054 <Normal Text></Normal Text><br/>
0055 <Controls>for</Controls><Normal Text> o </Normal Text><Operators>in</Operators><Normal Text> opcodes</Normal Text><Brackets>:</Brackets><br/>
0056 <Normal Text>    </Normal Text><Controls>echo</Controls><Normal Text> o</Normal Text><br/>
0057 <Normal Text></Normal Text><br/>
0058 <Comment># Variables</Comment><br/>
0059 <Keywords>proc</Keywords><Normal Text> </Normal Text><ProcDefs>getAlphabet</ProcDefs><Brackets>():</Brackets><Normal Text> </Normal Text><Types>string</Types><Normal Text> </Normal Text><Symbols>=</Symbols><br/>
0060 <Normal Text>    </Normal Text><Keywords>var</Keywords><Normal Text> accm </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><String>""</String><br/>
0061 <Normal Text>    </Normal Text><Controls>for</Controls><Normal Text> letter </Normal Text><Operators>in</Operators><Normal Text> </Normal Text><Char>'a'</Char><Brackets>..</Brackets><Char>'z'</Char><Brackets>:</Brackets><Normal Text>  </Normal Text><Comment># see iterators</Comment><br/>
0062 <Normal Text>        accm</Normal Text><Brackets>.</Brackets><Funcs>add</Funcs><Brackets>(</Brackets><Normal Text>letter</Normal Text><Brackets>)</Brackets><br/>
0063 <Normal Text>    </Normal Text><Controls>return</Controls><Normal Text> accm</Normal Text><br/>
0064 <Normal Text></Normal Text><br/>
0065 <Comment># Computed at compilation time</Comment><br/>
0066 <Keywords>const</Keywords><Normal Text> alphabet </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Funcs>getAlphabet</Funcs><Brackets>()</Brackets><br/>
0067 <Normal Text></Normal Text><br/>
0068 <Comment># Mutable variables</Comment><br/>
0069 <Keywords>var</Keywords><br/>
0070 <Normal Text>    a </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><String>"foo"</String><br/>
0071 <Normal Text>    b </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Decimal>0</Decimal><br/>
0072 <Normal Text>    </Normal Text><Comment># Works fine, initialized to 0</Comment><br/>
0073 <Normal Text>    c</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>int</Types><br/>
0074 <Normal Text></Normal Text><br/>
0075 <Comment># Immutable variables</Comment><br/>
0076 <Keywords>let</Keywords><br/>
0077 <Normal Text>    d </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><String>"foo"</String><br/>
0078 <Normal Text>    e </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Decimal>5</Decimal><br/>
0079 <Normal Text>    </Normal Text><Comment># Compile-time error, must be initialized at creation</Comment><br/>
0080 <Normal Text>    f</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>float</Types><br/>
0081 <Normal Text></Normal Text><br/>
0082 <Comment># Works fine, `a` is mutable</Comment><br/>
0083 <Normal Text>a</Normal Text><Brackets>.</Brackets><Funcs>add</Funcs><Brackets>(</Brackets><String>"bar"</String><Brackets>)</Brackets><br/>
0084 <Normal Text>b </Normal Text><Symbols>+=</Symbols><Normal Text> </Normal Text><Decimal>1</Decimal><br/>
0085 <Normal Text>c </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Decimal>3</Decimal><br/>
0086 <Normal Text></Normal Text><br/>
0087 <Comment># Compile-time error, const cannot be modified at run-time</Comment><br/>
0088 <Normal Text>alphabet </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><String>"abc"</String><br/>
0089 <Normal Text></Normal Text><br/>
0090 <Comment># Compile-time error, `d` and `e` are immutable</Comment><br/>
0091 <Normal Text>d</Normal Text><Brackets>.</Brackets><Funcs>add</Funcs><Brackets>(</Brackets><String>"bar"</String><Brackets>)</Brackets><br/>
0092 <Normal Text>e </Normal Text><Symbols>+=</Symbols><Normal Text> </Normal Text><Decimal>1</Decimal><br/>
0093 <Normal Text></Normal Text><br/>
0094 <Comment># Const</Comment><br/>
0095 <Types>STRING_LITERAL</Types><Brackets>(</Brackets><Types>TMP129</Types><Brackets>,</Brackets><Normal Text> </Normal Text><String>"abcdefghijklmnopqrstuvwxyz"</String><Brackets>,</Brackets><Normal Text> </Normal Text><Decimal>26</Decimal><Brackets>);</Brackets><br/>
0096 <Normal Text></Normal Text><br/>
0097 <Comment># Loops</Comment><br/>
0098 <Keywords>import</Keywords><Normal Text> strutils</Normal Text><Brackets>,</Brackets><Normal Text> random</Normal Text><br/>
0099 <Normal Text></Normal Text><br/>
0100 <Funcs>randomize</Funcs><Brackets>()</Brackets><br/>
0101 <Keywords>let</Keywords><Normal Text> answer </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Funcs>random</Funcs><Brackets>(</Brackets><Decimal>10</Decimal><Brackets>)</Brackets><Normal Text> </Normal Text><Symbols>+</Symbols><Normal Text> </Normal Text><Decimal>1</Decimal><br/>
0102 <Controls>while</Controls><Normal Text> </Normal Text><Constants>true</Constants><Brackets>:</Brackets><br/>
0103 <Normal Text>    </Normal Text><Controls>echo</Controls><Normal Text> </Normal Text><String>"I have a number from 1 to 10, what is it? "</String><br/>
0104 <Normal Text>    </Normal Text><Keywords>let</Keywords><Normal Text> guess </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Funcs>parseInt</Funcs><Brackets>(</Brackets><Normal Text>stdin</Normal Text><Brackets>.</Brackets><Props>readLine</Props><Brackets>)</Brackets><br/>
0105 <Normal Text></Normal Text><br/>
0106 <Normal Text>    </Normal Text><Controls>if</Controls><Normal Text> guess </Normal Text><Symbols><</Symbols><Normal Text> answer</Normal Text><Brackets>:</Brackets><br/>
0107 <Normal Text>        </Normal Text><Controls>echo</Controls><Normal Text> </Normal Text><String>"Too low, try again"</String><br/>
0108 <Normal Text>    </Normal Text><Controls>elif</Controls><Normal Text> guess </Normal Text><Symbols>></Symbols><Normal Text> answer</Normal Text><Brackets>:</Brackets><br/>
0109 <Normal Text>        </Normal Text><Controls>echo</Controls><Normal Text> </Normal Text><String>"Too high, try again"</String><br/>
0110 <Normal Text>    </Normal Text><Controls>else</Controls><Brackets>:</Brackets><br/>
0111 <Normal Text>        </Normal Text><Controls>echo</Controls><Normal Text> </Normal Text><String>"Correct!"</String><br/>
0112 <Normal Text>        </Normal Text><Controls>break</Controls><br/>
0113 <Normal Text></Normal Text><br/>
0114 <Controls>block</Controls><Normal Text> busyloops</Normal Text><Brackets>:</Brackets><br/>
0115 <Normal Text>    </Normal Text><Controls>while</Controls><Normal Text> </Normal Text><Constants>true</Constants><Brackets>:</Brackets><br/>
0116 <Normal Text>        </Normal Text><Controls>while</Controls><Normal Text> </Normal Text><Constants>true</Constants><Brackets>:</Brackets><br/>
0117 <Normal Text>        </Normal Text><Controls>break</Controls><Normal Text> busyloops</Normal Text><br/>
0118 <Normal Text></Normal Text><br/>
0119 <Comment># Case Statements</Comment><br/>
0120 <Controls>case</Controls><Normal Text> </Normal Text><String>"charlie"</String><Brackets>:</Brackets><br/>
0121 <Normal Text>    </Normal Text><Operators>of</Operators><Normal Text> </Normal Text><String>"alfa"</String><Brackets>:</Brackets><br/>
0122 <Normal Text>        </Normal Text><Controls>echo</Controls><Normal Text> </Normal Text><String>"A"</String><br/>
0123 <Normal Text>    </Normal Text><Operators>of</Operators><Normal Text> </Normal Text><String>"bravo"</String><Brackets>:</Brackets><br/>
0124 <Normal Text>        </Normal Text><Controls>echo</Controls><Normal Text> </Normal Text><String>"B"</String><br/>
0125 <Normal Text>    </Normal Text><Operators>of</Operators><Normal Text> </Normal Text><String>"charlie"</String><Brackets>:</Brackets><br/>
0126 <Normal Text>        </Normal Text><Controls>echo</Controls><Normal Text> </Normal Text><String>"C"</String><br/>
0127 <Normal Text>    </Normal Text><Controls>else</Controls><Brackets>:</Brackets><br/>
0128 <Normal Text>        </Normal Text><Controls>echo</Controls><Normal Text> </Normal Text><String>"Unrecognized letter"</String><br/>
0129 <Normal Text></Normal Text><br/>
0130 <Controls>case</Controls><Normal Text> </Normal Text><Char>'h'</Char><Brackets>:</Brackets><br/>
0131 <Normal Text>    </Normal Text><Operators>of</Operators><Normal Text> </Normal Text><Char>'a'</Char><Brackets>,</Brackets><Normal Text> </Normal Text><Char>'e'</Char><Brackets>,</Brackets><Normal Text> </Normal Text><Char>'i'</Char><Brackets>,</Brackets><Normal Text> </Normal Text><Char>'o'</Char><Brackets>,</Brackets><Normal Text> </Normal Text><Char>'u'</Char><Brackets>:</Brackets><br/>
0132 <Normal Text>        </Normal Text><Controls>echo</Controls><Normal Text> </Normal Text><String>"Vowel"</String><br/>
0133 <Normal Text>    </Normal Text><Operators>of</Operators><Normal Text> </Normal Text><Char>'\127'</Char><Brackets>..</Brackets><Char>'\255'</Char><Brackets>:</Brackets><br/>
0134 <Normal Text>        </Normal Text><Controls>echo</Controls><Normal Text> </Normal Text><String>"Unknown"</String><br/>
0135 <Normal Text>    </Normal Text><Controls>else</Controls><Brackets>:</Brackets><br/>
0136 <Normal Text>        </Normal Text><Controls>echo</Controls><Normal Text> </Normal Text><String>"Consonant"</String><br/>
0137 <Normal Text></Normal Text><br/>
0138 <Keywords>proc</Keywords><Normal Text> </Normal Text><ProcDefs>positiveOrNegative</ProcDefs><Brackets>(</Brackets><Normal Text>num</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>int</Types><Brackets>):</Brackets><Normal Text> </Normal Text><Types>string</Types><Normal Text> </Normal Text><Symbols>=</Symbols><br/>
0139 <Normal Text>    </Normal Text><Others>result</Others><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Controls>case</Controls><Normal Text> num</Normal Text><Brackets>:</Brackets><br/>
0140 <Normal Text>        </Normal Text><Operators>of</Operators><Normal Text> </Normal Text><Funcs>low</Funcs><Brackets>(</Brackets><Types>int</Types><Brackets>)..</Brackets><Normal Text> </Normal Text><Symbols>-</Symbols><Decimal>1</Decimal><Brackets>:</Brackets><br/>
0141 <Normal Text>            </Normal Text><String>"negative"</String><br/>
0142 <Normal Text>        </Normal Text><Operators>of</Operators><Normal Text> </Normal Text><Decimal>0</Decimal><Brackets>:</Brackets><br/>
0143 <Normal Text>            </Normal Text><String>"zero"</String><br/>
0144 <Normal Text>        </Normal Text><Operators>of</Operators><Normal Text> </Normal Text><Decimal>1</Decimal><Brackets>..</Brackets><Funcs>high</Funcs><Brackets>(</Brackets><Types>int</Types><Brackets>):</Brackets><br/>
0145 <Normal Text>            </Normal Text><String>"positive"</String><br/>
0146 <Normal Text>        </Normal Text><Controls>else</Controls><Brackets>:</Brackets><br/>
0147 <Normal Text>            </Normal Text><String>"impossible"</String><br/>
0148 <Normal Text></Normal Text><br/>
0149 <Controls>echo</Controls><Normal Text> </Normal Text><Funcs>positiveOrNegative</Funcs><Brackets>(</Brackets><Symbols>-</Symbols><Decimal>1</Decimal><Brackets>)</Brackets><br/>
0150 <Normal Text></Normal Text><br/>
0151 <Comment># items and pairs</Comment><br/>
0152 <Keywords>type</Keywords><br/>
0153 <Normal Text>    </Normal Text><Types>CustomRange</Types><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Keywords>object</Keywords><br/>
0154 <Normal Text>        low</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>int</Types><br/>
0155 <Normal Text>        high</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>int</Types><br/>
0156 <Normal Text></Normal Text><br/>
0157 <Keywords>iterator</Keywords><Normal Text> </Normal Text><ProcDefs>items</ProcDefs><Brackets>(</Brackets><Normal Text>range</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>CustomRange</Types><Brackets>):</Brackets><Normal Text> </Normal Text><Types>int</Types><Normal Text> </Normal Text><Symbols>=</Symbols><br/>
0158 <Normal Text>    </Normal Text><Keywords>var</Keywords><Normal Text> i </Normal Text><Symbols>=</Symbols><Normal Text> range</Normal Text><Brackets>.</Brackets><Props>low</Props><br/>
0159 <Normal Text>    </Normal Text><Controls>while</Controls><Normal Text> i </Normal Text><Symbols><=</Symbols><Normal Text> range</Normal Text><Brackets>.</Brackets><Props>high</Props><Brackets>:</Brackets><br/>
0160 <Normal Text>        </Normal Text><Controls>yield</Controls><Normal Text> i</Normal Text><br/>
0161 <Normal Text>        </Normal Text><Funcs>inc</Funcs><Normal Text> i</Normal Text><br/>
0162 <Normal Text></Normal Text><br/>
0163 <Keywords>iterator</Keywords><Normal Text> </Normal Text><ProcDefs>pairs</ProcDefs><Brackets>(</Brackets><Normal Text>range</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>CustomRange</Types><Brackets>):</Brackets><Normal Text> </Normal Text><Types>tuple</Types><Brackets>[</Brackets><Normal Text>a</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>int</Types><Brackets>,</Brackets><Normal Text> b</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>char</Types><Brackets>]</Brackets><Normal Text> </Normal Text><Symbols>=</Symbols><br/>
0164 <Normal Text>    </Normal Text><Controls>for</Controls><Normal Text> i </Normal Text><Operators>in</Operators><Normal Text> range</Normal Text><Brackets>:</Brackets><Normal Text>  </Normal Text><Comment># uses CustomRange.items</Comment><br/>
0165 <Normal Text>        </Normal Text><Controls>yield</Controls><Normal Text> </Normal Text><Brackets>(</Brackets><Normal Text>i</Normal Text><Brackets>,</Brackets><Normal Text> </Normal Text><Types>char</Types><Brackets>(</Brackets><Normal Text>i </Normal Text><Symbols>+</Symbols><Normal Text> </Normal Text><Funcs>ord</Funcs><Brackets>(</Brackets><Char>'a'</Char><Brackets>)))</Brackets><br/>
0166 <Normal Text></Normal Text><br/>
0167 <Controls>for</Controls><Normal Text> i</Normal Text><Brackets>,</Brackets><Normal Text> c </Normal Text><Operators>in</Operators><Normal Text> </Normal Text><Types>CustomRange</Types><Brackets>(</Brackets><Normal Text>low</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Decimal>1</Decimal><Brackets>,</Brackets><Normal Text> high</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Decimal>3</Decimal><Brackets>):</Brackets><br/>
0168 <Normal Text>    </Normal Text><Controls>echo</Controls><Normal Text> c</Normal Text><br/>
0169 <Normal Text></Normal Text><br/>
0170 <Comment># Operators</Comment><br/>
0171 <Keywords>iterator</Keywords><Normal Text> </Normal Text><ProcDefs>`...`</ProcDefs><Symbols>*</Symbols><Brackets>[</Brackets><Types>T</Types><Brackets>](</Brackets><Normal Text>a</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>T</Types><Brackets>,</Brackets><Normal Text> b</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>T</Types><Brackets>):</Brackets><Normal Text> </Normal Text><Types>T</Types><Normal Text> </Normal Text><Symbols>=</Symbols><br/>
0172 <Normal Text>    </Normal Text><Keywords>var</Keywords><Normal Text> res</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>T</Types><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Types>T</Types><Brackets>(</Brackets><Normal Text>a</Normal Text><Brackets>)</Brackets><br/>
0173 <Normal Text>    </Normal Text><Controls>while</Controls><Normal Text> res </Normal Text><Symbols><=</Symbols><Normal Text> b</Normal Text><Brackets>:</Brackets><br/>
0174 <Normal Text>        </Normal Text><Controls>yield</Controls><Normal Text> res</Normal Text><br/>
0175 <Normal Text>        </Normal Text><Funcs>inc</Funcs><Normal Text> res</Normal Text><br/>
0176 <Normal Text></Normal Text><br/>
0177 <Controls>for</Controls><Normal Text> i </Normal Text><Operators>in</Operators><Normal Text> </Normal Text><Decimal>0</Decimal><Brackets>...</Brackets><Decimal>5</Decimal><Brackets>:</Brackets><br/>
0178 <Normal Text>    </Normal Text><Controls>echo</Controls><Normal Text> i</Normal Text><br/>
0179 <Normal Text></Normal Text><br/>
0180 <Comment># Inline Iterators</Comment><br/>
0181 <Keywords>iterator</Keywords><Normal Text> </Normal Text><ProcDefs>countTo</ProcDefs><Brackets>(</Brackets><Normal Text>n</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>int</Types><Brackets>):</Brackets><Normal Text> </Normal Text><Types>int</Types><Normal Text> </Normal Text><Symbols>=</Symbols><br/>
0182 <Normal Text>    </Normal Text><Keywords>var</Keywords><Normal Text> i </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Decimal>0</Decimal><br/>
0183 <Normal Text>    </Normal Text><Controls>while</Controls><Normal Text> i </Normal Text><Symbols><=</Symbols><Normal Text> n</Normal Text><Brackets>:</Brackets><br/>
0184 <Normal Text>        </Normal Text><Controls>yield</Controls><Normal Text> i</Normal Text><br/>
0185 <Normal Text>        </Normal Text><Funcs>inc</Funcs><Normal Text> i</Normal Text><br/>
0186 <Normal Text></Normal Text><br/>
0187 <Controls>for</Controls><Normal Text> i </Normal Text><Operators>in</Operators><Normal Text> </Normal Text><Funcs>countTo</Funcs><Brackets>(</Brackets><Decimal>5</Decimal><Brackets>):</Brackets><br/>
0188 <Normal Text>    </Normal Text><Controls>echo</Controls><Normal Text> i</Normal Text><br/>
0189 <Normal Text></Normal Text><br/>
0190 <Comment># Closure Iterators</Comment><br/>
0191 <Keywords>proc</Keywords><Normal Text> </Normal Text><ProcDefs>countTo</ProcDefs><Brackets>(</Brackets><Normal Text>n</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>int</Types><Brackets>):</Brackets><Normal Text> </Normal Text><Keywords>iterator</Keywords><Brackets>():</Brackets><Normal Text> </Normal Text><Types>int</Types><Normal Text> </Normal Text><Symbols>=</Symbols><br/>
0192 <Normal Text>    </Normal Text><Controls>return</Controls><Normal Text> </Normal Text><Keywords>iterator</Keywords><Brackets>():</Brackets><Normal Text> </Normal Text><Types>int</Types><Normal Text> </Normal Text><Symbols>=</Symbols><br/>
0193 <Normal Text>        </Normal Text><Keywords>var</Keywords><Normal Text> i </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Decimal>0</Decimal><br/>
0194 <Normal Text>        </Normal Text><Controls>while</Controls><Normal Text> i </Normal Text><Symbols><=</Symbols><Normal Text> n</Normal Text><Brackets>:</Brackets><br/>
0195 <Normal Text>            </Normal Text><Controls>yield</Controls><Normal Text> i</Normal Text><br/>
0196 <Normal Text>            </Normal Text><Funcs>inc</Funcs><Normal Text> i</Normal Text><br/>
0197 <Normal Text></Normal Text><br/>
0198 <Keywords>let</Keywords><Normal Text> countTo20 </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Funcs>countTo</Funcs><Brackets>(</Brackets><Decimal>20</Decimal><Brackets>)</Brackets><br/>
0199 <Normal Text></Normal Text><br/>
0200 <Controls>echo</Controls><Normal Text> </Normal Text><Funcs>countTo20</Funcs><Brackets>()</Brackets><br/>
0201 <Normal Text></Normal Text><br/>
0202 <Keywords>var</Keywords><Normal Text> output </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><String>""</String><br/>
0203 <Comment># Raw iterator usage:</Comment><br/>
0204 <Controls>while</Controls><Normal Text> </Normal Text><Constants>true</Constants><Brackets>:</Brackets><br/>
0205 <Normal Text>    </Normal Text><Comment># 1. grab an element</Comment><br/>
0206 <Normal Text>    </Normal Text><Keywords>let</Keywords><Normal Text> next </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Funcs>countTo20</Funcs><Brackets>()</Brackets><br/>
0207 <Normal Text>    </Normal Text><Comment># 2. Is the element bogus? It's the end of the loop, discard it</Comment><br/>
0208 <Normal Text>    </Normal Text><Controls>if</Controls><Normal Text> </Normal Text><Funcs>finished</Funcs><Brackets>(</Brackets><Normal Text>countTo20</Normal Text><Brackets>):</Brackets><br/>
0209 <Normal Text>        </Normal Text><Controls>break</Controls><br/>
0210 <Normal Text>    </Normal Text><Comment># 3. Loop body goes here:</Comment><br/>
0211 <Normal Text>    output</Normal Text><Brackets>.</Brackets><Funcs>add</Funcs><Brackets>(</Brackets><Symbols>$</Symbols><Normal Text>next </Normal Text><Symbols>&</Symbols><Normal Text> </Normal Text><String>" "</String><Brackets>)</Brackets><br/>
0212 <Normal Text></Normal Text><br/>
0213 <Controls>echo</Controls><Normal Text> output</Normal Text><br/>
0214 <Normal Text></Normal Text><br/>
0215 <Normal Text>output </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><String>""</String><br/>
0216 <Keywords>let</Keywords><Normal Text> countTo9 </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Funcs>countTo</Funcs><Brackets>(</Brackets><Decimal>9</Decimal><Brackets>)</Brackets><br/>
0217 <Controls>for</Controls><Normal Text> i </Normal Text><Operators>in</Operators><Normal Text> </Normal Text><Funcs>countTo9</Funcs><Brackets>():</Brackets><br/>
0218 <Normal Text>    output</Normal Text><Brackets>.</Brackets><Funcs>add</Funcs><Brackets>(</Brackets><Symbols>$</Symbols><Normal Text>i</Normal Text><Brackets>)</Brackets><br/>
0219 <Controls>echo</Controls><Normal Text> output</Normal Text><br/>
0220 <Normal Text></Normal Text><br/>
0221 <Comment># Procs</Comment><br/>
0222 <Keywords>proc</Keywords><Normal Text> </Normal Text><ProcDefs>fibonacci</ProcDefs><Brackets>(</Brackets><Normal Text>n</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>int</Types><Brackets>):</Brackets><Normal Text> </Normal Text><Types>int</Types><Normal Text> </Normal Text><Symbols>=</Symbols><br/>
0223 <Normal Text>    </Normal Text><Controls>if</Controls><Normal Text> n </Normal Text><Symbols><</Symbols><Normal Text> </Normal Text><Decimal>2</Decimal><Brackets>:</Brackets><br/>
0224 <Normal Text>        </Normal Text><Others>result</Others><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> n</Normal Text><br/>
0225 <Normal Text>    </Normal Text><Controls>else</Controls><Brackets>:</Brackets><br/>
0226 <Normal Text>        </Normal Text><Others>result</Others><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Funcs>fibonacci</Funcs><Brackets>(</Brackets><Normal Text>n </Normal Text><Symbols>-</Symbols><Normal Text> </Normal Text><Decimal>1</Decimal><Brackets>)</Brackets><Normal Text> </Normal Text><Symbols>+</Symbols><Normal Text> </Normal Text><Brackets>(</Brackets><Normal Text>n </Normal Text><Symbols>-</Symbols><Normal Text> </Normal Text><Decimal>2</Decimal><Brackets>).</Brackets><Props>fibonacci</Props><br/>
0227 <Normal Text></Normal Text><br/>
0228 <Comment># Operators</Comment><br/>
0229 <Keywords>proc</Keywords><Normal Text> </Normal Text><ProcDefs>`$`</ProcDefs><Brackets>(</Brackets><Normal Text>a</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>array</Types><Brackets>[</Brackets><Decimal>2</Decimal><Brackets>,</Brackets><Normal Text> </Normal Text><Types>array</Types><Brackets>[</Brackets><Decimal>2</Decimal><Brackets>,</Brackets><Normal Text> </Normal Text><Types>int</Types><Brackets>]]):</Brackets><Normal Text> </Normal Text><Types>string</Types><Normal Text> </Normal Text><Symbols>=</Symbols><br/>
0230 <Normal Text>    </Normal Text><Others>result</Others><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><String>""</String><br/>
0231 <Normal Text>    </Normal Text><Controls>for</Controls><Normal Text> v </Normal Text><Operators>in</Operators><Normal Text> a</Normal Text><Brackets>:</Brackets><br/>
0232 <Normal Text>        </Normal Text><Controls>for</Controls><Normal Text> vx </Normal Text><Operators>in</Operators><Normal Text> v</Normal Text><Brackets>:</Brackets><br/>
0233 <Normal Text>            </Normal Text><Others>result</Others><Brackets>.</Brackets><Funcs>add</Funcs><Brackets>(</Brackets><Symbols>$</Symbols><Normal Text>vx </Normal Text><Symbols>&</Symbols><Normal Text> </Normal Text><String>", "</String><Brackets>)</Brackets><br/>
0234 <Normal Text>        </Normal Text><Others>result</Others><Brackets>.</Brackets><Funcs>add</Funcs><Brackets>(</Brackets><String>"</String><String Char>\n</String Char><String>"</String><Brackets>)</Brackets><br/>
0235 <Normal Text></Normal Text><br/>
0236 <Controls>echo</Controls><Brackets>([[</Brackets><Decimal>1</Decimal><Brackets>,</Brackets><Normal Text> </Normal Text><Decimal>2</Decimal><Brackets>],</Brackets><Normal Text> </Normal Text><Brackets>[</Brackets><Decimal>3</Decimal><Brackets>,</Brackets><Normal Text> </Normal Text><Decimal>4</Decimal><Brackets>]])</Brackets><Normal Text>  </Normal Text><Comment># See varargs for</Comment><br/>
0237 <Normal Text>                        </Normal Text><Comment># how echo works</Comment><br/>
0238 <Normal Text></Normal Text><br/>
0239 <Keywords>proc</Keywords><Normal Text> </Normal Text><ProcDefs>`^&*^@%`</ProcDefs><Brackets>(</Brackets><Normal Text>a</Normal Text><Brackets>,</Brackets><Normal Text> b</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>string</Types><Brackets>):</Brackets><Normal Text> </Normal Text><Types>string</Types><Normal Text> </Normal Text><Symbols>=</Symbols><br/>
0240 <Normal Text>    </Normal Text><DocComment>## A confusingly named useless operator</DocComment><br/>
0241 <Normal Text>    </Normal Text><Others>result</Others><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> a</Normal Text><Brackets>[</Brackets><Decimal>0</Decimal><Brackets>]</Brackets><Normal Text> </Normal Text><Symbols>&</Symbols><Normal Text> b</Normal Text><Brackets>[</Brackets><Funcs>high</Funcs><Brackets>(</Brackets><Normal Text>b</Normal Text><Brackets>)]</Brackets><br/>
0242 <Normal Text></Normal Text><br/>
0243 <Controls>assert</Controls><Brackets>(</Brackets><String>"foo"</String><Normal Text> </Normal Text><Symbols>^&*^@%</Symbols><Normal Text> </Normal Text><String>"bar"</String><Normal Text> </Normal Text><Symbols>==</Symbols><Normal Text> </Normal Text><String>"fr"</String><Brackets>)</Brackets><br/>
0244 <Normal Text></Normal Text><br/>
0245 <Comment># Generic Functions</Comment><br/>
0246 <Comment># Not really good idea for obvious reasons</Comment><br/>
0247 <Keywords>let</Keywords><Normal Text> zero </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><String>""</String><br/>
0248 <Keywords>proc</Keywords><Normal Text> </Normal Text><ProcDefs>`+`</ProcDefs><Brackets>(</Brackets><Normal Text>a</Normal Text><Brackets>,</Brackets><Normal Text> b</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>string</Types><Brackets>):</Brackets><Normal Text> </Normal Text><Types>string</Types><Normal Text> </Normal Text><Symbols>=</Symbols><br/>
0249 <Normal Text>    a </Normal Text><Symbols>&</Symbols><Normal Text> b</Normal Text><br/>
0250 <Normal Text></Normal Text><br/>
0251 <Keywords>proc</Keywords><Normal Text> </Normal Text><ProcDefs>`*`</ProcDefs><Brackets>[</Brackets><Types>T</Types><Brackets>](</Brackets><Normal Text>a</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>T</Types><Brackets>,</Brackets><Normal Text> b</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>int</Types><Brackets>):</Brackets><Normal Text> </Normal Text><Types>T</Types><Normal Text> </Normal Text><Symbols>=</Symbols><br/>
0252 <Normal Text>    </Normal Text><Others>result</Others><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> zero</Normal Text><br/>
0253 <Normal Text>    </Normal Text><Controls>for</Controls><Normal Text> i </Normal Text><Operators>in</Operators><Normal Text> </Normal Text><Decimal>0</Decimal><Brackets>..</Brackets><Normal Text>b</Normal Text><Symbols>-</Symbols><Decimal>1</Decimal><Brackets>:</Brackets><br/>
0254 <Normal Text>        </Normal Text><Others>result</Others><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Others>result</Others><Normal Text> </Normal Text><Symbols>+</Symbols><Normal Text> </Normal Text><Funcs>a </Funcs><Normal Text> </Normal Text><Comment># calls `+` from line 3</Comment><br/>
0255 <Normal Text></Normal Text><br/>
0256 <Controls>assert</Controls><Brackets>(</Brackets><String>"a"</String><Normal Text> </Normal Text><Symbols>*</Symbols><Normal Text> </Normal Text><Decimal>10</Decimal><Normal Text> </Normal Text><Symbols>==</Symbols><Normal Text> </Normal Text><String>"aaaaaaaaaa"</String><Brackets>)</Brackets><br/>
0257 <Normal Text></Normal Text><br/>
0258 <Comment># Blocks</Comment><br/>
0259 <Controls>block</Controls><Normal Text> outer</Normal Text><Brackets>:</Brackets><br/>
0260 <Normal Text>    </Normal Text><Controls>for</Controls><Normal Text> i </Normal Text><Operators>in</Operators><Normal Text> </Normal Text><Decimal>0</Decimal><Brackets>..</Brackets><Decimal>2000</Decimal><Brackets>:</Brackets><br/>
0261 <Normal Text>        </Normal Text><Controls>for</Controls><Normal Text> j </Normal Text><Operators>in</Operators><Normal Text> </Normal Text><Decimal>0</Decimal><Brackets>..</Brackets><Decimal>2000</Decimal><Brackets>:</Brackets><br/>
0262 <Normal Text>            </Normal Text><Controls>if</Controls><Normal Text> i</Normal Text><Symbols>+</Symbols><Normal Text>j </Normal Text><Symbols>==</Symbols><Normal Text> </Normal Text><Decimal>3145</Decimal><Brackets>:</Brackets><br/>
0263 <Normal Text>                </Normal Text><Controls>echo</Controls><Normal Text> i</Normal Text><Brackets>,</Brackets><Normal Text> </Normal Text><String>", "</String><Brackets>,</Brackets><Normal Text> j</Normal Text><br/>
0264 <Normal Text>                </Normal Text><Controls>break</Controls><Normal Text> outer</Normal Text><br/>
0265 <Normal Text></Normal Text><br/>
0266 <Keywords>let</Keywords><Normal Text> b </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Decimal>3</Decimal><br/>
0267 <Controls>block</Controls><Brackets>:</Brackets><br/>
0268 <Normal Text>    </Normal Text><Keywords>let</Keywords><Normal Text> b </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><String>"3"</String><Normal Text>  </Normal Text><Comment># shadowing is probably a dumb idea</Comment><br/>
0269 <Normal Text></Normal Text><br/>
0270 <Comment># Primitive types</Comment><br/>
0271 <Keywords>let</Keywords><br/>
0272 <Normal Text>    a</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>int8</Types><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Hex>0x7F</Hex><Normal Text> </Normal Text><Comment># Works</Comment><br/>
0273 <Normal Text>    b</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>uint8</Types><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Binary>0b1111_1111</Binary><Normal Text> </Normal Text><Comment># Works</Comment><br/>
0274 <Normal Text>    d </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Hex>0xFF</Hex><Normal Text> </Normal Text><Comment># type is int</Comment><br/>
0275 <Normal Text>    c</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>uint8</Types><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Decimal>256</Decimal><Normal Text> </Normal Text><Comment># Compile time error</Comment><br/>
0276 <Keywords>let</Keywords><br/>
0277 <Normal Text>    a</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>int</Types><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Decimal>2</Decimal><br/>
0278 <Normal Text>    b</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>int</Types><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Decimal>4</Decimal><br/>
0279 <Controls>echo</Controls><Normal Text> </Normal Text><Decimal>4</Decimal><Symbols>/</Symbols><Decimal>2</Decimal><br/>
0280 <Normal Text></Normal Text><br/>
0281 <Comment># Types Aliases</Comment><br/>
0282 <Keywords>type</Keywords><br/>
0283 <Normal Text>    </Normal Text><Types>MyInteger</Types><Symbols>*</Symbols><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Types>int</Types><br/>
0284 <Normal Text></Normal Text><br/>
0285 <Keywords>let</Keywords><Normal Text> a</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>int</Types><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Decimal>2</Decimal><br/>
0286 <Controls>discard</Controls><Normal Text> a </Normal Text><Symbols>+</Symbols><Normal Text> </Normal Text><Types>MyInteger</Types><Brackets>(</Brackets><Decimal>4</Decimal><Brackets>)</Brackets><br/>
0287 <Normal Text></Normal Text><br/>
0288 <Comment># Objects</Comment><br/>
0289 <Keywords>type</Keywords><br/>
0290 <Normal Text>    </Normal Text><Types>Animal</Types><Symbols>*</Symbols><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Keywords>object</Keywords><br/>
0291 <Normal Text>        name</Normal Text><Symbols>*</Symbols><Brackets>,</Brackets><Normal Text> species</Normal Text><Symbols>*</Symbols><Brackets>:</Brackets><Normal Text> </Normal Text><Types>string</Types><br/>
0292 <Normal Text>        age</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>int</Types><br/>
0293 <Normal Text></Normal Text><br/>
0294 <Keywords>proc</Keywords><Normal Text> </Normal Text><ProcDefs>sleep</ProcDefs><Symbols>*</Symbols><Brackets>(</Brackets><Normal Text>a</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Keywords>var</Keywords><Normal Text> </Normal Text><Types>Animal</Types><Brackets>)</Brackets><Normal Text> </Normal Text><Symbols>=</Symbols><br/>
0295 <Normal Text>    a</Normal Text><Brackets>.</Brackets><Props>age</Props><Normal Text> </Normal Text><Symbols>+=</Symbols><Normal Text> </Normal Text><Decimal>1</Decimal><br/>
0296 <Normal Text></Normal Text><br/>
0297 <Keywords>proc</Keywords><Normal Text> </Normal Text><ProcDefs>dead</ProcDefs><Symbols>*</Symbols><Brackets>(</Brackets><Normal Text>a</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>Animal</Types><Brackets>):</Brackets><Normal Text> </Normal Text><Types>bool</Types><Normal Text> </Normal Text><Symbols>=</Symbols><br/>
0298 <Normal Text>    </Normal Text><Others>result</Others><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> a</Normal Text><Brackets>.</Brackets><Props>age</Props><Normal Text> </Normal Text><Symbols>></Symbols><Normal Text> </Normal Text><Decimal>20</Decimal><br/>
0299 <Normal Text></Normal Text><br/>
0300 <Keywords>var</Keywords><Normal Text> carl</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>Animal</Types><br/>
0301 <Normal Text>carl </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Types>Animal</Types><Brackets>(</Brackets><Funcs>name</Funcs><Normal Text> </Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><String>"Carl"</String><Brackets>,</Brackets><br/>
0302 <Normal Text>              </Normal Text><Funcs>species</Funcs><Normal Text> </Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><String>"L. glama"</String><Brackets>,</Brackets><br/>
0303 <Normal Text>              </Normal Text><Funcs>age</Funcs><Normal Text> </Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Decimal>12</Decimal><Brackets>)</Brackets><br/>
0304 <Normal Text></Normal Text><br/>
0305 <Keywords>let</Keywords><Normal Text> joe </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Types>Animal</Types><Brackets>(</Brackets><Funcs>name</Funcs><Normal Text> </Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><String>"Joe"</String><Brackets>,</Brackets><br/>
0306 <Normal Text>                 </Normal Text><Funcs>species</Funcs><Normal Text> </Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><String>"H. sapiens"</String><Brackets>,</Brackets><br/>
0307 <Normal Text>                 </Normal Text><Funcs>age</Funcs><Normal Text> </Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Decimal>23</Decimal><Brackets>)</Brackets><br/>
0308 <Normal Text></Normal Text><br/>
0309 <Controls>assert</Controls><Brackets>(</Brackets><Operators>not</Operators><Normal Text> carl</Normal Text><Brackets>.</Brackets><Props>dead</Props><Brackets>)</Brackets><br/>
0310 <Controls>for</Controls><Normal Text> i </Normal Text><Operators>in</Operators><Normal Text> </Normal Text><Decimal>0</Decimal><Brackets>..</Brackets><Decimal>10</Decimal><Brackets>:</Brackets><br/>
0311 <Normal Text>    carl</Normal Text><Brackets>.</Brackets><Funcs>sleep</Funcs><Brackets>()</Brackets><br/>
0312 <Controls>assert</Controls><Normal Text> carl</Normal Text><Brackets>.</Brackets><Props>dead</Props><br/>
0313 <Normal Text></Normal Text><br/>
0314 <Comment># Enums</Comment><br/>
0315 <Keywords>type</Keywords><br/>
0316 <Normal Text>    </Normal Text><Types>CompassDirections</Types><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Keywords>enum</Keywords><br/>
0317 <Normal Text>        cdNorth</Normal Text><Brackets>,</Brackets><Normal Text> cdEast</Normal Text><Brackets>,</Brackets><Normal Text> cdSouth</Normal Text><Brackets>,</Brackets><Normal Text> cdWest</Normal Text><br/>
0318 <Normal Text></Normal Text><br/>
0319 <Normal Text>    </Normal Text><Types>Colors</Types><Normal Text> </Normal Text><Pragmas>{.pure.}</Pragmas><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Keywords>enum</Keywords><br/>
0320 <Normal Text>        </Normal Text><Types>Red</Types><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><String>"FF0000"</String><Brackets>,</Brackets><Normal Text> </Normal Text><Types>Green</Types><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Brackets>(</Brackets><Decimal>1</Decimal><Brackets>,</Brackets><Normal Text> </Normal Text><String>"00FF00"</String><Brackets>),</Brackets><Normal Text> </Normal Text><Types>Blue</Types><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><String>"0000FF"</String><br/>
0321 <Normal Text></Normal Text><br/>
0322 <Normal Text>    </Normal Text><Types>Signals</Types><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Keywords>enum</Keywords><br/>
0323 <Normal Text>        sigQuit </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Decimal>3</Decimal><Brackets>,</Brackets><Normal Text> sigAbort </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Decimal>6</Decimal><Brackets>,</Brackets><Normal Text> sigKill </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Decimal>9</Decimal><br/>
0324 <Normal Text></Normal Text><br/>
0325 <Comment># Distinct Types</Comment><br/>
0326 <Keywords>type</Keywords><br/>
0327 <Normal Text>    </Normal Text><Types>Dollars</Types><Symbols>*</Symbols><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Types>distinct</Types><Normal Text> </Normal Text><Types>float</Types><br/>
0328 <Normal Text></Normal Text><br/>
0329 <Keywords>var</Keywords><Normal Text> a </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Float>20.</Float><Types>Dollars</Types><br/>
0330 <Normal Text>a </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Decimal>25</Decimal><Normal Text>  </Normal Text><Comment># Doesn't compile</Comment><br/>
0331 <Normal Text>a </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Float>25.</Float><Types>Dollars</Types><Normal Text>  </Normal Text><Comment># Works fine</Comment><br/>
0332 <Normal Text></Normal Text><br/>
0333 <Comment># Strings</Comment><br/>
0334 <Controls>echo</Controls><Normal Text> </Normal Text><String>"words words words ⚑"</String><br/>
0335 <Controls>echo</Controls><Normal Text> </Normal Text><String>"""</String><br/>
0336 <String><html></String><br/>
0337 <String>  <head></String><br/>
0338 <String>  </head>\n\n</String><br/>
0339 <String></String><br/>
0340 <String>  <body></String><br/>
0341 <String>  </body></String><br/>
0342 <String></html> """</String><br/>
0343 <Normal Text></Normal Text><br/>
0344 <Keywords>proc</Keywords><Normal Text> </Normal Text><ProcDefs>re</ProcDefs><Brackets>(</Brackets><Normal Text>s</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>string</Types><Brackets>):</Brackets><Normal Text> </Normal Text><Types>string</Types><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> s</Normal Text><br/>
0345 <Normal Text></Normal Text><br/>
0346 <Controls>echo</Controls><Normal Text> </Normal Text><String>r".</String><String Char>""</String Char><String>.\s\"</String><Normal Text>      </Normal Text><Comment># Raw string</Comment><br/>
0347 <Controls>echo</Controls><Normal Text> </Normal Text><String>re"</String><Pattern Internal Operator>\b</Pattern Internal Operator><Pattern Character Class>[a-z]</Pattern Character Class><Pattern Internal Operator>++\b</Pattern Internal Operator><String>"</String><Normal Text> </Normal Text><Comment># Regular expression</Comment><br/>
0348 <Controls>echo</Controls><Normal Text> </Normal Text><Funcs>function</Funcs><String>"text"</String><Normal Text>  </Normal Text><Comment># Tagged string</Comment><br/>
0349 <Normal Text></Normal Text><br/>
0350 <Comment># Arrays</Comment><br/>
0351 <Keywords>type</Keywords><br/>
0352 <Normal Text>    </Normal Text><Types>ThreeStringAddress</Types><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Types>array</Types><Brackets>[</Brackets><Decimal>3</Decimal><Brackets>,</Brackets><Normal Text> </Normal Text><Types>string</Types><Brackets>]</Brackets><br/>
0353 <Keywords>let</Keywords><Normal Text> names</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>ThreeStringAddress</Types><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Brackets>[</Brackets><String>"Jasmine"</String><Brackets>,</Brackets><Normal Text> </Normal Text><String>"Ktisztina"</String><Brackets>,</Brackets><Normal Text> </Normal Text><String>"Kristof"</String><Brackets>]</Brackets><br/>
0354 <Keywords>let</Keywords><Normal Text> addresses</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>ThreeStringAddress</Types><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Brackets>[</Brackets><String>"101 Betburweg"</String><Brackets>,</Brackets><Normal Text> </Normal Text><String>"66 Bellion Drive"</String><Brackets>,</Brackets><Normal Text> </Normal Text><String>"194 Laarderweg"</String><Brackets>]</Brackets><br/>
0355 <Normal Text></Normal Text><br/>
0356 <Keywords>type</Keywords><br/>
0357 <Normal Text>    </Normal Text><Types>Matrix</Types><Brackets>[</Brackets><Types>W</Types><Brackets>,</Brackets><Normal Text> </Normal Text><Types>H</Types><Brackets>:</Brackets><Normal Text> </Normal Text><Attrs>static</Attrs><Brackets>[</Brackets><Types>int</Types><Brackets>]]</Brackets><Normal Text> </Normal Text><Symbols>=</Symbols><br/>
0358 <Normal Text>        </Normal Text><Types>array</Types><Brackets>[</Brackets><Decimal>1</Decimal><Brackets>..</Brackets><Types>W</Types><Brackets>,</Brackets><Normal Text> </Normal Text><Types>array</Types><Brackets>[</Brackets><Decimal>1</Decimal><Brackets>..</Brackets><Types>H</Types><Brackets>,</Brackets><Normal Text> </Normal Text><Types>int</Types><Brackets>]]</Brackets><br/>
0359 <Normal Text></Normal Text><br/>
0360 <Keywords>let</Keywords><Normal Text> mat1</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>Matrix</Types><Brackets>[</Brackets><Decimal>2</Decimal><Brackets>,</Brackets><Normal Text> </Normal Text><Decimal>2</Decimal><Brackets>]</Brackets><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Brackets>[[</Brackets><Decimal>1</Decimal><Brackets>,</Brackets><Normal Text> </Normal Text><Decimal>0</Decimal><Brackets>],</Brackets><br/>
0361 <Normal Text>                          </Normal Text><Brackets>[</Brackets><Decimal>0</Decimal><Brackets>,</Brackets><Normal Text> </Normal Text><Decimal>1</Decimal><Brackets>]]</Brackets><br/>
0362 <Keywords>let</Keywords><Normal Text> mat2</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>Matrix</Types><Brackets>[</Brackets><Decimal>2</Decimal><Brackets>,</Brackets><Normal Text> </Normal Text><Decimal>2</Decimal><Brackets>]</Brackets><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Brackets>[[</Brackets><Decimal>0</Decimal><Brackets>,</Brackets><Normal Text> </Normal Text><Decimal>1</Decimal><Brackets>],</Brackets><br/>
0363 <Normal Text>                          </Normal Text><Brackets>[</Brackets><Decimal>1</Decimal><Brackets>,</Brackets><Normal Text> </Normal Text><Decimal>0</Decimal><Brackets>]]</Brackets><br/>
0364 <Normal Text></Normal Text><br/>
0365 <Keywords>proc</Keywords><Normal Text> </Normal Text><ProcDefs>`+`</ProcDefs><Brackets>[</Brackets><Types>W</Types><Brackets>,</Brackets><Normal Text> </Normal Text><Types>H</Types><Brackets>](</Brackets><Normal Text>a</Normal Text><Brackets>,</Brackets><Normal Text> b</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>Matrix</Types><Brackets>[</Brackets><Types>W</Types><Brackets>,</Brackets><Normal Text> </Normal Text><Types>H</Types><Brackets>]):</Brackets><br/>
0366 <Normal Text>    </Normal Text><Types>Matrix</Types><Brackets>[</Brackets><Types>W</Types><Brackets>,</Brackets><Normal Text> </Normal Text><Types>H</Types><Brackets>]</Brackets><Normal Text> </Normal Text><Symbols>=</Symbols><br/>
0367 <Normal Text>        </Normal Text><Controls>for</Controls><Normal Text> i </Normal Text><Operators>in</Operators><Normal Text> </Normal Text><Decimal>1</Decimal><Brackets>..</Brackets><Funcs>high</Funcs><Brackets>(</Brackets><Normal Text>a</Normal Text><Brackets>):</Brackets><br/>
0368 <Normal Text>            </Normal Text><Controls>for</Controls><Normal Text> j </Normal Text><Operators>in</Operators><Normal Text> </Normal Text><Decimal>1</Decimal><Brackets>..</Brackets><Funcs>high</Funcs><Brackets>(</Brackets><Normal Text>a</Normal Text><Brackets>[</Brackets><Decimal>0</Decimal><Brackets>]):</Brackets><br/>
0369 <Normal Text>                </Normal Text><Others>result</Others><Brackets>[</Brackets><Normal Text>i</Normal Text><Brackets>][</Brackets><Normal Text>j</Normal Text><Brackets>]</Brackets><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> a</Normal Text><Brackets>[</Brackets><Normal Text>i</Normal Text><Brackets>][</Brackets><Normal Text>j</Normal Text><Brackets>]</Brackets><Normal Text> </Normal Text><Symbols>+</Symbols><Normal Text> b</Normal Text><Brackets>[</Brackets><Normal Text>i</Normal Text><Brackets>][</Brackets><Normal Text>j</Normal Text><Brackets>]</Brackets><br/>
0370 <Normal Text></Normal Text><br/>
0371 <Comment># Seqs</Comment><br/>
0372 <Keywords>var</Keywords><br/>
0373 <Normal Text>    a </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Symbols>@</Symbols><Brackets>[</Brackets><Decimal>1</Decimal><Brackets>,</Brackets><Normal Text> </Normal Text><Decimal>2</Decimal><Brackets>,</Brackets><Normal Text> </Normal Text><Decimal>3</Decimal><Brackets>]</Brackets><br/>
0374 <Normal Text>    b </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Funcs>newSeq</Funcs><Brackets>[</Brackets><Types>int</Types><Brackets>](</Brackets><Decimal>3</Decimal><Brackets>)</Brackets><br/>
0375 <Normal Text></Normal Text><br/>
0376 <Controls>for</Controls><Normal Text> i</Normal Text><Brackets>,</Brackets><Normal Text> v </Normal Text><Operators>in</Operators><Normal Text> a</Normal Text><Brackets>:</Brackets><br/>
0377 <Normal Text>    b</Normal Text><Brackets>[</Brackets><Normal Text>i</Normal Text><Brackets>]</Brackets><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> v</Normal Text><Symbols>*</Symbols><Normal Text>v</Normal Text><br/>
0378 <Normal Text></Normal Text><br/>
0379 <Controls>for</Controls><Normal Text> i </Normal Text><Operators>in</Operators><Normal Text> </Normal Text><Decimal>4</Decimal><Brackets>..</Brackets><Decimal>100</Decimal><Brackets>:</Brackets><br/>
0380 <Normal Text>    b</Normal Text><Brackets>.</Brackets><Funcs>add</Funcs><Brackets>(</Brackets><Normal Text>i </Normal Text><Symbols>*</Symbols><Normal Text> i</Normal Text><Brackets>)</Brackets><br/>
0381 <Normal Text></Normal Text><br/>
0382 <Normal Text>b</Normal Text><Brackets>.</Brackets><Funcs>delete</Funcs><Brackets>(</Brackets><Decimal>0</Decimal><Brackets>)</Brackets><Normal Text>  </Normal Text><Comment># takes O(n) time</Comment><br/>
0383 <Normal Text>b </Normal Text><Symbols>=</Symbols><Normal Text> a</Normal Text><Brackets>[</Brackets><Decimal>0</Decimal><Brackets>]</Brackets><Normal Text> </Normal Text><Symbols>&</Symbols><Normal Text> </Normal Text><Funcs>b </Funcs><Normal Text> </Normal Text><Comment># Same as original b</Comment><br/>
0384 <Normal Text></Normal Text><br/>
0385 <Comment># JSON</Comment><br/>
0386 <Keywords>import</Keywords><Normal Text> json</Normal Text><br/>
0387 <Normal Text></Normal Text><br/>
0388 <Keywords>let</Keywords><Normal Text> element </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><String>"Hydrogen"</String><br/>
0389 <Keywords>let</Keywords><Normal Text> atomicNumber </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Decimal>1</Decimal><br/>
0390 <Normal Text></Normal Text><br/>
0391 <Keywords>let</Keywords><Normal Text> jsonObject </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Symbols>%*</Symbols><Normal Text> </Normal Text><Brackets>{</Brackets><String>"element"</String><Brackets>:</Brackets><Normal Text> element</Normal Text><Brackets>,</Brackets><Normal Text> </Normal Text><String>"atomicNumber"</String><Brackets>:</Brackets><Normal Text> atomicNumber</Normal Text><Brackets>}</Brackets><br/>
0392 <Comment># This will print {"element":"Hydrogen", "atomicNumber": 1}</Comment><br/>
0393 <Controls>echo</Controls><Normal Text> </Normal Text><Symbols>$</Symbols><Normal Text>jsonObject</Normal Text><br/>
0394 <Normal Text></Normal Text><br/>
0395 <Comment># We start with a string representation of a JSON object</Comment><br/>
0396 <Keywords>let</Keywords><Normal Text> jsonObject </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><String>"""{"name": "Sky", "age": 32}"""</String><br/>
0397 <Keywords>let</Keywords><Normal Text> jsonArray </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><String>"""[7, 8, 9]"""</String><br/>
0398 <Normal Text></Normal Text><br/>
0399 <Keywords>let</Keywords><Normal Text> parsedObject </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Funcs>parseJson</Funcs><Brackets>(</Brackets><Normal Text>jsonObject</Normal Text><Brackets>)</Brackets><br/>
0400 <Keywords>let</Keywords><Normal Text> name </Normal Text><Symbols>=</Symbols><Normal Text> parsedObject</Normal Text><Brackets>[</Brackets><String>"name"</String><Brackets>].</Brackets><Funcs>getStr</Funcs><Brackets>()</Brackets><br/>
0401 <Comment># This will print Sky</Comment><br/>
0402 <Controls>echo</Controls><Normal Text> name</Normal Text><br/>
0403 <Normal Text></Normal Text><br/>
0404 <Keywords>let</Keywords><Normal Text> parsedArray </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Funcs>parseJson</Funcs><Brackets>(</Brackets><Normal Text>jsonArray</Normal Text><Brackets>)</Brackets><br/>
0405 <Keywords>let</Keywords><Normal Text> eight </Normal Text><Symbols>=</Symbols><Normal Text> parsedArray</Normal Text><Brackets>[</Brackets><Decimal>1</Decimal><Brackets>].</Brackets><Funcs>getInt</Funcs><Brackets>()</Brackets><br/>
0406 <Comment># This will print 8</Comment><br/>
0407 <Controls>echo</Controls><Normal Text> eight</Normal Text><br/>
0408 <Normal Text></Normal Text><br/>
0409 <Comment># First we'll define our types</Comment><br/>
0410 <Keywords>type</Keywords><br/>
0411 <Normal Text>    </Normal Text><Types>Element</Types><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Keywords>object</Keywords><br/>
0412 <Normal Text>        name</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>string</Types><br/>
0413 <Normal Text>        atomicNumber</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>int</Types><br/>
0414 <Normal Text></Normal Text><br/>
0415 <Comment># Let's say this is the JSON we want to convert</Comment><br/>
0416 <Keywords>let</Keywords><Normal Text> jsonObject </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Funcs>parseJson</Funcs><Brackets>(</Brackets><String>"""{"name": "Carbon", "atomicNumber": 6}"""</String><Brackets>)</Brackets><br/>
0417 <Normal Text></Normal Text><br/>
0418 <Keywords>let</Keywords><Normal Text> element </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Funcs>to</Funcs><Brackets>(</Brackets><Normal Text>jsonObject</Normal Text><Brackets>,</Brackets><Normal Text> </Normal Text><Types>Element</Types><Brackets>)</Brackets><br/>
0419 <Comment># This will print Carbon</Comment><br/>
0420 <Controls>echo</Controls><Normal Text> element</Normal Text><Brackets>.</Brackets><Props>name</Props><br/>
0421 <Comment># This will print 6</Comment><br/>
0422 <Controls>echo</Controls><Normal Text> element</Normal Text><Brackets>.</Brackets><Props>atomicNumber</Props><br/>
0423 <Normal Text></Normal Text><br/>
0424 <Comment># Object Oriented Programming</Comment><br/>
0425 <Keywords>type</Keywords><Normal Text> </Normal Text><TypeDefs>Animal</TypeDefs><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Attrs>ref</Attrs><Normal Text> </Normal Text><Keywords>object</Keywords><Normal Text> </Normal Text><Operators>of</Operators><Normal Text> </Normal Text><Types>RootObj</Types><br/>
0426 <Normal Text>    name</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>string</Types><br/>
0427 <Normal Text>    age</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>int</Types><br/>
0428 <Keywords>method</Keywords><Normal Text> </Normal Text><ProcDefs>vocalize</ProcDefs><Brackets>(</Brackets><Normal Text>this</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>Animal</Types><Brackets>):</Brackets><Normal Text> </Normal Text><Types>string</Types><Normal Text> </Normal Text><Pragmas>{.base.}</Pragmas><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><String>"..."</String><br/>
0429 <Keywords>method</Keywords><Normal Text> </Normal Text><ProcDefs>ageHumanYrs</ProcDefs><Brackets>(</Brackets><Normal Text>this</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>Animal</Types><Brackets>):</Brackets><Normal Text> </Normal Text><Types>int</Types><Normal Text> </Normal Text><Pragmas>{.base.}</Pragmas><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> this</Normal Text><Brackets>.</Brackets><Props>age</Props><br/>
0430 <Normal Text></Normal Text><br/>
0431 <Keywords>type</Keywords><Normal Text> </Normal Text><TypeDefs>Dog</TypeDefs><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Attrs>ref</Attrs><Normal Text> </Normal Text><Keywords>object</Keywords><Normal Text> </Normal Text><Operators>of</Operators><Normal Text> </Normal Text><Types>Animal</Types><br/>
0432 <Keywords>method</Keywords><Normal Text> </Normal Text><ProcDefs>vocalize</ProcDefs><Brackets>(</Brackets><Normal Text>this</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>Dog</Types><Brackets>):</Brackets><Normal Text> </Normal Text><Types>string</Types><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><String>"woof"</String><br/>
0433 <Keywords>method</Keywords><Normal Text> </Normal Text><ProcDefs>ageHumanYrs</ProcDefs><Brackets>(</Brackets><Normal Text>this</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>Dog</Types><Brackets>):</Brackets><Normal Text> </Normal Text><Types>int</Types><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> this</Normal Text><Brackets>.</Brackets><Props>age</Props><Normal Text> </Normal Text><Symbols>*</Symbols><Normal Text> </Normal Text><Decimal>7</Decimal><br/>
0434 <Normal Text></Normal Text><br/>
0435 <Keywords>type</Keywords><Normal Text> </Normal Text><TypeDefs>Cat</TypeDefs><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Attrs>ref</Attrs><Normal Text> </Normal Text><Keywords>object</Keywords><Normal Text> </Normal Text><Operators>of</Operators><Normal Text> </Normal Text><Types>Animal</Types><br/>
0436 <Keywords>method</Keywords><Normal Text> </Normal Text><ProcDefs>vocalize</ProcDefs><Brackets>(</Brackets><Normal Text>this</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>Cat</Types><Brackets>):</Brackets><Normal Text> </Normal Text><Types>string</Types><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><String>"meow"</String><br/>
0437 <Normal Text></Normal Text><br/>
0438 <Keywords>var</Keywords><Normal Text> animals</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Types>seq</Types><Brackets>[</Brackets><Types>Animal</Types><Brackets>]</Brackets><Normal Text> </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><Symbols>@</Symbols><Brackets>[]</Brackets><br/>
0439 <Normal Text>animals</Normal Text><Brackets>.</Brackets><Funcs>add</Funcs><Brackets>(</Brackets><Types>Dog</Types><Brackets>(</Brackets><Normal Text>name</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><String>"Sparky"</String><Brackets>,</Brackets><Normal Text> age</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Decimal>10</Decimal><Brackets>))</Brackets><br/>
0440 <Normal Text>animals</Normal Text><Brackets>.</Brackets><Funcs>add</Funcs><Brackets>(</Brackets><Types>Cat</Types><Brackets>(</Brackets><Normal Text>name</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><String>"Mitten"</String><Brackets>,</Brackets><Normal Text> age</Normal Text><Brackets>:</Brackets><Normal Text> </Normal Text><Decimal>10</Decimal><Brackets>))</Brackets><br/>
0441 <Normal Text></Normal Text><br/>
0442 <Controls>for</Controls><Normal Text> a </Normal Text><Operators>in</Operators><Normal Text> animals</Normal Text><Brackets>:</Brackets><br/>
0443 <Normal Text>    </Normal Text><Controls>echo</Controls><Normal Text> a</Normal Text><Brackets>.</Brackets><Funcs>vocalize</Funcs><Brackets>()</Brackets><br/>
0444 <Normal Text>    </Normal Text><Controls>echo</Controls><Normal Text> a</Normal Text><Brackets>.</Brackets><Funcs>ageHumanYrs</Funcs><Brackets>()</Brackets><br/>
0445 <Normal Text></Normal Text><br/>
0446 <Keywords>let</Keywords><Normal Text> slash </Normal Text><Symbols>=</Symbols><Normal Text> </Normal Text><String>"</String><String Char>\\</String Char><String>"</String><br/>