diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2021-05-30 16:45:38 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2021-05-30 16:45:38 -0700 |
commit | b699982fb490159b56ba443228269e1cc066d35a (patch) | |
tree | 20393ab5e62db253104e23dcbbd80e6f6f6365d4 /shell/parse.mu | |
parent | 40c606632482e7a8d2f95c692a3a5166376569c6 (diff) | |
download | mu-b699982fb490159b56ba443228269e1cc066d35a.tar.gz |
.
Diffstat (limited to 'shell/parse.mu')
-rw-r--r-- | shell/parse.mu | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/shell/parse.mu b/shell/parse.mu index a977216c..bcaedd21 100644 --- a/shell/parse.mu +++ b/shell/parse.mu @@ -37,6 +37,7 @@ fn parse-sexpression tokens: (addr stream cell), _out: (addr handle cell), trace { break-if-= error trace, "end of stream; never found a balancing ')'" + trace-higher trace return 1/true, 0/false } read-from-stream tokens, curr-token @@ -55,6 +56,7 @@ fn parse-sexpression tokens: (addr stream cell), _out: (addr handle cell), trace var close-paren?/eax: boolean <- copy 0/false var dot?/ecx: boolean <- copy 0/false close-paren?, dot? <- parse-sexpression tokens, right-ah, trace + trace-higher trace return close-paren?, dot? } # backquote quote -> parse as list with a special car @@ -71,6 +73,7 @@ fn parse-sexpression tokens: (addr stream cell), _out: (addr handle cell), trace var close-paren?/eax: boolean <- copy 0/false var dot?/ecx: boolean <- copy 0/false close-paren?, dot? <- parse-sexpression tokens, right-ah, trace + trace-higher trace return close-paren?, dot? } # unquote -> parse as list with a special car @@ -87,6 +90,7 @@ fn parse-sexpression tokens: (addr stream cell), _out: (addr handle cell), trace var close-paren?/eax: boolean <- copy 0/false var dot?/ecx: boolean <- copy 0/false close-paren?, dot? <- parse-sexpression tokens, right-ah, trace + trace-higher trace return close-paren?, dot? } # unquote-splice -> parse as list with a special car @@ -103,6 +107,7 @@ fn parse-sexpression tokens: (addr stream cell), _out: (addr handle cell), trace var close-paren?/eax: boolean <- copy 0/false var dot?/ecx: boolean <- copy 0/false close-paren?, dot? <- parse-sexpression tokens, right-ah, trace + trace-higher trace return close-paren?, dot? } # dot -> return |