I'm trying to learn how to restrict where expressions appear. Those expressions 
might be procedure applications, or macros before expansion.

[1] shows a library I use to help me implement a collection pass for a module 
language. To save you some reading, it uses syntax-parse with a lengthy 
#:datum-literals. That's the only way I know how to restrict what expressions 
appear in module context.

One element of the #:datum-literals happens to share an identifier with a bound 
procedure, so I expand the calls as-is in a module-level expression [2][3]. I 
want that procedure to be applied ONLY in the module context, but nothing in 
the language enforces that.

I don't know what I don't know. Could I please get a link to a part of the 
documentation that teaches me what I need to understand? I'm tied between 
querying syntax properties for a fully expanded module, and writing a second 
set of macros that somehow know where they should be. Not sure which is best.

[1]: https://github.com/zyrolasting/xiden/blob/master/pkgdef/expand.rkt
[2]: https://github.com/zyrolasting/xiden/blob/master/pkgdef/expand.rkt#L111
[3]: https://github.com/zyrolasting/xiden/blob/master/pkgdef/expand.rkt#L156

~slg

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/bVbaZ_0mwFcWTIaeuwqMUr7TVY6Rhr5dusG9LkbT0gqW7gWIYAb8IOEUYnKQPIVR2ZrDGm9QMGnW-2YvYqw81oUJVCSCuwhuX_Wx2OGVG-w%3D%40sagegerard.com.

Reply via email to