From 2f4c8ee07aa36265d9e462f76d7d4c9071abec07 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bj=C3=B6rn=20Lindqvist?= Date: Mon, 5 Oct 2015 17:04:36 +0200 Subject: [PATCH] listener: only call parser-quiet? off when listener starts it probably shouldn't be called on every input loop because then if you set parser-quiet? to t, the setting will be undone --- basis/listener/listener-tests.factor | 19 +++++++++++++++---- basis/listener/listener.factor | 13 ++++++++----- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/basis/listener/listener-tests.factor b/basis/listener/listener-tests.factor index 22b423b74b..9a9bb5c6f6 100644 --- a/basis/listener/listener-tests.factor +++ b/basis/listener/listener-tests.factor @@ -1,6 +1,6 @@ -USING: io io.streams.string io.streams.duplex listener -tools.test parser math namespaces continuations vocabs kernel -compiler.units eval vocabs.parser words definitions ; +USING: compiler.units continuations definitions eval io +io.streams.string kernel listener listener.private math namespaces +parser parser.notes tools.test vocabs vocabs.parser words ; IN: listener.tests SYNTAX: hello "Hi" print ; @@ -56,7 +56,7 @@ SYNTAX: hello "Hi" print ; [ "call" "scratchpad" create-word drop ] with-compilation-unit [ - [ t ] + { t } [ "call" "scratchpad" lookup-word [ "call" search ] with-interactive-vocabs @@ -65,3 +65,14 @@ SYNTAX: hello "Hi" print ; ] with-file-vocabs [ "call" "scratchpad" lookup-word forget ] with-compilation-unit + +[ + { t } [ + "[ ]" [ + t parser-quiet? [ + { } listener-step drop + parser-quiet? get + ] with-variable + ] with-string-reader + ] unit-test +] with-file-vocabs diff --git a/basis/listener/listener.factor b/basis/listener/listener.factor index 96404dc2da..8d9ac01d3e 100644 --- a/basis/listener/listener.factor +++ b/basis/listener/listener.factor @@ -108,8 +108,7 @@ t error-summary? set-global [ nl "--- Data stack:" title. trimmed-stack. ] unless-empty ] [ drop ] if ; -:: (listener) ( datastack -- ) - parser-quiet? off +:: listener-step ( datastack -- datastack' ) error-summary? get [ error-summary ] when visible-vars. datastack datastack. @@ -126,9 +125,10 @@ t error-summary? set-global [ call-error-hook datastack ] [ rethrow ] if - ] recover + ] recover ; - (listener) ; +: (listener) ( datastack -- ) + listener-step (listener) ; PRIVATE> @@ -209,7 +209,10 @@ SYMBOL: interactive-vocabs ] with-manifest ; inline : listener ( -- ) - [ [ { } (listener) ] with-return ] with-interactive-vocabs ; + [ + parser-quiet? off + [ { } (listener) ] with-return + ] with-interactive-vocabs ; : listener-main ( -- ) version-info print flush listener ; -- 2.34.1