From: Vadim Z. <vz...@ze...> - 2010-01-28 02:12:12
|
Hello, I'm trying to exclude all methods called SetWhatever() from public (i.e. exported by SWIG) interface of some class. Of course, it can be done manually by simply repeating "%ignore" statements for each of these functions but as there are a lot of them and more could be added in the future I decided to find a way to ignore all of them instead. As I already use SWIG compiled with USE_RXSPENCER support I thought it would be easy to select these methods using a regular expression. Unfortunately none of my attempts seems to work. To give a simple example, here is the version which I thought would work, from reading (an admittedly old) example in CHANGES file and comments in swig.swg: % cat n.h struct Foo { void DoIt(); }; struct Bar { void DoIt(); }; % cat n.i %module n %rename(DoNotDoIt, match$parentNode$name="Foo", match$name="DoIt") ""; %include "n.h" But it doesn't: % swig -c++ -namespace test -csharp n.i % fgrep 'DoIt()' Foo.cs Bar.cs Foo.cs: public void DoIt() { Bar.cs: public void DoIt() { It does work if I remove $parentNode$name match but then it changes it in both Foo and Bar. How can I specify the class using match? Of course, in this simple example just writing %rename(DoNotDoIt) Foo::DoIt; works. But I don't think I can use this syntax with rxsmatch and my final goal is to be able to do %rename("$ignore", rxsmatch$name="Set([A-Z][a-z]+)+", ???) ""; where "???" stands for "something which only matches the given class". I've tried debugging SWIG code in the hope to understand where it went wrong but quickly got lost in an avalanche of DOHs. Is there any way to see a DOH contents from the debugger by chance? Or some better way to debug such problems? In any case, thanks in advance for any hints! VZ |
From: William S F. <ws...@fu...> - 2010-01-28 06:58:37
|
Vadim Zeitlin wrote: > > > I've tried debugging SWIG code in the hope to understand where it went > wrong but quickly got lost in an avalanche of DOHs. Is there any way > to see > a DOH contents from the debugger by chance? Or some better way to debug > such problems? There is developer documentation under Doc/Devel which talks about debugging SWIG. The latest in svn has some corrections. William |