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 { 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);
}
} }
; ;