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.
18 lines
473 B
Racket
18 lines
473 B
Racket
#lang br/quicklang
|
|
(require brag/lexer-support)
|
|
(define (tokenize port)
|
|
(define (next-token)
|
|
(define our-lexer
|
|
(lexer
|
|
[(eof) eof]
|
|
[(:seq "//" (:* (char-complement "\n"))) (next-token)]
|
|
["@$" (token 'OPEN)]
|
|
["$@" (token 'CLOSE)]
|
|
[any-char (token 'CHAR lexeme)]))
|
|
(our-lexer port))
|
|
next-token)
|
|
(provide tokenize)
|
|
|
|
|
|
;; (char-complement "\n") means any char but "\n"
|
|
;; (complement "\n") means any whole string except "\n" |