Defining words add definitions to the dictionary without modifying the parse tree. The simplest example is the
SYMBOL: word.
The key factor in the definition of
SYMBOL: is
scan-new, which reads a token from the input and creates a word with that name. This word is then passed to
define-symbol.
scan-new ( -- word )
scan-new-word ( -- word )
Colon definitions are defined in a more elaborate way:
:
The
: word first calls
scan-new, and then reads input until reaching
; using a utility word:
parse-definition ( -- quot )
The
; word is just a delimiter; an unpaired occurrence throws a parse error:
There are additional parsing words whose syntax is delimited by
;, and they are all implemented by calling
parse-definition.