| : 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 ['] udp >code-address = ; |
>code-address ['] udp >code-address = ; |
| |
|
| : con? ( nfa -- flag ) |
: con? ( nfa -- flag ) |
| (name>) |
cell+ (name>) |
| >code-address ['] bl >code-address = ; |
>code-address ['] bl >code-address = ; |
| |
|
| : does? ( nfa -- flag ) |
: does? ( nfa -- flag ) |
| dup (name>) |
cell+ dup (name>) |
| >code-address ['] source >code-address = |
>code-address ['] source >code-address = |
| dup IF swap (name>) cell+ @ here ! ELSE nip THEN ; |
dup IF swap (name>) cell+ @ here ! ELSE nip THEN ; |
| |
|
| : defered? ( nfa -- flag ) |
: defered? ( nfa -- flag ) |
| dup does? |
dup does? |
| IF here @ ['] source cell+ @ = |
IF here @ ['] source cell+ @ = |
| dup IF swap (name>) >body @ here ! ELSE nip THEN |
dup IF swap cell+ (name>) >body @ here ! ELSE nip THEN |
| ELSE drop false THEN ; |
ELSE drop false THEN ; |
| |
|
| : colon? ( nfa -- flag ) |
: colon? ( nfa -- flag ) |
| (name>) |
cell+ (name>) |
| >code-address ['] does? >code-address = ; |
>code-address ['] does? >code-address = ; |
| |
|
| \ VALUE VCheck |
\ VALUE VCheck |
| 10 CONSTANT Com# \ Compiler directives : ; POSTPONE |
10 CONSTANT Com# \ Compiler directives : ; POSTPONE |
| |
|
| CREATE InfoTable |
CREATE InfoTable |
| |
' Prim? A, Pri# , |
| ' Alias? A, Ali# , |
' Alias? A, Ali# , |
| ' Con? A, Con# , |
' Con? A, Con# , |
| ' Var? A, Var# , |
' Var? A, Var# , |
| ' Defered? A, Def# , |
' Defered? A, Def# , |
| ' Does? A, Doe# , |
' Does? A, Doe# , |
| ' Colon? A, Col# , |
' Colon? A, Col# , |
| ' Prim? A, Pri# , |
|
| 0 , |
0 , |
| |
|
| : WordInfo ( nfa --- code ) |
: WordInfo ( nfa --- code ) |