Rebol 程式設計/collect-words
外觀
COLLECT-WORDS block /deep /set /ignore words
收集塊中使用的唯一單詞(用於構建上下文)。
COLLECT-WORDS 是一個函式值。
- block -- (型別:塊)
- /deep -- 包括巢狀塊
- /set -- 只包含設定單詞
- /ignore -- 忽略之前的單詞
- words -- 要忽略的單詞 (型別:物件 埠 塊)
collect-words: func [
{Collect unique words used in a block (used for context construction).}
block [block!]
/deep "Include nested blocks"
/set "Only include set-words"
/ignore "Ignore prior words"
words [object! port! block!] "Words to ignore"
/local rule word blk w
][
deep: either deep [[path! | set-path! | lit-path! | into rule]] [any-block!]
word: either set [set-word!] [any-word!]
blk: []
parse block rule: [
set w word (insert tail blk to-word to-string w) | deep | skip
]
also either ignore [
unless block? words [words: words-of words]
difference blk intersect blk words
] [
unique blk
] (clear blk set [block words] none)
]