Commit graph

86 commits

Author SHA1 Message Date
William S Fulton
45b8823e31 %rename/%ignore mods so that the behaviour is the same as %feature for default args
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6676 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-11-05 23:27:10 +00:00
Marcelo Matus
9d3cce855e remove old patch for features + def arg, but save the ignore/rename part. Now everything seems to be working.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6668 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-11-04 23:18:01 +00:00
William S Fulton
9c8162bb90 Alternative %feature improvements for methods with default args, that works with constructors.
Marcelo, I've commented your approach out using #define MARCELO. Lets discuss on swig-dev.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6660 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-11-04 22:09:29 +00:00
Marcelo Matus
272e74dc36 fix %features/%rename + def args
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6657 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-11-04 18:41:31 +00:00
Marcelo Matus
a0c0486d76 making sure the resolve_scope_node is working fine before release, and fix for unnamed namespace
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6641 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-11-03 08:07:02 +00:00
Marcelo Matus
6227611fa7 fixes for %template+member/static methods
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6636 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-11-03 00:59:38 +00:00
William S Fulton
9eaf8c335b Default args fix for const methods. The extra methods being generated were non-const.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6624 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-11-02 21:22:49 +00:00
Marcelo Matus
cb15d93f18 fix %template + static class members
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6623 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-11-02 20:04:59 +00:00
Marcelo Matus
9cdd5195ab fix %template + static class members
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6622 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-11-02 19:40:41 +00:00
Marcelo Matus
ec2d6ba128 more uniform treatment of extern C. This also fix the defarg mechanism when declaring C functions inside C++.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6621 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-11-02 19:03:01 +00:00
Marcelo Matus
bd1743157b last fixes for namespaces
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6609 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-11-02 02:12:01 +00:00
Marcelo Matus
0fe5c56436 last fixes for namespaces
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6607 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-11-02 01:50:21 +00:00
Marcelo Matus
3fc7b773d9 fixes for namespaces + class declarations + %template directive
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6576 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-11-01 08:38:21 +00:00
William S Fulton
78afe76002 segfault fix for global scope operator used in friend declaration
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6550 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-29 21:33:31 +00:00
Marcelo Matus
f15126aee3 add templatereduce option
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6543 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-28 23:49:41 +00:00
Marcelo Matus
fc2f54c647 better option name templatereduce
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6542 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-28 19:31:33 +00:00
Marcelo Matus
cf7b11c3fd Recover original types in template expansions.
Added the module option "tpltreduc" to force Swig to
reduce all the typedef found in a template, usually
as a compiler will do. This allows swig to parse
very ugly template + typedef code, but it can prevent some
typemaps for working.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6527 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-27 01:57:36 +00:00
Marcelo Matus
7437e0896d eliminate the reduce/reduce conflicts
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6525 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-26 22:08:36 +00:00
Marcelo Matus
291eff8f6d third attempo to commit, same changes, ie director + nested but no extra shift/reduce
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6518 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-26 06:53:04 +00:00
Marcelo Matus
a61421ac2b previous commit incomplete, this one really fix derive_nested.i
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6515 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-26 01:15:10 +00:00
Marcelo Matus
e2f5c7674c solve using+namespaces (using_namespace.i) and nested+derived classes (derived_nested.i)
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6506 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-26 00:21:40 +00:00
Marcelo Matus
5023285fb8 Fix directors + protected pure virtual members + protected
constructor.

Now it doesn't crash, you don't need to use dirprot, and no, it is not
emitting all the protected members, unless dirprot is used.

Swig only emits the protected members or constructors needed to prevent
the compilation for crashing. The rest of the protected members
are emitted when dirprot is used.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6493 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-24 05:58:15 +00:00
William S Fulton
a889c59f3b - compact default arguments feature (original default argument wrapping mode)
- fix for templated functions in a namespace


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6448 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-20 20:49:49 +00:00
Marcelo Matus
ced0d5e023 fix for template+default template params, better warnings, better management of extern "java"
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6424 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-18 01:23:20 +00:00
William S Fulton
13926748ee templated function overloading support
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6394 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-16 20:41:17 +00:00
Marcelo Matus
2459ec99d1 add initial C99 complex support + long double
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6384 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-10 08:18:14 +00:00
Marcelo Matus
ed25a4df08 fix extend_placement.i case, ie extend overloding + member overloading
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6334 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-05 23:17:40 +00:00
William S Fulton
06989d7a7b revoke previous %extend+overload fix.
It might need to come back to fix templates. Not sure yet.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6328 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-05 22:15:45 +00:00
Marcelo Matus
398b4d6f77 add support for empty throw(), needed by director
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6319 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-05 20:57:08 +00:00
Marcelo Matus
776f15623e several fixes, see CHANGES.current 10/04/2004
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6317 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-05 00:19:26 +00:00
William S Fulton
fa2a384f71 New default argument wrapping approach. This adds default argument support for statically typed languages, fixes wrapping of default arguments that are non-public plus fixes other bugs where SWIG could not or failed to correctly lookup up the default value in the symbol table.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6305 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-04 20:19:31 +00:00
Marcelo Matus
2e9ef019df fix %extend+overload error
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6298 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-04 03:18:57 +00:00
Marcelo Matus
0bcc1a43ae fix bitfield with expr
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6286 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-02 02:11:40 +00:00
William S Fulton
4c02e7cc0e Fix for enum forward declarations
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6117 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-08-23 20:10:51 +00:00
William S Fulton
eafe8d5abf missing ;
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6034 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-07-12 19:46:10 +00:00
William S Fulton
e2454484ba 1)
%feature improvements for the syntax that takes the feature value within the
            %feature() brackets. The value specified is no longer restricted to being just
            a string. It can be a string or a number. For example, this is now acceptable
            syntax:
              %feature("featurename",20.0);
            whereas previously it would have to have been:
              %feature("featurename","20.0");
            Useful for features that are implemented as a macro, for example:
              #define %somefeature(value)      %feature("somefeature",value)
            These will now work accepting either a string or a number:
              %somefeature("Fred");
              %somefeature(4);

