[racket] Many datums in syntax-parse
On Mon, Jan 21, 2013 at 1:04 PM, Lorenz Köhl <rainbowtwigs at gmail.com> wrote:
> 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).
Hi Lorenz!
Does the following help?
https://gist.github.com/4589601
The idea is that replace-context from the syntax/strip-context library
can update the lexical context of the syntax objects. We can then
later use #:literal-set without trouble.
I need some feedback from syntax/parse users to figure out what Ragg
should do here to integrate better with syntax-parse. I really did
want ragg output to return syntax objects with no initial
interpretation assigned to them, to fit in with the A-ness of the AST.
> Is there an equivalent to #:datums (old-timestamp time-of-day …) in syntax-parse?
I've wondered about this as well.
Best of wishes!