2020-08-31 06:53:27 +10:00
|
|
|
( Now we have "as late as possible" stuff. See bootstrap doc. )
|
2020-09-20 08:51:29 +10:00
|
|
|
: _bchk DUP 0x7f + 0xff > IF LIT" br ovfl" (print) ABORT THEN ;
|
2020-09-20 03:54:01 +10:00
|
|
|
: DO COMPILE 2>R H@ ; IMMEDIATE
|
|
|
|
: LOOP COMPILE (loop) H@ - _bchk C, ; IMMEDIATE
|
2020-05-16 12:44:49 +10:00
|
|
|
( LEAVE is implemented in low xcomp )
|
2020-09-20 09:44:15 +10:00
|
|
|
: LITN COMPILE (n) , ;
|
2020-05-16 12:44:49 +10:00
|
|
|
( gets its name at the very end. can't comment afterwards )
|
2020-09-20 08:51:29 +10:00
|
|
|
: _ BEGIN LIT" )" WORD S= UNTIL ; IMMEDIATE
|
2020-05-16 12:44:49 +10:00
|
|
|
: _ ( : will get its name almost at the very end )
|
2020-06-18 11:41:01 +10:00
|
|
|
(entry) 1 ( compiled ) C,
|
2020-05-16 12:44:49 +10:00
|
|
|
BEGIN
|
2020-09-20 10:19:23 +10:00
|
|
|
WORD DUP LIT" ;" S= IF DROP 0x0b , EXIT THEN
|
|
|
|
FIND IF ( is word ) DUP IMMED? IF EXECUTE ELSE , THEN
|
2020-05-16 12:44:49 +10:00
|
|
|
ELSE ( maybe number ) (parse) LITN THEN
|
|
|
|
AGAIN ;
|