| : .word ( addr x -- addr ) |
: .word ( addr x -- addr ) |
| \ print x as a word if possible |
\ print x as a word if possible |
| dup look 0= IF |
dup look 0= IF |
| drop dup threaded>name 0= if |
drop dup threaded>name dup 0= if |
| 2drop dup 1 cells - @ dup body> look |
2drop dup 1 cells - @ dup body> look |
| IF |
IF |
| nip dup ." <" name>string rot wordinfo .string ." > " |
nip dup ." <" name>string rot wordinfo .string ." > " |
| cell+ ; |
cell+ ; |
| |
|
| : .name-without ( addr -- addr ) |
: .name-without ( addr -- addr ) |
| |
\ !! the stack effect cannot be correct |
| \ prints a name without a() e.g. a(+LOOP) or (s") |
\ prints a name without a() e.g. a(+LOOP) or (s") |
| dup 1 cells - @ threaded>name IF |
dup 1 cells - @ threaded>name dup IF |
| name>string over c@ 'a = IF |
name>string over c@ 'a = IF |
| 1 /string |
1 /string |
| THEN |
THEN |