diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2017-03-07 01:41:48 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2017-03-07 01:41:48 -0800 |
commit | 9e751bb8c0cdf771d34c839cb6591d892b8e62de (patch) | |
tree | 2ac86646cd0aa204626a4fc842dbe8b2aa526817 /html/085scenario_console.cc.html | |
parent | 848ebc1e6335cd1a34e07662242a367fefbc5229 (diff) | |
download | mu-9e751bb8c0cdf771d34c839cb6591d892b8e62de.tar.gz |
3761
Diffstat (limited to 'html/085scenario_console.cc.html')
-rw-r--r-- | html/085scenario_console.cc.html | 227 |
1 files changed, 114 insertions, 113 deletions
diff --git a/html/085scenario_console.cc.html b/html/085scenario_console.cc.html index 869ec321..a287499b 100644 --- a/html/085scenario_console.cc.html +++ b/html/085scenario_console.cc.html @@ -16,8 +16,9 @@ a { text-decoration: none; } a:hover { text-decoration: underline; } * { font-size: 12pt; font-size: 1em; } .Constant { color: #00a0a0; } -.Special { color: #c00000; } +.Conceal { color: #4e4e4e; } .muScenario { color: #00af00; } +.Special { color: #c00000; } .Comment { color: #9090ff; } .Delimiter { color: #800080; } .LineNr { color: #444444; } @@ -72,24 +73,24 @@ if ('onhashchange' in window) { <span id="L12" class="LineNr"> 12 </span><span class="Delimiter">:(scenario keyboard_in_scenario)</span> <span id="L13" class="LineNr"> 13 </span><span class="muScenario"><a href='050scenario.cc.html#L57'>scenario</a></span> keyboard-in-scenario [ <span id="L14" class="LineNr"> 14 </span> assume-console [ -<span id="L15" class="LineNr"> 15 </span> type [abc] +<span id="L15" class="LineNr"> 15 </span> <span class="Conceal">¦</span> type [abc] <span id="L16" class="LineNr"> 16 </span> ] <span id="L17" class="LineNr"> 17 </span> run [ -<span id="L18" class="LineNr"> 18 </span> <span class="Constant">1</span>:<span class="Normal">char</span><span class="Delimiter">,</span> <span class="Constant">2</span>:<span class="Normal">bool</span><span class="Special"> <- </span>read-key console -<span id="L19" class="LineNr"> 19 </span> <span class="Constant">3</span>:<span class="Normal">char</span><span class="Delimiter">,</span> <span class="Constant">4</span>:<span class="Normal">bool</span><span class="Special"> <- </span>read-key console -<span id="L20" class="LineNr"> 20 </span> <span class="Constant">5</span>:<span class="Normal">char</span><span class="Delimiter">,</span> <span class="Constant">6</span>:<span class="Normal">bool</span><span class="Special"> <- </span>read-key console -<span id="L21" class="LineNr"> 21 </span> <span class="Constant">7</span>:<span class="Normal">char</span><span class="Delimiter">,</span> <span class="Constant">8</span>:<span class="Normal">bool</span><span class="Delimiter">,</span> <span class="Constant">9</span>:<span class="Normal">bool</span><span class="Special"> <- </span>read-key console +<span id="L18" class="LineNr"> 18 </span> <span class="Conceal">¦</span> <span class="Constant">1</span>:<span class="Normal">char</span><span class="Delimiter">,</span> <span class="Constant">2</span>:<span class="Normal">bool</span><span class="Special"> <- </span>read-key console +<span id="L19" class="LineNr"> 19 </span> <span class="Conceal">¦</span> <span class="Constant">3</span>:<span class="Normal">char</span><span class="Delimiter">,</span> <span class="Constant">4</span>:<span class="Normal">bool</span><span class="Special"> <- </span>read-key console +<span id="L20" class="LineNr"> 20 </span> <span class="Conceal">¦</span> <span class="Constant">5</span>:<span class="Normal">char</span><span class="Delimiter">,</span> <span class="Constant">6</span>:<span class="Normal">bool</span><span class="Special"> <- </span>read-key console +<span id="L21" class="LineNr"> 21 </span> <span class="Conceal">¦</span> <span class="Constant">7</span>:<span class="Normal">char</span><span class="Delimiter">,</span> <span class="Constant">8</span>:<span class="Normal">bool</span><span class="Delimiter">,</span> <span class="Constant">9</span>:<span class="Normal">bool</span><span class="Special"> <- </span>read-key console <span id="L22" class="LineNr"> 22 </span> ] <span id="L23" class="LineNr"> 23 </span> memory-should-contain [ -<span id="L24" class="LineNr"> 24 </span> <span class="Constant">1</span><span class="Special"> <- </span><span class="Constant">97</span> <span class="Comment"># 'a'</span> -<span id="L25" class="LineNr"> 25 </span> <span class="Constant">2</span><span class="Special"> <- </span><span class="Constant">1</span> -<span id="L26" class="LineNr"> 26 </span> <span class="Constant">3</span><span class="Special"> <- </span><span class="Constant">98</span> <span class="Comment"># 'b'</span> -<span id="L27" class="LineNr"> 27 </span> <span class="Constant">4</span><span class="Special"> <- </span><span class="Constant">1</span> -<span id="L28" class="LineNr"> 28 </span> <span class="Constant">5</span><span class="Special"> <- </span><span class="Constant">99</span> <span class="Comment"># 'c'</span> -<span id="L29" class="LineNr"> 29 </span> <span class="Constant">6</span><span class="Special"> <- </span><span class="Constant">1</span> -<span id="L30" class="LineNr"> 30 </span> <span class="Constant">7</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># unset</span> -<span id="L31" class="LineNr"> 31 </span> <span class="Constant">8</span><span class="Special"> <- </span><span class="Constant">1</span> -<span id="L32" class="LineNr"> 32 </span> <span class="Constant">9</span><span class="Special"> <- </span><span class="Constant">1</span> <span class="Comment"># end of test events</span> +<span id="L24" class="LineNr"> 24 </span> <span class="Conceal">¦</span> <span class="Constant">1</span><span class="Special"> <- </span><span class="Constant">97</span> <span class="Comment"># 'a'</span> +<span id="L25" class="LineNr"> 25 </span> <span class="Conceal">¦</span> <span class="Constant">2</span><span class="Special"> <- </span><span class="Constant">1</span> +<span id="L26" class="LineNr"> 26 </span> <span class="Conceal">¦</span> <span class="Constant">3</span><span class="Special"> <- </span><span class="Constant">98</span> <span class="Comment"># 'b'</span> +<span id="L27" class="LineNr"> 27 </span> <span class="Conceal">¦</span> <span class="Constant">4</span><span class="Special"> <- </span><span class="Constant">1</span> +<span id="L28" class="LineNr"> 28 </span> <span class="Conceal">¦</span> <span class="Constant">5</span><span class="Special"> <- </span><span class="Constant">99</span> <span class="Comment"># 'c'</span> +<span id="L29" class="LineNr"> 29 </span> <span class="Conceal">¦</span> <span class="Constant">6</span><span class="Special"> <- </span><span class="Constant">1</span> +<span id="L30" class="LineNr"> 30 </span> <span class="Conceal">¦</span> <span class="Constant">7</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># unset</span> +<span id="L31" class="LineNr"> 31 </span> <span class="Conceal">¦</span> <span class="Constant">8</span><span class="Special"> <- </span><span class="Constant">1</span> +<span id="L32" class="LineNr"> 32 </span> <span class="Conceal">¦</span> <span class="Constant">9</span><span class="Special"> <- </span><span class="Constant">1</span> <span class="Comment"># end of test events</span> <span id="L33" class="LineNr"> 33 </span> ] <span id="L34" class="LineNr"> 34 </span>] <span id="L35" class="LineNr"> 35 </span> @@ -124,54 +125,54 @@ if ('onhashchange' in window) { <span id="L64" class="LineNr"> 64 </span> <a href='001help.cc.html#L218'>put</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> event_data_address+<span class="Comment">/*</span><span class="Comment">skip refcount</span><span class="Comment">*/</span><span class="Constant">1</span><span class="Delimiter">,</span> num_events<span class="Delimiter">);</span> <span id="L65" class="LineNr"> 65 </span> <span class="Normal">int</span> curr_address = event_data_address + <span class="Comment">/*</span><span class="Comment">skip refcount and length</span><span class="Comment">*/</span><span class="Constant">2</span><span class="Delimiter">;</span> <span id="L66" class="LineNr"> 66 </span> <span class="Normal">for</span> <span class="Delimiter">(</span><span class="Normal">int</span> i = <span class="Constant">0</span><span class="Delimiter">;</span> i < <a href='001help.cc.html#L138'>SIZE</a><span class="Delimiter">(</span>r<span class="Delimiter">.</span>steps<span class="Delimiter">);</span> ++i<span class="Delimiter">)</span> <span class="Delimiter">{</span> -<span id="L67" class="LineNr"> 67 </span> <span class="Normal">const</span> instruction& inst = r<span class="Delimiter">.</span>steps<span class="Delimiter">.</span>at<span class="Delimiter">(</span>i<span class="Delimiter">);</span> -<span id="L68" class="LineNr"> 68 </span> <span class="Normal">if</span> <span class="Delimiter">(</span>inst<span class="Delimiter">.</span>name == <span class="Constant">"left-click"</span><span class="Delimiter">)</span> <span class="Delimiter">{</span> -<span id="L69" class="LineNr"> 69 </span> <a href='003trace.cc.html#L161'>trace</a><span class="Delimiter">(</span><span class="Constant">9999</span><span class="Delimiter">,</span> <span class="Constant">"mem"</span><span class="Delimiter">)</span> << <span class="Constant">"storing 'left-click' event starting at "</span> << Current_routine<span class="Delimiter">-></span>alloc << <a href='003trace.cc.html#L185'>end</a><span class="Delimiter">();</span> -<span id="L70" class="LineNr"> 70 </span> <a href='001help.cc.html#L218'>put</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr_address<span class="Delimiter">,</span> <span class="Comment">/*</span><span class="Comment">tag for 'touch-event' variant of 'event' exclusive-container</span><span class="Comment">*/</span><span class="Constant">2</span><span class="Delimiter">);</span> -<span id="L71" class="LineNr"> 71 </span> <a href='001help.cc.html#L218'>put</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr_address+<span class="Comment">/*</span><span class="Comment">skip tag</span><span class="Comment">*/</span><span class="Constant">1</span>+<span class="Comment">/*</span><span class="Comment">offset of 'type' in 'mouse-event'</span><span class="Comment">*/</span><span class="Constant">0</span><span class="Delimiter">,</span> TB_KEY_MOUSE_LEFT<span class="Delimiter">);</span> -<span id="L72" class="LineNr"> 72 </span> <a href='001help.cc.html#L218'>put</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr_address+<span class="Comment">/*</span><span class="Comment">skip tag</span><span class="Comment">*/</span><span class="Constant">1</span>+<span class="Comment">/*</span><span class="Comment">offset of 'row' in 'mouse-event'</span><span class="Comment">*/</span><span class="Constant">1</span><span class="Delimiter">,</span> <a href='002test.cc.html#L92'>to_integer</a><span class="Delimiter">(</span>inst<span class="Delimiter">.</span>ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">).</span>name<span class="Delimiter">));</span> -<span id="L73" class="LineNr"> 73 </span> <a href='001help.cc.html#L218'>put</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr_address+<span class="Comment">/*</span><span class="Comment">skip tag</span><span class="Comment">*/</span><span class="Constant">1</span>+<span class="Comment">/*</span><span class="Comment">offset of 'column' in 'mouse-event'</span><span class="Comment">*/</span><span class="Constant">2</span><span class="Delimiter">,</span> <a href='002test.cc.html#L92'>to_integer</a><span class="Delimiter">(</span>inst<span class="Delimiter">.</span>ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">1</span><span class="Delimiter">).</span>name<span class="Delimiter">));</span> -<span id="L74" class="LineNr"> 74 </span> curr_address += <a href='085scenario_console.cc.html#L295'>size_of_event</a><span class="Delimiter">();</span> -<span id="L75" class="LineNr"> 75 </span> <span class="Delimiter">}</span> -<span id="L76" class="LineNr"> 76 </span> <span class="Normal">else</span> <span class="Normal">if</span> <span class="Delimiter">(</span>inst<span class="Delimiter">.</span>name == <span class="Constant">"press"</span><span class="Delimiter">)</span> <span class="Delimiter">{</span> -<span id="L77" class="LineNr"> 77 </span> <a href='003trace.cc.html#L161'>trace</a><span class="Delimiter">(</span><span class="Constant">9999</span><span class="Delimiter">,</span> <span class="Constant">"mem"</span><span class="Delimiter">)</span> << <span class="Constant">"storing 'press' event starting at "</span> << curr_address << <a href='003trace.cc.html#L185'>end</a><span class="Delimiter">();</span> -<span id="L78" class="LineNr"> 78 </span> string key = inst<span class="Delimiter">.</span>ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">).</span>name<span class="Delimiter">;</span> -<span id="L79" class="LineNr"> 79 </span> <span class="Normal">if</span> <span class="Delimiter">(</span><a href='002test.cc.html#L86'>is_integer</a><span class="Delimiter">(</span>key<span class="Delimiter">))</span> -<span id="L80" class="LineNr"> 80 </span> <a href='001help.cc.html#L218'>put</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr_address+<span class="Constant">1</span><span class="Delimiter">,</span> <a href='002test.cc.html#L92'>to_integer</a><span class="Delimiter">(</span>key<span class="Delimiter">));</span> -<span id="L81" class="LineNr"> 81 </span> <span class="Normal">else</span> <span class="Normal">if</span> <span class="Delimiter">(</span>contains_key<span class="Delimiter">(</span>Key<span class="Delimiter">,</span> key<span class="Delimiter">))</span> -<span id="L82" class="LineNr"> 82 </span> <a href='001help.cc.html#L218'>put</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr_address+<span class="Constant">1</span><span class="Delimiter">,</span> Key[key]<span class="Delimiter">);</span> -<span id="L83" class="LineNr"> 83 </span> <span class="Normal">else</span> -<span id="L84" class="LineNr"> 84 </span> <a href='003trace.cc.html#L168'>raise</a> << <span class="Constant">"assume-console: can't press '"</span> << key << <span class="Constant">"'</span><span class="cSpecial">\n</span><span class="Constant">"</span> << end<span class="Delimiter">();</span> -<span id="L85" class="LineNr"> 85 </span> <span class="Normal">if</span> <span class="Delimiter">(</span><a href='001help.cc.html#L225'>get_or_insert</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr_address+<span class="Constant">1</span><span class="Delimiter">)</span> < <span class="Constant">256</span><span class="Delimiter">)</span> -<span id="L86" class="LineNr"> 86 </span> <span class="Comment">// these keys are in ascii</span> -<span id="L87" class="LineNr"> 87 </span> <a href='001help.cc.html#L218'>put</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr_address<span class="Delimiter">,</span> <span class="Comment">/*</span><span class="Comment">tag for 'text' variant of 'event' exclusive-container</span><span class="Comment">*/</span><span class="Constant">0</span><span class="Delimiter">);</span> -<span id="L88" class="LineNr"> 88 </span> <span class="Normal">else</span> <span class="Delimiter">{</span> -<span id="L89" class="LineNr"> 89 </span> <span class="Comment">// distinguish from unicode</span> -<span id="L90" class="LineNr"> 90 </span> <a href='001help.cc.html#L218'>put</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr_address<span class="Delimiter">,</span> <span class="Comment">/*</span><span class="Comment">tag for 'keycode' variant of 'event' exclusive-container</span><span class="Comment">*/</span><span class="Constant">1</span><span class="Delimiter">);</span> -<span id="L91" class="LineNr"> 91 </span> <span class="Delimiter">}</span> -<span id="L92" class="LineNr"> 92 </span> curr_address += <a href='085scenario_console.cc.html#L295'>size_of_event</a><span class="Delimiter">();</span> -<span id="L93" class="LineNr"> 93 </span> <span class="Delimiter">}</span> -<span id="L94" class="LineNr"> 94 </span> <span class="Comment">// End Event Handlers</span> -<span id="L95" class="LineNr"> 95 </span> <span class="Normal">else</span> <span class="Delimiter">{</span> -<span id="L96" class="LineNr"> 96 </span> <span class="Comment">// keyboard input</span> -<span id="L97" class="LineNr"> 97 </span> assert<span class="Delimiter">(</span>inst<span class="Delimiter">.</span>name == <span class="Constant">"type"</span><span class="Delimiter">);</span> -<span id="L98" class="LineNr"> 98 </span> <a href='003trace.cc.html#L161'>trace</a><span class="Delimiter">(</span><span class="Constant">9999</span><span class="Delimiter">,</span> <span class="Constant">"mem"</span><span class="Delimiter">)</span> << <span class="Constant">"storing 'type' event starting at "</span> << curr_address << <a href='003trace.cc.html#L185'>end</a><span class="Delimiter">();</span> -<span id="L99" class="LineNr"> 99 </span> <span class="Normal">const</span> string& contents = inst<span class="Delimiter">.</span>ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">).</span>name<span class="Delimiter">;</span> -<span id="L100" class="LineNr">100 </span> <span class="Normal">const</span> <span class="Normal">char</span>* raw_contents = contents<span class="Delimiter">.</span>c_str<span class="Delimiter">();</span> -<span id="L101" class="LineNr">101 </span> <span class="Normal">int</span> num_keyboard_events = <a href='038new_text.cc.html#L131'>unicode_length</a><span class="Delimiter">(</span>contents<span class="Delimiter">);</span> -<span id="L102" class="LineNr">102 </span> <span class="Normal">int</span> curr = <span class="Constant">0</span><span class="Delimiter">;</span> -<span id="L103" class="LineNr">103 </span> <span class="Normal">for</span> <span class="Delimiter">(</span><span class="Normal">int</span> i = <span class="Constant">0</span><span class="Delimiter">;</span> i < num_keyboard_events<span class="Delimiter">;</span> ++i<span class="Delimiter">)</span> <span class="Delimiter">{</span> -<span id="L104" class="LineNr">104 </span> <a href='003trace.cc.html#L161'>trace</a><span class="Delimiter">(</span><span class="Constant">9999</span><span class="Delimiter">,</span> <span class="Constant">"mem"</span><span class="Delimiter">)</span> << <span class="Constant">"storing 'text' tag at "</span> << curr_address << <a href='003trace.cc.html#L185'>end</a><span class="Delimiter">();</span> -<span id="L105" class="LineNr">105 </span> <a href='001help.cc.html#L218'>put</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr_address<span class="Delimiter">,</span> <span class="Comment">/*</span><span class="Comment">tag for 'text' variant of 'event' exclusive-container</span><span class="Comment">*/</span><span class="Constant">0</span><span class="Delimiter">);</span> -<span id="L106" class="LineNr">106 </span> <span class="Normal">uint32_t</span> curr_character<span class="Delimiter">;</span> -<span id="L107" class="LineNr">107 </span> assert<span class="Delimiter">(</span>curr < <a href='001help.cc.html#L138'>SIZE</a><span class="Delimiter">(</span>contents<span class="Delimiter">));</span> -<span id="L108" class="LineNr">108 </span> tb_utf8_char_to_unicode<span class="Delimiter">(</span>&curr_character<span class="Delimiter">,</span> &raw_contents[curr]<span class="Delimiter">);</span> -<span id="L109" class="LineNr">109 </span> <a href='003trace.cc.html#L161'>trace</a><span class="Delimiter">(</span><span class="Constant">9999</span><span class="Delimiter">,</span> <span class="Constant">"mem"</span><span class="Delimiter">)</span> << <span class="Constant">"storing character "</span> << curr_character << <span class="Constant">" at "</span> << curr_address+<span class="Comment">/*</span><span class="Comment">skip exclusive container tag</span><span class="Comment">*/</span><span class="Constant">1</span> << <a href='003trace.cc.html#L185'>end</a><span class="Delimiter">();</span> -<span id="L110" class="LineNr">110 </span> <a href='001help.cc.html#L218'>put</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr_address+<span class="Comment">/*</span><span class="Comment">skip exclusive container tag</span><span class="Comment">*/</span><span class="Constant">1</span><span class="Delimiter">,</span> curr_character<span class="Delimiter">);</span> -<span id="L111" class="LineNr">111 </span> curr += tb_utf8_char_length<span class="Delimiter">(</span>raw_contents[curr]<span class="Delimiter">);</span> -<span id="L112" class="LineNr">112 </span> curr_address += <a href='085scenario_console.cc.html#L295'>size_of_event</a><span class="Delimiter">();</span> -<span id="L113" class="LineNr">113 </span> <span class="Delimiter">}</span> -<span id="L114" class="LineNr">114 </span> <span class="Delimiter">}</span> +<span id="L67" class="LineNr"> 67 </span> <span class="Conceal">¦</span> <span class="Normal">const</span> instruction& inst = r<span class="Delimiter">.</span>steps<span class="Delimiter">.</span>at<span class="Delimiter">(</span>i<span class="Delimiter">);</span> +<span id="L68" class="LineNr"> 68 </span> <span class="Conceal">¦</span> <span class="Normal">if</span> <span class="Delimiter">(</span>inst<span class="Delimiter">.</span>name == <span class="Constant">"left-click"</span><span class="Delimiter">)</span> <span class="Delimiter">{</span> +<span id="L69" class="LineNr"> 69 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='003trace.cc.html#L161'>trace</a><span class="Delimiter">(</span><span class="Constant">9999</span><span class="Delimiter">,</span> <span class="Constant">"mem"</span><span class="Delimiter">)</span> << <span class="Constant">"storing 'left-click' event starting at "</span> << Current_routine<span class="Delimiter">-></span>alloc << <a href='003trace.cc.html#L185'>end</a><span class="Delimiter">();</span> +<span id="L70" class="LineNr"> 70 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='001help.cc.html#L218'>put</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr_address<span class="Delimiter">,</span> <span class="Comment">/*</span><span class="Comment">tag for 'touch-event' variant of 'event' exclusive-container</span><span class="Comment">*/</span><span class="Constant">2</span><span class="Delimiter">);</span> +<span id="L71" class="LineNr"> 71 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='001help.cc.html#L218'>put</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr_address+<span class="Comment">/*</span><span class="Comment">skip tag</span><span class="Comment">*/</span><span class="Constant">1</span>+<span class="Comment">/*</span><span class="Comment">offset of 'type' in 'mouse-event'</span><span class="Comment">*/</span><span class="Constant">0</span><span class="Delimiter">,</span> TB_KEY_MOUSE_LEFT<span class="Delimiter">);</span> +<span id="L72" class="LineNr"> 72 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='001help.cc.html#L218'>put</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr_address+<span class="Comment">/*</span><span class="Comment">skip tag</span><span class="Comment">*/</span><span class="Constant">1</span>+<span class="Comment">/*</span><span class="Comment">offset of 'row' in 'mouse-event'</span><span class="Comment">*/</span><span class="Constant">1</span><span class="Delimiter">,</span> <a href='002test.cc.html#L92'>to_integer</a><span class="Delimiter">(</span>inst<span class="Delimiter">.</span>ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">).</span>name<span class="Delimiter">));</span> +<span id="L73" class="LineNr"> 73 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='001help.cc.html#L218'>put</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr_address+<span class="Comment">/*</span><span class="Comment">skip tag</span><span class="Comment">*/</span><span class="Constant">1</span>+<span class="Comment">/*</span><span class="Comment">offset of 'column' in 'mouse-event'</span><span class="Comment">*/</span><span class="Constant">2</span><span class="Delimiter">,</span> <a href='002test.cc.html#L92'>to_integer</a><span class="Delimiter">(</span>inst<span class="Delimiter">.</span>ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">1</span><span class="Delimiter">).</span>name<span class="Delimiter">));</span> +<span id="L74" class="LineNr"> 74 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> curr_address += <a href='085scenario_console.cc.html#L295'>size_of_event</a><span class="Delimiter">();</span> +<span id="L75" class="LineNr"> 75 </span> <span class="Conceal">¦</span> <span class="Delimiter">}</span> +<span id="L76" class="LineNr"> 76 </span> <span class="Conceal">¦</span> <span class="Normal">else</span> <span class="Normal">if</span> <span class="Delimiter">(</span>inst<span class="Delimiter">.</span>name == <span class="Constant">"press"</span><span class="Delimiter">)</span> <span class="Delimiter">{</span> +<span id="L77" class="LineNr"> 77 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='003trace.cc.html#L161'>trace</a><span class="Delimiter">(</span><span class="Constant">9999</span><span class="Delimiter">,</span> <span class="Constant">"mem"</span><span class="Delimiter">)</span> << <span class="Constant">"storing 'press' event starting at "</span> << curr_address << <a href='003trace.cc.html#L185'>end</a><span class="Delimiter">();</span> +<span id="L78" class="LineNr"> 78 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> string key = inst<span class="Delimiter">.</span>ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">).</span>name<span class="Delimiter">;</span> +<span id="L79" class="LineNr"> 79 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Normal">if</span> <span class="Delimiter">(</span><a href='002test.cc.html#L86'>is_integer</a><span class="Delimiter">(</span>key<span class="Delimiter">))</span> +<span id="L80" class="LineNr"> 80 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='001help.cc.html#L218'>put</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr_address+<span class="Constant">1</span><span class="Delimiter">,</span> <a href='002test.cc.html#L92'>to_integer</a><span class="Delimiter">(</span>key<span class="Delimiter">));</span> +<span id="L81" class="LineNr"> 81 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Normal">else</span> <span class="Normal">if</span> <span class="Delimiter">(</span>contains_key<span class="Delimiter">(</span>Key<span class="Delimiter">,</span> key<span class="Delimiter">))</span> +<span id="L82" class="LineNr"> 82 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='001help.cc.html#L218'>put</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr_address+<span class="Constant">1</span><span class="Delimiter">,</span> Key[key]<span class="Delimiter">);</span> +<span id="L83" class="LineNr"> 83 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Normal">else</span> +<span id="L84" class="LineNr"> 84 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='003trace.cc.html#L168'>raise</a> << <span class="Constant">"assume-console: can't press '"</span> << key << <span class="Constant">"'</span><span class="cSpecial">\n</span><span class="Constant">"</span> << end<span class="Delimiter">();</span> +<span id="L85" class="LineNr"> 85 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Normal">if</span> <span class="Delimiter">(</span><a href='001help.cc.html#L225'>get_or_insert</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr_address+<span class="Constant">1</span><span class="Delimiter">)</span> < <span class="Constant">256</span><span class="Delimiter">)</span> +<span id="L86" class="LineNr"> 86 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Comment">// these keys are in ascii</span> +<span id="L87" class="LineNr"> 87 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='001help.cc.html#L218'>put</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr_address<span class="Delimiter">,</span> <span class="Comment">/*</span><span class="Comment">tag for 'text' variant of 'event' exclusive-container</span><span class="Comment">*/</span><span class="Constant">0</span><span class="Delimiter">);</span> +<span id="L88" class="LineNr"> 88 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Normal">else</span> <span class="Delimiter">{</span> +<span id="L89" class="LineNr"> 89 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Comment">// distinguish from unicode</span> +<span id="L90" class="LineNr"> 90 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='001help.cc.html#L218'>put</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr_address<span class="Delimiter">,</span> <span class="Comment">/*</span><span class="Comment">tag for 'keycode' variant of 'event' exclusive-container</span><span class="Comment">*/</span><span class="Constant">1</span><span class="Delimiter">);</span> +<span id="L91" class="LineNr"> 91 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Delimiter">}</span> +<span id="L92" class="LineNr"> 92 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> curr_address += <a href='085scenario_console.cc.html#L295'>size_of_event</a><span class="Delimiter">();</span> +<span id="L93" class="LineNr"> 93 </span> <span class="Conceal">¦</span> <span class="Delimiter">}</span> +<span id="L94" class="LineNr"> 94 </span> <span class="Conceal">¦</span> <span class="Comment">// End Event Handlers</span> +<span id="L95" class="LineNr"> 95 </span> <span class="Conceal">¦</span> <span class="Normal">else</span> <span class="Delimiter">{</span> +<span id="L96" class="LineNr"> 96 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Comment">// keyboard input</span> +<span id="L97" class="LineNr"> 97 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> assert<span class="Delimiter">(</span>inst<span class="Delimiter">.</span>name == <span class="Constant">"type"</span><span class="Delimiter">);</span> +<span id="L98" class="LineNr"> 98 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='003trace.cc.html#L161'>trace</a><span class="Delimiter">(</span><span class="Constant">9999</span><span class="Delimiter">,</span> <span class="Constant">"mem"</span><span class="Delimiter">)</span> << <span class="Constant">"storing 'type' event starting at "</span> << curr_address << <a href='003trace.cc.html#L185'>end</a><span class="Delimiter">();</span> +<span id="L99" class="LineNr"> 99 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Normal">const</span> string& contents = inst<span class="Delimiter">.</span>ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">).</span>name<span class="Delimiter">;</span> +<span id="L100" class="LineNr">100 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Normal">const</span> <span class="Normal">char</span>* raw_contents = contents<span class="Delimiter">.</span>c_str<span class="Delimiter">();</span> +<span id="L101" class="LineNr">101 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Normal">int</span> num_keyboard_events = <a href='038new_text.cc.html#L131'>unicode_length</a><span class="Delimiter">(</span>contents<span class="Delimiter">);</span> +<span id="L102" class="LineNr">102 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Normal">int</span> curr = <span class="Constant">0</span><span class="Delimiter">;</span> +<span id="L103" class="LineNr">103 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Normal">for</span> <span class="Delimiter">(</span><span class="Normal">int</span> i = <span class="Constant">0</span><span class="Delimiter">;</span> i < num_keyboard_events<span class="Delimiter">;</span> ++i<span class="Delimiter">)</span> <span class="Delimiter">{</span> +<span id="L104" class="LineNr">104 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='003trace.cc.html#L161'>trace</a><span class="Delimiter">(</span><span class="Constant">9999</span><span class="Delimiter">,</span> <span class="Constant">"mem"</span><span class="Delimiter">)</span> << <span class="Constant">"storing 'text' tag at "</span> << curr_address << <a href='003trace.cc.html#L185'>end</a><span class="Delimiter">();</span> +<span id="L105" class="LineNr">105 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='001help.cc.html#L218'>put</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr_address<span class="Delimiter">,</span> <span class="Comment">/*</span><span class="Comment">tag for 'text' variant of 'event' exclusive-container</span><span class="Comment">*/</span><span class="Constant">0</span><span class="Delimiter">);</span> +<span id="L106" class="LineNr">106 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Normal">uint32_t</span> curr_character<span class="Delimiter">;</span> +<span id="L107" class="LineNr">107 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> assert<span class="Delimiter">(</span>curr < <a href='001help.cc.html#L138'>SIZE</a><span class="Delimiter">(</span>contents<span class="Delimiter">));</span> +<span id="L108" class="LineNr">108 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> tb_utf8_char_to_unicode<span class="Delimiter">(</span>&curr_character<span class="Delimiter">,</span> &raw_contents[curr]<span class="Delimiter">);</span> +<span id="L109" class="LineNr">109 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='003trace.cc.html#L161'>trace</a><span class="Delimiter">(</span><span class="Constant">9999</span><span class="Delimiter">,</span> <span class="Constant">"mem"</span><span class="Delimiter">)</span> << <span class="Constant">"storing character "</span> << curr_character << <span class="Constant">" at "</span> << curr_address+<span class="Comment">/*</span><span class="Comment">skip exclusive container tag</span><span class="Comment">*/</span><span class="Constant">1</span> << <a href='003trace.cc.html#L185'>end</a><span class="Delimiter">();</span> +<span id="L110" class="LineNr">110 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='001help.cc.html#L218'>put</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr_address+<span class="Comment">/*</span><span class="Comment">skip exclusive container tag</span><span class="Comment">*/</span><span class="Constant">1</span><span class="Delimiter">,</span> curr_character<span class="Delimiter">);</span> +<span id="L111" class="LineNr">111 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> curr += tb_utf8_char_length<span class="Delimiter">(</span>raw_contents[curr]<span class="Delimiter">);</span> +<span id="L112" class="LineNr">112 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> curr_address += <a href='085scenario_console.cc.html#L295'>size_of_event</a><span class="Delimiter">();</span> +<span id="L113" class="LineNr">113 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Delimiter">}</span> +<span id="L114" class="LineNr">114 </span> <span class="Conceal">¦</span> <span class="Delimiter">}</span> <span id="L115" class="LineNr">115 </span> <span class="Delimiter">}</span> <span id="L116" class="LineNr">116 </span> assert<span class="Delimiter">(</span>curr_address == event_data_address+size<span class="Delimiter">);</span> <span id="L117" class="LineNr">117 </span> <span class="Comment">// wrap the array of events in a console object</span> @@ -264,49 +265,49 @@ if ('onhashchange' in window) { <span id="L204" class="LineNr">204 </span><span class="Delimiter">:(scenario events_in_scenario)</span> <span id="L205" class="LineNr">205 </span><span class="muScenario"><a href='050scenario.cc.html#L57'>scenario</a></span> events-in-scenario [ <span id="L206" class="LineNr">206 </span> assume-console [ -<span id="L207" class="LineNr">207 </span> type [abc] -<span id="L208" class="LineNr">208 </span> left-click <span class="Constant">0</span><span class="Delimiter">,</span> <span class="Constant">1</span> -<span id="L209" class="LineNr">209 </span> press up-arrow -<span id="L210" class="LineNr">210 </span> type [d] +<span id="L207" class="LineNr">207 </span> <span class="Conceal">¦</span> type [abc] +<span id="L208" class="LineNr">208 </span> <span class="Conceal">¦</span> left-click <span class="Constant">0</span><span class="Delimiter">,</span> <span class="Constant">1</span> +<span id="L209" class="LineNr">209 </span> <span class="Conceal">¦</span> press up-arrow +<span id="L210" class="LineNr">210 </span> <span class="Conceal">¦</span> type [d] <span id="L211" class="LineNr">211 </span> ] <span id="L212" class="LineNr">212 </span> run [ -<span id="L213" class="LineNr">213 </span> <span class="Comment"># 3 keyboard events; each event occupies 4 locations</span> -<span id="L214" class="LineNr">214 </span> <span class="Constant">1</span>:event<span class="Special"> <- </span>read-event console -<span id="L215" class="LineNr">215 </span> <span class="Constant">5</span>:event<span class="Special"> <- </span>read-event console -<span id="L216" class="LineNr">216 </span> <span class="Constant">9</span>:event<span class="Special"> <- </span>read-event console -<span id="L217" class="LineNr">217 </span> <span class="Comment"># mouse click</span> -<span id="L218" class="LineNr">218 </span> <span class="Constant">13</span>:event<span class="Special"> <- </span>read-event console -<span id="L219" class="LineNr">219 </span> <span class="Comment"># non-character keycode</span> -<span id="L220" class="LineNr">220 </span> <span class="Constant">17</span>:event<span class="Special"> <- </span>read-event console -<span id="L221" class="LineNr">221 </span> <span class="Comment"># final keyboard event</span> -<span id="L222" class="LineNr">222 </span> <span class="Constant">21</span>:event<span class="Special"> <- </span>read-event console +<span id="L213" class="LineNr">213 </span> <span class="Conceal">¦</span> <span class="Comment"># 3 keyboard events; each event occupies 4 locations</span> +<span id="L214" class="LineNr">214 </span> <span class="Conceal">¦</span> <span class="Constant">1</span>:event<span class="Special"> <- </span>read-event console +<span id="L215" class="LineNr">215 </span> <span class="Conceal">¦</span> <span class="Constant">5</span>:event<span class="Special"> <- </span>read-event console +<span id="L216" class="LineNr">216 </span> <span class="Conceal">¦</span> <span class="Constant">9</span>:event<span class="Special"> <- </span>read-event console +<span id="L217" class="LineNr">217 </span> <span class="Conceal">¦</span> <span class="Comment"># mouse click</span> +<span id="L218" class="LineNr">218 </span> <span class="Conceal">¦</span> <span class="Constant">13</span>:event<span class="Special"> <- </span>read-event console +<span id="L219" class="LineNr">219 </span> <span class="Conceal">¦</span> <span class="Comment"># non-character keycode</span> +<span id="L220" class="LineNr">220 </span> <span class="Conceal">¦</span> <span class="Constant">17</span>:event<span class="Special"> <- </span>read-event console +<span id="L221" class="LineNr">221 </span> <span class="Conceal">¦</span> <span class="Comment"># final keyboard event</span> +<span id="L222" class="LineNr">222 </span> <span class="Conceal">¦</span> <span class="Constant">21</span>:event<span class="Special"> <- </span>read-event console <span id="L223" class="LineNr">223 </span> ] <span id="L224" class="LineNr">224 </span> memory-should-contain [ -<span id="L225" class="LineNr">225 </span> <span class="Constant">1</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># 'text'</span> -<span id="L226" class="LineNr">226 </span> <span class="Constant">2</span><span class="Special"> <- </span><span class="Constant">97</span> <span class="Comment"># 'a'</span> -<span id="L227" class="LineNr">227 </span> <span class="Constant">3</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># unused</span> -<span id="L228" class="LineNr">228 </span> <span class="Constant">4</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># unused</span> -<span id="L229" class="LineNr">229 </span> <span class="Constant">5</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># 'text'</span> -<span id="L230" class="LineNr">230 </span> <span class="Constant">6</span><span class="Special"> <- </span><span class="Constant">98</span> <span class="Comment"># 'b'</span> -<span id="L231" class="LineNr">231 </span> <span class="Constant">7</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># unused</span> -<span id="L232" class="LineNr">232 </span> <span class="Constant">8</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># unused</span> -<span id="L233" class="LineNr">233 </span> <span class="Constant">9</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># 'text'</span> -<span id="L234" class="LineNr">234 </span> <span class="Constant">10</span><span class="Special"> <- </span><span class="Constant">99</span> <span class="Comment"># 'c'</span> -<span id="L235" class="LineNr">235 </span> <span class="Constant">11</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># unused</span> -<span id="L236" class="LineNr">236 </span> <span class="Constant">12</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># unused</span> -<span id="L237" class="LineNr">237 </span> <span class="Constant">13</span><span class="Special"> <- </span><span class="Constant">2</span> <span class="Comment"># 'mouse'</span> -<span id="L238" class="LineNr">238 </span> <span class="Constant">14</span><span class="Special"> <- </span><span class="Constant">65513</span> <span class="Comment"># mouse click</span> -<span id="L239" class="LineNr">239 </span> <span class="Constant">15</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># row</span> -<span id="L240" class="LineNr">240 </span> <span class="Constant">16</span><span class="Special"> <- </span><span class="Constant">1</span> <span class="Comment"># column</span> -<span id="L241" class="LineNr">241 </span> <span class="Constant">17</span><span class="Special"> <- </span><span class="Constant">1</span> <span class="Comment"># 'keycode'</span> -<span id="L242" class="LineNr">242 </span> <span class="Constant">18</span><span class="Special"> <- </span><span class="Constant">65517</span> <span class="Comment"># up arrow</span> -<span id="L243" class="LineNr">243 </span> <span class="Constant">19</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># unused</span> -<span id="L244" class="LineNr">244 </span> <span class="Constant">20</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># unused</span> -<span id="L245" class="LineNr">245 </span> <span class="Constant">21</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># 'text'</span> -<span id="L246" class="LineNr">246 </span> <span class="Constant">22</span><span class="Special"> <- </span><span class="Constant">100</span> <span class="Comment"># 'd'</span> -<span id="L247" class="LineNr">247 </span> <span class="Constant">23</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># unused</span> -<span id="L248" class="LineNr">248 </span> <span class="Constant">24</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># unused</span> -<span id="L249" class="LineNr">249 </span> <span class="Constant">25</span><span class="Special"> <- </span><span class="Constant">0</span> +<span id="L225" class="LineNr">225 </span> <span class="Conceal">¦</span> <span class="Constant">1</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># 'text'</span> +<span id="L226" class="LineNr">226 </span> <span class="Conceal">¦</span> <span class="Constant">2</span><span class="Special"> <- </span><span class="Constant">97</span> <span class="Comment"># 'a'</span> +<span id="L227" class="LineNr">227 </span> <span class="Conceal">¦</span> <span class="Constant">3</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># unused</span> +<span id="L228" class="LineNr">228 </span> <span class="Conceal">¦</span> <span class="Constant">4</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># unused</span> +<span id="L229" class="LineNr">229 </span> <span class="Conceal">¦</span> <span class="Constant">5</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># 'text'</span> +<span id="L230" class="LineNr">230 </span> <span class="Conceal">¦</span> <span class="Constant">6</span><span class="Special"> <- </span><span class="Constant">98</span> <span class="Comment"># 'b'</span> +<span id="L231" class="LineNr">231 </span> <span class="Conceal">¦</span> <span class="Constant">7</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># unused</span> +<span id="L232" class="LineNr">232 </span> <span class="Conceal">¦</span> <span class="Constant">8</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># unused</span> +<span id="L233" class="LineNr">233 </span> <span class="Conceal">¦</span> <span class="Constant">9</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># 'text'</span> +<span id="L234" class="LineNr">234 </span> <span class="Conceal">¦</span> <span class="Constant">10</span><span class="Special"> <- </span><span class="Constant">99</span> <span class="Comment"># 'c'</span> +<span id="L235" class="LineNr">235 </span> <span class="Conceal">¦</span> <span class="Constant">11</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># unused</span> +<span id="L236" class="LineNr">236 </span> <span class="Conceal">¦</span> <span class="Constant">12</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># unused</span> +<span id="L237" class="LineNr">237 </span> <span class="Conceal">¦</span> <span class="Constant">13</span><span class="Special"> <- </span><span class="Constant">2</span> <span class="Comment"># 'mouse'</span> +<span id="L238" class="LineNr">238 </span> <span class="Conceal">¦</span> <span class="Constant">14</span><span class="Special"> <- </span><span class="Constant">65513</span> <span class="Comment"># mouse click</span> +<span id="L239" class="LineNr">239 </span> <span class="Conceal">¦</span> <span class="Constant">15</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># row</span> +<span id="L240" class="LineNr">240 </span> <span class="Conceal">¦</span> <span class="Constant">16</span><span class="Special"> <- </span><span class="Constant">1</span> <span class="Comment"># column</span> +<span id="L241" class="LineNr">241 </span> <span class="Conceal">¦</span> <span class="Constant">17</span><span class="Special"> <- </span><span class="Constant">1</span> <span class="Comment"># 'keycode'</span> +<span id="L242" class="LineNr">242 </span> <span class="Conceal">¦</span> <span class="Constant">18</span><span class="Special"> <- </span><span class="Constant">65517</span> <span class="Comment"># up arrow</span> +<span id="L243" class="LineNr">243 </span> <span class="Conceal">¦</span> <span class="Constant">19</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># unused</span> +<span id="L244" class="LineNr">244 </span> <span class="Conceal">¦</span> <span class="Constant">20</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># unused</span> +<span id="L245" class="LineNr">245 </span> <span class="Conceal">¦</span> <span class="Constant">21</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># 'text'</span> +<span id="L246" class="LineNr">246 </span> <span class="Conceal">¦</span> <span class="Constant">22</span><span class="Special"> <- </span><span class="Constant">100</span> <span class="Comment"># 'd'</span> +<span id="L247" class="LineNr">247 </span> <span class="Conceal">¦</span> <span class="Constant">23</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># unused</span> +<span id="L248" class="LineNr">248 </span> <span class="Conceal">¦</span> <span class="Constant">24</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># unused</span> +<span id="L249" class="LineNr">249 </span> <span class="Conceal">¦</span> <span class="Constant">25</span><span class="Special"> <- </span><span class="Constant">0</span> <span id="L250" class="LineNr">250 </span> ] <span id="L251" class="LineNr">251 </span>] <span id="L252" class="LineNr">252 </span> @@ -324,17 +325,17 @@ if ('onhashchange' in window) { <span id="L264" class="LineNr">264 </span><span class="Normal">case</span> REPLACE_IN_CONSOLE: <span class="Delimiter">{</span> <span id="L265" class="LineNr">265 </span> assert<span class="Delimiter">(</span>scalar<span class="Delimiter">(</span>ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">)));</span> <span id="L266" class="LineNr">266 </span> <span class="Normal">if</span> <span class="Delimiter">(</span>!get_or_insert<span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> CONSOLE<span class="Delimiter">))</span> <span class="Delimiter">{</span> -<span id="L267" class="LineNr">267 </span> <a href='003trace.cc.html#L168'>raise</a> << <span class="Constant">"console not initialized</span><span class="cSpecial">\n</span><span class="Constant">"</span> << <a href='003trace.cc.html#L185'>end</a><span class="Delimiter">();</span> -<span id="L268" class="LineNr">268 </span> <span class="Identifier">break</span><span class="Delimiter">;</span> +<span id="L267" class="LineNr">267 </span> <span class="Conceal">¦</span> <a href='003trace.cc.html#L168'>raise</a> << <span class="Constant">"console not initialized</span><span class="cSpecial">\n</span><span class="Constant">"</span> << <a href='003trace.cc.html#L185'>end</a><span class="Delimiter">();</span> +<span id="L268" class="LineNr">268 </span> <span class="Conceal">¦</span> <span class="Identifier">break</span><span class="Delimiter">;</span> <span id="L269" class="LineNr">269 </span> <span class="Delimiter">}</span> <span id="L270" class="LineNr">270 </span> <span class="Normal">int</span> console_address = <a href='001help.cc.html#L225'>get_or_insert</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> CONSOLE<span class="Delimiter">);</span> <span id="L271" class="LineNr">271 </span> <span class="Normal">int</span> console_data = <a href='001help.cc.html#L225'>get_or_insert</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> console_address+<span class="Constant">1</span><span class="Delimiter">);</span> <span id="L272" class="LineNr">272 </span> <span class="Normal">int</span> length = <a href='001help.cc.html#L225'>get_or_insert</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> console_data<span class="Delimiter">);</span> <span class="Comment">// array length</span> <span id="L273" class="LineNr">273 </span> <span class="Normal">for</span> <span class="Delimiter">(</span><span class="Normal">int</span> i = <span class="Constant">0</span><span class="Delimiter">,</span> curr = console_data+<span class="Constant">1</span><span class="Delimiter">;</span> i < length<span class="Delimiter">;</span> ++i<span class="Delimiter">,</span> curr+=size_of_event<span class="Delimiter">())</span> <span class="Delimiter">{</span> -<span id="L274" class="LineNr">274 </span> <span class="Normal">if</span> <span class="Delimiter">(</span><a href='001help.cc.html#L225'>get_or_insert</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr<span class="Delimiter">)</span> != <span class="Comment">/*</span><span class="Comment">text</span><span class="Comment">*/</span><span class="Constant">0</span><span class="Delimiter">)</span> <span class="Identifier">continue</span><span class="Delimiter">;</span> -<span id="L275" class="LineNr">275 </span> <span class="Normal">if</span> <span class="Delimiter">(</span><a href='001help.cc.html#L225'>get_or_insert</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr+<span class="Constant">1</span><span class="Delimiter">)</span> != ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">).</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">))</span> <span class="Identifier">continue</span><span class="Delimiter">;</span> -<span id="L276" class="LineNr">276 </span> <span class="Normal">for</span> <span class="Delimiter">(</span><span class="Normal">int</span> n = <span class="Constant">0</span><span class="Delimiter">;</span> n < <a href='085scenario_console.cc.html#L295'>size_of_event</a><span class="Delimiter">();</span> ++n<span class="Delimiter">)</span> -<span id="L277" class="LineNr">277 </span> <a href='001help.cc.html#L218'>put</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr+n<span class="Delimiter">,</span> ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">1</span><span class="Delimiter">).</span>at<span class="Delimiter">(</span>n<span class="Delimiter">));</span> +<span id="L274" class="LineNr">274 </span> <span class="Conceal">¦</span> <span class="Normal">if</span> <span class="Delimiter">(</span><a href='001help.cc.html#L225'>get_or_insert</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr<span class="Delimiter">)</span> != <span class="Comment">/*</span><span class="Comment">text</span><span class="Comment">*/</span><span class="Constant">0</span><span class="Delimiter">)</span> <span class="Identifier">continue</span><span class="Delimiter">;</span> +<span id="L275" class="LineNr">275 </span> <span class="Conceal">¦</span> <span class="Normal">if</span> <span class="Delimiter">(</span><a href='001help.cc.html#L225'>get_or_insert</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr+<span class="Constant">1</span><span class="Delimiter">)</span> != ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">).</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">))</span> <span class="Identifier">continue</span><span class="Delimiter">;</span> +<span id="L276" class="LineNr">276 </span> <span class="Conceal">¦</span> <span class="Normal">for</span> <span class="Delimiter">(</span><span class="Normal">int</span> n = <span class="Constant">0</span><span class="Delimiter">;</span> n < <a href='085scenario_console.cc.html#L295'>size_of_event</a><span class="Delimiter">();</span> ++n<span class="Delimiter">)</span> +<span id="L277" class="LineNr">277 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='001help.cc.html#L218'>put</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> curr+n<span class="Delimiter">,</span> ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">1</span><span class="Delimiter">).</span>at<span class="Delimiter">(</span>n<span class="Delimiter">));</span> <span id="L278" class="LineNr">278 </span> <span class="Delimiter">}</span> <span id="L279" class="LineNr">279 </span> <span class="Identifier">break</span><span class="Delimiter">;</span> <span id="L280" class="LineNr">280 </span><span class="Delimiter">}</span> @@ -343,11 +344,11 @@ if ('onhashchange' in window) { <span id="L283" class="LineNr">283 </span><span class="Normal">int</span> <a href='085scenario_console.cc.html#L283'>count_events</a><span class="Delimiter">(</span><span class="Normal">const</span> recipe& r<span class="Delimiter">)</span> <span class="Delimiter">{</span> <span id="L284" class="LineNr">284 </span> <span class="Normal">int</span> result = <span class="Constant">0</span><span class="Delimiter">;</span> <span id="L285" class="LineNr">285 </span> <span class="Normal">for</span> <span class="Delimiter">(</span><span class="Normal">int</span> i = <span class="Constant">0</span><span class="Delimiter">;</span> i < <a href='001help.cc.html#L138'>SIZE</a><span class="Delimiter">(</span>r<span class="Delimiter">.</span>steps<span class="Delimiter">);</span> ++i<span class="Delimiter">)</span> <span class="Delimiter">{</span> -<span id="L286" class="LineNr">286 </span> <span class="Normal">const</span> instruction& curr = r<span class="Delimiter">.</span>steps<span class="Delimiter">.</span>at<span class="Delimiter">(</span>i<span class="Delimiter">);</span> -<span id="L287" class="LineNr">287 </span> <span class="Normal">if</span> <span class="Delimiter">(</span>curr<span class="Delimiter">.</span>name == <span class="Constant">"type"</span><span class="Delimiter">)</span> -<span id="L288" class="LineNr">288 </span> result += <a href='038new_text.cc.html#L131'>unicode_length</a><span class="Delimiter">(</span>curr<span class="Delimiter">.</span>ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">).</span>name<span class="Delimiter">);</span> -<span id="L289" class="LineNr">289 </span> <span class="Normal">else</span> -<span id="L290" class="LineNr">290 </span> ++result<span class="Delimiter">;</span> +<span id="L286" class="LineNr">286 </span> <span class="Conceal">¦</span> <span class="Normal">const</span> instruction& curr = r<span class="Delimiter">.</span>steps<span class="Delimiter">.</span>at<span class="Delimiter">(</span>i<span class="Delimiter">);</span> +<span id="L287" class="LineNr">287 </span> <span class="Conceal">¦</span> <span class="Normal">if</span> <span class="Delimiter">(</span>curr<span class="Delimiter">.</span>name == <span class="Constant">"type"</span><span class="Delimiter">)</span> +<span id="L288" class="LineNr">288 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> result += <a href='038new_text.cc.html#L131'>unicode_length</a><span class="Delimiter">(</span>curr<span class="Delimiter">.</span>ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">).</span>name<span class="Delimiter">);</span> +<span id="L289" class="LineNr">289 </span> <span class="Conceal">¦</span> <span class="Normal">else</span> +<span id="L290" class="LineNr">290 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> ++result<span class="Delimiter">;</span> <span id="L291" class="LineNr">291 </span> <span class="Delimiter">}</span> <span id="L292" class="LineNr">292 </span> <span class="Identifier">return</span> result<span class="Delimiter">;</span> <span id="L293" class="LineNr">293 </span><span class="Delimiter">}</span> |