Student and suspend markers parsing.
This commit is contained in:
parent
92b8ff0c78
commit
d4a253d298
2 changed files with 22 additions and 3 deletions
|
@ -52,10 +52,22 @@
|
|||
((studentstart studentstop suspendstart suspendstop)
|
||||
(let ((marker (if (member key '(studentstart suspendstart))
|
||||
'start
|
||||
'stop)))
|
||||
mr))
|
||||
'stop))
|
||||
(kind (if (member key '(studentstart studentstop))
|
||||
'student
|
||||
'suspend)))
|
||||
(let loop ((values value)
|
||||
(mr mr))
|
||||
(if (null? values)
|
||||
mr
|
||||
(let ((value (car values)))
|
||||
(loop (cdr values)
|
||||
(member-record-sub-prepend mr
|
||||
output
|
||||
kind
|
||||
(list marker (car value) (cdr value)))))))))
|
||||
(else
|
||||
mr))))
|
||||
(member-record-sub-set mr output key value)))))
|
||||
(info
|
||||
,(lambda (mr output key value)
|
||||
mr))))
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
member-record-add-highlight
|
||||
member-record-sub-ref
|
||||
member-record-sub-set
|
||||
member-record-sub-prepend
|
||||
member-record-tests!
|
||||
)
|
||||
|
||||
|
@ -102,6 +103,12 @@
|
|||
(dict-set mr sec
|
||||
(dict-set sec-dict key val))))
|
||||
|
||||
;; Prepends value to given subkey
|
||||
(define (member-record-sub-prepend mr sec key val)
|
||||
(member-record-sub-set mr sec key
|
||||
(cons val
|
||||
(member-record-sub-ref mr sec key '()))))
|
||||
|
||||
;; Self-tests
|
||||
(define (member-record-tests!)
|
||||
(run-tests
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue