fewer requires

dev-srcloc
Matthew Butterick 7 years ago
parent 52874c63d5
commit 2f5923e670

@ -1,7 +1,5 @@
#lang br #lang br
(require parser-tools/lex (require brag/support)
(prefix-in : parser-tools/lex-sre)
brag/support)
(provide tokenize basic-lexer) (provide tokenize basic-lexer)
(define-lex-abbrevs (define-lex-abbrevs

@ -1,7 +1,5 @@
#lang br #lang br
(require parser-tools/lex (require brag/support)
(prefix-in : parser-tools/lex-sre)
brag/support)
(provide (all-defined-out)) (provide (all-defined-out))
(define basic-lexer (define basic-lexer

@ -8,7 +8,7 @@
(datum->syntax #f module-datum)) (datum->syntax #f module-datum))
(provide read-syntax) (provide read-syntax)
(require parser-tools/lex) (require brag/support)
(define (tokenize port) (define (tokenize port)
(define (next-token) (define (next-token)
(define our-lexer (define our-lexer

@ -1,5 +1,5 @@
#lang br #lang br
(require parser-tools/lex brag/support) (require brag/support)
(define+provide (tokenize ip) (define+provide (tokenize ip)
(define get-token (define get-token

@ -1,6 +1,5 @@
#lang br #lang br
(require parser-tools/lex parser-tools/lex-sre (require brag/support
brag/support
racket/string) racket/string)
(provide tokenize) (provide tokenize)
@ -10,10 +9,10 @@
(lexer-src-pos (lexer-src-pos
[(eof) eof] [(eof) eof]
[(union [(union
(seq "/*" (complement (seq any-string "*/" any-string)) "*/") (:seq "/*" (complement (:seq any-string "*/" any-string)) "*/")
(seq "//" (repetition 1 +inf.0 (char-complement #\newline)) #\newline)) (:seq "//" (repetition 1 +inf.0 (char-complement #\newline)) #\newline))
(token 'COMMENT lexeme #:skip? #t)] (token 'COMMENT lexeme #:skip? #t)]
[(union #\tab #\space #\newline) (get-token input-port)] [(union #\tab #\space #\newline) (return-without-pos (get-token input-port))]
[(union "CHIP" "IN" "OUT" "PARTS:") lexeme] [(union "CHIP" "IN" "OUT" "PARTS:") lexeme]
[(char-set "[]{}(),;=.") lexeme] [(char-set "[]{}(),;=.") lexeme]
["true" (token 'TRUE #t)] ["true" (token 'TRUE #t)]
@ -21,6 +20,6 @@
[(repetition 1 +inf.0 numeric) (token 'NUMBER (string->number lexeme))] [(repetition 1 +inf.0 numeric) (token 'NUMBER (string->number lexeme))]
; bugaboo: "10" is ambiguous: number or binary number? ; bugaboo: "10" is ambiguous: number or binary number?
[(repetition 1 +inf.0 (char-set "01")) (token 'BINARY-NUMBER (string->number lexeme 2))] [(repetition 1 +inf.0 (char-set "01")) (token 'BINARY-NUMBER (string->number lexeme 2))]
[(seq (repetition 1 1 alphabetic) (repetition 0 +inf.0 (union alphabetic numeric "-"))) (token 'ID (string->symbol lexeme))])) [(:seq (repetition 1 1 alphabetic) (repetition 0 +inf.0 (union alphabetic numeric "-"))) (token 'ID (string->symbol lexeme))]))
(get-token input-port)) (get-token input-port))
next-token) next-token)

@ -1,6 +1,5 @@
#lang br #lang br
(require parser-tools/lex parser-tools/lex-sre (require brag/support
brag/support
racket/string) racket/string)
(provide tokenize) (provide tokenize)
@ -10,12 +9,12 @@
(lexer-src-pos (lexer-src-pos
[(eof) eof] [(eof) eof]
[(union [(union
(seq "/*" (complement (seq any-string "*/" any-string)) "*/") (:seq "/*" (complement (:seq any-string "*/" any-string)) "*/")
(seq "//" (repetition 1 +inf.0 (char-complement #\newline)) #\newline)) (:seq "//" (repetition 1 +inf.0 (char-complement #\newline)) #\newline))
(token 'COMMENT lexeme #:skip? #t)] (token 'COMMENT lexeme #:skip? #t)]
[(union #\tab #\space #\newline) (get-token input-port)] [(union #\tab #\space #\newline) (return-without-pos (get-token input-port))]
[(union "load" "output-list" "output-file" "compare-to" "set" "eval" "output" (char-set ",;")) lexeme] [(union "load" "output-list" "output-file" "compare-to" "set" "eval" "output" (char-set ",;")) lexeme]
[(seq "%" (repetition 1 +inf.0 (union alphabetic numeric (char-set ".")))) (token 'FORMAT-STRING lexeme)] [(:seq "%" (repetition 1 +inf.0 (union alphabetic numeric (char-set ".")))) (token 'FORMAT-STRING lexeme)]
[(repetition 1 +inf.0 numeric) (token 'VAL (string->number lexeme))] [(repetition 1 +inf.0 numeric) (token 'VAL (string->number lexeme))]
[(repetition 1 +inf.0 (union alphabetic numeric (char-set "-."))) (token 'ID lexeme)])) [(repetition 1 +inf.0 (union alphabetic numeric (char-set "-."))) (token 'ID lexeme)]))
(get-token input-port)) (get-token input-port))

@ -1,6 +1,5 @@
#lang br #lang br
(require parser-tools/lex parser-tools/lex-sre (require brag/support
brag/support
racket/string) racket/string)
(provide tokenize) (provide tokenize)
@ -10,13 +9,13 @@
(lexer (lexer
[(eof) eof] [(eof) eof]
[(union [(union
(seq "/*" (complement (seq any-string "*/" any-string)) "*/") (:seq "/*" (complement (:seq any-string "*/" any-string)) "*/")
(seq "//" (repetition 1 +inf.0 (char-complement #\newline)) #\newline)) (:seq "//" (repetition 1 +inf.0 (char-complement #\newline)) #\newline))
(token 'COMMENT lexeme #:skip? #t)] (token 'COMMENT lexeme #:skip? #t)]
[(union #\tab #\space #\newline) (get-token input-port)] [(union #\tab #\space #\newline) (get-token input-port)]
[(repetition 1 +inf.0 (union upper-case (char-set "="))) lexeme] [(repetition 1 +inf.0 (union upper-case (char-set "="))) lexeme]
[(seq "\"" (complement (seq any-string "\"" any-string)) "\"") (token 'STRING (string-trim lexeme "\""))] [(:seq "\"" (complement (:seq any-string "\"" any-string)) "\"") (token 'STRING (string-trim lexeme "\""))]
[(seq "---" [(:seq "---"
(repetition 1 +inf.0 (union alphabetic numeric punctuation)) (repetition 1 +inf.0 (union alphabetic numeric punctuation))
"---") (token 'DASHED-NAME (string->symbol (string-trim lexeme "-" #:repeat? #t)))] "---") (token 'DASHED-NAME (string->symbol (string-trim lexeme "-" #:repeat? #t)))]
[(repetition 1 +inf.0 (union alphabetic numeric (char-set "-!?.#'"))) [(repetition 1 +inf.0 (union alphabetic numeric (char-set "-!?.#'")))

Loading…
Cancel
Save