about summary refs log tree commit diff stats
path: root/html/subx/038---literal_strings.cc.html
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2018-10-17 07:08:47 -0700
committerKartik Agaram <vc@akkartik.com>2018-10-17 07:08:47 -0700
commit104e521c04d1a0cad9c68fb11e250e12ad8917ef (patch)
treedf4258ad26cb78e25abee64c80aedab47aa461ea /html/subx/038---literal_strings.cc.html
parent800320a70c981008302af56b2f35a142c1101401 (diff)
downloadmu-104e521c04d1a0cad9c68fb11e250e12ad8917ef.tar.gz
4709
Diffstat (limited to 'html/subx/038---literal_strings.cc.html')
-rw-r--r--html/subx/038---literal_strings.cc.html38
1 files changed, 19 insertions, 19 deletions
diff --git a/html/subx/038---literal_strings.cc.html b/html/subx/038---literal_strings.cc.html
index 25066a8b..479e1731 100644
--- a/html/subx/038---literal_strings.cc.html
+++ b/html/subx/038---literal_strings.cc.html
@@ -65,8 +65,8 @@ if ('onhashchange' in window) {
 <span id="L4" class="LineNr">  4 </span><span class="Comment">//: always be the second segment).</span>
 <span id="L5" class="LineNr">  5 </span>
 <span id="L6" class="LineNr">  6 </span><span class="Delimiter">:(scenario transform_literal_string)</span>
-<span id="L7" class="LineNr">  7 </span>== <a href='031check_operands.cc.html#L14'>code</a>
-<span id="L8" class="LineNr">  8 </span>  b8/copy <span class="Constant">&quot;test&quot;</span>/imm32  <span class="Comment"># copy to EAX</span>
+<span id="L7" class="LineNr">  7 </span>== <a href='031check_operands.cc.html#L11'>code</a>
+<span id="L8" class="LineNr">  8 </span>b8/copy  <span class="Constant">&quot;test&quot;</span>/imm32
 <span id="L9" class="LineNr">  9 </span>== data  <span class="Comment"># need to manually create this for now</span>
 <span id="L10" class="LineNr"> 10 </span><span class="traceContains">+transform: -- move literal strings to data segment</span>
 <span id="L11" class="LineNr"> 11 </span><span class="traceContains">+transform: adding global variable '__subx_global_1' containing &quot;test&quot;</span>
@@ -84,12 +84,12 @@ if ('onhashchange' in window) {
 <span id="L23" class="LineNr"> 23 </span><span class="Normal">int</span> <a href='038---literal_strings.cc.html#L23'>Next_auto_global</a> = <span class="Constant">1</span><span class="Delimiter">;</span>
 <span id="L24" class="LineNr"> 24 </span><span class="Delimiter">:(code)</span>
 <span id="L25" class="LineNr"> 25 </span><span class="Normal">void</span> <a href='038---literal_strings.cc.html#L25'>transform_literal_strings</a><span class="Delimiter">(</span>program&amp; p<span class="Delimiter">)</span> <span class="Delimiter">{</span>
-<span id="L26" class="LineNr"> 26 </span>  <a href='003trace.cc.html#L204'>trace</a><span class="Delimiter">(</span><span class="Constant">99</span><span class="Delimiter">,</span> <span class="Constant">&quot;transform&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;-- move literal strings to data segment&quot;</span> &lt;&lt; end<span class="Delimiter">();</span>
+<span id="L26" class="LineNr"> 26 </span>  <a href='003trace.cc.html#L203'>trace</a><span class="Delimiter">(</span><span class="Constant">99</span><span class="Delimiter">,</span> <span class="Constant">&quot;transform&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;-- move literal strings to data segment&quot;</span> &lt;&lt; end<span class="Delimiter">();</span>
 <span id="L27" class="LineNr"> 27 </span>  <span class="Normal">if</span> <span class="Delimiter">(</span>p<span class="Delimiter">.</span><a href='011run.cc.html#L100'>segments</a><span class="Delimiter">.</span>empty<span class="Delimiter">())</span> <span class="Identifier">return</span><span class="Delimiter">;</span>
-<span id="L28" class="LineNr"> 28 </span>  segment&amp; <a href='031check_operands.cc.html#L14'>code</a> = p<span class="Delimiter">.</span><a href='011run.cc.html#L100'>segments</a><span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">);</span>
+<span id="L28" class="LineNr"> 28 </span>  segment&amp; <a href='031check_operands.cc.html#L11'>code</a> = p<span class="Delimiter">.</span><a href='011run.cc.html#L100'>segments</a><span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">);</span>
 <span id="L29" class="LineNr"> 29 </span>  segment data<span class="Delimiter">;</span>
-<span id="L30" class="LineNr"> 30 </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 &lt; <a href='001help.cc.html#L157'>SIZE</a><span class="Delimiter">(</span><a href='031check_operands.cc.html#L14'>code</a><span class="Delimiter">.</span><a href='011run.cc.html#L109'>lines</a><span class="Delimiter">);</span>  ++i<span class="Delimiter">)</span> <span class="Delimiter">{</span>
-<span id="L31" class="LineNr"> 31 </span>    line&amp; inst = <a href='031check_operands.cc.html#L14'>code</a><span class="Delimiter">.</span><a href='011run.cc.html#L109'>lines</a><span class="Delimiter">.</span>at<span class="Delimiter">(</span>i<span class="Delimiter">);</span>
+<span id="L30" class="LineNr"> 30 </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 &lt; <a href='001help.cc.html#L157'>SIZE</a><span class="Delimiter">(</span><a href='031check_operands.cc.html#L11'>code</a><span class="Delimiter">.</span><a href='011run.cc.html#L109'>lines</a><span class="Delimiter">);</span>  ++i<span class="Delimiter">)</span> <span class="Delimiter">{</span>
+<span id="L31" class="LineNr"> 31 </span>    line&amp; inst = <a href='031check_operands.cc.html#L11'>code</a><span class="Delimiter">.</span><a href='011run.cc.html#L109'>lines</a><span class="Delimiter">.</span>at<span class="Delimiter">(</span>i<span class="Delimiter">);</span>
 <span id="L32" class="LineNr"> 32 </span>    <span class="Normal">for</span> <span class="Delimiter">(</span><span class="Normal">int</span> j = <span class="Constant">0</span><span class="Delimiter">;</span>  j &lt; <a href='001help.cc.html#L157'>SIZE</a><span class="Delimiter">(</span>inst<span class="Delimiter">.</span><a href='011run.cc.html#L118'>words</a><span class="Delimiter">);</span>  ++j<span class="Delimiter">)</span> <span class="Delimiter">{</span>
 <span id="L33" class="LineNr"> 33 </span>      word&amp; curr = inst<span class="Delimiter">.</span><a href='011run.cc.html#L118'>words</a><span class="Delimiter">.</span>at<span class="Delimiter">(</span>j<span class="Delimiter">);</span>
 <span id="L34" class="LineNr"> 34 </span>      <span class="Normal">if</span> <span class="Delimiter">(</span>curr<span class="Delimiter">.</span>data<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">)</span> != <span class="Constant">'&quot;'</span><span class="Delimiter">)</span> <span class="Identifier">continue</span><span class="Delimiter">;</span>
@@ -99,7 +99,7 @@ if ('onhashchange' in window) {
 <span id="L38" class="LineNr"> 38 </span>      <a href='038---literal_strings.cc.html#L52'>add_global_to_data_segment</a><span class="Delimiter">(</span>global_name<span class="Delimiter">.</span>str<span class="Delimiter">(),</span> curr<span class="Delimiter">,</span> data<span class="Delimiter">);</span>
 <span id="L39" class="LineNr"> 39 </span>      curr<span class="Delimiter">.</span>data = global_name<span class="Delimiter">.</span>str<span class="Delimiter">();</span>
 <span id="L40" class="LineNr"> 40 </span>    <span class="Delimiter">}</span>
-<span id="L41" class="LineNr"> 41 </span>    <a href='003trace.cc.html#L204'>trace</a><span class="Delimiter">(</span><span class="Constant">99</span><span class="Delimiter">,</span> <span class="Constant">&quot;transform&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;instruction after <a href='011run.cc.html#L231'>transform</a>: '&quot;</span> &lt;&lt; data_to_string<span class="Delimiter">(</span>inst<span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;'&quot;</span> &lt;&lt; end<span class="Delimiter">();</span>
+<span id="L41" class="LineNr"> 41 </span>    <a href='003trace.cc.html#L203'>trace</a><span class="Delimiter">(</span><span class="Constant">99</span><span class="Delimiter">,</span> <span class="Constant">&quot;transform&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;instruction after <a href='011run.cc.html#L231'>transform</a>: '&quot;</span> &lt;&lt; data_to_string<span class="Delimiter">(</span>inst<span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;'&quot;</span> &lt;&lt; end<span class="Delimiter">();</span>
 <span id="L42" class="LineNr"> 42 </span>  <span class="Delimiter">}</span>
 <span id="L43" class="LineNr"> 43 </span>  <span class="Normal">if</span> <span class="Delimiter">(</span>data<span class="Delimiter">.</span><a href='011run.cc.html#L109'>lines</a><span class="Delimiter">.</span>empty<span class="Delimiter">())</span> <span class="Identifier">return</span><span class="Delimiter">;</span>
 <span id="L44" class="LineNr"> 44 </span>  <span class="Normal">if</span> <span class="Delimiter">(</span><a href='001help.cc.html#L157'>SIZE</a><span class="Delimiter">(</span>p<span class="Delimiter">.</span><a href='011run.cc.html#L100'>segments</a><span class="Delimiter">)</span> &lt; <span class="Constant">2</span><span class="Delimiter">)</span> <span class="Delimiter">{</span>
@@ -110,10 +110,10 @@ if ('onhashchange' in window) {
 <span id="L49" class="LineNr"> 49 </span>  existing_data<span class="Delimiter">.</span>insert<span class="Delimiter">(</span>existing_data<span class="Delimiter">.</span>end<span class="Delimiter">(),</span> data<span class="Delimiter">.</span><a href='011run.cc.html#L109'>lines</a><span class="Delimiter">.</span>begin<span class="Delimiter">(),</span> data<span class="Delimiter">.</span><a href='011run.cc.html#L109'>lines</a><span class="Delimiter">.</span>end<span class="Delimiter">());</span>
 <span id="L50" class="LineNr"> 50 </span><span class="Delimiter">}</span>
 <span id="L51" class="LineNr"> 51 </span>
-<span id="L52" class="LineNr"> 52 </span><span class="Normal">void</span> <a href='038---literal_strings.cc.html#L52'>add_global_to_data_segment</a><span class="Delimiter">(</span><span class="Normal">const</span> string&amp; <a href='010---vm.cc.html#L336'>name</a><span class="Delimiter">,</span> <span class="Normal">const</span> word&amp; value<span class="Delimiter">,</span> segment&amp; data<span class="Delimiter">)</span> <span class="Delimiter">{</span>
-<span id="L53" class="LineNr"> 53 </span>  <a href='003trace.cc.html#L204'>trace</a><span class="Delimiter">(</span><span class="Constant">99</span><span class="Delimiter">,</span> <span class="Constant">&quot;transform&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;adding global variable '&quot;</span> &lt;&lt; name &lt;&lt; <span class="Constant">&quot;' containing &quot;</span> &lt;&lt; value<span class="Delimiter">.</span>data &lt;&lt; end<span class="Delimiter">();</span>
+<span id="L52" class="LineNr"> 52 </span><span class="Normal">void</span> <a href='038---literal_strings.cc.html#L52'>add_global_to_data_segment</a><span class="Delimiter">(</span><span class="Normal">const</span> string&amp; name<span class="Delimiter">,</span> <span class="Normal">const</span> word&amp; value<span class="Delimiter">,</span> segment&amp; data<span class="Delimiter">)</span> <span class="Delimiter">{</span>
+<span id="L53" class="LineNr"> 53 </span>  <a href='003trace.cc.html#L203'>trace</a><span class="Delimiter">(</span><span class="Constant">99</span><span class="Delimiter">,</span> <span class="Constant">&quot;transform&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;adding global variable '&quot;</span> &lt;&lt; name &lt;&lt; <span class="Constant">&quot;' containing &quot;</span> &lt;&lt; value<span class="Delimiter">.</span>data &lt;&lt; end<span class="Delimiter">();</span>
 <span id="L54" class="LineNr"> 54 </span>  <span class="Comment">// emit label</span>
-<span id="L55" class="LineNr"> 55 </span>  data<span class="Delimiter">.</span><a href='011run.cc.html#L109'>lines</a><span class="Delimiter">.</span>push_back<span class="Delimiter">(</span>label<span class="Delimiter">(</span><a href='010---vm.cc.html#L336'>name</a><span class="Delimiter">));</span>
+<span id="L55" class="LineNr"> 55 </span>  data<span class="Delimiter">.</span><a href='011run.cc.html#L109'>lines</a><span class="Delimiter">.</span>push_back<span class="Delimiter">(</span>label<span class="Delimiter">(</span>name<span class="Delimiter">));</span>
 <span id="L56" class="LineNr"> 56 </span>  <span class="Comment">// emit size for size-prefixed array</span>
 <span id="L57" class="LineNr"> 57 </span>  data<span class="Delimiter">.</span><a href='011run.cc.html#L109'>lines</a><span class="Delimiter">.</span>push_back<span class="Delimiter">(</span><a href='011run.cc.html#L117'>line</a><span class="Delimiter">());</span>
 <span id="L58" class="LineNr"> 58 </span>  emit_hex_bytes<span class="Delimiter">(</span>data<span class="Delimiter">.</span><a href='011run.cc.html#L109'>lines</a><span class="Delimiter">.</span>back<span class="Delimiter">(),</span> <a href='001help.cc.html#L157'>SIZE</a><span class="Delimiter">(</span>value<span class="Delimiter">.</span>data<span class="Delimiter">)</span>-<span class="Comment">/*</span><span class="Comment">skip quotes</span><span class="Comment">*/</span><span class="Constant">2</span><span class="Delimiter">,</span> <span class="Constant">4</span><span class="Comment">/*</span><span class="Comment">bytes</span><span class="Comment">*/</span><span class="Delimiter">);</span>
@@ -123,7 +123,7 @@ if ('onhashchange' in window) {
 <span id="L62" class="LineNr"> 62 </span>  <span class="Normal">for</span> <span class="Delimiter">(</span><span class="Normal">int</span> i = <span class="Comment">/*</span><span class="Comment">skip start quote</span><span class="Comment">*/</span><span class="Constant">1</span><span class="Delimiter">;</span>  i &lt; <a href='001help.cc.html#L157'>SIZE</a><span class="Delimiter">(</span>value<span class="Delimiter">.</span>data<span class="Delimiter">)</span>-<span class="Comment">/*</span><span class="Comment">skip end quote</span><span class="Comment">*/</span><span class="Constant">1</span><span class="Delimiter">;</span>  ++i<span class="Delimiter">)</span> <span class="Delimiter">{</span>
 <span id="L63" class="LineNr"> 63 </span>    <span class="Normal">char</span> c = value<span class="Delimiter">.</span>data<span class="Delimiter">.</span>at<span class="Delimiter">(</span>i<span class="Delimiter">);</span>
 <span id="L64" class="LineNr"> 64 </span>    curr<span class="Delimiter">.</span><a href='011run.cc.html#L118'>words</a><span class="Delimiter">.</span>push_back<span class="Delimiter">(</span><a href='011run.cc.html#L123'>word</a><span class="Delimiter">());</span>
-<span id="L65" class="LineNr"> 65 </span>    curr<span class="Delimiter">.</span><a href='011run.cc.html#L118'>words</a><span class="Delimiter">.</span>back<span class="Delimiter">().</span>data = <a href='030---operands.cc.html#L275'>hex_byte_to_string</a><span class="Delimiter">(</span>c<span class="Delimiter">);</span>
+<span id="L65" class="LineNr"> 65 </span>    curr<span class="Delimiter">.</span><a href='011run.cc.html#L118'>words</a><span class="Delimiter">.</span>back<span class="Delimiter">().</span>data = <a href='030---operands.cc.html#L286'>hex_byte_to_string</a><span class="Delimiter">(</span>c<span class="Delimiter">);</span>
 <span id="L66" class="LineNr"> 66 </span>    curr<span class="Delimiter">.</span><a href='011run.cc.html#L118'>words</a><span class="Delimiter">.</span>back<span class="Delimiter">().</span>metadata<span class="Delimiter">.</span>push_back<span class="Delimiter">(</span>string<span class="Delimiter">(</span><span class="Constant">1</span><span class="Delimiter">,</span> c<span class="Delimiter">));</span>
 <span id="L67" class="LineNr"> 67 </span>  <span class="Delimiter">}</span>
 <span id="L68" class="LineNr"> 68 </span><span class="Delimiter">}</span>
@@ -160,7 +160,7 @@ if ('onhashchange' in window) {
 <span id="L99" class="LineNr"> 99 </span>  in &gt;&gt; std::noskipws<span class="Delimiter">;</span>
 <span id="L100" class="LineNr">100 </span>  <a href='011run.cc.html#L117'>line</a> result<span class="Delimiter">;</span>
 <span id="L101" class="LineNr">101 </span>  <span class="Comment">// add tokens (words or strings) one by one</span>
-<span id="L102" class="LineNr">102 </span>  <span class="Normal">while</span> <span class="Delimiter">(</span><a href='001help.cc.html#L260'>has_data</a><span class="Delimiter">(</span>in<span class="Delimiter">))</span> <span class="Delimiter">{</span>
+<span id="L102" class="LineNr">102 </span>  <span class="Normal">while</span> <span class="Delimiter">(</span><a href='001help.cc.html#L265'>has_data</a><span class="Delimiter">(</span>in<span class="Delimiter">))</span> <span class="Delimiter">{</span>
 <span id="L103" class="LineNr">103 </span>    <a href='038---literal_strings.cc.html#L136'>skip_whitespace</a><span class="Delimiter">(</span>in<span class="Delimiter">);</span>
 <span id="L104" class="LineNr">104 </span>    <span class="Normal">if</span> <span class="Delimiter">(</span>!has_data<span class="Delimiter">(</span>in<span class="Delimiter">))</span> <span class="Identifier">break</span><span class="Delimiter">;</span>
 <span id="L105" class="LineNr">105 </span>    <span class="Normal">char</span> c = in<span class="Delimiter">.</span>get<span class="Delimiter">();</span>
@@ -175,20 +175,20 @@ if ('onhashchange' in window) {
 <span id="L114" class="LineNr">114 </span>    w &lt;&lt; c<span class="Delimiter">;</span>
 <span id="L115" class="LineNr">115 </span>    <span class="Normal">if</span> <span class="Delimiter">(</span>c == <span class="Constant">'&quot;'</span><span class="Delimiter">)</span> <span class="Delimiter">{</span>
 <span id="L116" class="LineNr">116 </span>      <span class="Comment">// slurp until '&quot;'</span>
-<span id="L117" class="LineNr">117 </span>      <span class="Normal">while</span> <span class="Delimiter">(</span><a href='001help.cc.html#L260'>has_data</a><span class="Delimiter">(</span>in<span class="Delimiter">))</span> <span class="Delimiter">{</span>
+<span id="L117" class="LineNr">117 </span>      <span class="Normal">while</span> <span class="Delimiter">(</span><a href='001help.cc.html#L265'>has_data</a><span class="Delimiter">(</span>in<span class="Delimiter">))</span> <span class="Delimiter">{</span>
 <span id="L118" class="LineNr">118 </span>        in &gt;&gt; c<span class="Delimiter">;</span>
 <span id="L119" class="LineNr">119 </span>        w &lt;&lt; c<span class="Delimiter">;</span>
 <span id="L120" class="LineNr">120 </span>        <span class="Normal">if</span> <span class="Delimiter">(</span>c == <span class="Constant">'&quot;'</span><span class="Delimiter">)</span> <span class="Identifier">break</span><span class="Delimiter">;</span>
 <span id="L121" class="LineNr">121 </span>      <span class="Delimiter">}</span>
 <span id="L122" class="LineNr">122 </span>    <span class="Delimiter">}</span>
 <span id="L123" class="LineNr">123 </span>    <span class="Comment">// slurp any remaining characters until whitespace</span>
-<span id="L124" class="LineNr">124 </span>    <span class="Normal">while</span> <span class="Delimiter">(</span>!isspace<span class="Delimiter">(</span>in<span class="Delimiter">.</span>peek<span class="Delimiter">())</span> &amp;&amp; <a href='001help.cc.html#L260'>has_data</a><span class="Delimiter">(</span>in<span class="Delimiter">))</span> <span class="Delimiter">{</span>  <span class="Comment">// peek can sometimes trigger eof(), so do it first</span>
+<span id="L124" class="LineNr">124 </span>    <span class="Normal">while</span> <span class="Delimiter">(</span>!isspace<span class="Delimiter">(</span>in<span class="Delimiter">.</span>peek<span class="Delimiter">())</span> &amp;&amp; <a href='001help.cc.html#L265'>has_data</a><span class="Delimiter">(</span>in<span class="Delimiter">))</span> <span class="Delimiter">{</span>  <span class="Comment">// peek can sometimes trigger eof(), so do it first</span>
 <span id="L125" class="LineNr">125 </span>      in &gt;&gt; c<span class="Delimiter">;</span>
 <span id="L126" class="LineNr">126 </span>      w &lt;&lt; c<span class="Delimiter">;</span>
 <span id="L127" class="LineNr">127 </span>    <span class="Delimiter">}</span>
 <span id="L128" class="LineNr">128 </span>    result<span class="Delimiter">.</span><a href='011run.cc.html#L118'>words</a><span class="Delimiter">.</span>push_back<span class="Delimiter">(</span><a href='011run.cc.html#L123'>word</a><span class="Delimiter">());</span>
 <span id="L129" class="LineNr">129 </span>    <a href='011run.cc.html#L191'>parse_word</a><span class="Delimiter">(</span>w<span class="Delimiter">.</span>str<span class="Delimiter">(),</span> result<span class="Delimiter">.</span><a href='011run.cc.html#L118'>words</a><span class="Delimiter">.</span>back<span class="Delimiter">());</span>
-<span id="L130" class="LineNr">130 </span>    <a href='003trace.cc.html#L204'>trace</a><span class="Delimiter">(</span><span class="Constant">99</span><span class="Delimiter">,</span> <span class="Constant">&quot;parse2&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;word: &quot;</span> &lt;&lt; to_string<span class="Delimiter">(</span>result<span class="Delimiter">.</span><a href='011run.cc.html#L118'>words</a><span class="Delimiter">.</span>back<span class="Delimiter">())</span> &lt;&lt; end<span class="Delimiter">();</span>
+<span id="L130" class="LineNr">130 </span>    <a href='003trace.cc.html#L203'>trace</a><span class="Delimiter">(</span><span class="Constant">99</span><span class="Delimiter">,</span> <span class="Constant">&quot;parse2&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;word: &quot;</span> &lt;&lt; to_string<span class="Delimiter">(</span>result<span class="Delimiter">.</span><a href='011run.cc.html#L118'>words</a><span class="Delimiter">.</span>back<span class="Delimiter">())</span> &lt;&lt; end<span class="Delimiter">();</span>
 <span id="L131" class="LineNr">131 </span>  <span class="Delimiter">}</span>
 <span id="L132" class="LineNr">132 </span>  <span class="Normal">if</span> <span class="Delimiter">(</span>!result<span class="Delimiter">.</span><a href='011run.cc.html#L118'>words</a><span class="Delimiter">.</span>empty<span class="Delimiter">())</span>
 <span id="L133" class="LineNr">133 </span>    out<span class="Delimiter">.</span>push_back<span class="Delimiter">(</span>result<span class="Delimiter">);</span>
@@ -196,15 +196,15 @@ if ('onhashchange' in window) {
 <span id="L135" class="LineNr">135 </span>
 <span id="L136" class="LineNr">136 </span><span class="Normal">void</span> <a href='038---literal_strings.cc.html#L136'>skip_whitespace</a><span class="Delimiter">(</span>istream&amp; in<span class="Delimiter">)</span> <span class="Delimiter">{</span>
 <span id="L137" class="LineNr">137 </span>  <span class="Normal">while</span> <span class="Delimiter">(</span><span class="Constant">true</span><span class="Delimiter">)</span> <span class="Delimiter">{</span>
-<span id="L138" class="LineNr">138 </span>    <span class="Normal">if</span> <span class="Delimiter">(</span><a href='001help.cc.html#L260'>has_data</a><span class="Delimiter">(</span>in<span class="Delimiter">)</span> &amp;&amp; isspace<span class="Delimiter">(</span>in<span class="Delimiter">.</span>peek<span class="Delimiter">()))</span> in<span class="Delimiter">.</span>get<span class="Delimiter">();</span>
+<span id="L138" class="LineNr">138 </span>    <span class="Normal">if</span> <span class="Delimiter">(</span><a href='001help.cc.html#L265'>has_data</a><span class="Delimiter">(</span>in<span class="Delimiter">)</span> &amp;&amp; isspace<span class="Delimiter">(</span>in<span class="Delimiter">.</span>peek<span class="Delimiter">()))</span> in<span class="Delimiter">.</span>get<span class="Delimiter">();</span>
 <span id="L139" class="LineNr">139 </span>    <span class="Normal">else</span> <span class="Identifier">break</span><span class="Delimiter">;</span>
 <span id="L140" class="LineNr">140 </span>  <span class="Delimiter">}</span>
 <span id="L141" class="LineNr">141 </span><span class="Delimiter">}</span>
 <span id="L142" class="LineNr">142 </span>
 <span id="L143" class="LineNr">143 </span><span class="Normal">void</span> <a href='038---literal_strings.cc.html#L143'>skip_comment</a><span class="Delimiter">(</span>istream&amp; in<span class="Delimiter">)</span> <span class="Delimiter">{</span>
-<span id="L144" class="LineNr">144 </span>  <span class="Normal">if</span> <span class="Delimiter">(</span><a href='001help.cc.html#L260'>has_data</a><span class="Delimiter">(</span>in<span class="Delimiter">)</span> &amp;&amp; in<span class="Delimiter">.</span>peek<span class="Delimiter">()</span> == <span class="Constant">'#'</span><span class="Delimiter">)</span> <span class="Delimiter">{</span>
+<span id="L144" class="LineNr">144 </span>  <span class="Normal">if</span> <span class="Delimiter">(</span><a href='001help.cc.html#L265'>has_data</a><span class="Delimiter">(</span>in<span class="Delimiter">)</span> &amp;&amp; in<span class="Delimiter">.</span>peek<span class="Delimiter">()</span> == <span class="Constant">'#'</span><span class="Delimiter">)</span> <span class="Delimiter">{</span>
 <span id="L145" class="LineNr">145 </span>    in<span class="Delimiter">.</span>get<span class="Delimiter">();</span>
-<span id="L146" class="LineNr">146 </span>    <span class="Normal">while</span> <span class="Delimiter">(</span><a href='001help.cc.html#L260'>has_data</a><span class="Delimiter">(</span>in<span class="Delimiter">)</span> &amp;&amp; in<span class="Delimiter">.</span>peek<span class="Delimiter">()</span> != <span class="cSpecial">'\n'</span><span class="Delimiter">)</span> in<span class="Delimiter">.</span>get<span class="Delimiter">();</span>
+<span id="L146" class="LineNr">146 </span>    <span class="Normal">while</span> <span class="Delimiter">(</span><a href='001help.cc.html#L265'>has_data</a><span class="Delimiter">(</span>in<span class="Delimiter">)</span> &amp;&amp; in<span class="Delimiter">.</span>peek<span class="Delimiter">()</span> != <span class="cSpecial">'\n'</span><span class="Delimiter">)</span> in<span class="Delimiter">.</span>get<span class="Delimiter">();</span>
 <span id="L147" class="LineNr">147 </span>  <span class="Delimiter">}</span>
 <span id="L148" class="LineNr">148 </span><span class="Delimiter">}</span>
 <span id="L149" class="LineNr">149 </span>
@@ -268,7 +268,7 @@ if ('onhashchange' in window) {
 <span id="L207" class="LineNr">207 </span>  parse_instruction_character_by_character<span class="Delimiter">(</span>
 <span id="L208" class="LineNr">208 </span>      <span class="Constant">&quot;68/push </span><span class="cSpecial">\&quot;</span><span class="Constant">test</span><span class="cSpecial">\&quot;</span><span class="Constant">/f&quot;</span>  <span class="Comment">// no newline, which is how calls from parse() will look</span>
 <span id="L209" class="LineNr">209 </span>  <span class="Delimiter">);</span>
-<span id="L210" class="LineNr">210 </span>  <a href='003trace.cc.html#L258'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span>
+<span id="L210" class="LineNr">210 </span>  <a href='003trace.cc.html#L257'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span>
 <span id="L211" class="LineNr">211 </span>      <span class="Constant">&quot;parse2: <a href='011run.cc.html#L123'>word</a>: 68 /push^D&quot;</span>
 <span id="L212" class="LineNr">212 </span>      <span class="Constant">&quot;parse2: <a href='011run.cc.html#L123'>word</a>: </span><span class="cSpecial">\&quot;</span><span class="Constant">test</span><span class="cSpecial">\&quot;</span><span class="Constant"> /f^D&quot;</span>
 <span id="L213" class="LineNr">213 </span>  <span class="Delimiter">);</span>