From 6bf3470e6270a27c9cf5a093016f2f73bc502f36 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Wed, 4 Jun 2014 09:52:51 -0700 Subject: [PATCH] listener: extract a loaded-vocab? word. --- basis/listener/listener.factor | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/basis/listener/listener.factor b/basis/listener/listener.factor index fdc025f9fd..1e5f38e093 100644 --- a/basis/listener/listener.factor +++ b/basis/listener/listener.factor @@ -1,10 +1,10 @@ ! Copyright (C) 2003, 2009 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. -USING: accessors colors colors.constants compiler.units -continuations debugger fry io io.styles kernel lexer locals -math math.parser namespaces parser parser.notes prettyprint -sequences sets source-files.errors vocabs vocabs.loader -vocabs.parser ; +USING: accessors colors colors.constants +combinators.short-circuit compiler.units continuations debugger +fry io io.styles kernel lexer locals math math.parser namespaces +parser parser.notes prettyprint sequences sets +source-files.errors vocabs vocabs.loader vocabs.parser ; IN: listener GENERIC: stream-read-quot ( stream -- quot/f ) @@ -188,14 +188,18 @@ SYMBOL: interactive-vocabs "words" } interactive-vocabs set-global +: loaded-vocab? ( vocab-spec -- ? ) + { + [ find-vocab-root not ] + [ source-loaded?>> +done+ eq? ] + } 1|| ; + : use-loaded-vocabs ( vocabs -- ) - [ lookup-vocab ] filter [ - lookup-vocab - [ find-vocab-root not ] - [ source-loaded?>> +done+ eq? ] bi or - ] filter - [ use-vocab ] each ; + lookup-vocab [ + dup loaded-vocab? [ use-vocab ] [ drop ] if + ] when* + ] each ; : with-interactive-vocabs ( quot -- ) [ -- 2.34.1