Add member-record system for storing highlights from various passes.

This commit is contained in:
Dominik Pantůček 2023-03-25 15:41:48 +01:00
parent a716b0776f
commit 968fc95e17
2 changed files with 15 additions and 0 deletions

View file

@ -36,6 +36,13 @@
(chicken io)
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
;; returning parsed source. Parsed source is a list of lists
;; containing '(key value line-number) information. Leading and

View file

@ -32,6 +32,7 @@
make-member-record
member-record-input-file
member-record-set
member-record-add-highlight
member-record-tests!
)
@ -79,6 +80,13 @@
(dict-set mr (string->symbol (keyword->string (car 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
(define (member-record-tests!)
(run-tests