Fixed [ 791835 ] Default argument with cast: txt = (char *)"txt" syntax Error.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5392 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
c97cf300bc
commit
9ed46ad4ca
1 changed files with 27 additions and 10 deletions
|
|
@ -4167,18 +4167,23 @@ type_specifier : TYPE_INT {
|
||||||
|
|
||||||
definetype : { /* scanner_check_typedef(); */ } expr {
|
definetype : { /* scanner_check_typedef(); */ } expr {
|
||||||
$$ = $2;
|
$$ = $2;
|
||||||
$$.rawval = 0;
|
if ($$.type == T_STRING) {
|
||||||
|
$$.rawval = NewStringf("\"%(escape)s\"",$$.val);
|
||||||
|
} else {
|
||||||
|
$$.rawval = 0;
|
||||||
|
}
|
||||||
$$.bitfield = 0;
|
$$.bitfield = 0;
|
||||||
$$.throws = 0;
|
$$.throws = 0;
|
||||||
scanner_ignore_typedef();
|
scanner_ignore_typedef();
|
||||||
}
|
}
|
||||||
| string {
|
/* | string {
|
||||||
$$.val = NewString($1);
|
$$.val = NewString($1);
|
||||||
$$.rawval = NewStringf("\"%(escape)s\"",$$.val);
|
$$.rawval = NewStringf("\"%(escape)s\"",$$.val);
|
||||||
$$.type = T_STRING;
|
$$.type = T_STRING;
|
||||||
$$.bitfield = 0;
|
$$.bitfield = 0;
|
||||||
$$.throws = 0;
|
$$.throws = 0;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
| CHARCONST {
|
| CHARCONST {
|
||||||
$$.val = NewString($1);
|
$$.val = NewString($1);
|
||||||
/* $$.rawval = NewStringf("\'%(escape)s\'",$$.val); */
|
/* $$.rawval = NewStringf("\'%(escape)s\'",$$.val); */
|
||||||
|
|
@ -4267,6 +4272,10 @@ etype : expr {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
expr : exprnum { $$ = $1; }
|
expr : exprnum { $$ = $1; }
|
||||||
|
| string {
|
||||||
|
$$.val = NewString($1);
|
||||||
|
$$.type = T_STRING;
|
||||||
|
}
|
||||||
| SIZEOF LPAREN type parameter_declarator RPAREN {
|
| SIZEOF LPAREN type parameter_declarator RPAREN {
|
||||||
SwigType_push($3,$4.type);
|
SwigType_push($3,$4.type);
|
||||||
$$.val = NewStringf("sizeof(%s)",SwigType_str($3,0));
|
$$.val = NewStringf("sizeof(%s)",SwigType_str($3,0));
|
||||||
|
|
@ -4300,23 +4309,31 @@ expr : exprnum { $$ = $1; }
|
||||||
|
|
||||||
| LPAREN expr RPAREN expr %prec CAST {
|
| LPAREN expr RPAREN expr %prec CAST {
|
||||||
$$ = $4;
|
$$ = $4;
|
||||||
$$.val = NewStringf("(%s) %s", SwigType_str($2.val,0), $4.val);
|
if ($4.type != T_STRING) {
|
||||||
|
$$.val = NewStringf("(%s) %s", SwigType_str($2.val,0), $4.val);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
| LPAREN expr pointer RPAREN expr %prec CAST {
|
| LPAREN expr pointer RPAREN expr %prec CAST {
|
||||||
$$ = $5;
|
$$ = $5;
|
||||||
SwigType_push($2.val,$3);
|
if ($5.type != T_STRING) {
|
||||||
$$.val = NewStringf("(%s) %s", SwigType_str($2.val,0), $5.val);
|
SwigType_push($2.val,$3);
|
||||||
|
$$.val = NewStringf("(%s) %s", SwigType_str($2.val,0), $5.val);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
| LPAREN expr AND RPAREN expr %prec CAST {
|
| LPAREN expr AND RPAREN expr %prec CAST {
|
||||||
$$ = $5;
|
$$ = $5;
|
||||||
SwigType_add_reference($2.val);
|
if ($5.type != T_STRING) {
|
||||||
$$.val = NewStringf("(%s) %s", SwigType_str($2.val,0), $5.val);
|
SwigType_add_reference($2.val);
|
||||||
|
$$.val = NewStringf("(%s) %s", SwigType_str($2.val,0), $5.val);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
| LPAREN expr pointer AND RPAREN expr %prec CAST {
|
| LPAREN expr pointer AND RPAREN expr %prec CAST {
|
||||||
$$ = $6;
|
$$ = $6;
|
||||||
SwigType_push($2.val,$3);
|
if ($6.type != T_STRING) {
|
||||||
SwigType_add_reference($2.val);
|
SwigType_push($2.val,$3);
|
||||||
$$.val = NewStringf("(%s) %s", SwigType_str($2.val,0), $6.val);
|
SwigType_add_reference($2.val);
|
||||||
|
$$.val = NewStringf("(%s) %s", SwigType_str($2.val,0), $6.val);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue