(use prcc) (define n ( "(\\+|-)?\\s*\\d+(\\s*\\.\\s*\\d+(\\s*(e|E)(\\s*(\\+|-))?\\s*\\d+)?)?")) (define s ( "\"(\\\\u[0-9a-fA-F]{4}|\\\\n|\\\\t|\\\\b|\\\\f|\\\\r|\\\\\\\\|\\\\\"|[^\"])*\"")) (define oo ( ( #\{) ( (join+_ ( s ( #\:) (lazy v)) ( #\,))) ( #\}))) (define a ( ( #\[) ( (join+_ (lazy v) ( #\,))) ( #\]))) (define v ( oo a n s ( "true") ( "false") ( "null"))) (define p ( v (eof))) (use test) (test-group "fjson" (test-begin "fjson") (define r #f) (for-each (lambda (f) (set! r (parse-file f p)) (test-assert r) (display r) (newline)) (cdr (argv))) (test-end "fjson"))