version 1.39, 2004/12/01 10:02:59
|
version 1.43, 2005/06/28 06:49:41
|
Line 1
|
Line 1
|
\ miscelleneous words |
\ miscelleneous words |
|
|
\ Copyright (C) 1996,1997,1998,2000,2003 Free Software Foundation, Inc. |
\ Copyright (C) 1996,1997,1998,2000,2003,2004 Free Software Foundation, Inc. |
|
|
\ This file is part of Gforth. |
\ This file is part of Gforth. |
|
|
Line 139 AUser CSP
|
Line 139 AUser CSP
|
: compile-literal ( n -- ) |
: compile-literal ( n -- ) |
postpone literal ; |
postpone literal ; |
|
|
|
: compile-compile-literal ( n -- ) |
|
compile-literal postpone compile-literal ; |
|
|
|
: compile-2literal ( n1 n2 -- ) |
|
postpone 2literal ; |
|
|
|
: compile-compile-2literal ( n1 n2 -- ) |
|
compile-2literal postpone compile-2literal ; |
|
|
: [[ ( -- ) |
: [[ ( -- ) |
\G switch from postpone state to compile state |
\G switch from postpone state to compile state |
\ this is only a marker; it is never really interpreted |
\ this is only a marker; it is never really interpreted |
compile-only-error ; immediate |
compile-only-error ; immediate |
|
|
: postponer ( c-addr u -- ) |
[ifdef] compiler1 |
|
: postponer1 ( c-addr u -- ... xt ) |
2dup find-name dup if ( c-addr u nt ) |
2dup find-name dup if ( c-addr u nt ) |
nip nip name>comp |
nip nip name>comp |
2dup [comp'] [[ d= if |
2dup [comp'] [[ d= if |
2drop ['] compiler is parser |
2drop ['] compiler1 is parser1 |
else |
else |
postpone, |
['] postpone, |
endif |
endif |
else |
else |
drop |
drop |
2dup snumber? dup if |
2dup 2>r snumber? dup if |
0> IF |
0> IF |
swap postpone literal postpone compile-literal |
['] compile-compile-2literal |
|
ELSE |
|
['] compile-compile-literal |
THEN |
THEN |
postpone Literal postpone compile-literal |
2rdrop |
2drop |
|
ELSE |
ELSE |
drop no.extensions |
drop 2r> no.extensions |
THEN |
THEN |
then ; |
then ; |
|
|
: ]] ( -- ) |
: ]] ( -- ) |
\ switch into postpone state |
\ switch into postpone state |
['] postponer is parser state on ; immediate restrict |
['] postponer1 is parser1 state on ; immediate restrict |
|
|
|
[then] |
|
|
\ f.rdp |
\ f.rdp |
|
|
Line 300 interpret/compile: action-of ( interpret
|
Line 313 interpret/compile: action-of ( interpret
|
comp' action-of drop |
comp' action-of drop |
interpret/compile: what's ( interpretation "name" -- xt; compilation "name" -- ; run-time -- xt ) \ gforth-obsolete |
interpret/compile: what's ( interpretation "name" -- xt; compilation "name" -- ; run-time -- xt ) \ gforth-obsolete |
\G Old name of @code{action-of} |
\G Old name of @code{action-of} |
|
|
|
|
|
: typewhite ( addr n -- ) \ gforth |
|
\G Like type, but white space is printed instead of the characters. |
|
\ bounds u+do |
|
0 max bounds ?do |
|
i c@ #tab = if \ check for tab |
|
#tab |
|
else |
|
bl |
|
then |
|
emit |
|
loop ; |
|
|