From 6071787e520382565cfc0e476d0a59f83e4026fa Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 11 Nov 2005 21:38:26 +0000 Subject: [PATCH] %var-ref to kercase svn: r1289 --- collects/compiler/private/to-core.ss | 1 - collects/compiler/src2src.ss | 5 +++++ collects/errortrace/stacktrace.ss | 4 ++++ collects/syntax/kerncase.ss | 6 ++++-- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/collects/compiler/private/to-core.ss b/collects/compiler/private/to-core.ss index bf813c2eda..f548008b1b 100644 --- a/collects/compiler/private/to-core.ss +++ b/collects/compiler/private/to-core.ss @@ -370,7 +370,6 @@ (quasisyntax/loc stx (set! x #,(loop #'e))) (quasisyntax/loc stx (#,set-stx #,id #,(add-identifier/pos (apply-certs certs #'x) li trans?) #,(loop #'e))))] - #; [(#%variable-reference e) (add-literal stx li)] [(if e ...) diff --git a/collects/compiler/src2src.ss b/collects/compiler/src2src.ss index f3c32cf189..e2eb0aa0ee 100644 --- a/collects/compiler/src2src.ss +++ b/collects/compiler/src2src.ss @@ -1657,6 +1657,8 @@ b)) var))) + (define dummy 'dummy) ; for #%variable-reference + (define (make-parse top?) (lambda (stx env trans? in-module? tables) (kernel-syntax-case stx trans? @@ -1673,6 +1675,9 @@ [(#%datum . val) (make-object constant% (syntax-object->datum (syntax val)) stx)] + [(#%variable-reference . val) + (make-object constant% (#%variable-reference dummy) stx)] + [(define-values names rhs) (make-object variable-def% (syntax->list (syntax names)) diff --git a/collects/errortrace/stacktrace.ss b/collects/errortrace/stacktrace.ss index cb80920dc3..f1e34b8676 100644 --- a/collects/errortrace/stacktrace.ss +++ b/collects/errortrace/stacktrace.ss @@ -152,6 +152,7 @@ [(quote-syntax _) (syntax (begin e expr))] [(#%datum . d) (syntax (begin e expr))] [(#%top . d) (syntax (begin e expr))] + [(#%variable-reference . d) (syntax (begin e expr))] ;; No tail effect, and we want to account for the time [(lambda . _) (syntax (begin0 expr e))] @@ -349,6 +350,9 @@ [(#%datum . _) ;; no error possible expr] + [(#%variable-reference . _) + ;; no error possible + expr] ;; Can't put annotation on the outside [(define-values names rhs) diff --git a/collects/syntax/kerncase.ss b/collects/syntax/kerncase.ss index b71924c3b1..130f7a7ccc 100644 --- a/collects/syntax/kerncase.ss +++ b/collects/syntax/kerncase.ss @@ -18,7 +18,8 @@ if #%app define-values define-syntaxes define-values-for-syntax module #%plain-module-begin require provide - require-for-syntax require-for-template)) + require-for-syntax require-for-template + #%variable-reference)) (if trans? module-transformer-identifier=? module-identifier=?) clause ...))]))) @@ -41,7 +42,8 @@ with-continuation-mark #%app #%top - #%datum))) + #%datum + #%variable-reference))) (provide kernel-syntax-case kernel-form-identifier-list))