commit 1329bb13fbb3b34842c882f32f5aa6134e03623f
parent 139cc91b33fe111025d28e3a77b90b3f23046691
Author: Ryan Culpepper <ryanc@racket-lang.org>
Date: Fri, 4 Feb 2011 15:35:51 -0700
fixed macro stepper bug
Merge to release branch
original commit: 2c1d49de6f4b10f8ea921a5c6fc03729c72878d4
Diffstat:
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/collects/macro-debugger/model/reductions.rkt b/collects/macro-debugger/model/reductions.rkt
@@ -1,5 +1,6 @@
#lang racket/base
(require racket/match
+ (for-syntax racket/base)
"../util/eomap.rkt"
"stx-util.rkt"
"deriv-util.rkt"
@@ -34,9 +35,16 @@
;; Syntax
-(define-syntax-rule (match/count x . clauses)
+(define-syntax-rule (match/count x clause ...)
(begin (sequence-number (add1 (sequence-number)))
- (match x . clauses)))
+ (let ([v x])
+ (match v
+ clause ...
+ [_ (error 'match "failed to match ~e at line ~s" v (line-of x))]))))
+
+(define-syntax (line-of stx)
+ (syntax-case stx ()
+ [(line-of x) #`(quote #,(syntax-line #'x))]))
;; Derivations => Steps
@@ -472,7 +480,10 @@
;; Add remark step?
]]
[(struct local-remark (contents))
- (R [#:reductions (list (walk/talk 'remark contents))])]))
+ (R [#:reductions (list (walk/talk 'remark contents))])]
+
+ [#f
+ (R)]))
;; List : ListDerivation -> RST
(define (List ld)