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)
|
||||
member2-record
|
||||
testing
|
||||
dictionary)
|
||||
dictionary
|
||||
month
|
||||
period)
|
||||
|
||||
;; Pass 2: known keys and multikeys
|
||||
(define member-schema-known-keys '(nick mail phone name born joined destroyed))
|
||||
|
@ -62,15 +64,30 @@
|
|||
mr
|
||||
(let ((value (car values)))
|
||||
(loop (cdr values)
|
||||
(member-record-sub-prepend mr
|
||||
output
|
||||
kind
|
||||
(list marker (car value) (cdr value)))))))))
|
||||
(member-record-sub-prepend
|
||||
mr
|
||||
output
|
||||
kind
|
||||
(list marker
|
||||
(string->month (car value))
|
||||
(cdr value)))))))))
|
||||
(else
|
||||
(member-record-sub-set mr output key value)))))
|
||||
(info
|
||||
,(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
|
||||
;; whitespace.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue