From 968fc95e171fc333f414be515c1b7ccd322d33c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Sat, 25 Mar 2023 15:41:48 +0100 Subject: [PATCH] Add member-record system for storing highlights from various passes. --- member2-parser.scm | 7 +++++++ member2-record.scm | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/member2-parser.scm b/member2-parser.scm index 1fbf066..4193534 100644 --- a/member2-parser.scm +++ b/member2-parser.scm @@ -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 diff --git a/member2-record.scm b/member2-record.scm index 38e57de..412f232 100644 --- a/member2-record.scm +++ b/member2-record.scm @@ -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