| false DefaultValue new-input |
false DefaultValue new-input |
| false DefaultValue peephole |
false DefaultValue peephole |
| false DefaultValue abranch |
false DefaultValue abranch |
| |
true DefaultValue control-rack |
| [THEN] |
[THEN] |
| |
|
| true DefaultValue interpreter |
true DefaultValue interpreter |
| Ghost (next) drop |
Ghost (next) drop |
| Ghost (does>) Ghost (compile) 2drop |
Ghost (does>) Ghost (compile) 2drop |
| Ghost (.") Ghost (S") Ghost (ABORT") 2drop drop |
Ghost (.") Ghost (S") Ghost (ABORT") 2drop drop |
| Ghost (C") drop |
Ghost (C") Ghost c(abort") Ghost type 2drop drop |
| Ghost ' drop |
Ghost ' drop |
| |
|
| \ user ghosts |
\ user ghosts |
| : ht-string, ( addr count -- ) |
: ht-string, ( addr count -- ) |
| dup there swap last-string 2! |
dup there swap last-string 2! |
| dup T c, H bounds ?DO I c@ T c, H LOOP ; |
dup T c, H bounds ?DO I c@ T c, H LOOP ; |
| |
: ht-mem, ( addr count ) |
| |
bounds ?DO I c@ T c, H LOOP ; |
| |
|
| >TARGET |
>TARGET |
| |
|
| |
|
| : ," [char] " parse ht-string, X align ; |
: ," [char] " parse ht-string, X align ; |
| |
|
| |
X has? control-rack [IF] |
| Cond: ." compile (.") T ," H ;Cond |
Cond: ." compile (.") T ," H ;Cond |
| Cond: S" compile (S") T ," H ;Cond |
Cond: S" compile (S") T ," H ;Cond |
| Cond: C" compile (C") T ," H ;Cond |
Cond: C" compile (C") T ," H ;Cond |
| Cond: ABORT" compile (ABORT") T ," H ;Cond |
Cond: ABORT" compile (ABORT") T ," H ;Cond |
| |
[ELSE] |
| |
Cond: ." '" parse tuck 2>r ahead, there 2r> ht-mem, X align |
| |
>r then, r> compile ALiteral compile Literal compile type ;Cond |
| |
Cond: S" '" parse tuck 2>r ahead, there 2r> ht-mem, X align |
| |
>r then, r> compile ALiteral compile Literal ;Cond |
| |
Cond: C" ahead, there [char] " parse ht-string, X align |
| |
>r then, r> compile ALiteral ;Cond |
| |
Cond: ABORT" if, ahead, there [char] " parse ht-string, X align |
| |
>r then, r> compile ALiteral compile c(abort") then, ;Cond |
| |
[THEN] |
| |
|
| Cond: IS T ' >body H compile ALiteral compile ! ;Cond |
Cond: IS T ' >body H compile ALiteral compile ! ;Cond |
| : IS T >address ' >body ! H ; |
: IS T >address ' >body ! H ; |