[racket-dev] Merging nonterminals in union-language

From: William J. Bowman (wjb at williamjbowman.com)
Date: Thu Feb 28 14:46:11 EST 2013

Hello all,

I've been hacking on some languages in Redex, and found myself 
abstracting commons parts into base languages, and gradually building new
languages via `define-extended-language' and `define-union-language'.
Unfortunately, I hit a wall when I discovered `define-union-language'
doesn't like to union languages that define the same nonterminals.

Consider this toy example: https://gist.github.com/bluephoenix47/5054403

This seems like a sensible thing to want to do, so I forked racket wrote a patch:
https://github.com/bluephoenix47/racket/commit/0a7781b2be2643778f8d8d10d771ab1ce2dc622b

Unfortunately, several Redex tests fail (http://sprunge.us/fPHU) because
they expect an error when languages which define the same nonterminals
are used in `define-union-language'. 

Is this *desired* behavior? If so, why? It seems very reasonable to want
to merge the nonterminals of languages.

-- 

William J. Bowman
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital Signature
URL: <http://lists.racket-lang.org/dev/archive/attachments/20130228/6b66dbeb/attachment.sig>

Posted on the dev mailing list.