From: Anton L. <ant...@gm...> - 2009-04-20 09:46:09
|
Hi Looking at the releasenotes, Swig.swg and some of the test cases, I dicovered the very interesting feature of specifying match criteria and automatic case conversion rules on %rename. I have gotten a lot of things to work but have run into a couple of things I cannot figure out. %rename("%(camelcase)s", %$isenumitem) ""; The first issue was that my enums were all completely capitalized, e.g. UPPERCASE, and the way the casing algorithm works, "camelcase" is really a "No Op", in this scenario, however using: %rename("%(camelcase)s", sourcefmt="%(undercase)s", %$isenumitem) ""; solved that issue just fine. Given the definition below, I have two issues remaining: namespace ns { class test { enum myenum { UPPERCASE, LOWERCASE, CAPITALS=UPPERCASE }; }; } Issue #1: I'm trying to match a specific class in a specific namespace, I have tried %rename("%(camelcase)s", sourcefmt="%(undercase)s", %$isenumitem, %$classname="ns::test") ""; but that seems not to fit the bill quite right, %$classname="test" doesn't work either. What is the correct syntax? Issue #2, the generated code will look like this: public enum Myenum { Uppercase, Lowercase, Capitals = UPPERCASE } Which will generate a compile time error, since UPPERCASE is undefined, how do I resolve this issue? Besides the above minor issues, which I hope somebody can give me some hints about how to resolve, I am greatly impressed by the strength of this feature, good show :-) /anton |