remove backup in brag colorer

pull/6/head
Matthew Butterick 6 years ago
parent 2467dfcf30
commit 1336a12753

@ -14,21 +14,20 @@
[id (token 'ID lexeme)] [id (token 'ID lexeme)]
[any-char (token 'OTHER lexeme)])) [any-char (token 'OTHER lexeme)]))
(define default-backup 10) (define (color-brag port)
(define (color-brag port [backup default-backup] [in-string? #f])
(define srcloc-tok (brag-syntax-lexer port)) (define srcloc-tok (brag-syntax-lexer port))
(if (eof-object? srcloc-tok) (cond
(values srcloc-tok 'eof #f #f #f 0 #f) [(eof-object? srcloc-tok) (values srcloc-tok 'eof #f #f #f)]
(match-let* ([(srcloc-token (token-struct type val _ _ _ _ _) (srcloc _ _ _ posn span)) srcloc-tok] [else
[(cons start end) (cons posn (+ posn span))] (match-define (srcloc-token (token-struct type val _ _ _ _ _) (srcloc _ _ _ posn span)) srcloc-tok)
[(cons _ cat) (or (assq type (match-define (list start end) (list posn (+ posn span)))
'((ID . symbol) (values val (case type
(LIT . string) [(ID) 'symbol]
(MISC . parenthesis) [(LIT) 'string]
(WHITE . whitespace) [(MISC) 'parenthesis]
(COMMENT . comment))) [(WHITE) 'whitespace]
(cons 'OTHER 'no-color))]) [(COMMENT) 'comment]
(values val cat #f start end backup #f)))) [else 'no-color]) #f start end)]))
(module+ test (module+ test
(require rackunit) (require rackunit)
@ -40,11 +39,11 @@
(open-input-string str))]) (open-input-string str))])
annotation)) annotation))
(check-equal? (apply-colorer "foo") `(("foo" symbol #f 1 4 ,default-backup #f))) (check-equal? (apply-colorer "foo") `(("foo" symbol #f 1 4)))
(check-equal? (apply-colorer "'str'") `(("'str'" string #f 1 6 ,default-backup #f))) (check-equal? (apply-colorer "'str'") `(("'str'" string #f 1 6)))
(check-equal? (apply-colorer "(foo)+") `(("(" parenthesis #f 1 2 ,default-backup #f) (check-equal? (apply-colorer "(foo)+") `(("(" parenthesis #f 1 2)
("foo" symbol #f 2 5 ,default-backup #f) ("foo" symbol #f 2 5)
(")" parenthesis #f 5 6 ,default-backup #f) (")" parenthesis #f 5 6)
("+" parenthesis #f 6 7 ,default-backup #f))) ("+" parenthesis #f 6 7)))
(check-equal? (apply-colorer "; rem") `(("; rem" comment #f 1 6 ,default-backup #f))) (check-equal? (apply-colorer "; rem") `(("; rem" comment #f 1 6)))
(check-equal? (apply-colorer "") `(("" no-color #f 1 4 ,default-backup #f)))) (check-equal? (apply-colorer "") `(("" no-color #f 1 4))))

Loading…
Cancel
Save