From 7ad1686590d5f27ba0ac09e835c1d317c0872ea2 Mon Sep 17 00:00:00 2001 From: Daniel Ehrenberg Date: Thu, 27 Mar 2008 20:50:41 -0400 Subject: [PATCH] Factoring out parse-unit --- core/parser/parser.factor | 4 ++++ core/syntax/syntax.factor | 4 +--- extra/help/syntax/syntax.factor | 4 +--- extra/tuple-syntax/tuple-syntax.factor | 5 +---- 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/core/parser/parser.factor b/core/parser/parser.factor index f6e351a42e..1e66618053 100755 --- a/core/parser/parser.factor +++ b/core/parser/parser.factor @@ -366,6 +366,10 @@ ERROR: bad-number ; : (M:) CREATE-METHOD parse-definition ; +: parse-unit ( -- 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..778a9e7293 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 + parse-unit forget ] define-syntax "(" [ diff --git a/extra/help/syntax/syntax.factor b/extra/help/syntax/syntax.factor index e006a9816b..d41b72ee20 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 + parse-unit 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..fe05e5a374 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* ; + [ parse-unit pick rot set-slot parse-slots ] when* ; : TUPLE{ scan-word construct-empty parse-slots parsed ; parsing