Periods parsing in schema.
This commit is contained in:
parent
d4a253d298
commit
0dd4b6aed4
1 changed files with 23 additions and 6 deletions
|
@ -38,7 +38,9 @@
|
||||||
(chicken irregex)
|
(chicken irregex)
|
||||||
member2-record
|
member2-record
|
||||||
testing
|
testing
|
||||||
dictionary)
|
dictionary
|
||||||
|
month
|
||||||
|
period)
|
||||||
|
|
||||||
;; Pass 2: known keys and multikeys
|
;; Pass 2: known keys and multikeys
|
||||||
(define member-schema-known-keys '(nick mail phone name born joined destroyed))
|
(define member-schema-known-keys '(nick mail phone name born joined destroyed))
|
||||||
|
@ -62,15 +64,30 @@
|
||||||
mr
|
mr
|
||||||
(let ((value (car values)))
|
(let ((value (car values)))
|
||||||
(loop (cdr values)
|
(loop (cdr values)
|
||||||
(member-record-sub-prepend mr
|
(member-record-sub-prepend
|
||||||
output
|
mr
|
||||||
kind
|
output
|
||||||
(list marker (car value) (cdr value)))))))))
|
kind
|
||||||
|
(list marker
|
||||||
|
(string->month (car value))
|
||||||
|
(cdr value)))))))))
|
||||||
(else
|
(else
|
||||||
(member-record-sub-set mr output key value)))))
|
(member-record-sub-set mr output key value)))))
|
||||||
(info
|
(info
|
||||||
,(lambda (mr output key value)
|
,(lambda (mr output key value)
|
||||||
mr))))
|
(case key
|
||||||
|
((student suspend)
|
||||||
|
(let* ((res (period-markers->periods value))
|
||||||
|
(ok? (car res))
|
||||||
|
(periods (cadr res))
|
||||||
|
(msg (caddr res))
|
||||||
|
(line-number (cadddr res))
|
||||||
|
(mr1 (member-record-sub-set mr output key periods)))
|
||||||
|
(if ok?
|
||||||
|
mr1
|
||||||
|
(member-record-add-highlight mr1 line-number msg 3 'error))))
|
||||||
|
(else
|
||||||
|
(member-record-sub-set mr output key (car value))))))))
|
||||||
|
|
||||||
;; Pass 0: Removes any comments and removes any leading and trailing
|
;; Pass 0: Removes any comments and removes any leading and trailing
|
||||||
;; whitespace.
|
;; whitespace.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue