SYMBOL: fork SINGLETON: bend-parser : parse-bend-until-step ( accum end -- accum ? ) ?scan-datum { { [ 2dup eq? ] [ 2drop f ] } { [ dup \ fork = ] [ drop bend-parser get pick push \ >quotation pick push \ call pick push drop t ] } { [ dup not ] [ drop throw-unexpected-eof t ] } { [ dup delimiter? ] [ unexpected t ] } { [ dup parsing-word? ] [ nip execute-parsing t ] } [ pick push drop t ] } cond ; : parse-bend-until ( accum end -- accum ) [ parse-bend-until-step ] keep swap [ parse-bend-until ] [ drop ] if ; : parse-bend ( -- vec ) bend-parser get \ ] parse-bend-until >quotation ; M: bend-parser parse-quotation 100 \ ] parse-bend-until >quotation ; SYNTAX: B[ 100 '{ { bend-parser _ } { quotation-parser bend-parser } } [ parse-bend ] with-variables append! ;