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 [email protected].
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