1 2 3 4 5 6 7 8 9 | #lang br/quicklang (require "tokenizer.rkt" "parser.rkt") (define (read-syntax path port) (define parse-tree (parse path (make-tokenizer port))) (define module-datum `(module jsonic-module jsonic/expander ,parse-tree)) (datum->syntax #f module-datum)) (provide read-syntax) |
1 2 3 4 | #lang brag jsonic-program : (jsonic-char | jsonic-sexp)* jsonic-char : CHAR-TOK jsonic-sexp : SEXP-TOK |
1 2 3 4 5 6 | #lang br/quicklang (define-macro (jsonic-mb PARSE-TREE) #'(#%module-begin ···)) (provide (rename-out [jsonic-mb #%module-begin])) |
1 2 3 4 5 6 7 8 9 | #lang br/quicklang (require json) (define-macro (jsonic-mb PARSE-TREE) #'(#%module-begin (define result-string PARSE-TREE) (define validated-jsexpr (string->jsexpr result-string)) (display result-string))) (provide (rename-out [jsonic-mb #%module-begin])) |
1 2 3 4 5 6 7 8 9 10 11 12 13 | #lang br/quicklang (require json) (define-macro (jsonic-mb PARSE-TREE) #'(#%module-begin (define result-string PARSE-TREE) (define validated-jsexpr (string->jsexpr result-string)) (display result-string))) (provide (rename-out [jsonic-mb #%module-begin])) (define-macro (jsonic-char CHAR-TOK-VALUE) #'CHAR-TOK-VALUE) (provide jsonic-char) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #lang br/quicklang (require json) (define-macro (jsonic-mb PARSE-TREE) #'(#%module-begin (define result-string PARSE-TREE) (define validated-jsexpr (string->jsexpr result-string)) (display result-string))) (provide (rename-out [jsonic-mb #%module-begin])) (define-macro (jsonic-char CHAR-TOK-VALUE) #'CHAR-TOK-VALUE) (provide jsonic-char) (define-macro (jsonic-program SEXP-OR-JSON-STR ...) #'(string-trim (string-append SEXP-OR-JSON-STR ...))) (provide jsonic-program) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #lang br/quicklang (require json) (define-macro (jsonic-mb PARSE-TREE) #'(#%module-begin (define result-string PARSE-TREE) (define validated-jsexpr (string->jsexpr result-string)) (display result-string))) (provide (rename-out [jsonic-mb #%module-begin])) (define-macro (jsonic-char CHAR-TOK-VALUE) #'CHAR-TOK-VALUE) (provide jsonic-char) (define-macro (jsonic-program SEXP-OR-JSON-STR ...) #'(string-trim (string-append SEXP-OR-JSON-STR ...))) (provide jsonic-program) (define-macro (jsonic-sexp SEXP-STR) (with-pattern ([SEXP-DATUM (format-datum '~a #'SEXP-STR)]) #'(jsexpr->string SEXP-DATUM))) (provide jsonic-sexp) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #lang br/quicklang (require json) (define-macro (jsonic-mb PARSE-TREE) #'(#%module-begin (define result-string PARSE-TREE) (define validated-jsexpr (string->jsexpr result-string)) (display result-string))) (provide (rename-out [jsonic-mb #%module-begin])) (define-macro (jsonic-char CHAR-TOK-VALUE) #'CHAR-TOK-VALUE) (provide jsonic-char) (define-macro (jsonic-program SEXP-OR-JSON-STR ...) #'(string-trim (string-append SEXP-OR-JSON-STR ...))) (provide jsonic-program) (define-macro (jsonic-sexp SEXP-STR) (with-pattern ([SEXP-DATUM (format-datum '~a #'SEXP-STR)]) #'(jsexpr->string SEXP-DATUM))) (provide jsonic-sexp) |