Eliminate define-expr-item-compiler in favor of define-item-compiler.
authorChris Hanson <org/chris-hanson/cph>
Fri, 30 Mar 2018 05:59:08 +0000 (22:59 -0700)
committerChris Hanson <org/chris-hanson/cph>
Fri, 30 Mar 2018 05:59:08 +0000 (22:59 -0700)
Not sure what I was thinking when I wrote that code; it was simply wrong.

src/runtime/mit-syntax.scm
src/runtime/runtime.pkg
src/runtime/syntax-items.scm

index c4bbf827c6de190a04f68606900456162fb380d4..8273932f516aaad6cdb34fa04bf89c865c616dc1 100644 (file)
@@ -341,7 +341,7 @@ USA.
   (name access-item-name)
   (env access-item-env))
 
-(define-expr-item-compiler access-item?
+(define-item-compiler access-item?
   (lambda (item)
     (output/access-reference (access-item-name item)
                             (compile-expr-item (access-item-env item)))))
index ee753e9aafa8fa968707b3534ef14e084f5f772a..f60ca108e8e49bcb1d2b0f76c2896f9a862beb18 100644 (file)
@@ -4491,7 +4491,7 @@ USA.
          compile-expr-item
          compile-item
          constant-item
-         define-expr-item-compiler
+         define-item-compiler
          defn-item
          defn-item-id
          defn-item-syntax?
index b13ffb69b713b1cd1223cd9c48e0388091db6532..72ad5548c98222528759f0ef6368dc7e65faebf3 100644 (file)
@@ -160,13 +160,6 @@ USA.
            (list predicate)
            (if (default-object? expr-compiler) compiler expr-compiler))))))
 
-(define (define-expr-item-compiler predicate compiler)
-  (defer-boot-action 'define-item-compiler
-    (lambda ()
-      (define-predicate-dispatch-handler compile-expr-item
-       (list predicate)
-       compiler))))
-
 (define-item-compiler var-item?
   (lambda (item)
     (output/variable (var-item-id item))))
@@ -181,6 +174,11 @@ USA.
   (lambda (item)
     (output/sequence (map compile-expr-item (seq-item-elements item)))))
 
+(define (illegal-expression-compiler description)
+  (let ((message (string description " may not be used as an expression:")))
+    (lambda (item)
+      (error message item))))
+
 (define-item-compiler defn-item?
   (lambda (item)
     (let ((name (defn-item-id item))
@@ -188,14 +186,6 @@ USA.
       (if (defn-item-syntax? item)
          (output/syntax-definition name value)
          (output/definition name value))))
-  #f)
-
-(define (illegal-expression-compiler description)
-  (let ((message (string description " may not be used as an expression:")))
-    (lambda (item)
-      (error message item))))
-
-(define-expr-item-compiler defn-item?
   (illegal-expression-compiler "Definition"))
 
 (define-item-compiler reserved-name-item?