use file ports to better support non standarded lexers
This commit is contained in:
parent
87c39b5347
commit
ae0ce4491c
|
@ -57,7 +57,7 @@
|
||||||
;; TODO should we only ignore test (and main) submodules?
|
;; TODO should we only ignore test (and main) submodules?
|
||||||
(define (make-irrelevant? lexer f)
|
(define (make-irrelevant? lexer f)
|
||||||
(define s (mutable-set))
|
(define s (mutable-set))
|
||||||
(define-values (for-lex for-str) (replicate-input-port (current-input-port)))
|
(define-values (for-lex for-str) (replicate-file-port f (current-input-port)))
|
||||||
(define str (apply vector (string->list (port->string for-str))))
|
(define str (apply vector (string->list (port->string for-str))))
|
||||||
(define init-offset (- (string-length (file->string f))
|
(define init-offset (- (string-length (file->string f))
|
||||||
(vector-length str)))
|
(vector-length str)))
|
||||||
|
@ -94,13 +94,12 @@
|
||||||
[_else (void)]))
|
[_else (void)]))
|
||||||
(lambda (i) (set-member? s i)))
|
(lambda (i) (set-member? s i)))
|
||||||
|
|
||||||
(define (replicate-input-port p)
|
(define (replicate-file-port f p)
|
||||||
(define-values (i1 o1) (make-pipe))
|
(define f1 (open-input-file f))
|
||||||
(define-values (i2 o2) (make-pipe))
|
(define f2 (open-input-file f))
|
||||||
(copy-port p o1 o2)
|
(file-position f1 (file-position p))
|
||||||
(close-output-port o1)
|
(file-position f2 (file-position p))
|
||||||
(close-output-port o2)
|
(values f1 f2))
|
||||||
(values i1 i2))
|
|
||||||
|
|
||||||
|
|
||||||
(define (raw-covered? i c)
|
(define (raw-covered? i c)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user