From 9a22d35cb712bb7cb467e79658859a545d732bf0 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Sat, 23 Mar 2013 16:05:14 -0700 Subject: [PATCH] words: Change word -> last-word, set-word -> set-last-word. --- basis/alien/parser/parser.factor | 2 +- basis/bootstrap/image/image.factor | 2 +- basis/functors/backend/backend.factor | 8 ++++---- basis/functors/functors.factor | 4 ++-- basis/typed/typed.factor | 2 +- core/classes/parser/parser.factor | 2 +- core/generic/parser/parser.factor | 4 ++-- core/parser/parser.factor | 2 +- core/syntax/syntax.factor | 16 ++++++++-------- core/words/words-docs.factor | 6 +++--- core/words/words-tests.factor | 2 +- core/words/words.factor | 11 +++++++++-- extra/multi-methods/multi-methods.factor | 2 +- 13 files changed, 35 insertions(+), 28 deletions(-) diff --git a/basis/alien/parser/parser.factor b/basis/alien/parser/parser.factor index e3c33a3ba0..e2d93ee4ad 100755 --- a/basis/alien/parser/parser.factor +++ b/basis/alien/parser/parser.factor @@ -61,7 +61,7 @@ ERROR: *-in-c-type-name name ; : (CREATE-C-TYPE) ( word -- word ) validate-c-type-name current-vocab create { [ fake-definition ] - [ set-word ] + [ set-last-word ] [ reset-c-type ] [ ] } cleave ; diff --git a/basis/bootstrap/image/image.factor b/basis/bootstrap/image/image.factor index d883109507..0e9946b449 100755 --- a/basis/bootstrap/image/image.factor +++ b/basis/bootstrap/image/image.factor @@ -566,7 +566,7 @@ M: quotation ' fixup-header "Image length: " write image get length . "Object cache size: " write objects get assoc-size . - \ word global delete-at + \ last-word-symbol global delete-at image get ; ! Image output diff --git a/basis/functors/backend/backend.factor b/basis/functors/backend/backend.factor index 1528053f5f..834092d13a 100644 --- a/basis/functors/backend/backend.factor +++ b/basis/functors/backend/backend.factor @@ -25,13 +25,13 @@ SYNTAX: FUNCTOR-SYNTAX: : scan-c-type-param ( -- c-type/param ) scan-token dup "{" = [ drop \ } parse-until >array ] [ >string-param ] if ; -: define* ( word def -- ) over set-word define ; +: define* ( word def -- ) over set-last-word define ; : define-declared* ( word def effect -- ) - pick set-word define-declared ; + pick set-last-word define-declared ; : define-simple-generic* ( word effect -- ) - over set-word define-simple-generic ; + over set-last-word define-simple-generic ; : define-tuple-class* ( class superclass slots -- ) - pick set-word define-tuple-class ; + pick set-last-word define-tuple-class ; diff --git a/basis/functors/functors.factor b/basis/functors/functors.factor index 1aea9fa7ed..904a22d448 100644 --- a/basis/functors/functors.factor +++ b/basis/functors/functors.factor @@ -64,7 +64,7 @@ FUNCTOR-SYNTAX: TUPLE: \ define-tuple-class* suffix! ; FUNCTOR-SYNTAX: final - [ word make-final ] append! ; + [ last-word make-final ] append! ; FUNCTOR-SYNTAX: SINGLETON: scan-param suffix! @@ -117,7 +117,7 @@ FUNCTOR-SYNTAX: MACRO: parse-declared* \ define-macro suffix! ; -FUNCTOR-SYNTAX: inline [ word make-inline ] append! ; +FUNCTOR-SYNTAX: inline [ last-word make-inline ] append! ; FUNCTOR-SYNTAX: call-next-method T{ fake-call-next-method } suffix! ; diff --git a/basis/typed/typed.factor b/basis/typed/typed.factor index a658fbf44b..1a368c9446 100644 --- a/basis/typed/typed.factor +++ b/basis/typed/typed.factor @@ -154,7 +154,7 @@ PRIVATE> : define-typed ( word def effect -- ) [ [ 2drop ] [ typed-def ] [ 2nip ] 3tri define-inline ] [ drop "typed-def" set-word-prop ] - [ 2drop "typed-word" word-prop \ word set-global ] 3tri ; + [ 2drop "typed-word" word-prop set-last-word ] 3tri ; SYNTAX: TYPED: (:) define-typed ; diff --git a/core/classes/parser/parser.factor b/core/classes/parser/parser.factor index dc69b64268..568c49065f 100644 --- a/core/classes/parser/parser.factor +++ b/core/classes/parser/parser.factor @@ -9,7 +9,7 @@ IN: classes.parser : create-class-in ( string -- word ) current-vocab create dup t "defining-class" set-word-prop - dup set-word + dup set-last-word dup save-class-location dup create-predicate-word save-location ; diff --git a/core/generic/parser/parser.factor b/core/generic/parser/parser.factor index f781a92e02..53baf6b6c3 100644 --- a/core/generic/parser/parser.factor +++ b/core/generic/parser/parser.factor @@ -12,7 +12,7 @@ ERROR: not-in-a-method-error ; [ scan-new-generic ] dip call scan-effect define-generic ; inline : create-method-in ( class generic -- method ) - create-method dup set-word dup save-location ; + create-method dup set-last-word dup save-location ; : define-inline-method ( class generic quot -- ) [ create-method-in ] dip [ define ] [ drop make-inline ] 2bi ; @@ -38,7 +38,7 @@ SYMBOL: current-method ERROR: bad-method-effect ; : check-method-effect ( effect -- ) - word generic-effect method-effect= [ bad-method-effect ] unless ; + last-word generic-effect method-effect= [ bad-method-effect ] unless ; : ?execute-parsing ( word/number -- seq ) dup parsing-word? diff --git a/core/parser/parser.factor b/core/parser/parser.factor index 9444b117b3..a212868dd3 100644 --- a/core/parser/parser.factor +++ b/core/parser/parser.factor @@ -18,7 +18,7 @@ IN: parser M: parsing-word stack-effect drop ( parsed -- parsed ) ; : create-in ( str -- word ) - current-vocab create dup set-word dup save-location ; + current-vocab create dup set-last-word dup save-location ; SYMBOL: auto-use? diff --git a/core/syntax/syntax.factor b/core/syntax/syntax.factor index 0eaece8a9d..66b2428d6d 100644 --- a/core/syntax/syntax.factor +++ b/core/syntax/syntax.factor @@ -105,12 +105,12 @@ IN: bootstrap.syntax "POSTPONE:" [ scan-word suffix! ] define-core-syntax "\\" [ scan-word suffix! ] define-core-syntax "M\\" [ scan-word scan-word lookup-method suffix! ] define-core-syntax - "inline" [ word make-inline ] define-core-syntax - "recursive" [ word make-recursive ] define-core-syntax - "foldable" [ word make-foldable ] define-core-syntax - "flushable" [ word make-flushable ] define-core-syntax - "delimiter" [ word t "delimiter" set-word-prop ] define-core-syntax - "deprecated" [ word make-deprecated ] define-core-syntax + "inline" [ last-word make-inline ] define-core-syntax + "recursive" [ last-word make-recursive ] define-core-syntax + "foldable" [ last-word make-foldable ] define-core-syntax + "flushable" [ last-word make-flushable ] define-core-syntax + "delimiter" [ last-word t "delimiter" set-word-prop ] define-core-syntax + "deprecated" [ last-word make-deprecated ] define-core-syntax "SYNTAX:" [ scan-new-word parse-definition define-syntax @@ -136,7 +136,7 @@ IN: bootstrap.syntax "DEFER:" [ scan-token current-vocab create - [ fake-definition ] [ set-word ] [ undefined-def define ] tri + [ fake-definition ] [ set-last-word ] [ undefined-def define ] tri ] define-core-syntax "ALIAS:" [ @@ -206,7 +206,7 @@ IN: bootstrap.syntax ] define-core-syntax "final" [ - word make-final + last-word make-final ] define-core-syntax "SLOT:" [ diff --git a/core/words/words-docs.factor b/core/words/words-docs.factor index 5e313a859b..3f5dca6d2e 100644 --- a/core/words/words-docs.factor +++ b/core/words/words-docs.factor @@ -268,14 +268,14 @@ HELP: gensym HELP: bootstrapping? { $var-description "Set by the library while bootstrap is in progress. Some parsing words need to behave differently during bootstrap." } ; -HELP: word +HELP: last-word { $values { "word" word } } { $description "Outputs the most recently defined word." } { $class-description "The class of words. One notable subclass is " { $link class } ", the class of class words." } ; -{ word set-word save-location } related-words +{ last-word set-last-word save-location } related-words -HELP: set-word +HELP: set-last-word { $values { "word" word } } { $description "Sets the recently defined word." } ; diff --git a/core/words/words-tests.factor b/core/words/words-tests.factor index 2b707bc3bf..60673c6c7e 100644 --- a/core/words/words-tests.factor +++ b/core/words/words-tests.factor @@ -80,7 +80,7 @@ DEFER: deferred [ f ] [ "no-loc-2" "words.tests" lookup-word where ] unit-test [ ] [ "IN: words.tests : test-last ( -- ) ;" eval( -- ) ] unit-test -[ "test-last" ] [ word name>> ] unit-test +[ "test-last" ] [ last-word name>> ] unit-test "undef-test" "words.tests" lookup-word [ [ forget ] with-compilation-unit diff --git a/core/words/words.factor b/core/words/words.factor index 56ef998d7d..398e428863 100644 --- a/core/words/words.factor +++ b/core/words/words.factor @@ -11,9 +11,16 @@ BUILTIN: word { def quotation initial: [ ] } props pic-def pic-tail-def { sub-primitive read-only } ; -: word ( -- word ) \ word get-global ; +! Need a dummy word here because BUILTIN: word is not a real word +! and parse-datum looks for things that are actually words instead of +! also looking for classes +: word ( -- * ) "dummy word" throw ; -: set-word ( word -- ) \ word set-global ; +SYMBOL: last-word-symbol + +: last-word ( -- word ) \ last-word-symbol get-global ; + +: set-last-word ( word -- ) \ last-word-symbol set-global ; M: word execute (execute) ; diff --git a/extra/multi-methods/multi-methods.factor b/extra/multi-methods/multi-methods.factor index 1a0a80073a..a22bd6f490 100644 --- a/extra/multi-methods/multi-methods.factor +++ b/extra/multi-methods/multi-methods.factor @@ -230,7 +230,7 @@ SYNTAX: GENERIC: scan-new-word scan-effect define-generic ; parse-definition [ 2 tail ] [ second ] [ first ] tri ; : create-method-in ( specializer generic -- method ) - create-method dup save-location f set-word ; + create-method dup save-location f set-last-word ; : scan-new-method ( -- method ) scan-word scan-object swap create-method-in ;