add MOVE, FILL, ENVIRONMENT?, ACCEPT, RECURSE

main
Clyne 1 year ago
parent bbff2c86a1
commit 454d7a3395
Signed by: clyne
GPG Key ID: 1B74EE6C49C96795

@ -22,5 +22,5 @@ clean:
sprit: source/libsprit.a
source/libsprit.a: $(OBJ)
$(AR) rcu $@ $^
$(AR) rc $@ $^

@ -111,4 +111,27 @@
swap postpone literal postpone literal ; imm
: ." postpone s" state @ if ['] type compile, else type then ; imm
." hello world"
: move dup 0 <= if drop 2drop exit then
>r 2dup < r> swap if
1- 0 swap do over i + c@ over i + c! -1 +loop
else
0 do over i + c@ over i + c! loop
then 2drop ;
: fill -rot begin dup 0 > while
>r 2dup c! char+ r> 1- repeat
2drop drop ;
: environment? 2drop 1 0= ;
: accept over >r begin dup 0 > while
key dup 32 < if 2drop 0
else dup emit rot 2dup c! char+ swap drop swap 1- then
repeat drop r> - [ 1 chars ] literal / ;
: recurse _compxt @ compile, ; imm
: fib ( n1 -- n2 ) dup 1 > if 1- dup 1- recurse swap recurse + then ;
: fibs 10 0 do i fib . loop cr ;
fibs ." hello world"

@ -147,6 +147,8 @@ void colon()
// The actual function list will begin one Cell beyond here.
comma(HERE + sizeof(Cell));
DICT[DIdxCompXt] = *SP - 2 * sizeof(Cell);
// Enter compiling state.
STATE = -1;
}

Loading…
Cancel
Save