diff --git a/core/parser/parser.factor b/core/parser/parser.factor index f6e351a42e..08f4275e49 100755 --- a/core/parser/parser.factor +++ b/core/parser/parser.factor @@ -366,6 +366,10 @@ ERROR: bad-number ; : (M:) CREATE-METHOD parse-definition ; +: scan-object ( -- object ) + scan-word dup parsing? + [ V{ } clone swap execute first ] when ; + GENERIC: expected>string ( obj -- str ) M: f expected>string drop "end of input" ; diff --git a/core/syntax/syntax.factor b/core/syntax/syntax.factor index 9190b9676d..5da2d5e4e2 100755 --- a/core/syntax/syntax.factor +++ b/core/syntax/syntax.factor @@ -171,9 +171,7 @@ IN: bootstrap.syntax ] define-syntax "FORGET:" [ - scan-word - dup parsing? [ V{ } clone swap execute first ] when - forget + scan-object forget ] define-syntax "(" [ diff --git a/extra/help/syntax/syntax.factor b/extra/help/syntax/syntax.factor index e006a9816b..9450f87215 100755 --- a/extra/help/syntax/syntax.factor +++ b/extra/help/syntax/syntax.factor @@ -16,6 +16,4 @@ IN: help.syntax over add-article >link r> remember-definition ; parsing : ABOUT: - scan-word dup parsing? [ - V{ } clone swap execute first - ] when in get vocab set-vocab-help ; parsing + scan-object in get vocab set-vocab-help ; parsing diff --git a/extra/tuple-syntax/tuple-syntax.factor b/extra/tuple-syntax/tuple-syntax.factor index f06bb55899..2419b8febb 100755 --- a/extra/tuple-syntax/tuple-syntax.factor +++ b/extra/tuple-syntax/tuple-syntax.factor @@ -5,9 +5,6 @@ IN: tuple-syntax ! TUPLE: foo bar baz ; ! TUPLE{ foo bar: 1 baz: 2 } -: parse-object ( -- object ) - scan-word dup parsing? [ V{ } clone swap execute first ] when ; - : parse-slot-writer ( tuple -- slot# ) scan dup "}" = [ 2drop f ] [ 1 head* swap object-slots slot-named slot-spec-offset @@ -15,7 +12,7 @@ IN: tuple-syntax : parse-slots ( accum tuple -- accum tuple ) dup parse-slot-writer - [ parse-object pick rot set-slot parse-slots ] when* ; + [ scan-object pick rot set-slot parse-slots ] when* ; : TUPLE{ scan-word construct-empty parse-slots parsed ; parsing