swig/Examples/test-suite/enum_thorough.i
Maciej Drwal e058e1f42f Merged revisions 10498-10499,10503-10504,10506,10508,10511,10515-10516,10518-10519,10527,10530-10531,10536-10537,10539-10552,10558-10568,10574-10580,10582,10584,10588-10589,10594 via svnmerge from
https://swig.svn.sourceforge.net/svnroot/swig/trunk

........
  r10498 | talby | 2008-05-26 22:09:56 +0200 (Pn, 26 maj 2008) | 2 lines
  
  run test cases in the Perl set by the --with-perl5 configure option.
........
  r10499 | talby | 2008-05-26 23:04:06 +0200 (Pn, 26 maj 2008) | 3 lines
  
  The perl5 minherit runtime test will work better if the classes are 
  actually built under SWIGPERL.
........
  r10503 | wsfulton | 2008-05-28 11:44:37 +0200 (Śr, 28 maj 2008) | 1 line
  
  Fix variable wrappers when using -proxy. Patch from Jan Jezabek
........
  r10504 | bhy | 2008-05-28 19:27:48 +0200 (Śr, 28 maj 2008) | 2 lines
  
  Fixed SF #1971977:  typo in pycontainer.swg (related to -extranative option)
........
  r10506 | wsfulton | 2008-05-29 02:45:28 +0200 (Cz, 29 maj 2008) | 1 line
  
  Fix variable wrappers when using -noproxy
........
  r10508 | bhy | 2008-05-30 15:53:33 +0200 (Pt, 30 maj 2008) | 1 line
  
  Fixed SF #1976978, apply the macros for primitive types to std::wstring
