Report errors in the member file.

This commit is contained in:
Dominik Pantůček 2023-03-19 21:49:54 +01:00
parent 9a71545e3e
commit 39554768b3
4 changed files with 76 additions and 15 deletions

View file

@ -258,14 +258,23 @@
(dict-set m k (string->month v))
m)))
;; All conversions in one place
(define (convert-member-keys m)
(convert-member-key:month
(convert-member-keys:card
(convert-member-key:credit
(convert-member-keys:markers->periods m 'suspend 'student))
'card 'desfire)
'joined))
;; Adds file-name and lines information to the error key.
(define (convert-member-key:error m esym lines file-name)
(dict-set m esym
(cons file-name
(cons lines
(dict-ref m esym '())))))
;; All conversions in one place, including error reporting.
(define (convert-member-keys m lines file-name)
(convert-member-key:error
(convert-member-key:month
(convert-member-keys:card
(convert-member-key:credit
(convert-member-keys:markers->periods m 'suspend 'student))
'card 'desfire)
'joined)
member-file-error-symbol lines file-name))
;; Fills-in the defaults
(define (make-default-member-info)
@ -281,7 +290,7 @@
(r (make-default-member-info))
(line-number 1))
(if (null? ls)
(convert-member-keys r)
(convert-member-keys r lines file-name)
(let ((p (split-member-line (car ls) file-name lines line-number)))
(loop (cdr ls)
(if p