From 5a3f9a31850d6da72dff7211c9760cd4a8e1090b Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Tue, 13 Apr 2021 21:11:26 -0700 Subject: . --- html/shell/tokenize.mu.html | 52 ++++++++++++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 19 deletions(-) (limited to 'html/shell/tokenize.mu.html') diff --git a/html/shell/tokenize.mu.html b/html/shell/tokenize.mu.html index cd0ce6a3..4261d517 100644 --- a/html/shell/tokenize.mu.html +++ b/html/shell/tokenize.mu.html @@ -63,12 +63,12 @@ if ('onhashchange' in window) { 5 fn tokenize in: (addr gap-buffer), out: (addr stream cell), trace: (addr trace) { 6 trace-text trace, "read", "tokenize" 7 trace-lower trace - 8 rewind-gap-buffer in + 8 rewind-gap-buffer in 9 var token-storage: cell 10 var token/edx: (addr cell) <- address token-storage 11 { - 12 skip-whitespace-from-gap-buffer in - 13 var done?/eax: boolean <- gap-buffer-scan-done? in + 12 skip-whitespace-from-gap-buffer in + 13 var done?/eax: boolean <- gap-buffer-scan-done? in 14 compare done?, 0/false 15 break-if-!= 16 # initialize token data each iteration to avoid aliasing @@ -97,8 +97,8 @@ if ('onhashchange' in window) { 39 var out/edi: (addr stream byte) <- copy _out 40 $next-token:body: { 41 clear-stream out - 42 skip-whitespace-from-gap-buffer in - 43 var g/eax: grapheme <- peek-from-gap-buffer in + 42 skip-whitespace-from-gap-buffer in + 43 var g/eax: grapheme <- peek-from-gap-buffer in 44 { 45 var stream-storage: (stream byte 0x40) 46 var stream/esi: (addr stream byte) <- address stream-storage @@ -128,7 +128,7 @@ if ('onhashchange' in window) { 70 var bracket?/eax: boolean <- bracket-grapheme? g 71 compare bracket?, 0/false 72 break-if-= - 73 var g/eax: grapheme <- read-from-gap-buffer in + 73 var g/eax: grapheme <- read-from-gap-buffer in 74 next-bracket-token g, out, trace 75 break $next-token:body 76 } @@ -154,10 +154,10 @@ if ('onhashchange' in window) { 96 trace-text trace, "read", "looking for a symbol" 97 trace-lower trace 98 $next-symbol-token:loop: { - 99 var done?/eax: boolean <- gap-buffer-scan-done? in + 99 var done?/eax: boolean <- gap-buffer-scan-done? in 100 compare done?, 0/false 101 break-if-!= -102 var g/eax: grapheme <- peek-from-gap-buffer in +102 var g/eax: grapheme <- peek-from-gap-buffer in 103 { 104 var stream-storage: (stream byte 0x40) 105 var stream/esi: (addr stream byte) <- address stream-storage @@ -174,7 +174,7 @@ if ('onhashchange' in window) { 116 trace-text trace, "read", "stop" 117 break $next-symbol-token:loop 118 } -119 var g/eax: grapheme <- read-from-gap-buffer in +119 var g/eax: grapheme <- read-from-gap-buffer in 120 write-grapheme out, g 121 loop 122 } @@ -191,10 +191,10 @@ if ('onhashchange' in window) { 133 trace-text trace, "read", "looking for a operator" 134 trace-lower trace 135 $next-operator-token:loop: { -136 var done?/eax: boolean <- gap-buffer-scan-done? in +136 var done?/eax: boolean <- gap-buffer-scan-done? in 137 compare done?, 0/false 138 break-if-!= -139 var g/eax: grapheme <- peek-from-gap-buffer in +139 var g/eax: grapheme <- peek-from-gap-buffer in 140 { 141 var stream-storage: (stream byte 0x40) 142 var stream/esi: (addr stream byte) <- address stream-storage @@ -211,7 +211,7 @@ if ('onhashchange' in window) { 153 trace-text trace, "read", "stop" 154 break $next-operator-token:loop 155 } -156 var g/eax: grapheme <- read-from-gap-buffer in +156 var g/eax: grapheme <- read-from-gap-buffer in 157 write-grapheme out, g 158 loop 159 } @@ -228,10 +228,10 @@ if ('onhashchange' in window) { 170 trace-text trace, "read", "looking for a number" 171 trace-lower trace 172 $next-number-token:loop: { -173 var done?/eax: boolean <- gap-buffer-scan-done? in +173 var done?/eax: boolean <- gap-buffer-scan-done? in 174 compare done?, 0/false 175 break-if-!= -176 var g/eax: grapheme <- peek-from-gap-buffer in +176 var g/eax: grapheme <- peek-from-gap-buffer in 177 { 178 var stream-storage: (stream byte 0x40) 179 var stream/esi: (addr stream byte) <- address stream-storage @@ -257,7 +257,7 @@ if ('onhashchange' in window) { 199 return 200 } 201 trace-text trace, "read", "append" -202 var g/eax: grapheme <- read-from-gap-buffer in +202 var g/eax: grapheme <- read-from-gap-buffer in 203 write-grapheme out, g 204 loop 205 } @@ -598,13 +598,13 @@ if ('onhashchange' in window) { 540 return result 541 } 542 -543 fn open-paren-token? _in: (addr cell) -> _/eax: boolean { +543 fn quote-token? _in: (addr cell) -> _/eax: boolean { 544 var in/eax: (addr cell) <- copy _in 545 var in-data-ah/eax: (addr handle stream byte) <- get in, text-data 546 var in-data/eax: (addr stream byte) <- lookup *in-data-ah 547 rewind-stream in-data 548 var g/eax: grapheme <- read-grapheme in-data -549 compare g, 0x28/open-paren +549 compare g, 0x27/single-quote 550 { 551 break-if-!= 552 return 1/true @@ -612,19 +612,33 @@ if ('onhashchange' in window) { 554 return 0/false 555 } 556 -557 fn close-paren-token? _in: (addr cell) -> _/eax: boolean { +557 fn open-paren-token? _in: (addr cell) -> _/eax: boolean { 558 var in/eax: (addr cell) <- copy _in 559 var in-data-ah/eax: (addr handle stream byte) <- get in, text-data 560 var in-data/eax: (addr stream byte) <- lookup *in-data-ah 561 rewind-stream in-data 562 var g/eax: grapheme <- read-grapheme in-data -563 compare g, 0x29/open-paren +563 compare g, 0x28/open-paren 564 { 565 break-if-!= 566 return 1/true 567 } 568 return 0/false 569 } +570 +571 fn close-paren-token? _in: (addr cell) -> _/eax: boolean { +572 var in/eax: (addr cell) <- copy _in +573 var in-data-ah/eax: (addr handle stream byte) <- get in, text-data +574 var in-data/eax: (addr stream byte) <- lookup *in-data-ah +575 rewind-stream in-data +576 var g/eax: grapheme <- read-grapheme in-data +577 compare g, 0x29/open-paren +578 { +579 break-if-!= +580 return 1/true +581 } +582 return 0/false +583 } -- cgit 1.4.1-2-gfad0