diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2016-09-17 15:01:51 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2016-09-17 15:01:51 -0700 |
commit | f344b250f6f062a1a1902bf69b23ebf9b565de0e (patch) | |
tree | 199bd32a9aee198d5028b1c21b83d2cf0944b2b6 /html/066stream.mu.html | |
parent | 897ae8c1855f830d8819759ea327d147f28a09bf (diff) | |
download | mu-f344b250f6f062a1a1902bf69b23ebf9b565de0e.tar.gz |
3395
Diffstat (limited to 'html/066stream.mu.html')
-rw-r--r-- | html/066stream.mu.html | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/html/066stream.mu.html b/html/066stream.mu.html index 02798ec8..49abcfb6 100644 --- a/html/066stream.mu.html +++ b/html/066stream.mu.html @@ -33,11 +33,11 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color <pre id='vimCodeElement'> <span class="Comment"># new type to help incrementally scan arrays</span> <span class="muData">container</span> stream:_elem [ - index:number - data:address:array:_elem + index:num + data:&:@:_elem ] -<span class="muRecipe">def</span> new-stream s:address:array:_elem<span class="muRecipe"> -> </span>result:address:stream:_elem [ +<span class="muRecipe">def</span> new-stream s:&:@:_elem<span class="muRecipe"> -> </span>result:&:stream:_elem [ <span class="Constant">local-scope</span> <span class="Constant">load-ingredients</span> result<span class="Special"> <- </span>new <span class="Delimiter">{</span>(stream _elem): type<span class="Delimiter">}</span> @@ -45,23 +45,23 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color *result<span class="Special"> <- </span>put *result, <span class="Constant">data:offset</span>, s ] -<span class="muRecipe">def</span> rewind in:address:stream:_elem<span class="muRecipe"> -> </span>in:address:stream:_elem [ +<span class="muRecipe">def</span> rewind in:&:stream:_elem<span class="muRecipe"> -> </span>in:&:stream:_elem [ <span class="Constant">local-scope</span> <span class="Constant">load-ingredients</span> *in<span class="Special"> <- </span>put *in, <span class="Constant">index:offset</span>, <span class="Constant">0</span> ] -<span class="muRecipe">def</span> read in:address:stream:_elem<span class="muRecipe"> -> </span>result:_elem, empty?:boolean, in:address:stream:_elem [ +<span class="muRecipe">def</span> read in:&:stream:_elem<span class="muRecipe"> -> </span>result:_elem, empty?:bool, in:&:stream:_elem [ <span class="Constant">local-scope</span> <span class="Constant">load-ingredients</span> empty?<span class="Special"> <- </span>copy <span class="Constant">0/false</span> - idx:number<span class="Special"> <- </span>get *in, <span class="Constant">index:offset</span> - s:address:array:_elem<span class="Special"> <- </span>get *in, <span class="Constant">data:offset</span> - len:number<span class="Special"> <- </span>length *s - at-end?:boolean<span class="Special"> <- </span>greater-or-equal idx len + idx:num<span class="Special"> <- </span>get *in, <span class="Constant">index:offset</span> + s:&:@:_elem<span class="Special"> <- </span>get *in, <span class="Constant">data:offset</span> + len:num<span class="Special"> <- </span>length *s + at-end?:bool<span class="Special"> <- </span>greater-or-equal idx len <span class="Delimiter">{</span> <span class="muControl">break-unless</span> at-end? - empty-result:address:_elem<span class="Special"> <- </span>new <span class="Constant">_elem:type</span> + empty-result:&:_elem<span class="Special"> <- </span>new <span class="Constant">_elem:type</span> <span class="muControl">return</span> *empty-result, <span class="Constant">1/true</span> <span class="Delimiter">}</span> result<span class="Special"> <- </span>index *s, idx @@ -69,40 +69,40 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color *in<span class="Special"> <- </span>put *in, <span class="Constant">index:offset</span>, idx ] -<span class="muRecipe">def</span> peek in:address:stream:_elem<span class="muRecipe"> -> </span>result:_elem, empty?:boolean [ +<span class="muRecipe">def</span> peek in:&:stream:_elem<span class="muRecipe"> -> </span>result:_elem, empty?:bool [ <span class="Constant">local-scope</span> <span class="Constant">load-ingredients</span> - empty?:boolean<span class="Special"> <- </span>copy <span class="Constant">0/false</span> - idx:number<span class="Special"> <- </span>get *in, <span class="Constant">index:offset</span> - s:address:array:_elem<span class="Special"> <- </span>get *in, <span class="Constant">data:offset</span> - len:number<span class="Special"> <- </span>length *s - at-end?:boolean<span class="Special"> <- </span>greater-or-equal idx len + empty?:bool<span class="Special"> <- </span>copy <span class="Constant">0/false</span> + idx:num<span class="Special"> <- </span>get *in, <span class="Constant">index:offset</span> + s:&:@:_elem<span class="Special"> <- </span>get *in, <span class="Constant">data:offset</span> + len:num<span class="Special"> <- </span>length *s + at-end?:bool<span class="Special"> <- </span>greater-or-equal idx len <span class="Delimiter">{</span> <span class="muControl">break-unless</span> at-end? - empty-result:address:_elem<span class="Special"> <- </span>new <span class="Constant">_elem:type</span> + empty-result:&:_elem<span class="Special"> <- </span>new <span class="Constant">_elem:type</span> <span class="muControl">return</span> *empty-result, <span class="Constant">1/true</span> <span class="Delimiter">}</span> result<span class="Special"> <- </span>index *s, idx ] -<span class="muRecipe">def</span> read-line in:address:stream:character<span class="muRecipe"> -> </span>result:text, in:address:stream:character [ +<span class="muRecipe">def</span> read-line in:&:stream:char<span class="muRecipe"> -> </span>result:text, in:&:stream:char [ <span class="Constant">local-scope</span> <span class="Constant">load-ingredients</span> - idx:number<span class="Special"> <- </span>get *in, <span class="Constant">index:offset</span> + idx:num<span class="Special"> <- </span>get *in, <span class="Constant">index:offset</span> s:text<span class="Special"> <- </span>get *in, <span class="Constant">data:offset</span> - next-idx:number<span class="Special"> <- </span>find-next s, <span class="Constant">10/newline</span>, idx + next-idx:num<span class="Special"> <- </span>find-next s, <span class="Constant">10/newline</span>, idx result<span class="Special"> <- </span>copy-range s, idx, next-idx idx<span class="Special"> <- </span>add next-idx, <span class="Constant">1</span> <span class="Comment"># skip newline</span> <span class="Comment"># write back</span> *in<span class="Special"> <- </span>put *in, <span class="Constant">index:offset</span>, idx ] -<span class="muRecipe">def</span> end-of-stream? in:address:stream:_elem<span class="muRecipe"> -> </span>result:boolean [ +<span class="muRecipe">def</span> end-of-stream? in:&:stream:_elem<span class="muRecipe"> -> </span>result:bool [ <span class="Constant">local-scope</span> <span class="Constant">load-ingredients</span> - idx:number<span class="Special"> <- </span>get *in, <span class="Constant">index:offset</span> - s:address:array:_elem<span class="Special"> <- </span>get *in, <span class="Constant">data:offset</span> - len:number<span class="Special"> <- </span>length *s + idx:num<span class="Special"> <- </span>get *in, <span class="Constant">index:offset</span> + s:&:@:_elem<span class="Special"> <- </span>get *in, <span class="Constant">data:offset</span> + len:num<span class="Special"> <- </span>length *s result<span class="Special"> <- </span>greater-or-equal idx, len ] </pre> |