Prepare sub-key setting.
This commit is contained in:
parent
a6043c0fc2
commit
92b8ff0c78
2 changed files with 36 additions and 6 deletions
|
@ -47,10 +47,17 @@
|
|||
;; Pass 3: Interpreter passes
|
||||
(define member-schema-interpreters
|
||||
`((pass-markers
|
||||
,(lambda (mr acc key value)
|
||||
mr))
|
||||
,(lambda (mr output key value)
|
||||
(case key
|
||||
((studentstart studentstop suspendstart suspendstop)
|
||||
(let ((marker (if (member key '(studentstart suspendstart))
|
||||
'start
|
||||
'stop)))
|
||||
mr))
|
||||
(else
|
||||
mr))))
|
||||
(info
|
||||
,(lambda (mr acc key value)
|
||||
,(lambda (mr output key value)
|
||||
mr))))
|
||||
|
||||
;; Pass 0: Removes any comments and removes any leading and trailing
|
||||
|
@ -133,9 +140,17 @@
|
|||
(member-record-add-highlight mr number "Unknown key" 2 'warning)
|
||||
processed)))))))
|
||||
|
||||
;; Pass 3+: Single interpreter pass
|
||||
(define (interpreter-pass mr output-name input pass-proc)
|
||||
(dict-set mr output-name '()))
|
||||
;; Pass 3+: Single interpreter pass - input must be
|
||||
;; dictionary. Output is top-level key of member record.
|
||||
(define (interpreter-pass mr output input pass-proc)
|
||||
(let loop ((keys (dict-keys input))
|
||||
(mr (dict-set mr output (make-dict))))
|
||||
(if (null? keys)
|
||||
mr
|
||||
(let ((key (car keys)))
|
||||
(loop (cdr keys)
|
||||
(pass-proc mr output key
|
||||
(dict-ref input key)))))))
|
||||
|
||||
;; Pass 3+: Interpreter passes
|
||||
(define (interpret-member-file mr . starts)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue