| DEFER dosee |
DEFER dosee |
| |
|
| : dopri .name ." is primitive" cr ; |
: dopri .name ." is primitive" cr ; |
| : dovar .name ." is variable" cr ; |
: dovar ." Variable " .name cr ; |
| : docon dup .name ." is constant, value: " |
: douse ." User " .name cr ; |
| cell+ (name>) >body @ . cr ; |
: docon dup cell+ (name>) >body @ . ." Constant " .name cr ; |
| : doval .name ." is value" cr ; |
: doval dup cell+ (name>) >body @ . ." Value " .name cr ; |
| : dodef .name ." is defered word, is: " |
: dodef ." Defer " dup >r .name cr |
| here @ look 0= ABORT" SEE: No valid xt in defered word" |
here @ look 0= ABORT" SEE: No valid xt in defered word" |
| .name cr here @ look drop dosee ; |
here @ look drop dosee cr |
| : dodoe .name ." is created word" cr |
." ' " .name r> ." IS " .name cr ; |
| |
: dodoe ." Create " .name cr |
| S" DOES> " Com# .string XPos @ Level ! |
S" DOES> " Com# .string XPos @ Level ! |
| here @ dup C-Pass @ DebugMode = IF ScanMode c-pass ! EXIT THEN |
here @ dup C-Pass @ DebugMode = IF ScanMode c-pass ! EXIT THEN |
| ScanMode c-pass ! dup makepass |
ScanMode c-pass ! dup makepass |
| DisplayMode c-pass ! makepass ; |
DisplayMode c-pass ! makepass ; |
| : doali .name ." is alias of " |
: doali here @ .name ." Alias " .name cr |
| here @ .name cr |
|
| here @ dosee ; |
here @ dosee ; |
| : docol S" : " Com# .string |
: docol S" : " Com# .string |
| dup cell+ count $1F and 2 pick wordinfo .string bl cemit bl cemit |
dup cell+ count $1F and 2 pick wordinfo .string bl cemit bl cemit |
| Doe# , ' dodoe A, |
Doe# , ' dodoe A, |
| Ali# , ' doali A, |
Ali# , ' doali A, |
| Col# , ' docol A, |
Col# , ' docol A, |
| |
Use# , ' douse A, |
| 0 , |
0 , |
| |
|
| : (dosee) ( lfa -- ) |
: (dosee) ( lfa -- ) |
| dup dup cell+ c@ 32 and IF over .name ." is an immediate word" cr THEN |
dup dup cell+ c@ >r |
| wordinfo |
wordinfo |
| wordtypes |
wordtypes |
| BEGIN dup @ dup |
BEGIN dup @ dup |
| WHILE 2 pick = IF cell+ @ nip EXECUTE EXIT THEN |
WHILE 2 pick = IF cell+ @ nip EXECUTE |
| |
r> dup 32 and IF ." immediate" THEN |
| |
64 and IF ." restrict" THEN EXIT THEN |
| 2 cells + |
2 cells + |
| REPEAT |
REPEAT |
| 2drop |
2drop rdrop |
| .name ." Don't know how to handle" cr ; |
.name ." Don't know how to handle" cr ; |
| |
|
| ' (dosee) IS dosee |
' (dosee) IS dosee |
| cr c-init |
cr c-init |
| dosee ; |
dosee ; |
| |
|
| : see name find 0= IF ." Word unknown" cr drop exit THEN |
: see name sfind 0= IF ." Word unknown" cr exit THEN |
| xtc ; |
xtc ; |
| |
|
| : lfc cr c-init cell+ dosee ; |
: lfc cr c-init cell+ dosee ; |