1 | zip-code : FIVE-DIGIT-TOKEN |
1 | '(zip-code "01234") |
1 2 3 4 | zip-code : five-digits [("-" four-digits)] five-digits : digit digit digit digit digit four-digits : digit digit digit digit digit : DIGIT-TOKEN |
1 2 3 4 | #lang brag bf-program : (bf-op | bf-loop)* bf-op : ">" | "<" | "+" | "-" | "." | "," bf-loop : "[" (bf-op | bf-loop)* "]" |
1 2 3 4 5 6 7 8 9 | #lang br/quicklang (require "parser.rkt") (define (read-syntax path port) (define parse-tree (parse path (make-tokenizer port))) (define module-datum `(module bf-mod "expander.rkt" ,parse-tree)) (datum->syntax #f module-datum)) (provide read-syntax) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #lang br/quicklang (require "parser.rkt") (define (read-syntax path port) (define parse-tree (parse path (make-tokenizer port))) (define module-datum `(module bf-mod "expander.rkt" ,parse-tree)) (datum->syntax #f module-datum)) (provide read-syntax) (define (make-tokenizer port) (define (next-token) ···) next-token) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #lang br/quicklang (require "parser.rkt") (define (read-syntax path port) (define parse-tree (parse path (make-tokenizer port))) (define module-datum `(module bf-mod "expander.rkt" ,parse-tree)) (datum->syntax #f module-datum)) (provide read-syntax) (require brag/support) (define (make-tokenizer port) (define (next-token) (define bf-lexer (lexer [(char-set "><-.,+[]") lexeme] [any-char (next-token)])) (bf-lexer port)) next-token) |
1 2 3 | #lang reader "reader.rkt" Greatest language ever! ++++-+++-++-++[>++++-+++-++-++<-]>. |
1 2 3 4 5 6 | #lang br/quicklang (define-macro (bf-module-begin PARSE-TREE) #'(#%module-begin 'PARSE-TREE)) (provide (rename-out [bf-module-begin #%module-begin])) |
1 2 3 | #lang reader "reader.rkt" Greatest language ever! ++++-+++-++-++[>++++-+++-++-++<-]>.[ |
1 2 3 | #lang reader "reader.rkt" Greatest language ever! ++++-+++-++-++[>++++-+++-++-++<-]>. |
1 2 3 4 5 6 | #lang br/quicklang (define-macro (bf-module-begin PARSE-TREE) #'(#%module-begin PARSE-TREE)) (provide (rename-out [bf-module-begin #%module-begin])) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #lang br/quicklang (require "parser.rkt") (define (read-syntax path port) (define parse-tree (parse path (make-tokenizer port))) (define module-datum `(module bf-mod "expander.rkt" ,parse-tree)) (datum->syntax #f module-datum)) (provide read-syntax) (require brag/support) (define (make-tokenizer port) (define (next-token) (define bf-lexer (lexer [(char-set "><-.,+[]") lexeme] [any-char (next-token)])) (bf-lexer port)) next-token) |