Parsing of amount in fee period specification.
This commit is contained in:
parent
259a2664a0
commit
055f7ba030
2 changed files with 32 additions and 9 deletions
|
@ -116,7 +116,23 @@
|
|||
((student suspend member revision chair council grant fee)
|
||||
(let* ((res (period-markers->cal-periods value))
|
||||
(ok? (car res))
|
||||
(periods (cadr res))
|
||||
(periods0 (cadr res))
|
||||
(periods
|
||||
(if (eq? key 'fee)
|
||||
(let ((ps
|
||||
(map
|
||||
(lambda (p)
|
||||
(let* ((sc (cal-period-scomment p))
|
||||
(scp (string-first+rest sc))
|
||||
(amts (car scp))
|
||||
(amt (string->number amts))
|
||||
(rc (cdr scp)))
|
||||
(set-cal-period-scomment
|
||||
p
|
||||
(list amt rc))))
|
||||
periods0)))
|
||||
ps)
|
||||
periods0))
|
||||
(msg (caddr res))
|
||||
(line-number (cadddr res))
|
||||
(mr1 (brmember-sub-set mr output key periods)))
|
||||
|
@ -163,10 +179,7 @@
|
|||
mr0 (cdr value) "Whitespace not allowed in nick" 3 'error)
|
||||
mr0)))
|
||||
(else
|
||||
(brmember-sub-set mr output key (car value))))))
|
||||
(fee
|
||||
,(lambda (mr output key value)
|
||||
mr))))
|
||||
(brmember-sub-set mr output key (car value))))))))
|
||||
|
||||
;; Pass 4: Final checks - add defaults
|
||||
(define (member-schema-finalize mr)
|
||||
|
|
|
@ -44,6 +44,8 @@
|
|||
cal-period-scomment
|
||||
cal-period-bcomment
|
||||
|
||||
set-cal-period-scomment
|
||||
|
||||
period-markers->cal-periods
|
||||
|
||||
cal-periods-duration
|
||||
|
@ -142,6 +144,14 @@
|
|||
(define cal-period-scomment cadddr)
|
||||
(define cal-period-bcomment (compose cadddr cdr))
|
||||
|
||||
;; Direct updater
|
||||
(define (set-cal-period-scomment p c)
|
||||
(list TAG-CAL-PERIOD
|
||||
(cal-period-since p)
|
||||
(cal-period-before p)
|
||||
c
|
||||
(cal-period-bcomment p)))
|
||||
|
||||
;; Type predicate
|
||||
(define (cal-period? p)
|
||||
(and (pair? p)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue