.
original commit: 149dac58f93e8d3293c64230009d8201b56b96b4
This commit is contained in:
parent
3d6089d41c
commit
1dd2172dd3
|
@ -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
|
||||
|
|
|
@ -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)])
|
||||
|
|
Loading…
Reference in New Issue
Block a user