........
  r10511 | olly | 2008-05-30 18:11:27 +0200 (Pt, 30 maj 2008) | 4 lines
  
  Fix typo in handling of /*@SWIG[...]*/ comments in the scanner.  This just
  meant we were only actually looking for /*@SWI at the start of the comment, so
  was pretty harmless in practice.
........
  r10515 | wsfulton | 2008-06-02 22:10:40 +0200 (Pn, 02 cze 2008) | 1 line
  
  Fix samename testcase for c# and java
........
  r10516 | wsfulton | 2008-06-02 22:15:39 +0200 (Pn, 02 cze 2008) | 1 line
  
  Fix enums when using -noproxy
........
  r10518 | bhy | 2008-06-07 13:20:07 +0200 (So, 07 cze 2008) | 4 lines
  
  Added a test case for keyword renaming.
  Now it works for Python in SWIG's -c++ mode,
  but in C mode it doesn't work! (you can try with make keyword_rename.ctest)
........
  r10519 | bhy | 2008-06-07 15:40:51 +0200 (So, 07 cze 2008) | 1 line
  
  fixed keyword_rename.ctest tese case, caused by a mistake in Swig/naming.c
........
  r10527 | mgossage | 2008-06-17 04:57:15 +0200 (Wt, 17 cze 2008) | 1 line
  
  [lua] bugfix 1938142 (bool& and bool* support)
........
  r10530 | wsfulton | 2008-06-19 22:02:13 +0200 (Cz, 19 cze 2008) | 1 line
  
  Add R keyword support. Rename keywords for successful compilation of Java and C# code. More consistent keyword warnings across the different languages.
........
  r10531 | wsfulton | 2008-06-19 23:15:48 +0200 (Cz, 19 cze 2008) | 1 line
  
  add complete list of R reserved words
........
  r10536 | wsfulton | 2008-06-21 13:35:33 +0200 (So, 21 cze 2008) | 1 line
  
  better terminology for static types
........
  r10537 | wsfulton | 2008-06-21 13:42:48 +0200 (So, 21 cze 2008) | 1 line
  
  remove raise as keyword test- it conflicts with _raise in LIBCMT on windows
........
  r10539 | wsfulton | 2008-06-21 17:21:29 +0200 (So, 21 cze 2008) | 1 line
  
  Lua example warning removal fixes for vc++
........
  r10540 | wsfulton | 2008-06-21 17:23:02 +0200 (So, 21 cze 2008) | 1 line
  
  Remove some vc++ /W4 warnings
........
  r10541 | wsfulton | 2008-06-21 18:04:55 +0200 (So, 21 cze 2008) | 1 line
  
  minor vc++ /W4 warning fixes
........
  r10542 | wsfulton | 2008-06-21 21:07:51 +0200 (So, 21 cze 2008) | 1 line
  
  'byte' is already used in Ruby on windows, so use another keyword
........
  r10543 | wsfulton | 2008-06-21 22:45:32 +0200 (So, 21 cze 2008) | 1 line
  
  Fix crashing in the Ruby reject method in the STL wrappers
........
  r10544 | wsfulton | 2008-06-21 22:48:28 +0200 (So, 21 cze 2008) | 1 line
  
  Fix crashing in the Ruby reject method in the STL wrappers
........
  r10545 | wsfulton | 2008-06-21 22:49:10 +0200 (So, 21 cze 2008) | 1 line
  
  remove unnecessary variable int the char **STRING_ARRAY out typemap
........
  r10546 | wsfulton | 2008-06-21 23:07:49 +0200 (So, 21 cze 2008) | 1 line
  
  Fix Ruby C++ example dependencies in dsp files
........
  r10547 | wsfulton | 2008-06-22 00:25:36 +0200 (N, 22 cze 2008) | 1 line
  
  Fix unused parameter warnings in python when using gcc's -W -Wall options
........
  r10548 | wsfulton | 2008-06-22 00:26:35 +0200 (N, 22 cze 2008) | 1 line
  
  Fix virtual destructor
........
  r10549 | wsfulton | 2008-06-22 01:25:20 +0200 (N, 22 cze 2008) | 1 line
  
  various warning fixes
........
  r10550 | wsfulton | 2008-06-22 02:09:11 +0200 (N, 22 cze 2008) | 1 line
  
  Another fix for the JVM hanging on exit problem when using directors
........
  r10551 | wsfulton | 2008-06-22 02:09:51 +0200 (N, 22 cze 2008) | 1 line
  
  documentation sections update
........
  r10552 | wsfulton | 2008-06-22 02:18:10 +0200 (N, 22 cze 2008) | 1 line
  
  more docs on defining macros for the thread hanging problem
........
  r10558 | wsfulton | 2008-06-22 23:30:20 +0200 (N, 22 cze 2008) | 1 line
  
  fix unused parms in last commit for C code
........
  r10559 | wsfulton | 2008-06-23 00:12:43 +0200 (Pn, 23 cze 2008) | 1 line
  
  Suppress unused methods warning for VC++
........
  r10560 | wsfulton | 2008-06-23 22:26:07 +0200 (Pn, 23 cze 2008) | 1 line
  
  fix partialcheck-test-suite and parallel make for r, chicken, tcl and php
........
  r10561 | wsfulton | 2008-06-23 22:39:41 +0200 (Pn, 23 cze 2008) | 1 line
  
  correct message display when running the partialcheck-test-suite make target
........
  r10562 | wsfulton | 2008-06-23 23:14:53 +0200 (Pn, 23 cze 2008) | 1 line
  
  fix typo
........
  r10563 | olly | 2008-06-23 23:23:54 +0200 (Pn, 23 cze 2008) | 3 lines
  
  Fix bad use of Python API (untested, since I can't even compile this code on
  x86-64!)
........
  r10564 | olly | 2008-06-24 00:58:03 +0200 (Wt, 24 cze 2008) | 3 lines
  
  [PHP] Fix segfault when wrapping a non-class function marked with
  %newobject (testcase char_strings).
........
  r10565 | olly | 2008-06-24 02:27:34 +0200 (Wt, 24 cze 2008) | 3 lines
  
  [PHP] Fix assertion failure when handling %typemap(in,numinputs=0)
  (testcase ignore_parameter).
........
  r10566 | olly | 2008-06-24 02:33:08 +0200 (Wt, 24 cze 2008) | 2 lines
  
  [PHP] Fix typemap_namespace.i to not try to copy a non-existent typemap.
........
  r10567 | olly | 2008-06-24 02:41:07 +0200 (Wt, 24 cze 2008) | 3 lines
  
  Clean up dead and unused code in SwigToPhpType(), and rename to
  GetShadowReturnType().
........
  r10568 | olly | 2008-06-24 02:42:29 +0200 (Wt, 24 cze 2008) | 2 lines
  
  Fix cosmetic typo in string constant.
........
  r10574 | wsfulton | 2008-06-24 22:10:28 +0200 (Wt, 24 cze 2008) | 1 line
  
  zap last entry
........
  r10575 | wsfulton | 2008-06-24 22:11:46 +0200 (Wt, 24 cze 2008) | 1 line
  
  variable name changes to remove php keywords
........
  r10576 | wsfulton | 2008-06-24 22:12:08 +0200 (Wt, 24 cze 2008) | 1 line
  
  variable name hiding fix
........
  r10577 | wsfulton | 2008-06-24 22:12:43 +0200 (Wt, 24 cze 2008) | 1 line
  
  More info about numobjects added
........
  r10578 | wsfulton | 2008-06-24 22:13:41 +0200 (Wt, 24 cze 2008) | 1 line
  
  update for 1.3.36 release
........
  r10579 | wsfulton | 2008-06-24 23:48:46 +0200 (Wt, 24 cze 2008) | 1 line
  
  remove deprecated -c commandline option (runtime library generation)
........
  r10580 | wsfulton | 2008-06-24 23:53:12 +0200 (Wt, 24 cze 2008) | 1 line
  
  correct comment about deprecated option
........
  r10582 | wsfulton | 2008-06-25 01:00:27 +0200 (Śr, 25 cze 2008) | 1 line
  
  use rsync and ssh to upload releases to SourceForge as ftp no longer works
........
  r10584 | wsfulton | 2008-06-25 01:24:48 +0200 (Śr, 25 cze 2008) | 1 line
  
  correction for 1.3.36
........
  r10588 | wsfulton | 2008-06-25 02:16:04 +0200 (Śr, 25 cze 2008) | 1 line
  
  section update
........
  r10589 | wsfulton | 2008-06-25 02:16:40 +0200 (Śr, 25 cze 2008) | 1 line
  
  bump version to 1.3.37
........
  r10594 | wsfulton | 2008-06-26 20:33:06 +0200 (Cz, 26 cze 2008) | 1 line
  
  correct typo in first entry about %fragment
........


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2008-maciekd@10606 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-06-28 23:26:18 +00:00

532 lines
30 KiB
OpenEdge ABL

%module "enum_thorough"
// Suppress warning messages from the Ruby module for all of the
// following...
#pragma SWIG nowarn=SWIGWARN_PARSE_KEYWORD
%warnfilter(SWIGWARN_RUBY_WRONG_NAME);
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) red;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) blue;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) green;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) SpeedClass::slow;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) SpeedClass::medium;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) SpeedClass::fast;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) SpeedClass::lightning;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) TemplateClass::einstein;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) TemplateClass::galileo;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) Name::TClass::faraday;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) Name::TClass::bell;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) argh;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) eek;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) OldNameStruct::whizz;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) OldNameStruct::kerboom;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) OldNameStruct::pop;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) OldNameStruct::simple1;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) OldNameStruct::singlename1;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) OldNameStruct::doublename1;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) TreesClass::oak;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) TreesClass::fir;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) TreesClass::pine;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) curly::greasy::HairStruct::blonde;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) curly::greasy::HairStruct::ginger;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) Obscure::one;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) Obscure::onetrail;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) Obscure::two;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) Obscure::twoagain;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) Obscure::twotrail;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) Obscure::twotrailagain;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) globalinstance1;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) globalinstance2;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) globalinstance3;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) Instances::memberinstance1;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) Instances::memberinstance2;
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) Instances::memberinstance3;
%inline %{
enum { AnonEnum1, AnonEnum2 = 100 };
enum { ReallyAnInteger = 200 };
//enum { AnonEnum3, AnonEnum4 } instance;
namespace AnonSpace {
enum { AnonSpaceEnum1, AnonSpaceEnum2 = 300 };
struct AnonStruct {
enum { AnonStructEnum1, AnonStructEnum2 = 400 };
};
}
enum colour { red=-1, blue, green = 10 };
colour colourTest1(colour e) { return e; }
enum colour colourTest2(enum colour e) { return e; }
const colour colourTest3(const colour e) { return e; }
const enum colour colourTest4(const enum colour e) { return e; }
colour myColour;
struct SpeedClass {
enum speed { slow=10, medium=20, fast=30, lightning };
typedef enum speed speedtd1;
int speedTest0(int s) { return s; }
speed speedTest1(speed s) { return s; }
enum speed speedTest2(enum speed s) { return s; }
const speed speedTest3(const speed s) { return s; }
const enum speed speedTest4(const enum speed s) { return s; }
speedtd1 speedTest5(speedtd1 s) { return s; }
const speedtd1 speedTest6(const speedtd1 s) { return s; }
const speed & speedTest7(const speed &s) { return s; }
const enum speed & speedTest8(const enum speed &s) { return s; }
const colour myColour2;
speedtd1 mySpeedtd1;
SpeedClass() : myColour2(red), mySpeedtd1(slow) { }
private:
SpeedClass& operator=(const SpeedClass&);
};
int speedTest0(int s) { return s; }
SpeedClass::speed speedTest1(SpeedClass::speed s) { return s; }
enum SpeedClass::speed speedTest2(enum SpeedClass::speed s) { return s; }
const SpeedClass::speed speedTest3(const SpeedClass::speed s) { return s; }
const enum SpeedClass::speed speedTest4(const enum SpeedClass::speed s) { return s; }
const SpeedClass::speed & speedTest5(const SpeedClass::speed &s) { return s; }
typedef enum { NamedAnon1, NamedAnon2 } namedanon;
namedanon namedanonTest1(namedanon e) { return e; }
typedef enum twonamestag { TwoNames1, TwoNames2, TwoNames3 = 33 } twonames;
twonames twonamesTest1(twonames e) { return e; }
twonamestag twonamesTest2(twonamestag e) { return e; }
enum twonamestag twonamesTest3(enum twonamestag e) { return e; }
struct TwoNamesStruct {
typedef enum twonamestag { TwoNamesStruct1, TwoNamesStruct2 } twonames;
twonames twonamesTest1(twonames e) { return e; }
twonamestag twonamesTest2(twonamestag e) { return e; }
enum twonamestag twonamesTest3(enum twonamestag e) { return e; }
};
namespace AnonSpace{
typedef enum { NamedAnonSpace1, NamedAnonSpace2 } namedanonspace;
namedanonspace namedanonspaceTest1(namedanonspace e) { return e; }
AnonSpace::namedanonspace namedanonspaceTest2(AnonSpace::namedanonspace e) { return e; }
}
AnonSpace::namedanonspace namedanonspaceTest3(AnonSpace::namedanonspace e) { return e; }
using namespace AnonSpace;
namedanonspace namedanonspaceTest4(namedanonspace e) { return e; }
template<typename T> struct TemplateClass {
enum scientists { einstein, galileo = 10 };
typedef enum scientists scientiststd1;
typedef scientists scientiststd2;
typedef scientiststd1 scientiststd3;
scientists scientistsTest1(scientists e) { return e; }
enum scientists scientistsTest2(enum scientists e) { return e; }
const scientists scientistsTest3(const scientists e) { return e; }
const enum scientists scientistsTest4(const enum scientists e) { return e; }
typename TemplateClass<T>::scientists scientistsTest5(typename TemplateClass<T>::scientists e) { return e; }
const typename TemplateClass<T>::scientists scientistsTest6(const typename TemplateClass<T>::scientists e) { return e; }
enum TemplateClass<T>::scientists scientistsTest7(enum TemplateClass<T>::scientists e) { return e; }
const enum TemplateClass<T>::scientists scientistsTest8(const enum TemplateClass<T>::scientists e) { return e; }
typename TemplateClass::scientists scientistsTest9(typename TemplateClass::scientists e) { return e; }
// enum TemplateClass::scientists scientistsTestA(enum TemplateClass::scientists e) { return e; }
const typename TemplateClass::scientists scientistsTestB(const typename TemplateClass::scientists e) { return e; }
// const enum TemplateClass::scientists scientistsTestC(const enum TemplateClass::scientists e) { return e; }
scientiststd1 scientistsTestD(scientiststd1 e) { return e; }
scientiststd2 scientistsTestE(scientiststd2 e) { return e; }
scientiststd3 scientistsTestF(scientiststd3 e) { return e; }
typename TemplateClass<T>::scientiststd1 scientistsTestG(typename TemplateClass<T>::scientiststd1 e) { return e; }
typename TemplateClass<T>::scientiststd2 scientistsTestH(typename TemplateClass<T>::scientiststd2 e) { return e; }
typename TemplateClass<T>::scientiststd3 scientistsTestI(typename TemplateClass<T>::scientiststd3 e) { return e; }
const scientists & scientistsTestJ(const scientists &e) { return e; }
};
TemplateClass<int>::scientists scientistsTest1(TemplateClass<int>::scientists e) { return e; }
const TemplateClass<int>::scientists scientistsTest2(const TemplateClass<int>::scientists e) { return e; }
enum TemplateClass<int>::scientists scientistsTest3(enum TemplateClass<int>::scientists e) { return e; }
const enum TemplateClass<int>::scientists scientistsTest4(const enum TemplateClass<int>::scientists e) { return e; }
TemplateClass<int>::scientiststd1 scientistsTest5(TemplateClass<int>::scientiststd1 e) { return e; }
TemplateClass<int>::scientiststd2 scientistsTest6(TemplateClass<int>::scientiststd2 e) { return e; }
TemplateClass<int>::scientiststd3 scientistsTest7(TemplateClass<int>::scientiststd3 e) { return e; }
const TemplateClass<int>::scientiststd3 & scientistsTest8(const TemplateClass<int>::scientiststd3 &e) { return e; }
namespace Name {
template<typename T> struct TClass {
enum scientists { faraday, bell = 20 };
typedef enum scientists scientiststd1;
typedef scientists scientiststd2;
typedef scientiststd1 scientiststd3;
scientists scientistsNameTest1(scientists e) { return e; }
enum scientists scientistsNameTest2(enum scientists e) { return e; }
const scientists scientistsNameTest3(const scientists e) { return e; }
const enum scientists scientistsNameTest4(const enum scientists e) { return e; }
typename TClass<T>::scientists scientistsNameTest5(typename TClass<T>::scientists e) { return e; }
const typename TClass<T>::scientists scientistsNameTest6(const typename TClass<T>::scientists e) { return e; }
enum TClass<T>::scientists scientistsNameTest7(enum TClass<T>::scientists e) { return e; }
const enum TClass<T>::scientists scientistsNameTest8(const enum TClass<T>::scientists e) { return e; }
typename TClass::scientists scientistsNameTest9(typename TClass::scientists e) { return e; }
// enum TClass::scientists scientistsNameTestA(enum TClass::scientists e) { return e; }
const typename TClass::scientists scientistsNameTestB(const typename TClass::scientists e) { return e; }
// const enum TClass::scientists scientistsNameTestC(const enum TClass::scientists e) { return e; }
scientiststd1 scientistsNameTestD(scientiststd1 e) { return e; }
scientiststd2 scientistsNameTestE(scientiststd2 e) { return e; }
scientiststd3 scientistsNameTestF(scientiststd3 e) { return e; }
typename TClass<T>::scientiststd1 scientistsNameTestG(typename TClass<T>::scientiststd1 e) { return e; }
typename TClass<T>::scientiststd2 scientistsNameTestH(typename TClass<T>::scientiststd2 e) { return e; }
typename TClass<T>::scientiststd3 scientistsNameTestI(typename TClass<T>::scientiststd3 e) { return e; }
typename Name::TClass<T>::scientists scientistsNameSpaceTest1(typename Name::TClass<T>::scientists e) { return e; }
const typename Name::TClass<T>::scientists scientistsNameSpaceTest2(const typename Name::TClass<T>::scientists e) { return e; }
enum Name::TClass<T>::scientists scientistsNameSpaceTest3(enum Name::TClass<T>::scientists e) { return e; }
const enum Name::TClass<T>::scientists scientistsNameSpaceTest4(const enum Name::TClass<T>::scientists e) { return e; }
typename Name::TClass<T>::scientiststd1 scientistsNameSpaceTest5(typename Name::TClass<T>::scientiststd1 e) { return e; }
typename Name::TClass<T>::scientiststd2 scientistsNameSpaceTest6(typename Name::TClass<T>::scientiststd2 e) { return e; }
typename Name::TClass<T>::scientiststd3 scientistsNameSpaceTest7(typename Name::TClass<T>::scientiststd3 e) { return e; }
// Test TemplateClass::scientists rather then TClass::scientists
::TemplateClass<int>::scientists scientistsOtherTest1(::TemplateClass<int>::scientists e) { return e; }
const ::TemplateClass<int>::scientists scientistsOtherTest2(const ::TemplateClass<int>::scientists e) { return e; }
enum ::TemplateClass<int>::scientists scientistsOtherTest3(enum ::TemplateClass<int>::scientists e) { return e; }
const enum ::TemplateClass<int>::scientists scientistsOtherTest4(const enum ::TemplateClass<int>::scientists e) { return e; }
::TemplateClass<int>::scientiststd1 scientistsOtherTest5(::TemplateClass<int>::scientiststd1 e) { return e; }
::TemplateClass<int>::scientiststd2 scientistsOtherTest6(::TemplateClass<int>::scientiststd2 e) { return e; }
::TemplateClass<int>::scientiststd3 scientistsOtherTest7(::TemplateClass<int>::scientiststd3 e) { return e; }
};
TClass<int>::scientists scientistsNameTest1(TClass<int>::scientists e) { return e; }
const TClass<int>::scientists scientistsNameTest2(const TClass<int>::scientists e) { return e; }
enum TClass<int>::scientists scientistsNameTest3(enum TClass<int>::scientists e) { return e; }
const enum TClass<int>::scientists scientistsNameTest4(const enum TClass<int>::scientists e) { return e; }
TClass<int>::scientiststd1 scientistsNameTest5(TClass<int>::scientiststd1 e) { return e; }
TClass<int>::scientiststd2 scientistsNameTest6(TClass<int>::scientiststd2 e) { return e; }
TClass<int>::scientiststd3 scientistsNameTest7(TClass<int>::scientiststd3 e) { return e; }
Name::TClass<int>::scientists scientistsNameSpaceTest1(Name::TClass<int>::scientists e) { return e; }
const Name::TClass<int>::scientists scientistsNameSpaceTest2(const Name::TClass<int>::scientists e) { return e; }
enum Name::TClass<int>::scientists scientistsNameSpaceTest3(enum Name::TClass<int>::scientists e) { return e; }
const enum Name::TClass<int>::scientists scientistsNameSpaceTest4(const enum Name::TClass<int>::scientists e) { return e; }
Name::TClass<int>::scientiststd1 scientistsNameSpaceTest5(Name::TClass<int>::scientiststd1 e) { return e; }
Name::TClass<int>::scientiststd2 scientistsNameSpaceTest6(Name::TClass<int>::scientiststd2 e) { return e; }
Name::TClass<int>::scientiststd3 scientistsNameSpaceTest7(Name::TClass<int>::scientiststd3 e) { return e; }
}
Name::TClass<int>::scientists scientistsNameSpaceTest8(Name::TClass<int>::scientists e) { return e; }
const Name::TClass<int>::scientists scientistsNameSpaceTest9(const Name::TClass<int>::scientists e) { return e; }
enum Name::TClass<int>::scientists scientistsNameSpaceTestA(enum Name::TClass<int>::scientists e) { return e; }
const enum Name::TClass<int>::scientists scientistsNameSpaceTestB(const enum Name::TClass<int>::scientists e) { return e; }
Name::TClass<int>::scientiststd1 scientistsNameSpaceTestC(Name::TClass<int>::scientiststd1 e) { return e; }
Name::TClass<int>::scientiststd2 scientistsNameSpaceTestD(Name::TClass<int>::scientiststd2 e) { return e; }
Name::TClass<int>::scientiststd3 scientistsNameSpaceTestE(Name::TClass<int>::scientiststd3 e) { return e; }
using namespace Name;
TClass<int>::scientists scientistsNameSpaceTestF(TClass<int>::scientists e) { return e; }
const TClass<int>::scientists scientistsNameSpaceTestG(const TClass<int>::scientists e) { return e; }
enum TClass<int>::scientists scientistsNameSpaceTestH(enum TClass<int>::scientists e) { return e; }
const enum TClass<int>::scientists scientistsNameSpaceTestI(const enum TClass<int>::scientists e) { return e; }
TClass<int>::scientiststd1 scientistsNameSpaceTestJ(TClass<int>::scientiststd1 e) { return e; }
TClass<int>::scientiststd2 scientistsNameSpaceTestK(TClass<int>::scientiststd2 e) { return e; }
TClass<int>::scientiststd3 scientistsNameSpaceTestL(TClass<int>::scientiststd3 e) { return e; }
%}
%template(TemplateClassInt) TemplateClass<int>;
%template(TClassInt) Name::TClass<int>;
// %rename tests
%rename(NewNameStruct) OldNameStruct;
%rename(newname) old_name;
%rename(doublenamerenamed) doublename;
%rename(simplerenamed) simple;
%rename(singlenamerenamed) singlename;
%rename(bang) OldNameStruct::kerboom;
%inline %{
enum old_name { argh, eek = -1 };
typedef old_name old_nametd;
old_name renameTest1(old_name e) { return e; }
old_nametd renameTest2(old_nametd e) { return e; }
struct OldNameStruct {
enum enumeration {whizz, kerboom, pop};
enumeration renameTest1(enumeration e) { return e; }
OldNameStruct::enumeration renameTest2(OldNameStruct::enumeration e) { return e; }
enum simple {simple1};
typedef enum doublenametag {doublename1} doublename;
typedef enum {singlename1} singlename;
simple renameTest3(simple e) { return e; }
doublename renameTest4(doublename e) { return e; }
doublenametag renameTest5(doublenametag e) { return e; }
singlename renameTest6(singlename e) { return e; }
};
OldNameStruct::enumeration renameTest3(OldNameStruct::enumeration e) { return e; }
OldNameStruct::simple renameTest4(OldNameStruct::simple e) { return e; }
OldNameStruct::doublename renameTest5(OldNameStruct::doublename e) { return e; }
OldNameStruct::doublenametag renameTest6(OldNameStruct::doublenametag e) { return e; }
OldNameStruct::singlename renameTest7(OldNameStruct::singlename e) { return e; }
%}
%inline %{
struct TreesClass {
enum trees {oak, fir, pine };
typedef enum trees treestd1;
typedef trees treestd2;
typedef treestd1 treestd3;
typedef TreesClass::trees treestd4;
typedef treestd1 treestd5;
trees treesTest1(trees e) { return e; }
treestd1 treesTest2(treestd1 e) { return e; }
treestd2 treesTest3(treestd2 e) { return e; }
treestd3 treesTest4(treestd3 e) { return e; }
treestd4 treesTest5(treestd4 e) { return e; }
treestd5 treesTest6(treestd5 e) { return e; }
const trees treesTest7(const trees e) { return e; }
const treestd1 treesTest8(const treestd1 e) { return e; }
const treestd2 treesTest9(const treestd2 e) { return e; }
const treestd3 treesTestA(const treestd3 e) { return e; }
const treestd4 treesTestB(const treestd4 e) { return e; }
const treestd5 treesTestC(const treestd5 e) { return e; }
TreesClass::trees treesTestD(TreesClass::trees e) { return e; }
TreesClass::treestd1 treesTestE(TreesClass::treestd1 e) { return e; }
TreesClass::treestd2 treesTestF(TreesClass::treestd2 e) { return e; }
TreesClass::treestd3 treesTestG(TreesClass::treestd3 e) { return e; }
TreesClass::treestd4 treesTestH(TreesClass::treestd4 e) { return e; }
TreesClass::treestd5 treesTestI(TreesClass::treestd5 e) { return e; }
const TreesClass::trees treesTestJ(const TreesClass::trees e) { return e; }
const TreesClass::treestd1 treesTestK(const TreesClass::treestd1 e) { return e; }
const TreesClass::treestd2 treesTestL(const TreesClass::treestd2 e) { return e; }
const TreesClass::treestd3 treesTestM(const TreesClass::treestd3 e) { return e; }
const TreesClass::treestd4 treesTestN(const TreesClass::treestd4 e) { return e; }
const TreesClass::treestd5 treesTestO(const TreesClass::treestd5 e) { return e; }
};
TreesClass::trees treesTest1(TreesClass::trees e) { return e; }
TreesClass::treestd1 treesTest2(TreesClass::treestd1 e) { return e; }
TreesClass::treestd2 treesTest3(TreesClass::treestd2 e) { return e; }
TreesClass::treestd3 treesTest4(TreesClass::treestd3 e) { return e; }
TreesClass::treestd4 treesTest5(TreesClass::treestd4 e) { return e; }
TreesClass::treestd5 treesTest6(TreesClass::treestd5 e) { return e; }
const TreesClass::trees treesTest7(const TreesClass::trees e) { return e; }
const TreesClass::treestd1 treesTest8(const TreesClass::treestd1 e) { return e; }
const TreesClass::treestd2 treesTest9(const TreesClass::treestd2 e) { return e; }
const TreesClass::treestd3 treesTestA(const TreesClass::treestd3 e) { return e; }
const TreesClass::treestd4 treesTestB(const TreesClass::treestd4 e) { return e; }
const TreesClass::treestd5 treesTestC(const TreesClass::treestd5 e) { return e; }
typedef enum TreesClass::trees treesglobaltd1;
typedef TreesClass::trees treesglobaltd2;
typedef TreesClass::treestd1 treesglobaltd3;
typedef TreesClass::treestd2 treesglobaltd4;
typedef treesglobaltd4 treesglobaltd5;
treesglobaltd1 treesTestD(treesglobaltd1 e) { return e; }
treesglobaltd2 treesTestE(treesglobaltd2 e) { return e; }
treesglobaltd3 treesTestF(treesglobaltd3 e) { return e; }
treesglobaltd4 treesTestG(treesglobaltd4 e) { return e; }
treesglobaltd5 treesTestH(treesglobaltd5 e) { return e; }
const treesglobaltd1 treesTestI(const treesglobaltd1 e) { return e; }
const treesglobaltd2 treesTestJ(const treesglobaltd2 e) { return e; }
const treesglobaltd3 treesTestK(const treesglobaltd3 e) { return e; }
const treesglobaltd4 treesTestL(const treesglobaltd4 e) { return e; }
const treesglobaltd5 treesTestM(const treesglobaltd5 e) { return e; }
typedef const enum TreesClass::trees treesglobaltd6;
typedef const TreesClass::trees treesglobaltd7;
typedef const TreesClass::treestd1 treesglobaltd8;
typedef const TreesClass::treestd2 treesglobaltd9;
typedef const treesglobaltd4 treesglobaltdA;
//treesglobaltd6 treesTestN(treesglobaltd6 e) { return e; } // casting using an int instead of treesglobaltd6
treesglobaltd7 treesTestO(treesglobaltd7 e) { return e; }
treesglobaltd8 treesTestP(treesglobaltd8 e) { return e; }
treesglobaltd9 treesTestQ(treesglobaltd9 e) { return e; }
treesglobaltdA treesTestR(treesglobaltdA e) { return e; }
namespace curly {
namespace greasy {
struct HairStruct {
enum hair { blonde=0xFF0, ginger };
typedef hair hairtd1;
typedef HairStruct::hair hairtd2;
typedef greasy::HairStruct::hair hairtd3;
typedef curly::greasy::HairStruct::hair hairtd4;
typedef ::curly::greasy::HairStruct::hair hairtd5;
typedef hairtd1 hairtd6;
typedef HairStruct::hairtd1 hairtd7;
typedef greasy::HairStruct::hairtd1 hairtd8;
typedef curly::greasy::HairStruct::hairtd1 hairtd9;
typedef ::curly::greasy::HairStruct::hairtd1 hairtdA;
hair hairTest1(hair e) { return e; }
hairtd1 hairTest2(hairtd1 e) { return e; }
hairtd2 hairTest3(hairtd2 e) { return e; }
hairtd3 hairTest4(hairtd3 e) { return e; }
hairtd4 hairTest5(hairtd4 e) { return e; }
hairtd5 hairTest6(hairtd5 e) { return e; }
hairtd6 hairTest7(hairtd6 e) { return e; }
hairtd7 hairTest8(hairtd7 e) { return e; }
hairtd8 hairTest9(hairtd8 e) { return e; }
hairtd9 hairTestA(hairtd9 e) { return e; }
hairtdA hairTestB(hairtdA e) { return e; }
::colour colourTest1(::colour e) { return e; }
enum colour colourTest2(enum colour e) { return e; }
namedanon namedanonTest1(namedanon e) { return e; }
AnonSpace::namedanonspace namedanonspaceTest1(AnonSpace::namedanonspace e) { return e; }
treesglobaltd1 treesGlobalTest1(treesglobaltd1 e) { return e; }
treesglobaltd2 treesGlobalTest2(treesglobaltd2 e) { return e; }
treesglobaltd3 treesGlobalTest3(treesglobaltd3 e) { return e; }
treesglobaltd4 treesGlobalTest4(treesglobaltd4 e) { return e; }
treesglobaltd5 treesGlobalTest5(treesglobaltd5 e) { return e; }
};
HairStruct::hair hairTest1(HairStruct::hair e) { return e; }
HairStruct::hairtd1 hairTest2(HairStruct::hairtd1 e) { return e; }
HairStruct::hairtd2 hairTest3(HairStruct::hairtd2 e) { return e; }
HairStruct::hairtd3 hairTest4(HairStruct::hairtd3 e) { return e; }
HairStruct::hairtd4 hairTest5(HairStruct::hairtd4 e) { return e; }
HairStruct::hairtd5 hairTest6(HairStruct::hairtd5 e) { return e; }
HairStruct::hairtd6 hairTest7(HairStruct::hairtd6 e) { return e; }
HairStruct::hairtd7 hairTest8(HairStruct::hairtd7 e) { return e; }
HairStruct::hairtd8 hairTest9(HairStruct::hairtd8 e) { return e; }
HairStruct::hairtd9 hairTestA(HairStruct::hairtd9 e) { return e; }
HairStruct::hairtdA hairTestB(HairStruct::hairtdA e) { return e; }
const HairStruct::hair & hairTestC(const HairStruct::hair &e) { return e; }
}
greasy::HairStruct::hair hairTestA1(greasy::HairStruct::hair e) { return e; }
greasy::HairStruct::hairtd1 hairTestA2(greasy::HairStruct::hairtd1 e) { return e; }
greasy::HairStruct::hairtd2 hairTestA3(greasy::HairStruct::hairtd2 e) { return e; }
greasy::HairStruct::hairtd3 hairTestA4(greasy::HairStruct::hairtd3 e) { return e; }
greasy::HairStruct::hairtd4 hairTestA5(greasy::HairStruct::hairtd4 e) { return e; }
greasy::HairStruct::hairtd5 hairTestA6(greasy::HairStruct::hairtd5 e) { return e; }
greasy::HairStruct::hairtd6 hairTestA7(greasy::HairStruct::hairtd6 e) { return e; }
greasy::HairStruct::hairtd7 hairTestA8(greasy::HairStruct::hairtd7 e) { return e; }
greasy::HairStruct::hairtd8 hairTestA9(greasy::HairStruct::hairtd8 e) { return e; }
greasy::HairStruct::hairtd9 hairTestAA(greasy::HairStruct::hairtd9 e) { return e; }
greasy::HairStruct::hairtdA hairTestAB(greasy::HairStruct::hairtdA e) { return e; }
const greasy::HairStruct::hairtdA & hairTestAC(const greasy::HairStruct::hairtdA &e) { return e; }
}
curly::greasy::HairStruct::hair hairTestB1(curly::greasy::HairStruct::hair e) { return e; }
curly::greasy::HairStruct::hairtd1 hairTestB2(curly::greasy::HairStruct::hairtd1 e) { return e; }
curly::greasy::HairStruct::hairtd2 hairTestB3(curly::greasy::HairStruct::hairtd2 e) { return e; }
curly::greasy::HairStruct::hairtd3 hairTestB4(curly::greasy::HairStruct::hairtd3 e) { return e; }
curly::greasy::HairStruct::hairtd4 hairTestB5(curly::greasy::HairStruct::hairtd4 e) { return e; }
curly::greasy::HairStruct::hairtd5 hairTestB6(curly::greasy::HairStruct::hairtd5 e) { return e; }
curly::greasy::HairStruct::hairtd6 hairTestB7(curly::greasy::HairStruct::hairtd6 e) { return e; }
curly::greasy::HairStruct::hairtd7 hairTestB8(curly::greasy::HairStruct::hairtd7 e) { return e; }
curly::greasy::HairStruct::hairtd8 hairTestB9(curly::greasy::HairStruct::hairtd8 e) { return e; }
curly::greasy::HairStruct::hairtd9 hairTestBA(curly::greasy::HairStruct::hairtd9 e) { return e; }
curly::greasy::HairStruct::hairtdA hairTestBB(curly::greasy::HairStruct::hairtdA e) { return e; }
const curly::greasy::HairStruct::hairtdA & hairTestBC(const curly::greasy::HairStruct::hairtdA &e) { return e; }
using curly::greasy::HairStruct;
HairStruct::hair hairTestC1(HairStruct::hair e) { return e; }
HairStruct::hairtd1 hairTestC2(HairStruct::hairtd1 e) { return e; }
HairStruct::hairtd2 hairTestC3(HairStruct::hairtd2 e) { return e; }
HairStruct::hairtd3 hairTestC4(HairStruct::hairtd3 e) { return e; }
HairStruct::hairtd4 hairTestC5(HairStruct::hairtd4 e) { return e; }
HairStruct::hairtd5 hairTestC6(HairStruct::hairtd5 e) { return e; }
HairStruct::hairtd6 hairTestC7(HairStruct::hairtd6 e) { return e; }
HairStruct::hairtd7 hairTestC8(HairStruct::hairtd7 e) { return e; }
HairStruct::hairtd8 hairTestC9(HairStruct::hairtd8 e) { return e; }
HairStruct::hairtd9 hairTestCA(HairStruct::hairtd9 e) { return e; }
HairStruct::hairtdA hairTestCB(HairStruct::hairtdA e) { return e; }
const HairStruct::hairtdA & hairTestCC(const HairStruct::hairtdA &e) { return e; }
namespace curly {
namespace greasy {
struct FirStruct : HairStruct {
hair hairTestFir1(hair e) { return e; }
hairtd1 hairTestFir2(hairtd1 e) { return e; }
hairtd2 hairTestFir3(hairtd2 e) { return e; }
hairtd3 hairTestFir4(hairtd3 e) { return e; }
hairtd4 hairTestFir5(hairtd4 e) { return e; }
hairtd5 hairTestFir6(hairtd5 e) { return e; }
hairtd6 hairTestFir7(hairtd6 e) { return e; }
hairtd7 hairTestFir8(hairtd7 e) { return e; }
hairtd8 hairTestFir9(hairtd8 e) { return e; }
hairtd9 hairTestFirA(hairtd9 e) { return e; }
hairtdA hairTestFirB(hairtdA e) { return e; }
};
}
}
struct Obscure {
enum Zero {};
enum One {one};
enum Two {two, twoagain};
#if defined(SWIG)
// g++-4.3 warns about this
typedef enum Empty {};
#endif
typedef enum {} AlsoEmpty;
};
// Unnamed enum instance
extern "C" {
enum { globalinstance1, globalinstance2, globalinstance3 = 30 } GlobalInstance;
}
struct Instances {
enum { memberinstance1, memberinstance2, memberinstance3 = 300 } MemberInstance;
Instances() : MemberInstance(memberinstance3) {}
};
%}
// Repeated values
#if defined(SWIGJAVA)
%javaconst(1);
#elif defined(SWIGCSHARP)
%csconst(1);
#endif
#if defined(SWIGPERL)
%inline %{
namespace RepeatSpace {
typedef enum
{
one = 1,
initial = one,
two,
three,
llast = three,
end = llast
} repeat;
repeat repeatTest(repeat e) { return e; }
}
%}
#else
%inline %{
namespace RepeatSpace {
typedef enum
{
one = 1,
initial = one,
two,
three,
last = three,
end = last
} repeat;
repeat repeatTest(repeat e) { return e; }
}
%}
#endif