- ABORT
- ABORT"
- ABS
- ACCEPT
- ACTION-OF
- AGAIN
- ALIGN
- ALIGNED
- ALLOT
- AND
- BASE
- BEGIN
- BL
- BUFFER:
- [
- [CHAR]
- [COMPILE]
- [']
- CASE
- C,
- CELL+
- CELLS
- C@
- CHAR
- CHAR+
- CHARS
- COMPILE,
- CONSTANT
- COUNT
- CR
- CREATE
- C!
- :
- :NONAME
- ,
- C"
- DECIMAL
- DEFER
- DEFER@
- DEFER!
- DEPTH
- DO
- DOES>
- DROP
- DUP
- /
- /MOD
- .R
- .(
- ."
- ELSE
- EMIT
- ENDCASE
- ENDOF
- ENVIRONMENT?
- ERASE
- EVALUATE
- EXECUTE
- EXIT
- =
- FALSE
- FILL
- FIND
- FM/MOD
- @
- HERE
- HEX
- HOLD
- HOLDS
- I
- IF
- IMMEDIATE
- INVERT
- IS
- J
- KEY
- LEAVE
- LITERAL
- LOOP
- LSHIFT
- MARKER
- MAX
- MIN
- MOD
- MOVE
- M*
- -
- NEGATE
- NIP
- OF
- OR
- OVER
- 1-
- 1+
- PAD
- PARSE-NAME
- PARSE
- PICK
- POSTPONE
- +
- +LOOP
- +!
- QUIT
- RECURSE
- REFILL
- REPEAT
- RESTORE-INPUT
- R@
- ROLL
- ROT
- RSHIFT
- R>
- SAVE-INPUT
- SIGN
- SM/REM
- SOURCE-ID
- SOURCE
- SPACE
- SPACES
- STATE
- SWAP
- ;
- S\"
- S"
- S>D
- !
- THEN
- TO
- TRUE
- TUCK
- TYPE
- '
- *
- */
- */MOD
- 2DROP
- 2DUP
- 2/
- 2@
- 2OVER
- 2R@
- 2R>
- 2SWAP
- 2!
- 2*
- 2>R
- U.R
- UM/MOD
- UM*
- UNLOOP
- UNTIL
- UNUSED
- U.
- U<
- U>
- VALUE
- VARIABLE
- WHILE
- WITHIN
- WORD
- XOR
- 0=
- 0<
- 0>
- 0<>
- \
- .
- <
- >
- <>
- #>
- <#
- #
- #S
- (
- ?DO
- ?DUP
- >BODY
- >IN
- >NUMBER
- >R
6.1.0560 >IN to-in CORE
a-addr is the address of a cell containing the offset in characters from the start of the input buffer to the start of the parse area.
Testing:
: RESCAN? -1 SCANS +! SCANS @ IF 0 >IN ! THEN ;
T{ 2 SCANS !
345 RESCAN?
-> 345 345 }T
: GS2 5 SCANS ! S" 123 RESCAN?" EVALUATE ;
T{ GS2 -> 123 123 123 123 123 }T
\ These tests must start on a new line
DECIMAL
T{ 123456 DEPTH OVER 9 < 35 AND + 3 + >IN !
-> 123456 23456 3456 456 56 6 }T
T{ 14145 8115 ?DUP 0= 34 AND >IN +! TUCK MOD 14 >IN ! GCD calculation
-> 15 }T
ContributeContributions
mcondron
[102] Environment dependence of test casesRequest for clarification2019-08-03 12:56:27
The last two tests seem to depend on a 32-bit cell width.
ruv
[110] Etymology of ">IN" nameRequest for clarification2019-08-26 12:25:27
What do > and IN mean in the >IN name?
For comparison, in other names the greater-than sign apparently has the following meaning (when it does not mean greater-than).
In the words like >R and R> — > means data moving direction, and R means the returns stack.
In the words like >NUMBER, D>S or >BODY — > means conversion, and a word after the sign is a hint for the target value.
JimPeterson
[378] Can This Be Set?Request for clarification2025-06-13 14:21:51
There's no verbiage in the description explaining that the value stored at >IN can be modified by the user, yet the test cases perform exactly that. Must conforming implementations allow this behavior? Shouldn't there be an explicit note, rather than just an implication, that doing so will cause the very next parsing of a word to start at the new address, and that values stored at >IN must be char-aligned, and that it's an ambiguous condition to set this value to a region outside of the area returned via SOURCE?
AbstractionFirst
[439] Should the standard distinguish application interfaces from implementation interfaces?Comment2026-07-20 14:28:21
The Forth standard currently conflates two distinct kinds of interfaces: those intended for portable application programs and those intended primarily for implementing Forth systems.
This distinction is important because these two categories serve different purposes.
Application interfaces express the semantics of portable Forth programs. Implementation interfaces expose or manipulate the internal operation of a Forth system.
Examples of the latter include words such as >IN, SOURCE, REFILL, and SAVE-INPUT. Such words are essential for implementing a Forth system, but they do not define the semantics of portable Forth programs.
Would it be beneficial for future revisions of the standard to distinguish these interfaces explicitly, perhaps by introducing a separate word set dedicated to implementation support (e.g. INTERPRETER, IMPLEMENTATION, SYSTEM, or ENGINE)?
Such a distinction would strengthen the separation between language semantics and implementation mechanisms while preserving implementation freedom.