Refactor Swig_cparse_template_parms_expand()
Break up functionality in Swig_cparse_template_parms_expand() to make it more readable / maintainable.
This commit is contained in:
parent
9e8a0daf9e
commit
1e73045da8
5 changed files with 141 additions and 66 deletions
|
|
@ -113,7 +113,47 @@ ParmList *CopyParmList(ParmList *p) {
|
|||
}
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* int ParmList_numrequired(). Return number of required arguments
|
||||
* ParmList_join()
|
||||
*
|
||||
* Join two parameter lists. Appends p2 to the end of p.
|
||||
* No copies are made.
|
||||
* Returns start of joined parameter list.
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
ParmList *ParmList_join(ParmList *p, ParmList *p2) {
|
||||
Parm *firstparm = p ? p : p2;
|
||||
Parm *lastparm = p;
|
||||
while (p) {
|
||||
p = nextSibling(p);
|
||||
if (p)
|
||||
lastparm = p;
|
||||
}
|
||||
if (lastparm)
|
||||
set_nextSibling(lastparm, p2);
|
||||
|
||||
return firstparm;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* ParmList_nth_parm()
|
||||
*
|
||||
* return the nth parameter (0 based) in the parameter list
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
Parm *ParmList_nth_parm(ParmList *p, unsigned int n) {
|
||||
while (p) {
|
||||
if (n == 0)
|
||||
break;
|
||||
n--;
|
||||
p = nextSibling(p);
|
||||
}
|
||||
return p;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* ParmList_numrequired()
|
||||
*
|
||||
* Return number of required arguments
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
int ParmList_numrequired(ParmList *p) {
|
||||
|
|
|
|||
|
|
@ -19,10 +19,12 @@ extern Parm *NewParmNode(SwigType *type, Node *from_node);
|
|||
extern Parm *CopyParm(Parm *p);
|
||||
|
||||
/* Parameter lists */
|
||||
extern ParmList *CopyParmList(ParmList *);
|
||||
extern ParmList *CopyParmListMax(ParmList *, int count);
|
||||
extern int ParmList_len(ParmList *);
|
||||
extern ParmList *CopyParmList(ParmList *p);
|
||||
extern ParmList *CopyParmListMax(ParmList *p, int count);
|
||||
extern ParmList *ParmList_join(ParmList *p, ParmList *p2);
|
||||
extern Parm *ParmList_nth_parm(ParmList *p, unsigned int n);
|
||||
extern int ParmList_numrequired(ParmList *);
|
||||
extern int ParmList_len(ParmList *);
|
||||
extern int ParmList_has_defaultargs(ParmList *p);
|
||||
extern int ParmList_has_varargs(ParmList *p);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue