From ae0c00da50fdd948f9c41da5c3daed09ba84861a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Mon, 27 Mar 2023 17:14:25 +0200 Subject: [PATCH] Parse month comments in period parsing, start work on streamlined period representation. --- member-print.scm | 2 +- period.scm | 22 +++++++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/member-print.scm b/member-print.scm index 883f109..f338b64 100644 --- a/member-print.scm +++ b/member-print.scm @@ -130,7 +130,7 @@ (define (print-member-source mr) (let* ((lines (dict-ref mr 'source mr)) (file-name (dict-ref mr 'file-name)) - (hls (dict-ref mr 'highlights))) + (hls (dict-ref mr 'highlights '()))) (print file-name ":") (print-source-listing lines diff --git a/period.scm b/period.scm index d4cb55b..a792e9c 100644 --- a/period.scm +++ b/period.scm @@ -47,6 +47,22 @@ testing configuration) + ;; Creates a new period value with optional since and before + ;; comments. + (define (make-period since before . args) + (let ((scomment (if (not (null? args)) (car args) #f)) + (bcomment (if (and (not (null? args)) + (not (null? (cdr args)))) + (cadr args) + #f))) + (list since before scomment bcomment))) + + ;; Simple accessors + (define period-since car) + (define period-before cadr) + (define period-scomment caddr) + (define period-bcomment cadddr) + ;; Sorts period markers (be it start or end) chronologically and ;; returns the sorted list. (define (sort-period-markers l) @@ -73,7 +89,11 @@ (month (cadr marker)) (line-number (if (null? (cddr marker)) #f - (caddr marker)))) + (caddr marker))) + (comment (if (and line-number + (not (null? (cdddr marker)))) + (cadddr marker) + #f))) (if (eq? mtype rmt) (if cb (loop (cdr l)