macrology pasted by andyjpb on Wed Mar 27 19:53:59 2013
; (cadar-of <procedure of n arguments>) (define-syntax cadar-of (ir-macro-transformer (lambda (expr inject compare) (assert (pair? expr)) (let* ((proc (second expr)) ) ;(list 'quote `(lambda x (->* x (,proc) (extract-cadar))) ;) )))) (define (meta-meta/validUntil . x) (->* x ((sxpath '(validUntil))) (extract-cadar))) (define meta-meta/validUntil (cadar-of (sxpath '(validUntil))))
no title pasted by andyjpb on Wed Mar 27 19:57:01 2013
; Procedures to get the EntitiesDescriptor attributes ; - the metadata about the metadata ; *TOP* -> EntitiesDescriptor -> @ -> ... (define meta-meta (sxpath '(EntitiesDescriptor @))) (define meta-meta/validUntil (cadar-of (sxpath '(validUntil)))) (define idp-entites ;(sxpath '("EntitiesDescriptor/EntityDescriptor[IDPSSODescriptor]"))) (sxpath '(EntitiesDescriptor (EntityDescriptor(IDPSSODescriptor)))))
no title added by andyjpb on Wed Mar 27 20:03:08 2013
(define (extractor v p) (if (null? v) #f (p v))) ; (cadar-of <procedure of n arguments>) (define-syntax extract (ir-macro-transformer (lambda (expr inject compare) (assert (pair? expr)) (let* ((extractor (second expr)) (proc (third expr)) ) ;(list 'quote `(lambda x (->* x (,proc) (extractor ,extractor))) ;) )))) ; Procedures to get the EntitiesDescriptor attributes ; - the metadata about the metadata ; *TOP* -> EntitiesDescriptor -> @ -> ... (define meta-meta (sxpath '(EntitiesDescriptor @))) (define meta-meta/validUntil (extract cadar (sxpath '(validUntil)))) (define idp-entites ;(sxpath '("EntitiesDescriptor/EntityDescriptor[IDPSSODescriptor]"))) (sxpath '(EntitiesDescriptor (EntityDescriptor(IDPSSODescriptor)))))