Warning, /frameworks/syntax-highlighting/autotests/reference/highlight.cr.ref is written in an unsupported language. File is not indexed.
0001 <Comment># This file is a testcase for the highlighting of Crystal code</Comment><br/> 0002 <Comment># It's not executable code, but a collection of code snippets</Comment><br/> 0003 <Comment>#</Comment><br/> 0004 <Normal Text></Normal Text><br/> 0005 <Kernel methods>require</Kernel methods><Normal Text> </Normal Text><String>"lib_z"</String><br/> 0006 <Kernel methods>require</Kernel methods><Normal Text> </Normal Text><String>"./digest"</String><br/> 0007 <Normal Text></Normal Text><br/> 0008 <Keyword>module</Keyword><Normal Text> </Normal Text><Constant>Digest</Constant><Operator>::</Operator><Constant>Adler32</Constant><br/> 0009 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> </Normal Text><Pseudo variable>self</Pseudo variable><Message>.initial</Message><Normal Text> : </Normal Text><Constant>UInt32</Constant><br/> 0010 <Normal Text> </Normal Text><Constant>LibZ</Constant><Message>.adler32</Message><Normal Text>(</Normal Text><Dec>0</Dec><Normal Text>, </Normal Text><Pseudo variable>nil</Pseudo variable><Normal Text>, </Normal Text><Dec>0</Dec><Normal Text>)</Normal Text><Message>.to_u32</Message><br/> 0011 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0012 <Normal Text></Normal Text><br/> 0013 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> </Normal Text><Pseudo variable>self</Pseudo variable><Message>.checksum</Message><Normal Text>(data) : </Normal Text><Constant>UInt32</Constant><br/> 0014 <Normal Text> update(data, initial)</Normal Text><br/> 0015 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0016 <Normal Text></Normal Text><br/> 0017 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> </Normal Text><Pseudo variable>self</Pseudo variable><Message>.update</Message><Normal Text>(data, adler32 : </Normal Text><Constant>UInt32</Constant><Normal Text>) : </Normal Text><Constant>UInt32</Constant><br/> 0018 <Normal Text> slice </Normal Text><Operator>=</Operator><Normal Text> data</Normal Text><Message>.to_slice</Message><br/> 0019 <Normal Text> </Normal Text><Constant>LibZ</Constant><Message>.adler32</Message><Normal Text>(adler32, slice, slice</Normal Text><Message>.size</Message><Normal Text>)</Normal Text><Message>.to_u32</Message><br/> 0020 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0021 <Normal Text></Normal Text><br/> 0022 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> </Normal Text><Pseudo variable>self</Pseudo variable><Message>.combine</Message><Normal Text>(adler1 : </Normal Text><Constant>UInt32</Constant><Normal Text>, adler2 : </Normal Text><Constant>UInt32</Constant><Normal Text>, len) : </Normal Text><Constant>UInt32</Constant><br/> 0023 <Normal Text> </Normal Text><Constant>LibZ</Constant><Message>.adler32_combine</Message><Normal Text>(adler1, adler2, len)</Normal Text><Message>.to_u32</Message><br/> 0024 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0025 <Keyword>end</Keyword><br/> 0026 <Normal Text></Normal Text><br/> 0027 <Keyword>struct</Keyword><Normal Text> </Normal Text><Constant>BigRational</Constant><br/> 0028 <Normal Text> </Normal Text><Constant>Number</Constant><Message>.expand_div</Message><Normal Text> </Normal Text><Delimiter>[</Delimiter><Constant>Int8</Constant><Normal Text>, </Normal Text><Constant>UInt8</Constant><Normal Text>, </Normal Text><Constant>Int16</Constant><Normal Text>, </Normal Text><Constant>UInt16</Constant><Normal Text>, </Normal Text><Constant>Int32</Constant><Normal Text>, </Normal Text><Constant>UInt32</Constant><Normal Text>, </Normal Text><Constant>Int64</Constant><Normal Text>, </Normal Text><Constant>UInt64</Constant><Normal Text>, </Normal Text><Constant>Int128</Constant><Normal Text>, </Normal Text><Constant>UInt128</Constant><Delimiter>]</Delimiter><Normal Text>, </Normal Text><Constant>BigRational</Constant><br/> 0029 <Normal Text> </Normal Text><Constant>Number</Constant><Message>.expand_div</Message><Normal Text> </Normal Text><Delimiter>[</Delimiter><Constant>Float32</Constant><Normal Text>, </Normal Text><Constant>Float64</Constant><Delimiter>]</Delimiter><Normal Text>, </Normal Text><Constant>BigRational</Constant><br/> 0030 <Keyword>end</Keyword><br/> 0031 <Normal Text></Normal Text><br/> 0032 <Keyword>module</Keyword><Normal Text> </Normal Text><Constant>Crystal</Constant><Operator>::</Operator><Constant>Repl</Constant><Operator>::</Operator><Constant>Closure</Constant><br/> 0033 <Normal Text> </Normal Text><Global Constant>VAR_NAME</Global Constant><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>".closure_var"</String><br/> 0034 <Normal Text> </Normal Text><Global Constant>ARG_NAME</Global Constant><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>".closure_arg"</String><br/> 0035 <Keyword>end</Keyword><br/> 0036 <Normal Text></Normal Text><br/> 0037 <Keyword>class</Keyword><Normal Text> </Normal Text><Constant>FunctionType</Constant><br/> 0038 <Normal Text> </Normal Text><Attribute Definition>getter</Attribute Definition><Normal Text> arg_types : </Normal Text><Constant>Array</Constant><Normal Text>(</Normal Text><Constant>ArgType</Constant><Normal Text>)</Normal Text><br/> 0039 <Normal Text> </Normal Text><Attribute Definition>getter</Attribute Definition><Normal Text> return_type : </Normal Text><Constant>ArgType</Constant><br/> 0040 <Normal Text></Normal Text><br/> 0041 <Normal Text> </Normal Text><Class Variable>@@cvar</Class Variable><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Dec>3</Dec><br/> 0042 <Normal Text> </Normal Text><Instance Variable>@ivar</Instance Variable><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Dec>7</Dec><br/> 0043 <Normal Text></Normal Text><br/> 0044 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> initialize(</Normal Text><Instance Variable>@arg_types</Instance Variable><Normal Text>, </Normal Text><Instance Variable>@return_type</Instance Variable><Normal Text>)</Normal Text><br/> 0045 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0046 <Normal Text></Normal Text><br/> 0047 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> /</Normal Text><Regular Expression>/(other : Int::Unsigned) : BigInt</Regular Expression><br/> 0048 <Regular Expression> check_division_by_zero other</Regular Expression><br/> 0049 <Regular Expression> unsafe_floored_div(other)</Regular Expression><br/> 0050 <Regular Expression> end</Regular Expression><br/> 0051 <Regular Expression></Regular Expression><br/> 0052 <Regular Expression> def /</Regular Expression><Operator>/</Operator><Normal Text>(other : </Normal Text><Constant>Int</Constant><Normal Text>) : </Normal Text><Constant>BigInt</Constant><br/> 0053 <Normal Text> check_division_by_zero other</Normal Text><br/> 0054 <Normal Text></Normal Text><br/> 0055 <Normal Text> </Normal Text><Keyword>if</Keyword><Normal Text> other </Normal Text><Operator><</Operator><Normal Text> </Normal Text><Dec>0</Dec><br/> 0056 <Normal Text> (</Normal Text><Operator>-</Operator><Pseudo variable>self</Pseudo variable><Normal Text>)</Normal Text><Message>.unsafe_floored_div</Message><Normal Text>(</Normal Text><Operator>-</Operator><Normal Text>other)</Normal Text><br/> 0057 <Normal Text> </Normal Text><Instance Variable>@cvar</Instance Variable><Normal Text> </Normal Text><Operator>+=</Operator><Normal Text> </Normal Text><Dec>1</Dec><br/> 0058 <Normal Text> </Normal Text><Keyword>else</Keyword><br/> 0059 <Normal Text> unsafe_floored_div(other)</Normal Text><br/> 0060 <Normal Text> </Normal Text><Instance Variable>@ivar</Instance Variable><Normal Text> </Normal Text><Operator>+=</Operator><Normal Text> </Normal Text><Dec>10</Dec><br/> 0061 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0062 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0063 <Keyword>end</Keyword><br/> 0064 <Normal Text></Normal Text><br/> 0065 <Kernel methods>require</Kernel methods><Normal Text> </Normal Text><String>"llvm/enums/atomic"</String><br/> 0066 <Keyword>struct</Keyword><Normal Text> </Normal Text><Constant>Atomic</Constant><Normal Text>(T)</Normal Text><br/> 0067 <Normal Text> </Normal Text><Comment># Creates an Atomic with the given initial value.</Comment><br/> 0068 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> compare_and_set(cmp : T, new : T) : </Normal Text><Operator>{</Operator><Normal Text>T, </Normal Text><Constant>Bool</Constant><Operator>}</Operator><br/> 0069 <Normal Text> </Normal Text><Operator>{%</Operator><Normal Text> </Normal Text><Keyword>if</Keyword><Normal Text> T</Normal Text><Message>.union?</Message><Normal Text> </Normal Text><Operator>&&</Operator><Normal Text> T</Normal Text><Message>.union_types.all?</Message><Normal Text> </Normal Text><Operator>{</Operator><Normal Text> </Normal Text><Operator>|</Operator><Normal Text>t</Normal Text><Operator>|</Operator><Normal Text> t </Normal Text><Operator>==</Operator><Normal Text> </Normal Text><Constant>Nil</Constant><Normal Text> </Normal Text><Operator>||</Operator><Normal Text> t </Normal Text><Operator><</Operator><Normal Text> </Normal Text><Constant>Reference</Constant><Normal Text> </Normal Text><Operator>}</Operator><Normal Text> </Normal Text><Operator>%}</Operator><br/> 0070 <Normal Text> address, success </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Constant>Ops</Constant><Message>.cmpxchg</Message><Normal Text>(pointerof(</Normal Text><Instance Variable>@value</Instance Variable><Normal Text>)</Normal Text><Message>.as</Message><Normal Text>(</Normal Text><Constant>LibC</Constant><Operator>::</Operator><Constant>SizeT</Constant><Operator>*</Operator><Normal Text>), </Normal Text><Constant>LibC</Constant><Operator>::</Operator><Constant>SizeT</Constant><Message>.new</Message><Normal Text>(cmp</Normal Text><Message>.as</Message><Normal Text>(T)</Normal Text><Message>.object_id</Message><Normal Text>), </Normal Text><Constant>LibC</Constant><Operator>::</Operator><Constant>SizeT</Constant><Message>.new</Message><Normal Text>(new</Normal Text><Message>.as</Message><Normal Text>(T)</Normal Text><Message>.object_id</Message><Normal Text>), </Normal Text><Symbol>:sequentially_consistent</Symbol><Normal Text>, </Normal Text><Symbol>:sequentially_consistent</Symbol><Normal Text>)</Normal Text><br/> 0071 <Normal Text> </Normal Text><Operator>{</Operator><Normal Text>address </Normal Text><Operator>==</Operator><Normal Text> </Normal Text><Dec>0</Dec><Normal Text> ? </Normal Text><Pseudo variable>nil</Pseudo variable><Normal Text> : </Normal Text><Constant>Pointer</Constant><Normal Text>(T)</Normal Text><Message>.new</Message><Normal Text>(address)</Normal Text><Message>.as</Message><Normal Text>(T), success</Normal Text><Operator>}</Operator><br/> 0072 <Normal Text> </Normal Text><Operator>{%</Operator><Normal Text> </Normal Text><Keyword>elsif</Keyword><Normal Text> T </Normal Text><Operator><</Operator><Normal Text> </Normal Text><Constant>Reference</Constant><Normal Text> </Normal Text><Operator>%}</Operator><br/> 0073 <Normal Text> </Normal Text><Comment># Use addresses again (but this can't return nil)</Comment><br/> 0074 <Normal Text> address, success </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Constant>Ops</Constant><Message>.cmpxchg</Message><Normal Text>(pointerof(</Normal Text><Instance Variable>@value</Instance Variable><Normal Text>)</Normal Text><Message>.as</Message><Normal Text>(</Normal Text><Constant>LibC</Constant><Operator>::</Operator><Constant>SizeT</Constant><Operator>*</Operator><Normal Text>), </Normal Text><Constant>LibC</Constant><Operator>::</Operator><Constant>SizeT</Constant><Message>.new</Message><Normal Text>(cmp</Normal Text><Message>.as</Message><Normal Text>(T)</Normal Text><Message>.object_id</Message><Normal Text>), </Normal Text><Constant>LibC</Constant><Operator>::</Operator><Constant>SizeT</Constant><Message>.new</Message><Normal Text>(new</Normal Text><Message>.as</Message><Normal Text>(T)</Normal Text><Message>.object_id</Message><Normal Text>), </Normal Text><Symbol>:sequentially_consistent</Symbol><Normal Text>, </Normal Text><Symbol>:sequentially_consistent</Symbol><Normal Text>)</Normal Text><br/> 0075 <Normal Text> </Normal Text><Operator>{</Operator><Constant>Pointer</Constant><Normal Text>(T)</Normal Text><Message>.new</Message><Normal Text>(address)</Normal Text><Message>.as</Message><Normal Text>(T), success</Normal Text><Operator>}</Operator><br/> 0076 <Normal Text> </Normal Text><Operator>{%</Operator><Normal Text> </Normal Text><Keyword>else</Keyword><Normal Text> </Normal Text><Operator>%}</Operator><br/> 0077 <Normal Text> </Normal Text><Constant>Ops</Constant><Message>.cmpxchg</Message><Normal Text>(pointerof(</Normal Text><Instance Variable>@value</Instance Variable><Normal Text>), cmp, new, </Normal Text><Symbol>:sequentially_consistent</Symbol><Normal Text>, </Normal Text><Symbol>:sequentially_consistent</Symbol><Normal Text>)</Normal Text><br/> 0078 <Normal Text> </Normal Text><Operator>{%</Operator><Normal Text> </Normal Text><Keyword>end</Keyword><Normal Text> </Normal Text><Operator>%}</Operator><br/> 0079 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0080 <Normal Text></Normal Text><br/> 0081 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> swap(value : T)</Normal Text><br/> 0082 <Normal Text> </Normal Text><Operator>{%</Operator><Normal Text> </Normal Text><Keyword>if</Keyword><Normal Text> T</Normal Text><Message>.union?</Message><Normal Text> </Normal Text><Operator>&&</Operator><Normal Text> T</Normal Text><Message>.union_types.all?</Message><Normal Text> </Normal Text><Operator>{</Operator><Normal Text> </Normal Text><Operator>|</Operator><Normal Text>t</Normal Text><Operator>|</Operator><Normal Text> t </Normal Text><Operator>==</Operator><Normal Text> </Normal Text><Constant>Nil</Constant><Normal Text> </Normal Text><Operator>||</Operator><Normal Text> t </Normal Text><Operator><</Operator><Normal Text> </Normal Text><Constant>Reference</Constant><Normal Text> </Normal Text><Operator>}</Operator><Normal Text> </Normal Text><Operator>||</Operator><Normal Text> T </Normal Text><Operator><</Operator><Normal Text> </Normal Text><Constant>Reference</Constant><Normal Text> </Normal Text><Operator>%}</Operator><br/> 0083 <Normal Text> address </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Constant>Ops</Constant><Message>.atomicrmw</Message><Normal Text>(</Normal Text><Symbol>:xchg</Symbol><Normal Text>, pointerof(</Normal Text><Instance Variable>@value</Instance Variable><Normal Text>)</Normal Text><Message>.as</Message><Normal Text>(</Normal Text><Constant>LibC</Constant><Operator>::</Operator><Constant>SizeT</Constant><Operator>*</Operator><Normal Text>), </Normal Text><Constant>LibC</Constant><Operator>::</Operator><Constant>SizeT</Constant><Message>.new</Message><Normal Text>(value</Normal Text><Message>.as</Message><Normal Text>(T)</Normal Text><Message>.object_id</Message><Normal Text>), </Normal Text><Symbol>:sequentially_consistent</Symbol><Normal Text>, </Normal Text><Pseudo variable>false</Pseudo variable><Normal Text>)</Normal Text><br/> 0084 <Normal Text> </Normal Text><Constant>Pointer</Constant><Normal Text>(T)</Normal Text><Message>.new</Message><Normal Text>(address)</Normal Text><Message>.as</Message><Normal Text>(T)</Normal Text><br/> 0085 <Normal Text> </Normal Text><Operator>{%</Operator><Normal Text> </Normal Text><Keyword>else</Keyword><Normal Text> </Normal Text><Operator>%}</Operator><br/> 0086 <Normal Text> </Normal Text><Constant>Ops</Constant><Message>.atomicrmw</Message><Normal Text>(</Normal Text><Symbol>:xchg</Symbol><Normal Text>, pointerof(</Normal Text><Instance Variable>@value</Instance Variable><Normal Text>), value, </Normal Text><Symbol>:sequentially_consistent</Symbol><Normal Text>, </Normal Text><Pseudo variable>false</Pseudo variable><Normal Text>)</Normal Text><br/> 0087 <Normal Text> </Normal Text><Operator>{%</Operator><Normal Text> </Normal Text><Keyword>end</Keyword><Normal Text> </Normal Text><Operator>%}</Operator><br/> 0088 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0089 <Keyword>end</Keyword><br/> 0090 <Normal Text></Normal Text><br/> 0091 <Keyword>class</Keyword><Normal Text> </Normal Text><Constant>Deque</Constant><Normal Text>(T)</Normal Text><br/> 0092 <Normal Text> </Normal Text><Module mixin methods>include</Module mixin methods><Normal Text> </Normal Text><Constant>Indexable</Constant><Operator>::</Operator><Constant>Mutable</Constant><Normal Text>(T)</Normal Text><br/> 0093 <Normal Text></Normal Text><br/> 0094 <Normal Text> </Normal Text><Instance Variable>@start</Instance Variable><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Dec>0</Dec><br/> 0095 <Normal Text> </Normal Text><Access Control>protected</Access Control><Normal Text> </Normal Text><Attribute Definition>setter</Attribute Definition><Normal Text> size</Normal Text><br/> 0096 <Normal Text> </Normal Text><Access Control>private</Access Control><Normal Text> </Normal Text><Attribute Definition>getter</Attribute Definition><Normal Text> buffer</Normal Text><br/> 0097 <Normal Text></Normal Text><br/> 0098 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> initialize(size : </Normal Text><Constant>Int</Constant><Normal Text>, value : T)</Normal Text><br/> 0099 <Normal Text> </Normal Text><Keyword>if</Keyword><Normal Text> size </Normal Text><Operator><</Operator><Normal Text> </Normal Text><Dec>0</Dec><br/> 0100 <Normal Text> </Normal Text><Kernel methods>raise</Kernel methods><Normal Text> </Normal Text><Constant>ArgumentError</Constant><Message>.new</Message><Normal Text>(</Normal Text><String>"Negative deque size: </String><Substitution>#{</Substitution><Normal Text>size</Normal Text><Substitution>}</Substitution><String>"</String><Normal Text>)</Normal Text><br/> 0101 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0102 <Normal Text> </Normal Text><Instance Variable>@size</Instance Variable><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> size</Normal Text><Message>.to_i</Message><br/> 0103 <Normal Text> </Normal Text><Instance Variable>@capacity</Instance Variable><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> size</Normal Text><Message>.to_i</Message><br/> 0104 <Normal Text></Normal Text><br/> 0105 <Normal Text> </Normal Text><Keyword>unless</Keyword><Normal Text> </Normal Text><Instance Variable>@capacity</Instance Variable><Normal Text> </Normal Text><Operator>==</Operator><Normal Text> </Normal Text><Dec>0</Dec><br/> 0106 <Normal Text> </Normal Text><Instance Variable>@buffer</Instance Variable><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Constant>Pointer</Constant><Normal Text>(T)</Normal Text><Message>.malloc</Message><Normal Text>(</Normal Text><Instance Variable>@capacity</Instance Variable><Normal Text>, value)</Normal Text><br/> 0107 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0108 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0109 <Normal Text></Normal Text><br/> 0110 <Normal Text> </Normal Text><Comment># Returns a new `Deque` that has this deque's elements cloned.</Comment><br/> 0111 <Normal Text> </Normal Text><Comment># That is, it returns a deep copy of this deque.</Comment><br/> 0112 <Normal Text> </Normal Text><Comment>#</Comment><br/> 0113 <Normal Text> </Normal Text><Comment># Use `#dup` if you want a shallow copy.</Comment><br/> 0114 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> clone</Normal Text><br/> 0115 <Normal Text> </Normal Text><Operator>{%</Operator><Normal Text> </Normal Text><Keyword>if</Keyword><Normal Text> T </Normal Text><Operator>==</Operator><Normal Text> </Normal Text><Operator>::</Operator><Constant>Bool</Constant><Normal Text> </Normal Text><Operator>||</Operator><Normal Text> T </Normal Text><Operator>==</Operator><Normal Text> </Normal Text><Operator>::</Operator><Constant>Char</Constant><Normal Text> </Normal Text><Operator>||</Operator><Normal Text> T </Normal Text><Operator>==</Operator><Normal Text> </Normal Text><Operator>::</Operator><Constant>String</Constant><Normal Text> </Normal Text><Operator>||</Operator><Normal Text> T </Normal Text><Operator>==</Operator><Normal Text> </Normal Text><Operator>::</Operator><Constant>Symbol</Constant><Normal Text> </Normal Text><Operator>||</Operator><Normal Text> T </Normal Text><Operator><</Operator><Normal Text> </Normal Text><Operator>::</Operator><Constant>Number</Constant><Operator>::</Operator><Constant>Primitive</Constant><Normal Text> </Normal Text><Operator>%</Operator><Delimiter>}</Delimiter><br/> 0116 <Normal Text> </Normal Text><Constant>Deque</Constant><Normal Text>(T)</Normal Text><Message>.new</Message><Normal Text>(size) </Normal Text><Operator>{</Operator><Normal Text> </Normal Text><Operator>|</Operator><Normal Text>i</Normal Text><Operator>|</Operator><Normal Text> </Normal Text><Pseudo variable>self</Pseudo variable><Delimiter>[</Delimiter><Normal Text>i</Normal Text><Delimiter>]</Delimiter><Message>.clone.as</Message><Normal Text>(T) </Normal Text><Operator>}</Operator><br/> 0117 <Normal Text> </Normal Text><Operator>{</Operator><Normal Text>% </Normal Text><Keyword>else</Keyword><Normal Text> %</Normal Text><Operator>}</Operator><br/> 0118 <Normal Text> exec_recursive_clone </Normal Text><Keyword>do</Keyword><Normal Text> </Normal Text><Operator>|</Operator><Normal Text>hash</Normal Text><Operator>|</Operator><br/> 0119 <Normal Text> clone </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Constant>Deque</Constant><Normal Text>(T)</Normal Text><Message>.new</Message><Normal Text>(size)</Normal Text><br/> 0120 <Normal Text> each </Normal Text><Keyword>do</Keyword><Normal Text> </Normal Text><Operator>|</Operator><Normal Text>element</Normal Text><Operator>|</Operator><br/> 0121 <Normal Text> clone </Normal Text><Operator><<</Operator><Normal Text> element</Normal Text><Message>.clone</Message><br/> 0122 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0123 <Normal Text> clone</Normal Text><br/> 0124 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0125 <Normal Text> </Normal Text><Operator>{</Operator><Normal Text>% </Normal Text><Keyword>end</Keyword><Normal Text> %</Normal Text><Operator>}</Operator><br/> 0126 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0127 <Normal Text></Normal Text><br/> 0128 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> delete_at(index : </Normal Text><Constant>Int</Constant><Normal Text>) : T</Normal Text><br/> 0129 <Normal Text> </Normal Text><Keyword>unless</Keyword><Normal Text> </Normal Text><Dec>0</Dec><Normal Text> </Normal Text><Operator><=</Operator><Normal Text> index </Normal Text><Operator><</Operator><Normal Text> @size</Normal Text><br/> 0130 <Normal Text> raise </Normal Text><Constant>IndexError</Constant><Message>.new</Message><br/> 0131 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0132 <Normal Text> </Normal Text><Keyword>return</Keyword><Normal Text> shift </Normal Text><Keyword>if</Keyword><Normal Text> index </Normal Text><Operator>==</Operator><Normal Text> </Normal Text><Dec>0</Dec><br/> 0133 <Normal Text></Normal Text><br/> 0134 <Normal Text> </Normal Text><Keyword>if</Keyword><Normal Text> index </Normal Text><Operator>></Operator><Normal Text> @size </Normal Text><Operator>//</Operator><Normal Text> </Normal Text><Dec>2</Dec><br/> 0135 <Normal Text> </Normal Text><Comment># Move following items to the left, starting with the first one</Comment><br/> 0136 <Normal Text> </Normal Text><Comment># [56-01234] -> [6x-01235]</Comment><br/> 0137 <Normal Text> dst </Normal Text><Operator>=</Operator><Normal Text> rindex</Normal Text><br/> 0138 <Normal Text> finish </Normal Text><Operator>=</Operator><Normal Text> (@start </Normal Text><Operator>+</Operator><Normal Text> @size </Normal Text><Operator>-</Operator><Normal Text> </Normal Text><Dec>1</Dec><Normal Text>) </Normal Text><Operator>%</Operator><Normal Text> @capacity</Normal Text><br/> 0139 <Normal Text> loop </Normal Text><Keyword>do</Keyword><br/> 0140 <Normal Text> src </Normal Text><Operator>=</Operator><Normal Text> dst </Normal Text><Operator>+</Operator><Normal Text> </Normal Text><Dec>1</Dec><br/> 0141 <Normal Text> src </Normal Text><Operator>-=</Operator><Normal Text> @capacity </Normal Text><Keyword>if</Keyword><Normal Text> src </Normal Text><Operator>>=</Operator><Normal Text> @capacity</Normal Text><br/> 0142 <Normal Text> @buffer</Normal Text><Delimiter>[</Delimiter><Normal Text>dst</Normal Text><Delimiter>]</Delimiter><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> @buffer</Normal Text><Delimiter>[</Delimiter><Normal Text>src</Normal Text><Delimiter>]</Delimiter><br/> 0143 <Normal Text> </Normal Text><Keyword>break</Keyword><Normal Text> </Normal Text><Keyword>if</Keyword><Normal Text> src </Normal Text><Operator>==</Operator><Normal Text> finish</Normal Text><br/> 0144 <Normal Text> dst </Normal Text><Operator>=</Operator><Normal Text> src</Normal Text><br/> 0145 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0146 <Normal Text> (@buffer </Normal Text><Operator>+</Operator><Normal Text> finish)</Normal Text><Message>.clear</Message><br/> 0147 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0148 <Normal Text></Normal Text><br/> 0149 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0150 <Normal Text></Normal Text><br/> 0151 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> each(</Normal Text><Operator>& : </Operator><Normal Text>T </Normal Text><Operator>-></Operator><Normal Text>) : </Normal Text><Constant>Nil</Constant><br/> 0152 <Normal Text> halfs </Normal Text><Keyword>do</Keyword><Normal Text> </Normal Text><Operator>|</Operator><Normal Text>r</Normal Text><Operator>|</Operator><br/> 0153 <Normal Text> r</Normal Text><Message>.each</Message><Normal Text> </Normal Text><Keyword>do</Keyword><Normal Text> </Normal Text><Operator>|</Operator><Normal Text>i</Normal Text><Operator>|</Operator><br/> 0154 <Normal Text> </Normal Text><Keyword>yield</Keyword><Normal Text> @buffer</Normal Text><Delimiter>[</Delimiter><Normal Text>i</Normal Text><Delimiter>]</Delimiter><br/> 0155 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0156 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0157 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0158 <Normal Text></Normal Text><br/> 0159 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> pop : T</Normal Text><br/> 0160 <Normal Text> pop </Normal Text><Operator>{</Operator><Normal Text> </Normal Text><Kernel methods>raise</Kernel methods><Normal Text> </Normal Text><Constant>IndexError</Constant><Message>.new</Message><Normal Text> </Normal Text><Operator>}</Operator><br/> 0161 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0162 <Normal Text></Normal Text><br/> 0163 <Normal Text></Normal Text><br/> 0164 <Normal Text> </Normal Text><Definition>macro</Definition><Normal Text> </Normal Text><Delimiter>[]</Delimiter><Normal Text>(</Normal Text><Operator>*</Operator><Normal Text>args)</Normal Text><br/> 0165 <Normal Text> array </Normal Text><Operator>=</Operator><Normal Text> uninitialized </Normal Text><Constant>Array</Constant><Normal Text>(</Normal Text><Constant>Int32</Constant><Normal Text>)</Normal Text><br/> 0166 <Normal Text> </Normal Text><Operator>{</Operator><Normal Text>% </Normal Text><Keyword>for</Keyword><Normal Text> arg, i </Normal Text><Keyword>in</Keyword><Normal Text> args %</Normal Text><Operator>}</Operator><br/> 0167 <Normal Text> array</Normal Text><Message>.to_unsafe</Message><Delimiter>[</Delimiter><Operator>{{</Operator><Normal Text>i</Normal Text><Operator>}}</Operator><Delimiter>]</Delimiter><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Operator>{{</Operator><Normal Text>arg</Normal Text><Operator>}}</Operator><br/> 0168 <Normal Text> </Normal Text><Operator>{</Operator><Normal Text>% </Normal Text><Keyword>end</Keyword><Normal Text> %</Normal Text><Operator>}</Operator><br/> 0169 <Normal Text> array</Normal Text><br/> 0170 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0171 <Normal Text></Normal Text><br/> 0172 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> message : </Normal Text><Constant>String</Constant><br/> 0173 <Normal Text> </Normal Text><Keyword>case</Keyword><Normal Text> </Normal Text><Pseudo variable>self</Pseudo variable><br/> 0174 <Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> </Normal Text><Global Constant>SUCCESS</Global Constant><Normal Text> </Normal Text><Keyword>then</Keyword><Normal Text> </Normal Text><String>"No error occurred. System call completed successfully."</String><br/> 0175 <Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> </Normal Text><Global Constant>TXTBSY</Global Constant><Normal Text> </Normal Text><Keyword>then</Keyword><Normal Text> </Normal Text><Constant>Errno</Constant><Operator>::</Operator><Constant Value>ETXTBSY</Constant Value><br/> 0176 <Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> </Normal Text><Global Constant>NOTCAPABLE</Global Constant><Normal Text> </Normal Text><Keyword>then</Keyword><Normal Text> </Normal Text><Constant>Errno</Constant><Operator>::</Operator><Constant Value>ENOTCAPABLE</Constant Value><br/> 0177 <Normal Text> </Normal Text><Keyword>else</Keyword><Normal Text> </Normal Text><Constant>Errno</Constant><Operator>::</Operator><Constant Value>EINVAL</Constant Value><br/> 0178 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0179 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0180 <Normal Text></Normal Text><br/> 0181 <Normal Text> enum </Normal Text><Constant>Signal</Constant><br/> 0182 <Normal Text> </Normal Text><Global Constant>KILL</Global Constant><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Dec>0</Dec><br/> 0183 <Normal Text> </Normal Text><Global Constant>BILL</Global Constant><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Dec>101</Dec><br/> 0184 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0185 <Normal Text></Normal Text><br/> 0186 <Keyword>end</Keyword><br/> 0187 <Normal Text></Normal Text><br/> 0188 <Normal Text></Normal Text><br/> 0189 <Normal Text> </Normal Text><Comment># :nodoc:</Comment><br/> 0190 <Definition>module</Definition><Normal Text> </Normal Text><Constant>Ops</Constant><br/> 0191 <Normal Text> </Normal Text><Comment># Defines methods that directly map to LLVM instructions related to atomic operations.</Comment><br/> 0192 <Normal Text></Normal Text><br/> 0193 <Normal Text> @</Normal Text><Delimiter>[</Delimiter><Constant>Primitive</Constant><Normal Text>(</Normal Text><Symbol>:cmpxchg</Symbol><Normal Text>)</Normal Text><Delimiter>]</Delimiter><br/> 0194 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> </Normal Text><Pseudo variable>self</Pseudo variable><Message>.cmpxchg</Message><Normal Text>(ptr : T</Normal Text><Operator>*</Operator><Normal Text>, cmp : T, new : T, success_ordering : </Normal Text><Global Constant>LLVM</Global Constant><Operator>::</Operator><Constant>AtomicOrdering</Constant><Normal Text>, failure_ordering : </Normal Text><Global Constant>LLVM</Global Constant><Operator>::</Operator><Constant>AtomicOrdering</Constant><Normal Text>) : </Normal Text><Operator>{</Operator><Normal Text>T, </Normal Text><Constant>Bool</Constant><Operator>}</Operator><Normal Text> forall T</Normal Text><br/> 0195 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0196 <Normal Text></Normal Text><br/> 0197 <Normal Text> @</Normal Text><Delimiter>[</Delimiter><Constant>Primitive</Constant><Normal Text>(</Normal Text><Symbol>:atomicrmw</Symbol><Normal Text>)</Normal Text><Delimiter>]</Delimiter><br/> 0198 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> </Normal Text><Pseudo variable>self</Pseudo variable><Message>.atomicrmw</Message><Normal Text>(op : </Normal Text><Global Constant>LLVM</Global Constant><Operator>::</Operator><Constant>AtomicRMWBinOp</Constant><Normal Text>, ptr : T</Normal Text><Operator>*</Operator><Normal Text>, val : T, ordering : </Normal Text><Global Constant>LLVM</Global Constant><Operator>::</Operator><Constant>AtomicOrdering</Constant><Normal Text>, singlethread : </Normal Text><Constant>Bool</Constant><Normal Text>) : T forall T</Normal Text><br/> 0199 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0200 <Keyword>end</Keyword><br/> 0201 <Normal Text></Normal Text><br/> 0202 <Normal Text></Normal Text><br/> 0203 <Normal Text>@</Normal Text><Delimiter>[</Delimiter><Constant>Link</Constant><Normal Text>(</Normal Text><String>"z"</String><Normal Text>)</Normal Text><Delimiter>]</Delimiter><br/> 0204 <Normal Text>lib </Normal Text><Constant>LibZ</Constant><br/> 0205 <Normal Text> </Normal Text><Definition>alias</Definition><Normal Text> </Normal Text><Constant>Char</Constant><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Constant>LibC</Constant><Operator>::</Operator><Constant>Char</Constant><br/> 0206 <Normal Text> </Normal Text><Definition>alias</Definition><Normal Text> </Normal Text><Constant>SizeT</Constant><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Constant>LibC</Constant><Operator>::</Operator><Constant>SizeT</Constant><br/> 0207 <Normal Text></Normal Text><br/> 0208 <Normal Text> fun zlibVersion : </Normal Text><Constant>Char</Constant><Operator>*</Operator><br/> 0209 <Normal Text> fun crc32_combine(crc1 : </Normal Text><Constant>ULong</Constant><Normal Text>, crc2 : </Normal Text><Constant>ULong</Constant><Normal Text>, len : </Normal Text><Constant>Long</Constant><Normal Text>) : </Normal Text><Constant>ULong</Constant><br/> 0210 <Normal Text></Normal Text><br/> 0211 <Normal Text> </Normal Text><Definition>alias</Definition><Normal Text> </Normal Text><Constant>AllocFunc</Constant><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Constant>Void</Constant><Operator>*</Operator><Normal Text>, </Normal Text><Constant>UInt</Constant><Normal Text>, </Normal Text><Constant>UInt</Constant><Normal Text> </Normal Text><Operator>-></Operator><Normal Text> </Normal Text><Constant>Void</Constant><Operator>*</Operator><br/> 0212 <Normal Text> </Normal Text><Definition>alias</Definition><Normal Text> </Normal Text><Constant>FreeFunc</Constant><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> (</Normal Text><Constant>Void</Constant><Operator>*</Operator><Normal Text>, </Normal Text><Constant>Void</Constant><Operator>*</Operator><Normal Text>) </Normal Text><Operator>-></Operator><br/> 0213 <Normal Text></Normal Text><br/> 0214 <Normal Text> </Normal Text><Definition>struct</Definition><Normal Text> </Normal Text><Constant>ZStream</Constant><br/> 0215 <Normal Text> next_in : </Normal Text><Constant>Bytef</Constant><Operator>*</Operator><br/> 0216 <Normal Text> avail_in : </Normal Text><Constant>UInt</Constant><br/> 0217 <Normal Text> next_out : </Normal Text><Constant>Bytef</Constant><Operator>*</Operator><br/> 0218 <Normal Text> total_out : </Normal Text><Constant>ULong</Constant><br/> 0219 <Normal Text> msg : </Normal Text><Constant>Char</Constant><Operator>*</Operator><br/> 0220 <Normal Text> state : </Normal Text><Constant>Void</Constant><Operator>*</Operator><br/> 0221 <Normal Text> zalloc : </Normal Text><Constant>AllocFunc</Constant><br/> 0222 <Normal Text> zfree : </Normal Text><Constant>FreeFunc</Constant><br/> 0223 <Normal Text> opaque : </Normal Text><Constant>Void</Constant><Operator>*</Operator><br/> 0224 <Normal Text> data_type : </Normal Text><Constant>Int</Constant><br/> 0225 <Normal Text> adler : </Normal Text><Constant>Long</Constant><br/> 0226 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0227 <Normal Text></Normal Text><br/> 0228 <Normal Text> </Normal Text><Comment># error codes</Comment><br/> 0229 <Normal Text> enum </Normal Text><Constant>Error</Constant><br/> 0230 <Normal Text> </Normal Text><Global Constant>OK</Global Constant><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Dec>0</Dec><br/> 0231 <Normal Text> </Normal Text><Global Constant>VERSION_ERROR</Global Constant><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Operator>-</Operator><Dec>6</Dec><br/> 0232 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0233 <Normal Text></Normal Text><br/> 0234 <Normal Text> enum </Normal Text><Constant>Flush</Constant><br/> 0235 <Normal Text> </Normal Text><Global Constant>NO_FLUSH</Global Constant><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Dec>0</Dec><br/> 0236 <Normal Text> </Normal Text><Global Constant>TREES</Global Constant><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Dec>6</Dec><br/> 0237 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0238 <Normal Text></Normal Text><br/> 0239 <Normal Text> </Normal Text><Global Constant>MAX_BITS</Global Constant><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Dec>15</Dec><br/> 0240 <Normal Text></Normal Text><br/> 0241 <Normal Text> fun deflateInit2 </Normal Text><Operator>=</Operator><Normal Text> deflateInit2_(stream : </Normal Text><Constant>ZStream</Constant><Operator>*</Operator><Normal Text>, level : </Normal Text><Constant>Int32</Constant><Normal Text>, method : </Normal Text><Constant>Int32</Constant><Normal Text>,</Normal Text><br/> 0242 <Normal Text> window_bits : </Normal Text><Constant>Int32</Constant><Normal Text>, mem_level : </Normal Text><Constant>Int32</Constant><Normal Text>, strategy : </Normal Text><Constant>Int32</Constant><Normal Text>,</Normal Text><br/> 0243 <Normal Text> version : </Normal Text><Constant>UInt8</Constant><Operator>*</Operator><Normal Text>, stream_size : </Normal Text><Constant>Int32</Constant><Normal Text>) : </Normal Text><Constant>Error</Constant><br/> 0244 <Normal Text> fun deflate(stream : </Normal Text><Constant>ZStream</Constant><Operator>*</Operator><Normal Text>, flush : </Normal Text><Constant>Flush</Constant><Normal Text>) : </Normal Text><Constant>Error</Constant><br/> 0245 <Normal Text> fun deflateSetDictionary(stream : </Normal Text><Constant>ZStream</Constant><Operator>*</Operator><Normal Text>, dictionary : </Normal Text><Constant>UInt8</Constant><Operator>*</Operator><Normal Text>, len : </Normal Text><Constant>UInt</Constant><Normal Text>) : </Normal Text><Constant>Int</Constant><br/> 0246 <Normal Text></Normal Text><br/> 0247 <Normal Text> fun inflateInit2 </Normal Text><Operator>=</Operator><Normal Text> inflateInit2_(stream : </Normal Text><Constant>ZStream</Constant><Operator>*</Operator><Normal Text>, window_bits : </Normal Text><Constant>Int32</Constant><Normal Text>, version : </Normal Text><Constant>UInt8</Constant><Operator>*</Operator><Normal Text>, stream_size : </Normal Text><Constant>Int32</Constant><Normal Text>) : </Normal Text><Constant>Error</Constant><br/> 0248 <Normal Text> fun inflate(stream : </Normal Text><Constant>ZStream</Constant><Operator>*</Operator><Normal Text>, flush : </Normal Text><Constant>Flush</Constant><Normal Text>) : </Normal Text><Constant>Error</Constant><br/> 0249 <Normal Text> fun inflateSetDictionary(stream : </Normal Text><Constant>ZStream</Constant><Operator>*</Operator><Normal Text>, dictionary : </Normal Text><Constant>UInt8</Constant><Operator>*</Operator><Normal Text>, len : </Normal Text><Constant>UInt</Constant><Normal Text>) : </Normal Text><Constant>Error</Constant><br/> 0250 <Keyword>end</Keyword><br/>