This commit is contained in:
Kartik K. Agaram 2021-04-15 19:12:07 -07:00
parent 849f80ac22
commit d41917290a
1 changed files with 7 additions and 4 deletions

View File

@ -74,15 +74,18 @@ fn parse-sexpression tokens: (addr stream cell), _out: (addr handle cell), trace
break-if-!=
var curr-addr/eax: (addr cell) <- lookup *curr
curr <- get curr-addr, right
var tmp-storage: (handle cell)
var tmp/edx: (addr handle cell) <- address tmp-storage
$parse-sexpression:list-loop: {
allocate-pair curr
var curr-addr/eax: (addr cell) <- lookup *curr
var left/ecx: (addr handle cell) <- get curr-addr, left
{
var close-paren?/eax: boolean <- parse-sexpression tokens, left, trace
var close-paren?/eax: boolean <- parse-sexpression tokens, tmp, trace
allocate-pair curr
compare close-paren?, 0/false
break-if-!= $parse-sexpression:list-loop
}
var curr-addr/eax: (addr cell) <- lookup *curr
var left/ecx: (addr handle cell) <- get curr-addr, left
copy-object tmp, left
#
curr <- get curr-addr, right
loop