Handles list of error symbols.

This commit is contained in:
Dominik Pantůček 2023-03-19 21:00:22 +01:00
parent dd8719f554
commit 7a5975df63

View file

@ -102,17 +102,19 @@
;; Reports error with highlighted source line(s), configured via the
;; *member-file-check-syntax* parameter.
(define (report-line-error file-name lines highlights message)
(define (report-line-error file-name lines highlight message)
(when (not (eq? (*member-file-check-syntax*) 'quiet))
(print "Error in " file-name ": " message)
(newline)
(print-source-listing lines highlights
(print-source-listing lines (list highlight)
(*member-file-context*)
a:error a:default
"" "" "..."))
(if (eq? (*member-file-check-syntax*) 'error)
(exit 1)
#f))
(list member-file-error-symbol
(list highlight
message))))
;; Parses given key-value line. Key is up to first space, value is the
;; rest of the line. If the line doesn't contain anything, returns #f.
@ -136,16 +138,16 @@
(if (member key all-valid-keys)
(list key val)
(if file-name
(report-line-error file-name lines (list line-number)
(report-line-error file-name lines line-number
(sprintf "Invalid key ~A" key))
(error 'split-member-line (sprintf "Invalid key ~A" key)))))
(if (member (string->symbol lc) all-valid-keys)
(if file-name
(report-line-error file-name lines (list line-number)
(report-line-error file-name lines line-number
(sprintf "No value for key ~A" lc))
(error 'split-member-line (sprintf "No value for key ~A" lc)))
(if file-name
(report-line-error file-name lines (list line-number)
(report-line-error file-name lines line-number
(sprintf "No value for invalid key ~A" lc))
(error 'split-member-line
(sprintf "No value for invalid key ~A" lc)))))))))
@ -183,7 +185,9 @@
(case k
((card desfire credit) (dict-set d k (cons v (dict-ref d k '()))))
(else
(dict-set d k v))))))
(if (eq? k member-file-error-symbol)
(dict-set d k (cons v (dict-ref d k '())))
(dict-set d k v)))))))
;; Converts given key in member info dictionary from period markers
;; list to periods.