tests
parent
eb98d107f3
commit
48226fa7c9
@ -0,0 +1,7 @@
|
||||
#lang brag
|
||||
;; test the curly quantifier
|
||||
start : a-rule | b-rule | c-rule | d-rule
|
||||
a-rule : "a"{2} ; exactly 2
|
||||
b-rule : "b"{,2} ; up to 2
|
||||
c-rule : "c"{2,} ; 2 or more
|
||||
d-rule : "d"{2,3} ; 2 or 3
|
@ -0,0 +1,23 @@
|
||||
#lang racket/base
|
||||
(require brag/examples/curly-quantifier
|
||||
brag/support
|
||||
rackunit)
|
||||
|
||||
(check-exn exn:fail:parsing? (λ () (parse-to-datum "a")))
|
||||
(check-equal? (parse-to-datum "aa") '(start (a-rule "a" "a")))
|
||||
(check-exn exn:fail:parsing? (λ () (parse-to-datum "aaa")))
|
||||
|
||||
(check-equal? (parse-to-datum "") '(start (b-rule)))
|
||||
(check-equal? (parse-to-datum "b") '(start (b-rule "b")))
|
||||
(check-equal? (parse-to-datum "bb") '(start (b-rule "b" "b")))
|
||||
(check-exn exn:fail:parsing? (λ () (parse-to-datum "bbb")))
|
||||
|
||||
(check-exn exn:fail:parsing? (λ () (parse-to-datum "c")))
|
||||
(check-equal? (parse-to-datum "cc") '(start (c-rule "c" "c")))
|
||||
(check-equal? (parse-to-datum "ccc") '(start (c-rule "c" "c" "c")))
|
||||
(check-equal? (parse-to-datum "cccc") '(start (c-rule "c" "c" "c" "c")))
|
||||
|
||||
(check-exn exn:fail:parsing? (λ () (parse-to-datum "d")))
|
||||
(check-equal? (parse-to-datum "dd") '(start (d-rule "d" "d")))
|
||||
(check-equal? (parse-to-datum "ddd") '(start (d-rule "d" "d" "d")))
|
||||
(check-exn exn:fail:parsing? (λ () (parse-to-datum "dddd")))
|
Loading…
Reference in New Issue