Add member-record system for storing highlights from various passes.
This commit is contained in:
parent
a716b0776f
commit
968fc95e17
2 changed files with 15 additions and 0 deletions
|
@ -36,6 +36,13 @@
|
||||||
(chicken io)
|
(chicken io)
|
||||||
member2-record)
|
member2-record)
|
||||||
|
|
||||||
|
;; Returns a list of parsed lines
|
||||||
|
(define (parse-member-lines source)
|
||||||
|
(let loop ((lines source)
|
||||||
|
(result '())
|
||||||
|
(line-number 1))
|
||||||
|
#f))
|
||||||
|
|
||||||
;; Loads member file source. Performs passes 0 and 1 on each line
|
;; Loads member file source. Performs passes 0 and 1 on each line
|
||||||
;; returning parsed source. Parsed source is a list of lists
|
;; returning parsed source. Parsed source is a list of lists
|
||||||
;; containing '(key value line-number) information. Leading and
|
;; containing '(key value line-number) information. Leading and
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
make-member-record
|
make-member-record
|
||||||
member-record-input-file
|
member-record-input-file
|
||||||
member-record-set
|
member-record-set
|
||||||
|
member-record-add-highlight
|
||||||
member-record-tests!
|
member-record-tests!
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -79,6 +80,13 @@
|
||||||
(dict-set mr (string->symbol (keyword->string (car args)))
|
(dict-set mr (string->symbol (keyword->string (car args)))
|
||||||
(cadr args))))))))
|
(cadr args))))))))
|
||||||
|
|
||||||
|
;; Adds highlight identified by line number, message, pass number and
|
||||||
|
;; type (error, warning, info).
|
||||||
|
(define (member-record-add-highlight mr line-number message pass type)
|
||||||
|
(dict-set mr 'highlights
|
||||||
|
(cons (list line-number message pass type)
|
||||||
|
(dict-ref mr 'highlights '()))))
|
||||||
|
|
||||||
;; Self-tests
|
;; Self-tests
|
||||||
(define (member-record-tests!)
|
(define (member-record-tests!)
|
||||||
(run-tests
|
(run-tests
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue