vocabs.parser: make a "qualified-vocabs" word for re-use.
parent
b7e0c5a0dd
commit
d2716bbe6b
|
@ -53,9 +53,6 @@ ERROR: no-word-in-vocab word vocab ;
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
||||||
: (add-qualified) ( qualified -- )
|
|
||||||
manifest get qualified-vocabs>> push ;
|
|
||||||
|
|
||||||
: (from) ( vocab words -- vocab words words' vocab )
|
: (from) ( vocab words -- vocab words words' vocab )
|
||||||
2dup swap load-vocab ;
|
2dup swap load-vocab ;
|
||||||
|
|
||||||
|
@ -72,14 +69,15 @@ ERROR: no-word-in-vocab word vocab ;
|
||||||
: (lookup) ( name assoc -- word/f )
|
: (lookup) ( name assoc -- word/f )
|
||||||
at* [ dup forward-reference? [ drop f ] when ] when ;
|
at* [ dup forward-reference? [ drop f ] when ] when ;
|
||||||
|
|
||||||
: (use-words) ( assoc -- extra-words seq )
|
|
||||||
<extra-words> manifest get qualified-vocabs>> ;
|
|
||||||
|
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
||||||
|
: qualified-vocabs ( -- qualified-vocabs )
|
||||||
|
manifest get qualified-vocabs>> ;
|
||||||
|
|
||||||
: set-current-vocab ( name -- )
|
: set-current-vocab ( name -- )
|
||||||
create-vocab
|
create-vocab
|
||||||
[ manifest get current-vocab<< ] [ (add-qualified) ] bi ;
|
[ manifest get current-vocab<< ]
|
||||||
|
[ qualified-vocabs push ] bi ;
|
||||||
|
|
||||||
: with-current-vocab ( name quot -- )
|
: with-current-vocab ( name quot -- )
|
||||||
manifest get clone manifest [
|
manifest get clone manifest [
|
||||||
|
@ -119,7 +117,8 @@ TUPLE: no-current-vocab-error ;
|
||||||
: auto-use-vocab ( vocab -- )
|
: auto-use-vocab ( vocab -- )
|
||||||
[ use-vocab ] [ manifest get auto-used>> push ] bi ;
|
[ use-vocab ] [ manifest get auto-used>> push ] bi ;
|
||||||
|
|
||||||
: auto-used? ( -- ? ) manifest get auto-used>> length 0 > ;
|
: auto-used? ( -- ? )
|
||||||
|
manifest get auto-used>> length 0 > ;
|
||||||
|
|
||||||
: unuse-vocab ( vocab -- )
|
: unuse-vocab ( vocab -- )
|
||||||
dup using-vocab? [
|
dup using-vocab? [
|
||||||
|
@ -135,7 +134,7 @@ TUPLE: qualified vocab prefix words ;
|
||||||
(from) qualified-words qualified boa ;
|
(from) qualified-words qualified boa ;
|
||||||
|
|
||||||
: add-qualified ( vocab prefix -- )
|
: add-qualified ( vocab prefix -- )
|
||||||
<qualified> (add-qualified) ;
|
<qualified> qualified-vocabs push ;
|
||||||
|
|
||||||
TUPLE: from vocab names words ;
|
TUPLE: from vocab names words ;
|
||||||
|
|
||||||
|
@ -143,7 +142,7 @@ TUPLE: from vocab names words ;
|
||||||
(from) extract-words from boa ;
|
(from) extract-words from boa ;
|
||||||
|
|
||||||
: add-words-from ( vocab words -- )
|
: add-words-from ( vocab words -- )
|
||||||
<from> (add-qualified) ;
|
<from> qualified-vocabs push ;
|
||||||
|
|
||||||
TUPLE: exclude vocab names words ;
|
TUPLE: exclude vocab names words ;
|
||||||
|
|
||||||
|
@ -151,20 +150,24 @@ TUPLE: exclude vocab names words ;
|
||||||
(from) excluding-words exclude boa ;
|
(from) excluding-words exclude boa ;
|
||||||
|
|
||||||
: add-words-excluding ( vocab words -- )
|
: add-words-excluding ( vocab words -- )
|
||||||
<exclude> (add-qualified) ;
|
<exclude> qualified-vocabs push ;
|
||||||
|
|
||||||
TUPLE: rename word vocab words ;
|
TUPLE: rename word vocab words ;
|
||||||
|
|
||||||
: <rename> ( word vocab new-name -- rename )
|
: <rename> ( word vocab new-name -- rename )
|
||||||
[ 2dup load-vocab words>> dupd at [ ] [ swap no-word-in-vocab ] ?if ] dip
|
[
|
||||||
associate rename boa ;
|
2dup load-vocab words>> dupd at
|
||||||
|
[ ] [ swap no-word-in-vocab ] ?if
|
||||||
|
] dip associate rename boa ;
|
||||||
|
|
||||||
: add-renamed-word ( word vocab new-name -- )
|
: add-renamed-word ( word vocab new-name -- )
|
||||||
<rename> (add-qualified) ;
|
<rename> qualified-vocabs push ;
|
||||||
|
|
||||||
: use-words ( assoc -- ) (use-words) push ;
|
: use-words ( assoc -- )
|
||||||
|
<extra-words> qualified-vocabs push ;
|
||||||
|
|
||||||
: unuse-words ( assoc -- ) (use-words) remove! drop ;
|
: unuse-words ( assoc -- )
|
||||||
|
<extra-words> qualified-vocabs remove! drop ;
|
||||||
|
|
||||||
TUPLE: ambiguous-use-error words ;
|
TUPLE: ambiguous-use-error words ;
|
||||||
|
|
||||||
|
@ -174,8 +177,7 @@ TUPLE: ambiguous-use-error words ;
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
||||||
: (vocab-search) ( name assocs -- words n )
|
: (vocab-search) ( name assocs -- words n )
|
||||||
[ words>> (lookup) ] with map
|
[ words>> (lookup) ] with map sift dup length ;
|
||||||
sift dup length ;
|
|
||||||
|
|
||||||
: vocab-search ( name manifest -- word/f )
|
: vocab-search ( name manifest -- word/f )
|
||||||
search-vocabs>>
|
search-vocabs>>
|
||||||
|
|
Loading…
Reference in New Issue