decl-item doesn't need to be distinct from expr-item.
authorChris Hanson <org/chris-hanson/cph>
Wed, 14 Feb 2018 01:37:28 +0000 (17:37 -0800)
committerChris Hanson <org/chris-hanson/cph>
Wed, 14 Feb 2018 06:12:58 +0000 (22:12 -0800)
src/runtime/mit-syntax.scm
src/runtime/runtime.pkg
src/runtime/syntax-items.scm

index 7444436ab6f987ce274e970f49b649d12b0ecbc1..e9f9147cb4572d6d665eaa2f3ffd2bf67b77bd40 100644 (file)
@@ -294,9 +294,7 @@ USA.
   (classifier->runtime
    (lambda (form senv hist)
      (syntax-check '(_ * (identifier * datum)) form)
-     (decl-item
-      (lambda ()
-       (classify-decls (cdr form) senv (hist-cdr hist)))))))
+     (decl-item (lambda () (classify-decls (cdr form) senv (hist-cdr hist)))))))
 
 (define (classify-decls decls senv hist)
   (map (lambda (decl hist)
index dfc58f02feff1de75d387a12a0b67338bfffdd42..d2f39a979a4f237e2417560add3f329e1e9a44da 100644 (file)
@@ -4452,8 +4452,6 @@ USA.
          compile-expr-item
          constant-item
          decl-item
-         decl-item-text
-         decl-item?
          define-item-compiler
          defn-item
          defn-item-id
index 56a0a8064e6693dede7dc4db3527aca9a7fe3956..c0db7aac3e1fca1fe6e65a41b58da3684e244710 100644 (file)
@@ -88,8 +88,7 @@ USA.
   (%defn-item id value #f))
 
 (define (defn-item-value? object)
-  (not (or (reserved-name-item? object)
-          (decl-item? object))))
+  (not (reserved-name-item? object)))
 (register-predicate! defn-item-value? 'defn-item-value)
 
 (define-record-type <defn-item>
@@ -134,17 +133,6 @@ USA.
     (expr-item compiler)
     expr-item?
   (compiler expr-item-compiler))
-
-;;; Declaration items represent block-scoped declarations that are to
-;;; be passed through to the compiler.
-
-(define-record-type <decl-item>
-    (decl-item text-getter)
-    decl-item?
-  (text-getter decl-item-text-getter))
-
-(define (decl-item-text item)
-  ((decl-item-text-getter item)))
 \f
 ;;;; Specific expression items
 
@@ -210,6 +198,11 @@ USA.
    (lambda ()
      (output/disjunction (map compile-expr-item items)))))
 
+(define (decl-item classify)
+  (expr-item
+   (lambda ()
+     (output/declaration (classify)))))
+
 (define (the-environment-item)
   (expr-item output/the-environment))
 
@@ -247,10 +240,6 @@ USA.
   (lambda (item)
     (output/sequence (map compile-expr-item (seq-item-elements item)))))
 
-(define-item-compiler decl-item?
-  (lambda (item)
-    (output/declaration (decl-item-text item))))
-
 (define-item-compiler defn-item?
   (lambda (item)
     (if (defn-item? item)