original commit: 149dac58f93e8d3293c64230009d8201b56b96b4
This commit is contained in:
Matthew Flatt 2001-05-09 15:29:19 +00:00
parent 3d6089d41c
commit 1dd2172dd3
2 changed files with 23 additions and 4 deletions

View File

@ -227,13 +227,13 @@
(map
(lambda (c)
(syntax-case c (=>)
[(p (=> i) e)
[(p (=> i) e e1 ...)
`(,(:ucall parse-pattern (syntax p))
(=> ,(syntax i))
,(syntax e))]
[(p e)
,@(syntax->list (syntax (e e1 ...))))]
[(p e e1 ...)
`(,(:ucall parse-pattern (syntax p))
,(syntax e))]
,@(syntax->list (syntax (e e1 ...))))]
[_else
(match:syntax-err
c

View File

@ -7,8 +7,11 @@
read-from-string-all
expr->string
newline-string
string->literal-regexp-string
regexp-match-exact?)
(require (lib "etc.ss"))
(define make-string-do!
(lambda (translate)
(lambda (s)
@ -103,6 +106,22 @@
(define newline-string (string #\newline))
(define string->literal-regexp-string
(opt-lambda (s [case-sens? #t])
(list->string
(apply
append
(map
(lambda (c)
(cond
[(memq c '(#\$ #\| #\\ #\[ #\] #\. #\* #\? #\+ #\( #\) #\^))
(list #\\ c)]
[(and (char-alphabetic? c)
(not case-sens?))
(list #\[ (char-upcase c) (char-downcase c) #\])]
[else (list c)]))
(string->list s))))))
(define regexp-match-exact?
(lambda (p s)
(let ([m (regexp-match p s)])