Remove runtime dependency on rackunit

remotes/jackfirth/master
Jack Firth 3 years ago
parent e7415fc690
commit dbebeb54d8

@ -10,12 +10,12 @@
(define deps '(["base" #:version "6.3"] (define deps '(["base" #:version "6.3"]
"rackunit-lib"
"syntax-color-lib")) "syntax-color-lib"))
(define build-deps '("at-exp-lib" (define build-deps '("at-exp-lib"
"racket-doc" "racket-doc"
"rackunit-lib"
"scribble-lib" "scribble-lib"
"syntax-color-doc")) "syntax-color-doc"))

@ -1,9 +1,12 @@
#lang racket/base #lang racket/base
(require (for-syntax racket/base)
(module+ test
(require (for-syntax racket/base)
yaragg/parser-tools/lex yaragg/parser-tools/lex
rackunit) rackunit)
(define-syntax (catch-syn-error stx) (define-syntax (catch-syn-error stx)
(syntax-case stx () (syntax-case stx ()
[(_ arg) [(_ arg)
(datum->syntax (datum->syntax
@ -12,36 +15,36 @@
(syntax-local-expand-expression #'arg) (syntax-local-expand-expression #'arg)
"not-an-error"))])) "not-an-error"))]))
(check-regexp-match #rx"lex-abbrev" (catch-syn-error (define-lex-abbrev))) (check-regexp-match #rx"lex-abbrev" (catch-syn-error (define-lex-abbrev)))
(check-regexp-match #rx"lex-abbrev" (catch-syn-error (define-lex-abbrev a))) (check-regexp-match #rx"lex-abbrev" (catch-syn-error (define-lex-abbrev a)))
(check-regexp-match #rx"lex-abbrev" (catch-syn-error (define-lex-abbrev (a b) v))) (check-regexp-match #rx"lex-abbrev" (catch-syn-error (define-lex-abbrev (a b) v)))
(check-regexp-match #rx"lex-abbrev" (catch-syn-error (define-lex-abbrev 1 1))) (check-regexp-match #rx"lex-abbrev" (catch-syn-error (define-lex-abbrev 1 1)))
(check-regexp-match #rx"lex-abbrevs" (catch-syn-error (define-lex-abbrevs ()))) (check-regexp-match #rx"lex-abbrevs" (catch-syn-error (define-lex-abbrevs ())))
(check-regexp-match #rx"lex-trans" (catch-syn-error (define-lex-trans))) (check-regexp-match #rx"lex-trans" (catch-syn-error (define-lex-trans)))
(check-regexp-match #rx"lexer" (catch-syn-error (lexer))) (check-regexp-match #rx"lexer" (catch-syn-error (lexer)))
(check-regexp-match #rx"lexer" (catch-syn-error (lexer ("a" "b" "c")))) (check-regexp-match #rx"lexer" (catch-syn-error (lexer ("a" "b" "c"))))
(check-regexp-match #rx"lexer" (catch-syn-error (lexer ()))) (check-regexp-match #rx"lexer" (catch-syn-error (lexer ())))
(check-regexp-match #rx"lexer" (catch-syn-error (lexer ("")))) (check-regexp-match #rx"lexer" (catch-syn-error (lexer (""))))
(check-regexp-match #rx"regular-expression" (catch-syn-error (lexer (a 1)))) (check-regexp-match #rx"regular-expression" (catch-syn-error (lexer (a 1))))
(check-regexp-match #rx"regular-expression" (catch-syn-error (lexer ((a) 1)))) (check-regexp-match #rx"regular-expression" (catch-syn-error (lexer ((a) 1))))
(check-regexp-match #rx"regular-expression" (catch-syn-error (let ((a 1)) (lexer ((a) 1))))) (check-regexp-match #rx"regular-expression" (catch-syn-error (let ((a 1)) (lexer ((a) 1)))))
(check-regexp-match #rx"regular-expression" (check-regexp-match #rx"regular-expression"
(catch-syn-error (let-syntax ((a 1)) (catch-syn-error (let-syntax ((a 1))
(lexer ((a) 1))))) (lexer ((a) 1)))))
(check-regexp-match #rx"define-lex-trans" (check-regexp-match #rx"define-lex-trans"
(catch-syn-error (catch-syn-error
(let () (let ()
(define-lex-trans a 1) (define-lex-trans a 1)
(let () (let ()
(lexer ((a) 1)))))) (lexer ((a) 1))))))
;; Detecting mutual recursion cycle: ;; Detecting mutual recursion cycle:
(check-regexp-match #rx"regular-expression" (check-regexp-match #rx"regular-expression"
(catch-syn-error (catch-syn-error
(let () (let ()
(define-lex-abbrev a b) (define-lex-abbrev a b)
@ -49,7 +52,7 @@
(let () (let ()
(lexer (a 1)))))) (lexer (a 1))))))
(check-regexp-match #rx"regular-expression" (check-regexp-match #rx"regular-expression"
(catch-syn-error (catch-syn-error
(let () (let ()
(define-lex-abbrev a (repetition 0 1 b)) (define-lex-abbrev a (repetition 0 1 b))
@ -57,8 +60,8 @@
(let () (let ()
(lexer (a 1)))))) (lexer (a 1))))))
;; Detecting cycle within same abbreviation: ;; Detecting cycle within same abbreviation:
(check-regexp-match #rx"regular-expression" (check-regexp-match #rx"regular-expression"
(catch-syn-error (catch-syn-error
(let () (let ()
(define-lex-abbrev balanced (define-lex-abbrev balanced
@ -69,13 +72,14 @@
[(eof) ""])))) [(eof) ""]))))
(check-regexp-match #rx"regular-expression" (catch-syn-error (lexer (1 1)))) (check-regexp-match #rx"regular-expression" (catch-syn-error (lexer (1 1))))
(check-regexp-match #rx"repetition" (catch-syn-error (lexer ((repetition) 1)))) (check-regexp-match #rx"repetition" (catch-syn-error (lexer ((repetition) 1))))
(check-regexp-match #rx"repetition" (catch-syn-error (lexer ((repetition #\1 #\1 "3") 1)))) (check-regexp-match #rx"repetition" (catch-syn-error (lexer ((repetition #\1 #\1 "3") 1))))
(check-regexp-match #rx"repetition" (catch-syn-error (lexer ((repetition 1 #\1 "3") 1)))) (check-regexp-match #rx"repetition" (catch-syn-error (lexer ((repetition 1 #\1 "3") 1))))
(check-regexp-match #rx"repetition" (catch-syn-error (lexer ((repetition 1 0 "3") 1)))) (check-regexp-match #rx"repetition" (catch-syn-error (lexer ((repetition 1 0 "3") 1))))
(check-regexp-match #rx"complement" (catch-syn-error (lexer ((complement) 1)))) (check-regexp-match #rx"complement" (catch-syn-error (lexer ((complement) 1))))
(check-regexp-match #rx"char-range" (catch-syn-error (lexer ((char-range) 1)))) (check-regexp-match #rx"char-range" (catch-syn-error (lexer ((char-range) 1))))
(check-regexp-match #rx"char-range" (catch-syn-error (lexer ((char-range #\9 #\0) 1)))) (check-regexp-match #rx"char-range" (catch-syn-error (lexer ((char-range #\9 #\0) 1))))
(check-regexp-match #rx"char-complement" (catch-syn-error (lexer ((char-complement) 1)))) (check-regexp-match #rx"char-complement" (catch-syn-error (lexer ((char-complement) 1))))
(check-regexp-match #rx"char-complement" (catch-syn-error (lexer ((char-complement (concatenation "1" "2")) 1)))) (check-regexp-match #rx"char-complement"
(catch-syn-error (lexer ((char-complement (concatenation "1" "2")) 1)))))

Loading…
Cancel
Save