For tene++; Not quite a test file, but I hope it will suffice.
Allison, can you comment on this, since TGE is yours?
% cat test.tg #simple .tg grammar
grammar TclExpr::PIR::Grammar is TGE::Grammar;
transform pir (Another::Nested::Namespace) {
say "hello"
}
%../../parrot ../../compilers/tge/tgc.pir --output=test.pir test.tg
%cat test.pir #compiled version
.namespace [ 'TclExpr::PIR::Grammar' ]
.sub '__onload' :load :init
load_bytecode 'TGE.pbc'
push_eh class_loaded
$P1 = subclass 'TGE::Grammar', 'TclExpr::PIR::Grammar'
pop_eh
class_loaded:
.end
.sub '_Another::Nested::Namespace_pir' :method
.param pmc tree
.param pmc node
#line 2 "test.tg"
say "hello"
.end
.sub init :vtable :method
self.add_rule('Another::Nested::Namespace', 'pir', '.', '_Another::Nested::
Namespace_pir')
.end
%
The namespace of the generated file should be changed, the subclass
should probably be updated. (TGE itself should probably be updated to
not live a namespace with a '::' in it. The actual transform sub can
keep the name it has, but the first parameter to add_rule() should
probably be updated as well. This /should/ work with the new automatic
translation of :: that PGE is doing.
--
Will "Coke" Coleda