You'd have to ask Ryan to be sure, but I think they're pretty stable. I've been using them for some time.
Carl Eastlund On Fri, Aug 23, 2013 at 12:53 PM, Stephen Chang <stch...@ccs.neu.edu> wrote: > Ah, thanks. That's exactly what I wanted. > > How stable are these features? Shall I add them to the docs? > > On Fri, Aug 23, 2013 at 12:54 AM, Carl Eastlund <c...@ccs.neu.edu> wrote: > > Here's how you want to define AorB: > > > > (define-syntax-class AorB #:auto-nested-attributes > > (pattern :A) > > (pattern :B)) > > > > There's two things going on here, both of which I believe are > undocumented, > > sadly. > > > > One is #:auto-nested-attributes, an option that tells AorB that anything > > bound as an attribute by nested sub-patterns in its clauses should > > automatically become an attribute of AorB. > > > > The other is that empty identifier does not add "." to its attribute > names. > > When you bind a with the attribute X, you get A.X, and when you bind b, > you > > get b.X, but when you bind the empty identifier, you just get X. > > > > So now you just have X bound in both clauses, and that's automatically > made > > an attribute of AorB, and it all works like you want. > > > > Carl Eastlund > > > > > > On Fri, Aug 23, 2013 at 12:22 AM, Stephen Chang <stch...@ccs.neu.edu> > wrote: > >> > >> Is there a way for a syntax-class to automatically inherit attributes? > >> > >> For example, the third class below combines the first two. Is there a > >> way to automatically get the attributes from the first two classes in > >> the third one (ie, I want to drop the "#:attr X #'a.X" part in the > >> third class)? > >> > >> #lang racket > >> (require syntax/parse) > >> > >> (define-syntax-class A (pattern (a b) #:attr X #'b)) > >> (define-syntax-class B (pattern (a b c) #:attr X #'c)) > >> (define-syntax-class AorB > >> (pattern a:A #:attr X #'a.X) > >> (pattern b:B #:attr X #'b.X)) > >> > >> (syntax-parse #'(list 1) [ab:AorB (attribute ab.X)]) > >> _________________________ > >> Racket Developers list: > >> http://lists.racket-lang.org/dev > >> > > > >
_________________________ Racket Developers list: http://lists.racket-lang.org/dev