Common default argument code factored into functions
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@6661 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
76dc5e3f3b
commit
b248a54dc8
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_protostr(ParmList *);
|
||||
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 --- */
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue