Common default argument code factored into functions
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6661 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
9c8162bb90
commit
17f6328b8a
2 changed files with 47 additions and 0 deletions
|
|
@ -248,3 +248,48 @@ int ParmList_is_compactdefargs(ParmList *p) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------------
|
||||||
|
* ParmList_has_defaultargs()
|
||||||
|
*
|
||||||
|
* Returns 1 if the parameter list passed in is has one or more default
|
||||||
|
* arguments. Otherwise returns 0.
|
||||||
|
* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
int ParmList_has_defaultargs(ParmList *p) {
|
||||||
|
int default_args = 0;
|
||||||
|
while (p) {
|
||||||
|
if (Getattr(p, "value")) {
|
||||||
|
default_args = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
p = nextSibling(p);
|
||||||
|
}
|
||||||
|
return default_args;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------------
|
||||||
|
* ParmList_copy_all_except_last_parm()
|
||||||
|
*
|
||||||
|
* Create a new parameter list by copying all the parameters barring the
|
||||||
|
* last parameter.
|
||||||
|
* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
ParmList *ParmList_copy_all_except_last_parm(ParmList *p) {
|
||||||
|
ParmList* newparms = 0;
|
||||||
|
Parm *newparm = 0;
|
||||||
|
Parm *pp = 0;
|
||||||
|
Parm *fp = 0;
|
||||||
|
while (nextSibling(p)) {
|
||||||
|
newparm = CopyParm(p);
|
||||||
|
if (pp) {
|
||||||
|
set_nextSibling(pp,newparm);
|
||||||
|
} else {
|
||||||
|
fp = newparm;
|
||||||
|
}
|
||||||
|
pp = newparm;
|
||||||
|
p = nextSibling(p);
|
||||||
|
}
|
||||||
|
newparms = fp;
|
||||||
|
return newparms;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -335,6 +335,8 @@ extern String *ParmList_str(ParmList *);
|
||||||
extern String *ParmList_str_defaultargs(ParmList *);
|
extern String *ParmList_str_defaultargs(ParmList *);
|
||||||
extern String *ParmList_protostr(ParmList *);
|
extern String *ParmList_protostr(ParmList *);
|
||||||
extern int ParmList_is_compactdefargs(ParmList *p);
|
extern int ParmList_is_compactdefargs(ParmList *p);
|
||||||
|
extern int ParmList_has_defaultargs(ParmList *p);
|
||||||
|
extern ParmList *ParmList_copy_all_except_last_parm(ParmList *p);
|
||||||
|
|
||||||
/* --- Parse tree support --- */
|
/* --- Parse tree support --- */
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue