[racket-dev] syntax parsing: must be a nice pattern-y way to do this

From: Ryan Culpepper (ryan at cs.utah.edu)
Date: Sun Sep 16 20:48:23 EDT 2012

See 'define-template-metafunction' in 
syntax/parse/experimental/template. Remember to change the relevant 
occurrences of 'syntax' to 'template'.

Ryan

On 09/16/2012 08:31 PM, John Clements wrote:
> I want to apply a transformation to a nested pattern element.
>
> To start with, suppose I have a (kind of useless) with-handlers that looks like this:
>
> (with-syntax
>           ([((arg ...) ...)
>             #`((clause.input ...) ...)])
>         et-cetera)
>
> That is, I've basically just renamed "clause.input" to "arg".
>
> But now, I want to perform some transformation on the elements. I'd like to write this:
>
> (with-syntax
>           ([((arg ...) ...)
>             #`((#,(transform #'clause.input) ...) ...)])
>         et-cetera)
>
> .. but this fails, with the error "new-style-signals.rkt:42:30: syntax: missing ellipsis with pattern variable in template in: clause.input"
>
> I can certainly work around this, by abandoning the pattern-matching slickness and just using a bunch of syntax->lists, but it seems like there must be a nicer way. Am I missing some nifty trick?
>
> John
>
>
>
>
> _________________________
>    Racket Developers list:
>    http://lists.racket-lang.org/dev
>


Posted on the dev mailing list.