|
|
@ -159,27 +159,25 @@
|
|
|
|
;; and by "now", I mean it's been broken since before we
|
|
|
|
;; and by "now", I mean it's been broken since before we
|
|
|
|
;; moved to git.
|
|
|
|
;; moved to git.
|
|
|
|
(module+ test
|
|
|
|
(module+ test
|
|
|
|
(check-equal? (parse #'#\a null) #\a)
|
|
|
|
(check-equal? (parse #'#\a) #\a)
|
|
|
|
(check-equal? (parse #'"1" null) "1")
|
|
|
|
(check-equal? (parse #'"1") "1")
|
|
|
|
(check-equal? (parse #'(repetition 1 1 #\1) null)
|
|
|
|
(check-equal? (parse #'(repetition 1 1 #\1))
|
|
|
|
'(repetition 1 1 #\1))
|
|
|
|
'(repetition 1 1 #\1))
|
|
|
|
(check-equal? (parse #'(repetition 0 +inf.0 #\1) null) '(repetition 0 +inf.0 #\1))
|
|
|
|
(check-equal? (parse #'(repetition 0 +inf.0 #\1)) '(repetition 0 +inf.0 #\1))
|
|
|
|
(check-equal? (parse #'(union #\1 (union "2") (union)) null)
|
|
|
|
(check-equal? (parse #'(union #\1 (union "2") (union)))
|
|
|
|
'(union #\1 (union "2") (union)))
|
|
|
|
'(union #\1 (union "2") (union)))
|
|
|
|
(check-equal? (parse #'(intersection #\1 (intersection "2") (intersection))
|
|
|
|
(check-equal? (parse #'(intersection #\1 (intersection "2") (intersection)))
|
|
|
|
null)
|
|
|
|
|
|
|
|
'(intersection #\1 (intersection "2") (intersection)))
|
|
|
|
'(intersection #\1 (intersection "2") (intersection)))
|
|
|
|
(check-equal? (parse #'(complement (union #\1 #\2))
|
|
|
|
(check-equal? (parse #'(complement (union #\1 #\2)))
|
|
|
|
null)
|
|
|
|
|
|
|
|
'(complement (union #\1 #\2)))
|
|
|
|
'(complement (union #\1 #\2)))
|
|
|
|
(check-equal? (parse #'(concatenation "1" "2" (concatenation)) null)
|
|
|
|
(check-equal? (parse #'(concatenation "1" "2" (concatenation)))
|
|
|
|
'(concatenation "1" "2" (concatenation)))
|
|
|
|
'(concatenation "1" "2" (concatenation)))
|
|
|
|
(check-equal? (parse #'(char-range "1" #\1) null) '(char-range #\1 #\1))
|
|
|
|
(check-equal? (parse #'(char-range "1" #\1)) '(char-range #\1 #\1))
|
|
|
|
(check-equal? (parse #'(char-range #\1 "1") null) '(char-range #\1 #\1))
|
|
|
|
(check-equal? (parse #'(char-range #\1 "1")) '(char-range #\1 #\1))
|
|
|
|
(check-equal? (parse #'(char-range "1" "3") null) '(char-range #\1 #\3))
|
|
|
|
(check-equal? (parse #'(char-range "1" "3")) '(char-range #\1 #\3))
|
|
|
|
(check-equal? (parse #'(char-complement (union "1" "2")) null)
|
|
|
|
(check-equal? (parse #'(char-complement (union "1" "2")))
|
|
|
|
'(char-complement (union "1" "2")))
|
|
|
|
'(char-complement (union "1" "2")))
|
|
|
|
(check-equal? (parse #'(char-complement (repetition 1 1 "1")) null)
|
|
|
|
(check-equal? (parse #'(char-complement (repetition 1 1 "1")))
|
|
|
|
'(char-complement (repetition 1 1 "1")))
|
|
|
|
'(char-complement (repetition 1 1 "1")))
|
|
|
|
(check-exn #rx"not a character set"
|
|
|
|
(check-exn #rx"not a character set"
|
|
|
|
(λ () (parse #'(char-complement (repetition 6 6 "1")) null))))
|
|
|
|
(λ () (parse #'(char-complement (repetition 6 6 "1"))))))
|
|
|
|