.
original commit: 9b6b93be97c191067910db25203a1fce399b64ca
This commit is contained in:
parent
9fd02853e3
commit
6d3eb03530
38
collects/tests/mzscheme/awk.ss
Normal file
38
collects/tests/mzscheme/awk.ss
Normal file
|
@ -0,0 +1,38 @@
|
|||
|
||||
(load-relative "loadtest.ss")
|
||||
|
||||
(SECTION 'awk)
|
||||
|
||||
(require (lib "awk.ss"))
|
||||
|
||||
(define-syntax (test-awk stx)
|
||||
(syntax-case stx ()
|
||||
[(_ val body ...)
|
||||
(with-syntax ([next (datum->syntax-object stx 'next)]
|
||||
[result (datum->syntax-object stx 'result)])
|
||||
(syntax
|
||||
(let* ([p (open-input-string "Hello world.")]
|
||||
[next (lambda () (let ([o (read p)])
|
||||
(if (eof-object? o)
|
||||
o
|
||||
(symbol->string o))))]
|
||||
[r null]
|
||||
[result (lambda (v)
|
||||
(set! r (append r (list v))))])
|
||||
body ...
|
||||
(test val 'awk r))))]))
|
||||
|
||||
|
||||
|
||||
(test-awk '(hi there)
|
||||
(awk (next) (str) ()
|
||||
["ell" (result 'hi)]
|
||||
["x" (result 'yikes)]
|
||||
["orl" (result 'there)]))
|
||||
|
||||
(test-awk '("l" done)
|
||||
(awk (next) (str) ()
|
||||
[/ "el(l)" / (#f a) (result a)]
|
||||
[(equal? str "world.") (result 'done)]))
|
||||
|
||||
(report-errs)
|
Loading…
Reference in New Issue
Block a user