2)
            %feature enhancements. Features can now take an unlimited number of attributes
            in addition to the feature name and feature value. The attributes are optional
            and are much the same as the typemap attributes. For example, the following
            specifies two optional attributes, attrib1 and attrib2:

             %feature(featurename, attrib1="attribval1", attrib2="attribval2") name "val";
             %feature(featurename, val, attrib1="attribval1", attrib2="attribval2") name;


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5997 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-06-27 20:48:57 +00:00
William S Fulton
f2100be746 Unnamed enum instance in global scope fix
enumvalueex attribute now set during the type pass


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5922 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-05-24 20:13:55 +00:00
William S Fulton
d80d8dba3b Fix for unnamed enum member variables
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5882 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-04-22 20:36:13 +00:00
Marcelo Matus
aa33886558 error fix in lang.cxx and more comments
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5871 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-04-11 08:09:57 +00:00
Marcelo Matus
405a7335a7 fix java reg. tests and add -directors flag
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5867 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-04-11 05:55:35 +00:00
William S Fulton
9e495501fd mods for adding enums to the symbol table
enumvalue split into enumvalue and enumvalueex


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5847 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-04-09 19:28:16 +00:00
Marcelo Matus
6184dceb5b Fragments can now be "type especialized", as the typemaps. The
syntax is as follows

 %fragment("name","header") { /* an old fragment */ }
 %fragment("name" {Type}, "header") { /* the fragment is type dependent */}

Now fragments can also be used inside templates:

 template <class T>
 struct A {
   %fragment("incode"{A<T>},"header") {
     /* 'incode' especialized fragment */
   }

   %typemap(in,fragment="incode"{A<T>}) {
     /*
       here we use the 'type especialized' fragment
       "incode"{A<T> }
      */
   }
 };

Also, there is a minor templ.c fix when expanding '#T'.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5749 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-17 08:01:06 +00:00
William S Fulton
6516029372 Fixes for compilation by the Digital Mars Compiler. Submitted by Scott Michel.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5728 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-02-20 22:51:47 +00:00
Marcelo Matus
6dceec6fdb Simple patch to allow fragments to include other fragments:
%fragment("Hello","header") "..."

%fragment("Hi","header",fragment="Hello") "..."

the latter fragment will include the first one if is invoked.

more than one fragment can be included at the time, just
keep adding fragment="f1",fragment="f2", etc.

this is used to emulate typemaps reuse, where all the
reusable typemap code is put in a fragment static method,
and then it can be included from another fragment typemap
as needed.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5690 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-27 23:39:35 +00:00
Marcelo Matus
4e7f391eba saves the rawval constant attribute when presents. this simplifies the generation of typemaps for char/strings
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5679 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-23 23:26:46 +00:00
William S Fulton
b0df32dd1a Various warning fixes for .NET 2003 cl /W4 to work barring one warning and for gcc -ansi -Wall -pedantic to be warning free:
const fixes and function prototype declarations matching the definition etc


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5639 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-15 22:46:07 +00:00
Marcelo Matus
8d9bdc8148 minor cosmetic fixes in the 'error' attribute
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5636 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-15 09:02:41 +00:00
Marcelo Matus
74d6f1eb43 Added the warning code
WARN_PARSE_REDUNDANT          322

similar to the g++ -Wredundant-decls flag.

This recovers the warnings that now are not been reported by
the original code

   WARN_PARSE_REDEFINED          302

Redundant example:

   int foo(int);
   int foo(int);

Redefined example:

   int foo(int);
   double foo(int);


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5634 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-15 08:16:53 +00:00
Marcelo Matus
eaa0062cd2 Fix for friend declarations, and other 'repeated' declarations.
Now, this doesn't generate warnings:

 class A; class B*;

 int foo(A*, B*);

 struct A {
   friend int foo(A*, B*);
 };

but this generates

 struct B {
   friend double foo(A*, B*);
 };

which is correct, since they have different return types.

See the redefined.i file for most cases where
repeated (but not redefined) declarations are
not generating warnings now, such as:

// no warning
#define REPEATED 1
#define REPEATED 1

// yes warning
#define REDEFINED 1
#define REDEFINED 2

this is following the C, C++ and preprocessor
standard behavior.

The function 'need_redefined_warn(..)' was added to
util.c, if some strange corner appears, and therefore,
the parser.y file doesn't need to be changed latter.

Also, the redefined warning format in parser.y
was changed, so now it respond to William's -Fmicrosoft
flag.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5633 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-15 03:16:40 +00:00
Marcelo Matus
6d1978b1ef added friend support and reduced spurious name(kw) warnings for non-wrapped symbols
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5624 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-13 01:32:13 +00:00