add support for options in rename/namewarn and central methods to access the rename/warning hashs

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@8150 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2005-12-31 10:41:54 +00:00
commit 2bdd8b07c0
8 changed files with 211 additions and 67 deletions

View file

@ -2392,7 +2392,7 @@ class CSHARP : public Language {
count++;
plist = nextSibling(plist);
}
String *wrn = pn ? Swig_name_object_get(Swig_cparse_namewarn(),0,pn,0) : 0;
String *wrn = pn ? Swig_cparse_name_warning(0,0,pn,0) : 0;
arg = (!pn || (count > 1) || wrn) ? NewStringf("arg%d",arg_num) : Copy(pn);
}

View file

@ -2546,7 +2546,7 @@ class JAVA : public Language {
count++;
plist = nextSibling(plist);
}
String *wrn = pn ? Swig_name_object_get(Swig_cparse_namewarn(),0,pn,0) : 0;
String *wrn = pn ? Swig_cparse_name_warning(0, 0, pn, 0) : 0;
arg = (!pn || (count > 1) || wrn) ? NewStringf("arg%d",arg_num) : Copy(pn);
}

View file

@ -1970,6 +1970,10 @@ int Language::classDirector(Node *n) {
* ---------------------------------------------------------------------- */
static void addCopyConstructor(Node *n)
{
Node *cn = NewHash();
set_nodeType(cn,"constructor");
Setattr(cn,"access","public");
String *cname = Getattr(n,"name");
SwigType *type = Copy(cname);
String *last = Swig_scopename_last(cname);
@ -1977,14 +1981,12 @@ static void addCopyConstructor(Node *n)
String *cc = NewStringf("r.q(const).%s", type);
String *decl = NewStringf("f(%s).",cc);
String *csymname = Getattr(n,"sym:name");
String *symname = Swig_name_object_get(Swig_cparse_rename(), cname, last, decl);
String *symname = Swig_cparse_symbol_name(cn, cname, last, decl, 0);
if (!symname) {
symname = Copy(csymname);
}
Parm *p = NewParm(cc,"_swig_self");
Node *cn = NewHash();
set_nodeType(cn,"constructor");
Setattr(cn,"name",name);
Setattr(cn,"sym:name",symname);
SetFlag(cn,"feature:new");
@ -2018,18 +2020,20 @@ static void addCopyConstructor(Node *n)
static void addDefaultConstructor(Node *n)
{
Node *cn = NewHash();
set_nodeType(cn,"constructor");
Setattr(cn,"access","public");
String *cname = Getattr(n,"name");
String *last = Swig_scopename_last(cname);
String *name = NewStringf("%s::%s",cname,last);
String *decl = NewString("f().");
String *csymname = Getattr(n,"sym:name");
String *symname = Swig_name_object_get(Swig_cparse_rename(), cname, last, decl);
String *symname = Swig_cparse_symbol_name(cn, cname, last, decl, 0);
if (!symname) {
symname = Copy(csymname);
}
Node *cn = NewHash();
set_nodeType(cn,"constructor");
Setattr(cn,"name",name);
Setattr(cn,"sym:name",symname);
SetFlag(cn,"feature:new");
@ -2061,18 +2065,20 @@ static void addDefaultConstructor(Node *n)
static void addDestructor(Node *n)
{
Node *cn = NewHash();
set_nodeType(cn,"destructor");
Setattr(cn,"access","public");
String *cname = Getattr(n,"name");
String *last = Swig_scopename_last(cname);
Insert(last,0,"~");
String *name = NewStringf("%s::%s",cname,last);
String *decl = NewString("f().");
String *symname = Swig_name_object_get(Swig_cparse_rename(), cname, last, decl);
String *symname = Swig_cparse_symbol_name(cn, cname, last, decl, 0);
if (!symname) {
symname = NewStringf("~%s",Getattr(n,"sym:name"));
}
Node *cn = NewHash();
set_nodeType(cn,"destructor");
Setattr(cn,"name",name);
Setattr(cn,"sym:name",symname);
Setattr(cn,"decl","f().");

View file

@ -1575,7 +1575,7 @@ public:
if (i == num_required) Putc('|', parse_args); /* Optional argument separator */
/* Keyword argument handling */
String *wrn = (allow_kwargs && pn) ? Swig_name_object_get(Swig_cparse_namewarn(),0,pn,0) : 0;
String *wrn = (allow_kwargs && pn) ? Swig_cparse_name_warning(0,0,pn,0) : 0;
if (!wrn && Len(pn)) {
Printf(kwargs,"(char *) \"%s\",", pn);
} else {