Factor out check for constant data into match-helper.ss
Use in parse-quasi and render-test-list-impl. Add support for keywords. svn: r3690
This commit is contained in:
parent
b42a11d12d
commit
1c46dde5dc
|
@ -25,6 +25,13 @@
|
|||
(let-syntax ([id (syntax-rules () [(id arg) (syntax/loc stx arg)])])
|
||||
e)]))
|
||||
|
||||
(define (constant-data? v)
|
||||
(or
|
||||
(string? v)
|
||||
(boolean? v)
|
||||
(char? v)
|
||||
(number? v)
|
||||
(keyword? v)))
|
||||
|
||||
|
||||
;;!(function symbol-append
|
||||
|
|
|
@ -30,10 +30,7 @@
|
|||
(syntax-case phrase (quasiquote unquote unquote-splicing)
|
||||
(p
|
||||
(let ((pat (syntax-object->datum (syntax p))))
|
||||
(or (string? pat)
|
||||
(boolean? pat)
|
||||
(char? pat)
|
||||
(number? pat)
|
||||
(or (constant-data? pat)
|
||||
(dot-dot-k? pat)))
|
||||
(syntax p))
|
||||
(p
|
||||
|
|
|
@ -200,11 +200,7 @@
|
|||
|
||||
;; This recognizes constants such strings
|
||||
[pt
|
||||
(let ([pt (syntax-e #'pt)])
|
||||
(or (string? pt)
|
||||
(boolean? pt)
|
||||
(char? pt)
|
||||
(number? pt)))
|
||||
(constant-data? (syntax-e #'pt))
|
||||
(list
|
||||
(reg-test
|
||||
`(equal? ,(syntax-object->datum ae)
|
||||
|
|
Loading…
Reference in New Issue
Block a user