跳转到内容

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)
]
华夏公益教科书