Update of /cvsroot/wisp/wisp/modules
In directory usw-pr-cvs1:/tmp/cvs-serv642/modules
Modified Files:
regex.wim
Log Message:
Implemented the #/.../ regex syntax.
Index: regex.wim
===================================================================
RCS file: /cvsroot/wisp/wisp/modules/regex.wim,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -d -r1.51 -r1.52
--- regex.wim 26 Aug 2002 16:14:54 -0000 1.51
+++ regex.wim 4 Sep 2002 14:39:08 -0000 1.52
@@ -12,8 +12,14 @@
(use lists strings)
(export
- regex-match regex-match-positions regex-parse regex-replace
- regex-replace* regex-split)
+ regex regex-match regex-match-positions regex-parse regex-replace
+ regex-replace* regex-split regex-template)
+
+(defmacro (regex s)
+ `(regex-parse ,s))
+
+(defmacro (regex-template . data)
+ `(regex-parse (string-template . ,data)))
;pregexp.scm
;Portable regular expressions for Scheme
@@ -124,15 +130,13 @@
(and (< (+ i 1) n)
(my c s[(+ i 1)]
(case c
+ ; FIXME: replace \b by \< and \>
((#\b) (list ':wbdry (+ i 2)))
((#\B) (list ':not-wbdry (+ i 2)))
((#\d) (list ':digit (+ i 2)))
((#\D) (list `(:neg-char :digit) (+ i 2)))
- ((#\n) (list #\newline (+ i 2)))
- ((#\r) (list #\return (+ i 2)))
((#\s) (list ':space (+ i 2)))
((#\S) (list `(:neg-char :space) (+ i 2)))
- ((#\t) (list #\tab (+ i 2)))
((#\w) (list ':word (+ i 2)))
((#\W) (list `(:neg-char :word) (+ i 2)))
(else (list c (+ i 2)))))))
|