Slight changes to parameter lists
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@296 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
c6900069a7
commit
5f7aeb4201
1 changed files with 22 additions and 17 deletions
|
|
@ -40,6 +40,7 @@ static DOH *ATTR_NAME = 0;
|
||||||
static DOH *ATTR_VALUE = 0;
|
static DOH *ATTR_VALUE = 0;
|
||||||
static DOH *ATTR_TYPE = 0;
|
static DOH *ATTR_TYPE = 0;
|
||||||
static DOH *ATTR_PARMS = 0;
|
static DOH *ATTR_PARMS = 0;
|
||||||
|
static DOH *ATTR_PARM = 0;
|
||||||
static DOH *ATTR_STORAGE = 0;
|
static DOH *ATTR_STORAGE = 0;
|
||||||
static DOH *TAG_ENUMVALUE = 0;
|
static DOH *TAG_ENUMVALUE = 0;
|
||||||
static DOH *TAG_FUNCTION = 0;
|
static DOH *TAG_FUNCTION = 0;
|
||||||
|
|
@ -75,8 +76,10 @@ static DOH *TAG_VARIABLE = 0;
|
||||||
DohIntern(ATTR_VALUE);
|
DohIntern(ATTR_VALUE);
|
||||||
ATTR_TYPE = NewString("type");
|
ATTR_TYPE = NewString("type");
|
||||||
DohIntern(ATTR_TYPE);
|
DohIntern(ATTR_TYPE);
|
||||||
ATTR_PARMS = NewString("parms");
|
ATTR_PARMS = NewString("parameters");
|
||||||
DohIntern(ATTR_PARMS);
|
DohIntern(ATTR_PARMS);
|
||||||
|
ATTR_PARM = NewString("parm");
|
||||||
|
DohIntern(ATTR_PARM);
|
||||||
ATTR_STORAGE = NewString("storage");
|
ATTR_STORAGE = NewString("storage");
|
||||||
DohIntern(ATTR_STORAGE);
|
DohIntern(ATTR_STORAGE);
|
||||||
TAG_ENUMVALUE = NewString("enumvalue");
|
TAG_ENUMVALUE = NewString("enumvalue");
|
||||||
|
|
@ -112,11 +115,11 @@ static DOH *TAG_VARIABLE = 0;
|
||||||
int i, l;
|
int i, l;
|
||||||
DOH *p, *r;
|
DOH *p, *r;
|
||||||
r = NewString("(");
|
r = NewString("(");
|
||||||
l = Len(parms);
|
p = parms;
|
||||||
for (i = 0; i < l; i++) {
|
while (p) {
|
||||||
p = Getitem(parms,i);
|
|
||||||
Append(r,Getattr(p,ATTR_TYPE));
|
Append(r,Getattr(p,ATTR_TYPE));
|
||||||
if (i < (l-1))
|
p = Getattr(p,ATTR_SIBLING);
|
||||||
|
if (p)
|
||||||
Append(r,",");
|
Append(r,",");
|
||||||
}
|
}
|
||||||
Append(r,")");
|
Append(r,")");
|
||||||
|
|
@ -1315,21 +1318,23 @@ opt_id : ID { $$ = $1; }
|
||||||
/* -- Function parameter lists -- */
|
/* -- Function parameter lists -- */
|
||||||
|
|
||||||
parms : parm ptail {
|
parms : parm ptail {
|
||||||
Insert($2,0,$1);
|
if ($2)
|
||||||
$$ = $2;
|
Setattr($1,ATTR_SIBLING,$2);
|
||||||
|
$$ = $1;
|
||||||
}
|
}
|
||||||
| empty { $$ = NewList(); }
|
| empty { $$ = 0; }
|
||||||
;
|
;
|
||||||
|
|
||||||
ptail : COMMA parm ptail {
|
ptail : COMMA parm ptail {
|
||||||
Insert($3,0,$2);
|
if ($3)
|
||||||
$$ = $3;
|
Setattr($2,ATTR_SIBLING,$3);
|
||||||
|
$$ = $2;
|
||||||
}
|
}
|
||||||
| empty { $$ = NewList(); }
|
| empty { $$ = 0; }
|
||||||
;
|
;
|
||||||
|
|
||||||
parm : type pname {
|
parm : type pname {
|
||||||
$$ = NewHash();
|
$$ = new_node("parm",Getfile($2.name),Getline($2.name));
|
||||||
Setattr($$,ATTR_NAME,$2.name);
|
Setattr($$,ATTR_NAME,$2.name);
|
||||||
SwigType_push($1,$2.array);
|
SwigType_push($1,$2.array);
|
||||||
if ($2.value)
|
if ($2.value)
|
||||||
|
|
@ -1337,7 +1342,7 @@ parm : type pname {
|
||||||
Setattr($$,ATTR_TYPE,$1);
|
Setattr($$,ATTR_TYPE,$1);
|
||||||
}
|
}
|
||||||
| type stars pname {
|
| type stars pname {
|
||||||
$$ = NewHash();
|
$$ = new_node("parm",Getfile($3.name),Getline($3.name));
|
||||||
Setattr($$,ATTR_NAME,$3.name);
|
Setattr($$,ATTR_NAME,$3.name);
|
||||||
SwigType_push($1,$2);
|
SwigType_push($1,$2);
|
||||||
SwigType_push($1,$3.array);
|
SwigType_push($1,$3.array);
|
||||||
|
|
@ -1347,7 +1352,7 @@ parm : type pname {
|
||||||
Setattr($$,ATTR_TYPE,$1);
|
Setattr($$,ATTR_TYPE,$1);
|
||||||
}
|
}
|
||||||
| type AND pname {
|
| type AND pname {
|
||||||
$$ = NewHash();
|
$$ = new_node("parm",Getfile($3.name),Getline($3.name));
|
||||||
SwigType_add_reference($1);
|
SwigType_add_reference($1);
|
||||||
SwigType_push($1,$3.array);
|
SwigType_push($1,$3.array);
|
||||||
Setattr($$,ATTR_NAME,$3.name);
|
Setattr($$,ATTR_NAME,$3.name);
|
||||||
|
|
@ -1357,7 +1362,7 @@ parm : type pname {
|
||||||
Setattr($$,ATTR_TYPE,$1);
|
Setattr($$,ATTR_TYPE,$1);
|
||||||
}
|
}
|
||||||
| type LPAREN stars pname RPAREN LPAREN parms RPAREN {
|
| type LPAREN stars pname RPAREN LPAREN parms RPAREN {
|
||||||
$$ = NewHash();
|
$$ = new_node("parm",$2.filename, $2.line);
|
||||||
SwigType_push($1,parmstotype($7));
|
SwigType_push($1,parmstotype($7));
|
||||||
SwigType_push($1,$3);
|
SwigType_push($1,$3);
|
||||||
if ($4.array)
|
if ($4.array)
|
||||||
|
|
@ -1368,7 +1373,7 @@ parm : type pname {
|
||||||
Setattr($$,ATTR_TYPE,$1);
|
Setattr($$,ATTR_TYPE,$1);
|
||||||
}
|
}
|
||||||
| type stars LPAREN stars pname RPAREN LPAREN parms RPAREN {
|
| type stars LPAREN stars pname RPAREN LPAREN parms RPAREN {
|
||||||
$$ = NewHash();
|
$$ = new_node("parm",$3.filename, $3.line);
|
||||||
SwigType_push($1,$2);
|
SwigType_push($1,$2);
|
||||||
SwigType_push($1,parmstotype($8));
|
SwigType_push($1,parmstotype($8));
|
||||||
SwigType_push($1,$4);
|
SwigType_push($1,$4);
|
||||||
|
|
@ -1380,7 +1385,7 @@ parm : type pname {
|
||||||
Setattr($$,ATTR_TYPE,$1);
|
Setattr($$,ATTR_TYPE,$1);
|
||||||
}
|
}
|
||||||
| PERIOD PERIOD PERIOD {
|
| PERIOD PERIOD PERIOD {
|
||||||
$$ = NewHash();
|
$$ = new_node("parm",$1.filename,$1.line);
|
||||||
Setattr($$,ATTR_NAME,"...");
|
Setattr($$,ATTR_NAME,"...");
|
||||||
Setattr($$,ATTR_TYPE,"?");
|
Setattr($$,ATTR_TYPE,"?");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue