From 6fd5ba02186985eca71f22957126bdbfe30a5832 Mon Sep 17 00:00:00 2001 From: Peter Hart Date: Sun, 8 Mar 2020 15:39:40 -0400 Subject: [PATCH] jsonic wip --- jsonic/lexer.rkt | 16 ++++++++++++++++ jsonic/parser.rkt | 4 ++++ 2 files changed, 20 insertions(+) create mode 100644 jsonic/lexer.rkt create mode 100644 jsonic/parser.rkt diff --git a/jsonic/lexer.rkt b/jsonic/lexer.rkt new file mode 100644 index 0000000..df37983 --- /dev/null +++ b/jsonic/lexer.rkt @@ -0,0 +1,16 @@ +#lang br/quicklang + +(require brag/support) + +(define (make-tokenizer port) + (define (next-token) + (define jsonic-lexer + (lexer + [(from/to "//" "\n") (next-token)] + [(from/to "@$" "$@") + (token 'SEXP-TOK (trim-ends "@$" lexeme "$@"))] + [any-char (token 'CHAR-TOK lexeme)])) + (jsonic-lexer port)) + next-token) +(provide make-tokenizer) + diff --git a/jsonic/parser.rkt b/jsonic/parser.rkt new file mode 100644 index 0000000..2683dce --- /dev/null +++ b/jsonic/parser.rkt @@ -0,0 +1,4 @@ +#lang brag +jsonic-program: (jsonic-char | jsonic-sexp)* +jsonic-char: CHAR-TOK +jsonic-sexp: SEXP-TOK