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