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:
Dave Beazley 2003-11-25 16:48:51 +00:00
commit 9ed46ad4ca

View file

@ -4167,18 +4167,23 @@ type_specifier : TYPE_INT {
definetype : { /* scanner_check_typedef(); */ } expr {
$$ = $2;
$$.rawval = 0;
if ($$.type == T_STRING) {
$$.rawval = NewStringf("\"%(escape)s\"",$$.val);
} else {
$$.rawval = 0;
}
$$.bitfield = 0;
$$.throws = 0;
scanner_ignore_typedef();
}
| string {
/* | string {
$$.val = NewString($1);
$$.rawval = NewStringf("\"%(escape)s\"",$$.val);
$$.type = T_STRING;
$$.bitfield = 0;
$$.throws = 0;
}
*/
| CHARCONST {
$$.val = NewString($1);
/* $$.rawval = NewStringf("\'%(escape)s\'",$$.val); */
@ -4267,6 +4272,10 @@ etype : expr {
*/
expr : exprnum { $$ = $1; }
| string {
$$.val = NewString($1);
$$.type = T_STRING;
}
| SIZEOF LPAREN type parameter_declarator RPAREN {
SwigType_push($3,$4.type);
$$.val = NewStringf("sizeof(%s)",SwigType_str($3,0));
@ -4300,23 +4309,31 @@ expr : exprnum { $$ = $1; }
| LPAREN expr RPAREN expr %prec CAST {
$$ = $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 {
$$ = $5;
SwigType_push($2.val,$3);
$$.val = NewStringf("(%s) %s", SwigType_str($2.val,0), $5.val);
if ($5.type != T_STRING) {
SwigType_push($2.val,$3);
$$.val = NewStringf("(%s) %s", SwigType_str($2.val,0), $5.val);
}
}
| LPAREN expr AND RPAREN expr %prec CAST {
$$ = $5;
SwigType_add_reference($2.val);
$$.val = NewStringf("(%s) %s", SwigType_str($2.val,0), $5.val);
if ($5.type != T_STRING) {
SwigType_add_reference($2.val);
$$.val = NewStringf("(%s) %s", SwigType_str($2.val,0), $5.val);
}
}
| LPAREN expr pointer AND RPAREN expr %prec CAST {
$$ = $6;
SwigType_push($2.val,$3);
SwigType_add_reference($2.val);
$$.val = NewStringf("(%s) %s", SwigType_str($2.val,0), $6.val);
if ($6.type != T_STRING) {
SwigType_push($2.val,$3);
SwigType_add_reference($2.val);
$$.val = NewStringf("(%s) %s", SwigType_str($2.val,0), $6.val);
}
}
;