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/>