How can I match datums more concisely with syntax-parse? I get syntax objects like this from ragg:
#'(old-timestamp (old-date 2 23) (time-of-day 2 ":" 23 ":" 42)) The parts I care about are the numbers. I write patterns like ((~datum old-timestamp) ((~datum old-date) month day) ((~datum time-of-day) hour ":" minute ":" second)) to extract them. But with longer syntax the patterns gets messy. I tried #:literals (foo ..) but I don't know what binding I should give to the ids and how (and why). Is there an equivalent to #:datums (old-timestamp time-of-day …) in syntax-parse? Longer example: ;; timestamp-stx->list : Syntax -> (Listof Number) (define (timestamp-stx->list stx) (define-syntax-rule (! s) (syntax->datum s)) (syntax-parse stx ;#:literals (old-timestamp old-date time-of-day new-timestamp new-date) [((~datum old-timestamp) ((~datum old-date) month day) ((~datum time-of-day) hour ":" minute ":" second)) (list (! #'second) (! #'minute) (! #'hour) (! #'day) (month->num (! #'month)))] [((~datum new-timestamp) ((~datum new-date) year "-" month "-" day "T") ((~datum time-of-day) hour ":" minute ":" second)) 1])) ____________________ Racket Users list: http://lists.racket-lang.org/users