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)
|
((studentstart studentstop suspendstart suspendstop)
|
||||||
(let ((marker (if (member key '(studentstart suspendstart))
|
(let ((marker (if (member key '(studentstart suspendstart))
|
||||||
'start
|
'start
|
||||||
'stop)))
|
'stop))
|
||||||
mr))
|
(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
|
(else
|
||||||
mr))))
|
(member-record-sub-set mr output key value)))))
|
||||||
(info
|
(info
|
||||||
,(lambda (mr output key value)
|
,(lambda (mr output key value)
|
||||||
mr))))
|
mr))))
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
member-record-add-highlight
|
member-record-add-highlight
|
||||||
member-record-sub-ref
|
member-record-sub-ref
|
||||||
member-record-sub-set
|
member-record-sub-set
|
||||||
|
member-record-sub-prepend
|
||||||
member-record-tests!
|
member-record-tests!
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -102,6 +103,12 @@
|
||||||
(dict-set mr sec
|
(dict-set mr sec
|
||||||
(dict-set sec-dict key val))))
|
(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
|
;; Self-tests
|
||||||
(define (member-record-tests!)
|
(define (member-record-tests!)
|
||||||
(run-tests
|
(run-tests
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue