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.
beautiful-racket/beautiful-racket-demo/bf/reader.rkt

21 lines
512 B
Racket

8 years ago
#lang br/quicklang
8 years ago
(require "parser.rkt")
(define (read-syntax path port)
(define parse-tree (parse path (tokenize port)))
(define module-datum `(module bf-mod bf/expander
,parse-tree))
(datum->syntax #f module-datum))
(provide read-syntax)
8 years ago
8 years ago
(require parser-tools/lex)
(define (tokenize port)
9 years ago
(define (next-token)
8 years ago
(define our-lexer
(lexer
[(eof) eof]
9 years ago
[(char-set "><-.,+[]") lexeme]
[any-char (next-token)]))
(our-lexer port))
9 years ago
next-token)