make both %rename directive formats equivalent
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8320 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
550958058d
commit
1426e648eb
1 changed files with 51 additions and 18 deletions
|
|
@ -2043,21 +2043,54 @@ pragma_lang : LPAREN ID RPAREN { $$ = $2; }
|
||||||
------------------------------------------------------------ */
|
------------------------------------------------------------ */
|
||||||
|
|
||||||
rename_directive : rename_namewarn declarator idstring SEMI {
|
rename_directive : rename_namewarn declarator idstring SEMI {
|
||||||
SwigType *t = $2.type;
|
SwigType *t = $2.type;
|
||||||
Hash *kws = NewHash();
|
Hash *kws = NewHash();
|
||||||
Setattr(kws,k_name,$3);
|
String *fixname;
|
||||||
|
fixname = feature_identifier_fix($2.id);
|
||||||
if (!Len(t)) t = 0;
|
Setattr(kws,k_name,$3);
|
||||||
if ($1) {
|
if (!Len(t)) t = 0;
|
||||||
Swig_name_rename_add(Namespaceprefix,$2.id,t,kws,$2.parms);
|
/* Special declarator check */
|
||||||
|
if (t) {
|
||||||
|
if (SwigType_isfunction(t)) {
|
||||||
|
SwigType *decl = SwigType_pop_function(t);
|
||||||
|
if (SwigType_ispointer(t)) {
|
||||||
|
String *nname = NewStringf("*%s",fixname);
|
||||||
|
if ($1) {
|
||||||
|
Swig_name_rename_add(Namespaceprefix, nname,decl,kws,$2.parms);
|
||||||
|
} else {
|
||||||
|
Swig_name_namewarn_add(Namespaceprefix,nname,decl,kws);
|
||||||
|
}
|
||||||
|
Delete(nname);
|
||||||
} else {
|
} else {
|
||||||
Swig_name_namewarn_add(Namespaceprefix,$2.id,t,kws);
|
if ($1) {
|
||||||
|
Swig_name_rename_add(Namespaceprefix,(fixname),decl,kws,$2.parms);
|
||||||
|
} else {
|
||||||
|
Swig_name_namewarn_add(Namespaceprefix,(fixname),decl,kws);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$$ = 0;
|
Delete(decl);
|
||||||
scanner_clear_rename();
|
} else if (SwigType_ispointer(t)) {
|
||||||
|
String *nname = NewStringf("*%s",fixname);
|
||||||
|
if ($1) {
|
||||||
|
Swig_name_rename_add(Namespaceprefix,(nname),0,kws,$2.parms);
|
||||||
|
} else {
|
||||||
|
Swig_name_namewarn_add(Namespaceprefix,(nname),0,kws);
|
||||||
|
}
|
||||||
|
Delete(nname);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if ($1) {
|
||||||
|
Swig_name_rename_add(Namespaceprefix,(fixname),0,kws,$2.parms);
|
||||||
|
} else {
|
||||||
|
Swig_name_namewarn_add(Namespaceprefix,(fixname),0,kws);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$$ = 0;
|
||||||
|
scanner_clear_rename();
|
||||||
}
|
}
|
||||||
| rename_namewarn LPAREN kwargs RPAREN declarator cpp_const SEMI {
|
| rename_namewarn LPAREN kwargs RPAREN declarator cpp_const SEMI {
|
||||||
String *fixname;
|
String *fixname;
|
||||||
|
Hash *kws = $3;
|
||||||
SwigType *t = $5.type;
|
SwigType *t = $5.type;
|
||||||
fixname = feature_identifier_fix($5.id);
|
fixname = feature_identifier_fix($5.id);
|
||||||
if (!Len(t)) t = 0;
|
if (!Len(t)) t = 0;
|
||||||
|
|
@ -2069,33 +2102,33 @@ rename_directive : rename_namewarn declarator idstring SEMI {
|
||||||
if (SwigType_ispointer(t)) {
|
if (SwigType_ispointer(t)) {
|
||||||
String *nname = NewStringf("*%s",fixname);
|
String *nname = NewStringf("*%s",fixname);
|
||||||
if ($1) {
|
if ($1) {
|
||||||
Swig_name_rename_add(Namespaceprefix, nname,decl,$3,$5.parms);
|
Swig_name_rename_add(Namespaceprefix, nname,decl,kws,$5.parms);
|
||||||
} else {
|
} else {
|
||||||
Swig_name_namewarn_add(Namespaceprefix,nname,decl,$3);
|
Swig_name_namewarn_add(Namespaceprefix,nname,decl,kws);
|
||||||
}
|
}
|
||||||
Delete(nname);
|
Delete(nname);
|
||||||
} else {
|
} else {
|
||||||
if ($1) {
|
if ($1) {
|
||||||
Swig_name_rename_add(Namespaceprefix,(fixname),decl,$3,$5.parms);
|
Swig_name_rename_add(Namespaceprefix,(fixname),decl,kws,$5.parms);
|
||||||
} else {
|
} else {
|
||||||
Swig_name_namewarn_add(Namespaceprefix,(fixname),decl,$3);
|
Swig_name_namewarn_add(Namespaceprefix,(fixname),decl,kws);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Delete(decl);
|
Delete(decl);
|
||||||
} else if (SwigType_ispointer(t)) {
|
} else if (SwigType_ispointer(t)) {
|
||||||
String *nname = NewStringf("*%s",fixname);
|
String *nname = NewStringf("*%s",fixname);
|
||||||
if ($1) {
|
if ($1) {
|
||||||
Swig_name_rename_add(Namespaceprefix,(nname),0,$3,$5.parms);
|
Swig_name_rename_add(Namespaceprefix,(nname),0,kws,$5.parms);
|
||||||
} else {
|
} else {
|
||||||
Swig_name_namewarn_add(Namespaceprefix,(nname),0,$3);
|
Swig_name_namewarn_add(Namespaceprefix,(nname),0,kws);
|
||||||
}
|
}
|
||||||
Delete(nname);
|
Delete(nname);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if ($1) {
|
if ($1) {
|
||||||
Swig_name_rename_add(Namespaceprefix,(fixname),0,$3,$5.parms);
|
Swig_name_rename_add(Namespaceprefix,(fixname),0,kws,$5.parms);
|
||||||
} else {
|
} else {
|
||||||
Swig_name_namewarn_add(Namespaceprefix,(fixname),0,$3);
|
Swig_name_namewarn_add(Namespaceprefix,(fixname),0,kws);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$$ = 0;
|
$$ = 0;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue