X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?a=blobdiff_plain;f=src%2Fscheme.4th;h=135bdabf6ef709f833cda523a21f45ff48797814;hb=db8b19176dacb8d9b82559864c1a071d1c1bf452;hp=2edd16da5fc43309c34387e9c4eb10afa0770ed3;hpb=c6aa8bc94536cbac6a7df5ad6872131665aeefeb;p=scheme.forth.jl.git diff --git a/src/scheme.4th b/src/scheme.4th index 2edd16d..135bdab 100644 --- a/src/scheme.4th +++ b/src/scheme.4th @@ -564,8 +564,7 @@ global-env obj! : continuation->rstack-list drop pair-type cdr ; -: restore-param-stack ( continuation -- obj_stack continuation ) - +: restore-param-stack ( continuation -- obj_stack ) continuation->pstack-list 2dup >R >R @@ -587,12 +586,31 @@ global-env obj! -2 +loop 2drop +; + +: restore-return-stack ( continuation -- ) + + R> -rot \ store top of return stack on PS + continuation->rstack-list + 2dup print 2dup + + \ TODO: Implement body of return stack restoration + >R \ restore original top of return stack ; -: restore-continuation +: restore-continuation ( continuation -- ) \ TODO: replace current parameter and return stacks with \ contents of continuation object. + + 2dup >R >R + restore-param-stack + + ." ====== PARAM STACK RESTORED ======" cr + trace + + R> R> + restore-return-stack ; \ }}} @@ -2125,6 +2143,7 @@ parse-idx-stack parse-idx-sp ! \ }}} +\ DEBUGGING xxxx \ ---- Loading files ---- {{{