From ba0ecf3ce1a894941ba570d5b4127f45364dca1a Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sun, 13 Jan 2008 04:07:04 -0500 Subject: [PATCH] Remove extra/visitor now that we have extra/multi-methods --- extra/visitor/authors.txt | 1 - extra/visitor/summary.txt | 1 - extra/visitor/tags.txt | 1 - extra/visitor/visitor-tests.factor | 18 --------- extra/visitor/visitor.factor | 63 ------------------------------ 5 files changed, 84 deletions(-) delete mode 100644 extra/visitor/authors.txt delete mode 100644 extra/visitor/summary.txt delete mode 100644 extra/visitor/tags.txt delete mode 100644 extra/visitor/visitor-tests.factor delete mode 100644 extra/visitor/visitor.factor diff --git a/extra/visitor/authors.txt b/extra/visitor/authors.txt deleted file mode 100644 index f990dd0ed2..0000000000 --- a/extra/visitor/authors.txt +++ /dev/null @@ -1 +0,0 @@ -Daniel Ehrenberg diff --git a/extra/visitor/summary.txt b/extra/visitor/summary.txt deleted file mode 100644 index 3093ae9a9c..0000000000 --- a/extra/visitor/summary.txt +++ /dev/null @@ -1 +0,0 @@ -Double-dispatch generic words diff --git a/extra/visitor/tags.txt b/extra/visitor/tags.txt deleted file mode 100644 index f4274299b1..0000000000 --- a/extra/visitor/tags.txt +++ /dev/null @@ -1 +0,0 @@ -extensions diff --git a/extra/visitor/visitor-tests.factor b/extra/visitor/visitor-tests.factor deleted file mode 100644 index 8248affaf7..0000000000 --- a/extra/visitor/visitor-tests.factor +++ /dev/null @@ -1,18 +0,0 @@ -USING: visitor math sequences math.parser strings tools.test kernel ; - -VISITOR: ++ ( object object -- object ) -! acts like +, coercing string arguments to a number, unless both arguments are strings, in which case it appends them - -V: number string ++ - string>number + ; -V: string number ++ - >r string>number r> + ; -V: number number ++ - + ; -V: string string ++ - append ; - -[ 3 ] [ 1 2 ++ ] unit-test -[ 3 ] [ "1" 2 ++ ] unit-test -[ 3 ] [ 1 "2" ++ ] unit-test -[ "12" ] [ "1" "2" ++ ] unit-test diff --git a/extra/visitor/visitor.factor b/extra/visitor/visitor.factor deleted file mode 100644 index 10c9fb8717..0000000000 --- a/extra/visitor/visitor.factor +++ /dev/null @@ -1,63 +0,0 @@ -USING: kernel generic.standard syntax words parser assocs -generic quotations sequences effects arrays classes definitions -prettyprint sorting prettyprint.backend shuffle ; -IN: visitor - -: define-visitor ( word -- ) - dup dup reset-word define-simple-generic - dup H{ } clone "visitor-methods" set-word-prop - H{ } clone "visitors" set-word-prop ; - -: VISITOR: - CREATE define-visitor ; parsing - -: record-visitor ( top-class generic method-word -- ) - swap "visitors" word-prop swapd set-at ; - -: define-1generic ( word -- ) - 1 define-generic ; - -: copy-effect ( from to -- ) - swap stack-effect "declared-effect" set-word-prop ; - -: new-vmethod ( method bottom-class top-class generic -- ) - gensym dup define-1generic - 2dup copy-effect - 3dup 1quotation -rot define-method - [ record-visitor ] keep - define-method ; - -: define-visitor-method ( method bottom-class top-class generic -- ) - 4dup >r 2array r> "visitor-methods" word-prop set-at - 2dup "visitors" word-prop at - [ nip define-method ] [ new-vmethod ] ?if ; - -: V: - ! syntax: V: bottom-class top-class generic body... ; - f set-word scan-word scan-word scan-word - parse-definition -roll define-visitor-method ; parsing - -! see instance: -! see must be redone because "methods" doesn't show methods - -PREDICATE: standard-generic visitor "visitors" word-prop ; -PREDICATE: array triple length 3 = ; -PREDICATE: triple visitor-spec - first3 visitor? >r [ class? ] both? r> and ; - -M: visitor-spec definer drop \ V: \ ; ; -M: visitor definer drop \ VISITOR: f ; - -M: visitor-spec synopsis* - ! same as method-spec#synopsis* - dup definer drop pprint-word - [ pprint-word ] each ; - -M: visitor-spec definition - first3 >r 2array r> "visitor-methods" word-prop at ; - -M: visitor see - dup (see) - dup see-class - dup "visitor-methods" word-prop keys natural-sort swap - [ >r first2 r> 3array ] curry map see-all ;