You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
#lang racket/base
|
|
|
|
|
|
|
|
(module+ test
|
|
|
|
|
|
|
|
(require yaragg/examples/baby-json-hider
|
|
|
|
yaragg/support
|
|
|
|
rackunit)
|
|
|
|
|
|
|
|
(define parse-result (parse (list "{"
|
|
|
|
(token 'ID "message")
|
|
|
|
":"
|
|
|
|
(token 'STRING "'hello world'")
|
|
|
|
"}")))
|
|
|
|
(check-equal? (syntax->datum parse-result) '(json (":")))
|
|
|
|
|
|
|
|
(define syntaxed-colon-parens (cadr (syntax->list parse-result)))
|
|
|
|
(check-equal? (syntax->datum (syntax-property syntaxed-colon-parens 'kvpair)) 'kvpair)
|
|
|
|
|
|
|
|
(check-equal?
|
|
|
|
(syntax->datum
|
|
|
|
(parse "[[[{}]],[],[[{}]]]"))
|
|
|
|
'(json
|
|
|
|
(array
|
|
|
|
"["
|
|
|
|
(json (array "[" (json (array "[" (json) "]")) "]"))
|
|
|
|
","
|
|
|
|
(json (array "[" "]"))
|
|
|
|
","
|
|
|
|
(json (array "[" (json (array "[" (json) "]")) "]"))
|
|
|
|
"]"))))
|