default vocab is now f when parsing files
parent
2f103f19ea
commit
ad0139ac0c
|
@ -51,9 +51,11 @@ ARTICLE: "vocabulary-search-errors" "Word lookup errors"
|
|||
ARTICLE: "vocabulary-search" "Vocabulary search path"
|
||||
"When the parser reads a token, it attempts to look up a word named by that token. The lookup is performed by searching each vocabulary in the search path, in order."
|
||||
$nl
|
||||
"For a source file the vocabulary search path starts off with two vocabularies:"
|
||||
{ $code "syntax\nscratchpad" }
|
||||
"The " { $vocab-link "syntax" } " vocabulary consists of a set of parsing words for reading Factor data and defining new words. The " { $vocab-link "scratchpad" } " vocabulary is the default vocabulary for new word definitions."
|
||||
"For a source file the vocabulary search path starts off with one vocabulary:"
|
||||
{ $code "syntax" }
|
||||
"The " { $vocab-link "syntax" } " vocabulary consists of a set of parsing words for reading Factor data and defining new words."
|
||||
$nl
|
||||
"In the listener, the " { $vocab-link "scratchpad" } " is the default vocabulary for new word definitions. However, when loading source files, there is no default vocabulary. Defining words before declaring a vocabulary with " { $link POSTPONE: IN: } " results in an error."
|
||||
$nl
|
||||
"At the interactive listener, the default search path contains many more vocabularies. Details on the default search path and parser invocation are found in " { $link "parser" } "."
|
||||
$nl
|
||||
|
@ -294,6 +296,10 @@ HELP: use
|
|||
HELP: in
|
||||
{ $var-description "A variable holding the name of the current vocabulary for new definitions." } ;
|
||||
|
||||
HELP: current-vocab
|
||||
{ $values { "str" "a vocabulary" } }
|
||||
{ $description "Returns the vocabulary stored in the " { $link in } " symbol. Throws an error if the current vocabulary is " { $link f } "." } ;
|
||||
|
||||
HELP: (use+)
|
||||
{ $values { "vocab" "an assoc mapping strings to words" } }
|
||||
{ $description "Adds an assoc at the front of the search path." }
|
||||
|
@ -323,7 +329,7 @@ HELP: set-in
|
|||
$parsing-note ;
|
||||
|
||||
HELP: create-in
|
||||
{ $values { "string" "a word name" } { "word" "a new word" } }
|
||||
{ $values { "str" "a word name" } { "word" "a new word" } }
|
||||
{ $description "Creates a word in the current vocabulary. Until re-defined, the word throws an error when invoked." }
|
||||
$parsing-note ;
|
||||
|
||||
|
@ -451,7 +457,7 @@ HELP: bootstrap-syntax
|
|||
|
||||
HELP: with-file-vocabs
|
||||
{ $values { "quot" quotation } }
|
||||
{ $description "Calls the quotation in a scope with the initial the vocabulary search path for parsing a file. This consists of the " { $snippet "syntax" } " vocabulary together with the " { $snippet "scratchpad" } " vocabulary." } ;
|
||||
{ $description "Calls the quotation in a scope with the initial the vocabulary search path for parsing a file. This consists of just the " { $snippet "syntax" } " vocabulary." } ;
|
||||
|
||||
HELP: parse-fresh
|
||||
{ $values { "lines" "a sequence of strings" } { "quot" quotation } }
|
||||
|
|
|
@ -233,8 +233,16 @@ PREDICATE: unexpected-eof < unexpected
|
|||
: parse-tokens ( end -- seq )
|
||||
100 <vector> swap (parse-tokens) >array ;
|
||||
|
||||
: create-in ( string -- word )
|
||||
in get create dup set-word dup save-location ;
|
||||
ERROR: no-current-vocab ;
|
||||
|
||||
M: no-current-vocab summary ( obj -- )
|
||||
drop "Current vocabulary is f, use IN:" ;
|
||||
|
||||
: current-vocab ( -- str )
|
||||
in get [ no-current-vocab ] unless* ;
|
||||
|
||||
: create-in ( str -- word )
|
||||
current-vocab create dup set-word dup save-location ;
|
||||
|
||||
: CREATE ( -- word ) scan create-in ;
|
||||
|
||||
|
@ -243,7 +251,7 @@ PREDICATE: unexpected-eof < unexpected
|
|||
: CREATE-WORD ( -- word ) CREATE dup reset-generic ;
|
||||
|
||||
: create-class-in ( word -- word )
|
||||
in get create
|
||||
current-vocab create
|
||||
dup save-class-location
|
||||
dup predicate-word dup set-word save-location ;
|
||||
|
||||
|
@ -440,8 +448,7 @@ SYMBOL: bootstrap-syntax
|
|||
|
||||
: with-file-vocabs ( quot -- )
|
||||
[
|
||||
"scratchpad" in set
|
||||
{ "syntax" "scratchpad" } set-use
|
||||
f in set { "syntax" } set-use
|
||||
bootstrap-syntax get [ use get push ] when*
|
||||
call
|
||||
] with-scope ; inline
|
||||
|
|
Loading…
Reference in New Issue