This may be a somewhat niche request, but hopefully it's just a special 
case of a common need.

I have multiple files, say V1 and V2, that each provide the same surface 
language constructs – e.g., #%app, some macros, some functions — but of 
course implemented in different ways. I also have additional files, say V21 
and V22, that need to extend the common language of V1/2 in a consistent 
way (e.g., add a few more macros and functions that both V21 and V22 
provide).

By default, I can only identify missing things through tests. I would like 
to statically ensure that I have provided the same interfaces, and ideally 
describe the delta between V21/22 and V1/2 (rather than copy the 
description of V1/2 into V21/22).

Essentially, I want to describe the grammar in one place, à la BNF, 
including the names of primitives and such. Note that I want a 
*specification* of the language, separate from its implementation (since 
I'd also like to generate a Web page giving that spec).

There's define-syntax-class for creating new classes for use in a 
syntax-parser. I suppose I could create a rather complex syntax class that 
represents the whole language; presumably I would then apply to this to the 
entire body through module-begin (and to REPL instructions via 
top-interaction)?

Has anyone done something like this and would care to share an example?

Thanks!

Shriram

-- 
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/ad36eb34-24a0-4b87-8466-1e01fb1d5396n%40googlegroups.com.

Reply via email to