version 1.2, 1994/05/18 17:30:03
|
version 1.7, 1995/10/07 17:38:21
|
Line 13 INCLUDE look.fs
|
Line 13 INCLUDE look.fs
|
: alias? ( nfa -- flag ) |
: alias? ( nfa -- flag ) |
dup name> look |
dup name> look |
0= ABORT" WINFO: CFA not found" |
0= ABORT" WINFO: CFA not found" |
cell+ |
\ cell+ |
2dup <> |
2dup <> |
IF nip dup 1 cells - here ! |
IF nip dup 1 cells - here ! |
count $1f and here cell+ place true |
count $1f and here cell+ place true |
ELSE 2drop false THEN ; |
ELSE 2drop false THEN ; |
|
|
: var? ( nfa -- flag ) |
: var? ( nfa -- flag ) |
(name>) |
cell+ (name>) >code-address dovar: = ; |
>code-address ['] leavings >code-address = ; |
|
|
|
: con? ( nfa -- flag ) |
: con? ( nfa -- flag ) |
(name>) |
cell+ (name>) >code-address docon: = ; |
>code-address ['] bl >code-address = ; |
|
|
: user? ( nfa -- flag ) |
|
cell+ (name>) >code-address douser: = ; |
|
|
: does? ( nfa -- flag ) |
: does? ( nfa -- flag ) |
dup (name>) |
\ !! does not work on all installations |
>code-address ['] source >code-address = |
cell+ (name>) |
dup IF swap (name>) cell+ @ here ! ELSE nip THEN ; |
>code-address ['] bits >code-address = ; |
|
|
: defered? ( nfa -- flag ) |
: defered? ( nfa -- flag ) |
dup does? |
cell+ (name>) >code-address dodefer: = ; |
IF here @ ['] source cell+ @ = |
|
dup IF swap (name>) >body @ here ! ELSE nip THEN |
|
ELSE drop false THEN ; |
|
|
|
: colon? ( nfa -- flag ) |
: colon? ( nfa -- flag ) |
(name>) |
cell+ (name>) >code-address docol: = ; |
>code-address ['] does? >code-address = ; |
|
|
\ the above words could be factored with create-does>, but this would |
|
\ probably make this file incompatible with cross. |
|
|
\ VALUE VCheck |
\ VALUE VCheck |
|
|
Line 66 INCLUDE look.fs
|
Line 66 INCLUDE look.fs
|
5 CONSTANT Doe# \ Does part |
5 CONSTANT Doe# \ Does part |
6 CONSTANT Def# \ Defer |
6 CONSTANT Def# \ Defer |
7 CONSTANT Col# \ Colon def |
7 CONSTANT Col# \ Colon def |
|
8 CONSTANT Use# \ User variable |
|
|
\ Nobody knows: |
\ Nobody knows: |
|
|
8 CONSTANT Ali# \ Alias |
9 CONSTANT Ali# \ Alias |
|
|
9 CONSTANT Str# \ Structure words |
10 CONSTANT Str# \ Structure words |
|
|
10 CONSTANT Com# \ Compiler directives : ; POSTPONE |
11 CONSTANT Com# \ Compiler directives : ; POSTPONE |
|
|
CREATE InfoTable |
CREATE InfoTable |
' Alias? A, Ali# , |
' Prim? A, Pri# , |
' Con? A, Con# , |
' Alias? A, Ali# , |
' Var? A, Var# , |
' Con? A, Con# , |
\ ' Value? A, Val# , |
' Var? A, Var# , |
|
\ ' Value? A, Val# , |
' Defered? A, Def# , |
' Defered? A, Def# , |
' Does? A, Doe# , |
' Does? A, Doe# , |
' Colon? A, Col# , |
' Colon? A, Col# , |
' Prim? A, Pri# , |
' User? A, Use# , |
0 , |
0 , |
|
|
: WordInfo ( nfa --- code ) |
: WordInfo ( nfa --- code ) |