mirror of
https://github.com/reactos/reactos.git
synced 2025-01-01 03:54:02 +00:00
[WIDL]
- Sync to Wine-1.1.39 svn path=/trunk/; revision=45833
This commit is contained in:
parent
71c6a8c283
commit
7473d1aab3
14 changed files with 1832 additions and 1770 deletions
|
@ -22,7 +22,7 @@ When porting a new DLL from Wine to ReactOS, please do the following steps
|
|||
The following build tools are shared with Wine.
|
||||
|
||||
reactos/tools/unicode # Synced to Wine-20081105 (~Wine-1.1.7)
|
||||
reactos/tools/widl # Synced to Wine-1_1_32
|
||||
reactos/tools/widl # Synced to Wine-1_1_39
|
||||
reactos/tools/winebuild # Synced to Wine-1_1_13
|
||||
reactos/tools/wmc # Synced to Wine-20081105 (~Wine-1.1.7)
|
||||
reactos/tools/wpp # Synced to Wine-20081105 (~Wine-1.1.7)
|
||||
|
|
|
@ -87,7 +87,9 @@ expr_t *make_exprs(enum expr_type type, char *val)
|
|||
e->u.sval = val;
|
||||
e->is_const = FALSE;
|
||||
/* check for predefined constants */
|
||||
if (type == EXPR_IDENTIFIER)
|
||||
switch (type)
|
||||
{
|
||||
case EXPR_IDENTIFIER:
|
||||
{
|
||||
var_t *c = find_const(val, 0);
|
||||
if (c)
|
||||
|
@ -97,6 +99,21 @@ expr_t *make_exprs(enum expr_type type, char *val)
|
|||
e->is_const = TRUE;
|
||||
e->cval = c->eval->cval;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case EXPR_CHARCONST:
|
||||
if (!val[0])
|
||||
error_loc("empty character constant\n");
|
||||
else if (val[1])
|
||||
error_loc("multi-character constants are endian dependent\n");
|
||||
else
|
||||
{
|
||||
e->is_const = TRUE;
|
||||
e->cval = *val;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return e;
|
||||
}
|
||||
|
@ -457,6 +474,11 @@ static struct expression_type resolve_expression(const struct expr_loc *expr_loc
|
|||
result.is_temporary = TRUE;
|
||||
result.type = type_new_pointer(RPC_FC_UP, type_new_int(TYPE_BASIC_WCHAR, 0), NULL);
|
||||
break;
|
||||
case EXPR_CHARCONST:
|
||||
result.is_variable = FALSE;
|
||||
result.is_temporary = TRUE;
|
||||
result.type = type_new_int(TYPE_BASIC_CHAR, 0);
|
||||
break;
|
||||
case EXPR_DOUBLE:
|
||||
result.is_variable = FALSE;
|
||||
result.is_temporary = TRUE;
|
||||
|
@ -655,6 +677,9 @@ void write_expr(FILE *h, const expr_t *e, int brackets,
|
|||
case EXPR_WSTRLIT:
|
||||
fprintf(h, "L\"%s\"", e->u.sval);
|
||||
break;
|
||||
case EXPR_CHARCONST:
|
||||
fprintf(h, "'%s'", e->u.sval);
|
||||
break;
|
||||
case EXPR_LOGNOT:
|
||||
fprintf(h, "!");
|
||||
write_expr(h, e->ref, 1, toplevel, toplevel_prefix, cont_type, local_var_prefix);
|
||||
|
@ -804,6 +829,7 @@ int compare_expr(const expr_t *a, const expr_t *b)
|
|||
case EXPR_IDENTIFIER:
|
||||
case EXPR_STRLIT:
|
||||
case EXPR_WSTRLIT:
|
||||
case EXPR_CHARCONST:
|
||||
return strcmp(a->u.sval, b->u.sval);
|
||||
case EXPR_COND:
|
||||
ret = compare_expr(a->ref, b->ref);
|
||||
|
|
|
@ -254,6 +254,7 @@ void write_type_left(FILE *h, type_t *t, int declonly)
|
|||
break;
|
||||
case TYPE_BASIC:
|
||||
if (type_basic_get_type(t) != TYPE_BASIC_INT32 &&
|
||||
type_basic_get_type(t) != TYPE_BASIC_INT64 &&
|
||||
type_basic_get_type(t) != TYPE_BASIC_HYPER)
|
||||
{
|
||||
if (type_basic_get_sign(t) < 0) fprintf(h, "signed ");
|
||||
|
@ -264,7 +265,6 @@ void write_type_left(FILE *h, type_t *t, int declonly)
|
|||
case TYPE_BASIC_INT8: fprintf(h, "small"); break;
|
||||
case TYPE_BASIC_INT16: fprintf(h, "short"); break;
|
||||
case TYPE_BASIC_INT: fprintf(h, "int"); break;
|
||||
case TYPE_BASIC_INT64: fprintf(h, "__int64"); break;
|
||||
case TYPE_BASIC_INT3264: fprintf(h, "__int3264"); break;
|
||||
case TYPE_BASIC_BYTE: fprintf(h, "byte"); break;
|
||||
case TYPE_BASIC_CHAR: fprintf(h, "char"); break;
|
||||
|
@ -279,6 +279,12 @@ void write_type_left(FILE *h, type_t *t, int declonly)
|
|||
else
|
||||
fprintf(h, "LONG");
|
||||
break;
|
||||
case TYPE_BASIC_INT64:
|
||||
if (type_basic_get_sign(t) > 0)
|
||||
fprintf(h, "UINT64");
|
||||
else
|
||||
fprintf(h, "INT64");
|
||||
break;
|
||||
case TYPE_BASIC_HYPER:
|
||||
if (type_basic_get_sign(t) > 0)
|
||||
fprintf(h, "MIDL_uhyper");
|
||||
|
@ -685,10 +691,12 @@ int has_out_arg_or_return(const var_t *func)
|
|||
|
||||
/********** INTERFACES **********/
|
||||
|
||||
int is_object(const attr_list_t *list)
|
||||
int is_object(const type_t *iface)
|
||||
{
|
||||
const attr_t *attr;
|
||||
if (list) LIST_FOR_EACH_ENTRY( attr, list, const attr_t, entry )
|
||||
if (type_is_defined(iface) && type_iface_get_inherit(iface))
|
||||
return 1;
|
||||
if (iface->attrs) LIST_FOR_EACH_ENTRY( attr, iface->attrs, const attr_t, entry )
|
||||
if (attr->type == ATTR_OBJECT || attr->type == ATTR_ODL) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
@ -860,7 +868,7 @@ static void write_locals(FILE *fp, const type_t *iface, int body)
|
|||
= "/* WIDL-generated stub. You must provide an implementation for this. */";
|
||||
const statement_t *stmt;
|
||||
|
||||
if (!is_object(iface->attrs))
|
||||
if (!is_object(iface))
|
||||
return;
|
||||
|
||||
STATEMENTS_FOR_EACH_FUNC(stmt, type_iface_get_stmts(iface)) {
|
||||
|
@ -1174,7 +1182,7 @@ static void write_forward_decls(FILE *header, const statement_list_t *stmts)
|
|||
case STMT_TYPE:
|
||||
if (type_get_type(stmt->u.type) == TYPE_INTERFACE)
|
||||
{
|
||||
if (is_object(stmt->u.type->attrs) || is_attr(stmt->u.type->attrs, ATTR_DISPINTERFACE))
|
||||
if (is_object(stmt->u.type) || is_attr(stmt->u.type->attrs, ATTR_DISPINTERFACE))
|
||||
write_forward(header, stmt->u.type);
|
||||
}
|
||||
else if (type_get_type(stmt->u.type) == TYPE_COCLASS)
|
||||
|
@ -1209,7 +1217,7 @@ static void write_header_stmts(FILE *header, const statement_list_t *stmts, cons
|
|||
if (type_get_type(stmt->u.type) == TYPE_INTERFACE)
|
||||
{
|
||||
type_t *iface = stmt->u.type;
|
||||
if (is_attr(stmt->u.type->attrs, ATTR_DISPINTERFACE) || is_object(stmt->u.type->attrs))
|
||||
if (is_attr(stmt->u.type->attrs, ATTR_DISPINTERFACE) || is_object(stmt->u.type))
|
||||
{
|
||||
write_com_interface_start(header, iface);
|
||||
write_header_stmts(header, type_iface_get_stmts(iface), stmt->u.type, TRUE);
|
||||
|
|
|
@ -38,7 +38,7 @@ extern void write_type_def_or_decl(FILE *h, type_t *t, int is_field, const char
|
|||
extern void write_type_decl(FILE *f, type_t *t, const char *name);
|
||||
extern void write_type_decl_left(FILE *f, type_t *t);
|
||||
extern int needs_space_after(type_t *t);
|
||||
extern int is_object(const attr_list_t *list);
|
||||
extern int is_object(const type_t *iface);
|
||||
extern int is_local(const attr_list_t *list);
|
||||
extern int need_stub(const type_t *iface);
|
||||
extern int need_proxy(const type_t *iface);
|
||||
|
|
|
@ -45,4 +45,6 @@ void pop_import(void);
|
|||
|
||||
int is_type(const char *name);
|
||||
|
||||
extern char *temp_name;
|
||||
|
||||
#endif
|
||||
|
|
|
@ -37,6 +37,7 @@ double [0-9]+\.[0-9]+([eE][+-]?[0-9]+)*
|
|||
%x WSTRQUOTE
|
||||
%x ATTR
|
||||
%x PP_LINE
|
||||
%x SQUOTE
|
||||
|
||||
%{
|
||||
|
||||
|
@ -63,8 +64,6 @@ double [0-9]+\.[0-9]+([eE][+-]?[0-9]+)*
|
|||
|
||||
#include "parser.tab.h"
|
||||
|
||||
extern char *temp_name;
|
||||
|
||||
static void addcchar(char c);
|
||||
static char *get_buffered_cstring(void);
|
||||
|
||||
|
@ -157,10 +156,17 @@ UUID *parse_uuid(const char *u)
|
|||
parser_lval.str = get_buffered_cstring();
|
||||
return aWSTRING;
|
||||
}
|
||||
<QUOTE,WSTRQUOTE>\\\\ |
|
||||
<INITIAL,ATTR>\' yy_push_state(SQUOTE); cbufidx = 0;
|
||||
<SQUOTE>\' {
|
||||
yy_pop_state();
|
||||
parser_lval.str = get_buffered_cstring();
|
||||
return aSQSTRING;
|
||||
}
|
||||
<QUOTE,WSTRQUOTE,SQUOTE>\\\\ |
|
||||
<QUOTE,WSTRQUOTE>\\\" addcchar(yytext[1]);
|
||||
<QUOTE,WSTRQUOTE>\\. addcchar('\\'); addcchar(yytext[1]);
|
||||
<QUOTE,WSTRQUOTE>. addcchar(yytext[0]);
|
||||
<SQUOTE>\\\' addcchar(yytext[1]);
|
||||
<QUOTE,WSTRQUOTE,SQUOTE>\\. addcchar('\\'); addcchar(yytext[1]);
|
||||
<QUOTE,WSTRQUOTE,SQUOTE>. addcchar(yytext[0]);
|
||||
<INITIAL,ATTR>\[ yy_push_state(ATTR); return '[';
|
||||
<ATTR>\] yy_pop_state(); return ']';
|
||||
<ATTR>{cident} return attr_token(yytext);
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -46,150 +46,151 @@
|
|||
aDOUBLE = 262,
|
||||
aSTRING = 263,
|
||||
aWSTRING = 264,
|
||||
aUUID = 265,
|
||||
aEOF = 266,
|
||||
SHL = 267,
|
||||
SHR = 268,
|
||||
MEMBERPTR = 269,
|
||||
EQUALITY = 270,
|
||||
INEQUALITY = 271,
|
||||
GREATEREQUAL = 272,
|
||||
LESSEQUAL = 273,
|
||||
LOGICALOR = 274,
|
||||
LOGICALAND = 275,
|
||||
ELLIPSIS = 276,
|
||||
tAGGREGATABLE = 277,
|
||||
tALLOCATE = 278,
|
||||
tANNOTATION = 279,
|
||||
tAPPOBJECT = 280,
|
||||
tASYNC = 281,
|
||||
tASYNCUUID = 282,
|
||||
tAUTOHANDLE = 283,
|
||||
tBINDABLE = 284,
|
||||
tBOOLEAN = 285,
|
||||
tBROADCAST = 286,
|
||||
tBYTE = 287,
|
||||
tBYTECOUNT = 288,
|
||||
tCALLAS = 289,
|
||||
tCALLBACK = 290,
|
||||
tCASE = 291,
|
||||
tCDECL = 292,
|
||||
tCHAR = 293,
|
||||
tCOCLASS = 294,
|
||||
tCODE = 295,
|
||||
tCOMMSTATUS = 296,
|
||||
tCONST = 297,
|
||||
tCONTEXTHANDLE = 298,
|
||||
tCONTEXTHANDLENOSERIALIZE = 299,
|
||||
tCONTEXTHANDLESERIALIZE = 300,
|
||||
tCONTROL = 301,
|
||||
tCPPQUOTE = 302,
|
||||
tDEFAULT = 303,
|
||||
tDEFAULTCOLLELEM = 304,
|
||||
tDEFAULTVALUE = 305,
|
||||
tDEFAULTVTABLE = 306,
|
||||
tDISPLAYBIND = 307,
|
||||
tDISPINTERFACE = 308,
|
||||
tDLLNAME = 309,
|
||||
tDOUBLE = 310,
|
||||
tDUAL = 311,
|
||||
tENDPOINT = 312,
|
||||
tENTRY = 313,
|
||||
tENUM = 314,
|
||||
tERRORSTATUST = 315,
|
||||
tEXPLICITHANDLE = 316,
|
||||
tEXTERN = 317,
|
||||
tFALSE = 318,
|
||||
tFASTCALL = 319,
|
||||
tFLOAT = 320,
|
||||
tHANDLE = 321,
|
||||
tHANDLET = 322,
|
||||
tHELPCONTEXT = 323,
|
||||
tHELPFILE = 324,
|
||||
tHELPSTRING = 325,
|
||||
tHELPSTRINGCONTEXT = 326,
|
||||
tHELPSTRINGDLL = 327,
|
||||
tHIDDEN = 328,
|
||||
tHYPER = 329,
|
||||
tID = 330,
|
||||
tIDEMPOTENT = 331,
|
||||
tIIDIS = 332,
|
||||
tIMMEDIATEBIND = 333,
|
||||
tIMPLICITHANDLE = 334,
|
||||
tIMPORT = 335,
|
||||
tIMPORTLIB = 336,
|
||||
tIN = 337,
|
||||
tIN_LINE = 338,
|
||||
tINLINE = 339,
|
||||
tINPUTSYNC = 340,
|
||||
tINT = 341,
|
||||
tINT3264 = 342,
|
||||
tINT64 = 343,
|
||||
tINTERFACE = 344,
|
||||
tLCID = 345,
|
||||
tLENGTHIS = 346,
|
||||
tLIBRARY = 347,
|
||||
tLOCAL = 348,
|
||||
tLONG = 349,
|
||||
tMETHODS = 350,
|
||||
tMODULE = 351,
|
||||
tNONBROWSABLE = 352,
|
||||
tNONCREATABLE = 353,
|
||||
tNONEXTENSIBLE = 354,
|
||||
tNULL = 355,
|
||||
tOBJECT = 356,
|
||||
tODL = 357,
|
||||
tOLEAUTOMATION = 358,
|
||||
tOPTIONAL = 359,
|
||||
tOUT = 360,
|
||||
tPASCAL = 361,
|
||||
tPOINTERDEFAULT = 362,
|
||||
tPROPERTIES = 363,
|
||||
tPROPGET = 364,
|
||||
tPROPPUT = 365,
|
||||
tPROPPUTREF = 366,
|
||||
tPTR = 367,
|
||||
tPUBLIC = 368,
|
||||
tRANGE = 369,
|
||||
tREADONLY = 370,
|
||||
tREF = 371,
|
||||
tREGISTER = 372,
|
||||
tREQUESTEDIT = 373,
|
||||
tRESTRICTED = 374,
|
||||
tRETVAL = 375,
|
||||
tSAFEARRAY = 376,
|
||||
tSHORT = 377,
|
||||
tSIGNED = 378,
|
||||
tSIZEIS = 379,
|
||||
tSIZEOF = 380,
|
||||
tSMALL = 381,
|
||||
tSOURCE = 382,
|
||||
tSTATIC = 383,
|
||||
tSTDCALL = 384,
|
||||
tSTRICTCONTEXTHANDLE = 385,
|
||||
tSTRING = 386,
|
||||
tSTRUCT = 387,
|
||||
tSWITCH = 388,
|
||||
tSWITCHIS = 389,
|
||||
tSWITCHTYPE = 390,
|
||||
tTRANSMITAS = 391,
|
||||
tTRUE = 392,
|
||||
tTYPEDEF = 393,
|
||||
tUNION = 394,
|
||||
tUNIQUE = 395,
|
||||
tUNSIGNED = 396,
|
||||
tUUID = 397,
|
||||
tV1ENUM = 398,
|
||||
tVARARG = 399,
|
||||
tVERSION = 400,
|
||||
tVOID = 401,
|
||||
tWCHAR = 402,
|
||||
tWIREMARSHAL = 403,
|
||||
ADDRESSOF = 404,
|
||||
NEG = 405,
|
||||
POS = 406,
|
||||
PPTR = 407,
|
||||
CAST = 408
|
||||
aSQSTRING = 265,
|
||||
aUUID = 266,
|
||||
aEOF = 267,
|
||||
SHL = 268,
|
||||
SHR = 269,
|
||||
MEMBERPTR = 270,
|
||||
EQUALITY = 271,
|
||||
INEQUALITY = 272,
|
||||
GREATEREQUAL = 273,
|
||||
LESSEQUAL = 274,
|
||||
LOGICALOR = 275,
|
||||
LOGICALAND = 276,
|
||||
ELLIPSIS = 277,
|
||||
tAGGREGATABLE = 278,
|
||||
tALLOCATE = 279,
|
||||
tANNOTATION = 280,
|
||||
tAPPOBJECT = 281,
|
||||
tASYNC = 282,
|
||||
tASYNCUUID = 283,
|
||||
tAUTOHANDLE = 284,
|
||||
tBINDABLE = 285,
|
||||
tBOOLEAN = 286,
|
||||
tBROADCAST = 287,
|
||||
tBYTE = 288,
|
||||
tBYTECOUNT = 289,
|
||||
tCALLAS = 290,
|
||||
tCALLBACK = 291,
|
||||
tCASE = 292,
|
||||
tCDECL = 293,
|
||||
tCHAR = 294,
|
||||
tCOCLASS = 295,
|
||||
tCODE = 296,
|
||||
tCOMMSTATUS = 297,
|
||||
tCONST = 298,
|
||||
tCONTEXTHANDLE = 299,
|
||||
tCONTEXTHANDLENOSERIALIZE = 300,
|
||||
tCONTEXTHANDLESERIALIZE = 301,
|
||||
tCONTROL = 302,
|
||||
tCPPQUOTE = 303,
|
||||
tDEFAULT = 304,
|
||||
tDEFAULTCOLLELEM = 305,
|
||||
tDEFAULTVALUE = 306,
|
||||
tDEFAULTVTABLE = 307,
|
||||
tDISPLAYBIND = 308,
|
||||
tDISPINTERFACE = 309,
|
||||
tDLLNAME = 310,
|
||||
tDOUBLE = 311,
|
||||
tDUAL = 312,
|
||||
tENDPOINT = 313,
|
||||
tENTRY = 314,
|
||||
tENUM = 315,
|
||||
tERRORSTATUST = 316,
|
||||
tEXPLICITHANDLE = 317,
|
||||
tEXTERN = 318,
|
||||
tFALSE = 319,
|
||||
tFASTCALL = 320,
|
||||
tFLOAT = 321,
|
||||
tHANDLE = 322,
|
||||
tHANDLET = 323,
|
||||
tHELPCONTEXT = 324,
|
||||
tHELPFILE = 325,
|
||||
tHELPSTRING = 326,
|
||||
tHELPSTRINGCONTEXT = 327,
|
||||
tHELPSTRINGDLL = 328,
|
||||
tHIDDEN = 329,
|
||||
tHYPER = 330,
|
||||
tID = 331,
|
||||
tIDEMPOTENT = 332,
|
||||
tIIDIS = 333,
|
||||
tIMMEDIATEBIND = 334,
|
||||
tIMPLICITHANDLE = 335,
|
||||
tIMPORT = 336,
|
||||
tIMPORTLIB = 337,
|
||||
tIN = 338,
|
||||
tIN_LINE = 339,
|
||||
tINLINE = 340,
|
||||
tINPUTSYNC = 341,
|
||||
tINT = 342,
|
||||
tINT3264 = 343,
|
||||
tINT64 = 344,
|
||||
tINTERFACE = 345,
|
||||
tLCID = 346,
|
||||
tLENGTHIS = 347,
|
||||
tLIBRARY = 348,
|
||||
tLOCAL = 349,
|
||||
tLONG = 350,
|
||||
tMETHODS = 351,
|
||||
tMODULE = 352,
|
||||
tNONBROWSABLE = 353,
|
||||
tNONCREATABLE = 354,
|
||||
tNONEXTENSIBLE = 355,
|
||||
tNULL = 356,
|
||||
tOBJECT = 357,
|
||||
tODL = 358,
|
||||
tOLEAUTOMATION = 359,
|
||||
tOPTIONAL = 360,
|
||||
tOUT = 361,
|
||||
tPASCAL = 362,
|
||||
tPOINTERDEFAULT = 363,
|
||||
tPROPERTIES = 364,
|
||||
tPROPGET = 365,
|
||||
tPROPPUT = 366,
|
||||
tPROPPUTREF = 367,
|
||||
tPTR = 368,
|
||||
tPUBLIC = 369,
|
||||
tRANGE = 370,
|
||||
tREADONLY = 371,
|
||||
tREF = 372,
|
||||
tREGISTER = 373,
|
||||
tREQUESTEDIT = 374,
|
||||
tRESTRICTED = 375,
|
||||
tRETVAL = 376,
|
||||
tSAFEARRAY = 377,
|
||||
tSHORT = 378,
|
||||
tSIGNED = 379,
|
||||
tSIZEIS = 380,
|
||||
tSIZEOF = 381,
|
||||
tSMALL = 382,
|
||||
tSOURCE = 383,
|
||||
tSTATIC = 384,
|
||||
tSTDCALL = 385,
|
||||
tSTRICTCONTEXTHANDLE = 386,
|
||||
tSTRING = 387,
|
||||
tSTRUCT = 388,
|
||||
tSWITCH = 389,
|
||||
tSWITCHIS = 390,
|
||||
tSWITCHTYPE = 391,
|
||||
tTRANSMITAS = 392,
|
||||
tTRUE = 393,
|
||||
tTYPEDEF = 394,
|
||||
tUNION = 395,
|
||||
tUNIQUE = 396,
|
||||
tUNSIGNED = 397,
|
||||
tUUID = 398,
|
||||
tV1ENUM = 399,
|
||||
tVARARG = 400,
|
||||
tVERSION = 401,
|
||||
tVOID = 402,
|
||||
tWCHAR = 403,
|
||||
tWIREMARSHAL = 404,
|
||||
ADDRESSOF = 405,
|
||||
NEG = 406,
|
||||
POS = 407,
|
||||
PPTR = 408,
|
||||
CAST = 409
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@ -232,7 +233,7 @@ typedef union YYSTYPE
|
|||
|
||||
|
||||
/* Line 1676 of yacc.c */
|
||||
#line 236 "parser.tab.h"
|
||||
#line 237 "parser.tab.h"
|
||||
} YYSTYPE;
|
||||
# define YYSTYPE_IS_TRIVIAL 1
|
||||
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
||||
|
|
|
@ -186,7 +186,7 @@ static statement_list_t *append_statement(statement_list_t *list, statement_t *s
|
|||
%token <str> aKNOWNTYPE
|
||||
%token <num> aNUM aHEXNUM
|
||||
%token <dbl> aDOUBLE
|
||||
%token <str> aSTRING aWSTRING
|
||||
%token <str> aSTRING aWSTRING aSQSTRING
|
||||
%token <uuid> aUUID
|
||||
%token aEOF
|
||||
%token SHL SHR
|
||||
|
@ -632,6 +632,7 @@ expr: aNUM { $$ = make_exprl(EXPR_NUM, $1); }
|
|||
| tTRUE { $$ = make_exprl(EXPR_TRUEFALSE, 1); }
|
||||
| aSTRING { $$ = make_exprs(EXPR_STRLIT, $1); }
|
||||
| aWSTRING { $$ = make_exprs(EXPR_WSTRLIT, $1); }
|
||||
| aSQSTRING { $$ = make_exprs(EXPR_CHARCONST, $1); }
|
||||
| aIDENTIFIER { $$ = make_exprs(EXPR_IDENTIFIER, $1); }
|
||||
| expr '?' expr ':' expr { $$ = make_expr3(EXPR_COND, $1, $3, $5); }
|
||||
| expr LOGICALOR expr { $$ = make_expr2(EXPR_LOGOR, $1, $3); }
|
||||
|
@ -841,7 +842,7 @@ dispinterfacedef: dispinterfacehdr '{'
|
|||
;
|
||||
|
||||
inherit: { $$ = NULL; }
|
||||
| ':' aKNOWNTYPE { $$ = find_type_or_error2($2, 0); }
|
||||
| ':' aKNOWNTYPE { $$ = find_type_or_error2($2, 0); is_object_interface = 1; }
|
||||
;
|
||||
|
||||
interface: tINTERFACE aIDENTIFIER { $$ = get_type(TYPE_INTERFACE, $2, 0); }
|
||||
|
@ -852,9 +853,9 @@ interfacehdr: attributes interface { $$.interface = $2;
|
|||
$$.old_pointer_default = pointer_default;
|
||||
if (is_attr($1, ATTR_POINTERDEFAULT))
|
||||
pointer_default = get_attrv($1, ATTR_POINTERDEFAULT);
|
||||
is_object_interface = is_object($1);
|
||||
check_def($2);
|
||||
$2->attrs = check_iface_attrs($2->name, $1);
|
||||
is_object_interface = is_object($2);
|
||||
$2->defined = TRUE;
|
||||
}
|
||||
;
|
||||
|
@ -1033,7 +1034,7 @@ m_bitfield: { $$ = NULL; }
|
|||
|
||||
struct_declarator: any_declarator m_bitfield { $$ = $1; $$->bits = $2;
|
||||
if (!$$->bits && !$$->var->name)
|
||||
error_loc("unnamed fields are not allowed");
|
||||
error_loc("unnamed fields are not allowed\n");
|
||||
}
|
||||
;
|
||||
|
||||
|
|
|
@ -301,26 +301,26 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
|
|||
*yy_cp = '\0'; \
|
||||
yy_c_buf_p = yy_cp;
|
||||
|
||||
#define YY_NUM_RULES 33
|
||||
#define YY_END_OF_BUFFER 34
|
||||
static yyconst short int yy_accept[142] =
|
||||
#define YY_NUM_RULES 36
|
||||
#define YY_END_OF_BUFFER 37
|
||||
static yyconst short int yy_accept[148] =
|
||||
{ 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 2, 2,
|
||||
34, 32, 21, 20, 32, 3, 32, 32, 32, 16,
|
||||
16, 32, 32, 32, 19, 19, 19, 11, 32, 21,
|
||||
1, 10, 33, 4, 10, 6, 16, 16, 13, 13,
|
||||
13, 12, 2, 26, 30, 24, 0, 0, 16, 16,
|
||||
16, 0, 22, 28, 25, 27, 23, 19, 5, 19,
|
||||
29, 0, 1, 1, 9, 8, 7, 16, 0, 13,
|
||||
13, 2, 31, 17, 16, 16, 15, 19, 16, 0,
|
||||
13, 0, 15, 15, 19, 16, 0, 13, 0, 17,
|
||||
15, 15, 19, 16, 0, 13, 19, 16, 0, 13,
|
||||
0, 0, 37, 35, 24, 23, 35, 3, 35, 7,
|
||||
35, 35, 19, 19, 35, 35, 35, 22, 22, 22,
|
||||
14, 35, 24, 1, 13, 36, 4, 13, 6, 19,
|
||||
19, 16, 16, 16, 15, 2, 8, 13, 29, 33,
|
||||
27, 0, 0, 19, 19, 19, 0, 25, 31, 28,
|
||||
30, 26, 22, 5, 22, 32, 0, 1, 1, 12,
|
||||
10, 9, 19, 0, 16, 16, 2, 11, 34, 20,
|
||||
19, 19, 18, 22, 19, 0, 16, 0, 18, 18,
|
||||
22, 19, 0, 16, 0, 20, 18, 18, 22, 19,
|
||||
|
||||
19, 16, 0, 13, 19, 16, 0, 13, 19, 0,
|
||||
16, 0, 18, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 16, 22, 19, 0, 16, 22, 19, 0, 16,
|
||||
22, 19, 0, 16, 22, 0, 19, 0, 21, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 14,
|
||||
0
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 17, 0
|
||||
} ;
|
||||
|
||||
static yyconst int yy_ec[256] =
|
||||
|
@ -328,17 +328,17 @@ static yyconst int yy_ec[256] =
|
|||
1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
|
||||
1, 2, 2, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 2, 4, 5, 6, 1, 1, 7, 1, 8,
|
||||
1, 1, 9, 1, 10, 11, 1, 12, 13, 13,
|
||||
13, 13, 13, 13, 13, 13, 13, 1, 1, 14,
|
||||
15, 16, 1, 1, 17, 18, 18, 18, 19, 20,
|
||||
21, 21, 21, 21, 21, 22, 21, 21, 21, 21,
|
||||
21, 23, 24, 21, 25, 21, 21, 26, 27, 21,
|
||||
28, 29, 30, 1, 21, 1, 18, 18, 18, 18,
|
||||
1, 2, 4, 5, 6, 1, 1, 7, 8, 9,
|
||||
1, 1, 10, 1, 11, 12, 1, 13, 14, 14,
|
||||
14, 14, 14, 14, 14, 14, 14, 1, 1, 15,
|
||||
16, 17, 1, 1, 18, 19, 19, 19, 20, 21,
|
||||
22, 22, 22, 22, 22, 23, 22, 22, 22, 22,
|
||||
22, 24, 25, 22, 26, 22, 22, 27, 28, 22,
|
||||
29, 30, 31, 1, 22, 1, 19, 19, 19, 19,
|
||||
|
||||
31, 18, 21, 21, 21, 21, 21, 32, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 33, 21, 21, 34,
|
||||
21, 21, 1, 35, 1, 1, 1, 1, 1, 1,
|
||||
32, 19, 22, 22, 22, 22, 22, 33, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 34, 22, 22, 35,
|
||||
22, 22, 1, 36, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
|
@ -355,182 +355,182 @@ static yyconst int yy_ec[256] =
|
|||
1, 1, 1, 1, 1
|
||||
} ;
|
||||
|
||||
static yyconst int yy_meta[36] =
|
||||
static yyconst int yy_meta[37] =
|
||||
{ 0,
|
||||
1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 3, 3, 1, 1, 1, 3, 3, 3, 3,
|
||||
4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
|
||||
3, 4, 4, 4, 1
|
||||
1, 1, 3, 3, 1, 1, 1, 3, 3, 3,
|
||||
3, 4, 4, 4, 4, 4, 4, 4, 1, 1,
|
||||
1, 3, 4, 4, 4, 1
|
||||
} ;
|
||||
|
||||
static yyconst short int yy_base[178] =
|
||||
static yyconst short int yy_base[184] =
|
||||
{ 0,
|
||||
0, 34, 34, 38, 39, 42, 71, 44, 270, 269,
|
||||
271, 491, 491, 491, 255, 491, 258, 248, 252, 96,
|
||||
22, 37, 242, 38, 0, 251, 238, 491, 219, 53,
|
||||
251, 491, 491, 491, 33, 491, 119, 23, 142, 165,
|
||||
246, 491, 0, 491, 491, 491, 239, 48, 0, 33,
|
||||
88, 0, 491, 491, 491, 491, 491, 0, 491, 228,
|
||||
491, 63, 241, 240, 491, 491, 491, 185, 0, 207,
|
||||
0, 0, 491, 104, 491, 491, 124, 222, 227, 0,
|
||||
249, 102, 94, 102, 220, 269, 0, 291, 113, 168,
|
||||
491, 491, 213, 311, 0, 333, 212, 353, 0, 375,
|
||||
0, 35, 35, 39, 40, 43, 61, 45, 262, 261,
|
||||
46, 47, 263, 481, 481, 481, 246, 481, 254, 481,
|
||||
243, 243, 85, 25, 41, 238, 42, 0, 248, 229,
|
||||
481, 210, 60, 243, 481, 481, 481, 34, 481, 108,
|
||||
26, 131, 154, 239, 481, 0, 481, 60, 481, 481,
|
||||
481, 231, 58, 0, 75, 77, 0, 481, 481, 481,
|
||||
481, 481, 0, 481, 220, 481, 61, 238, 236, 481,
|
||||
481, 481, 174, 0, 196, 0, 0, 481, 481, 93,
|
||||
481, 481, 113, 213, 216, 0, 238, 166, 89, 81,
|
||||
214, 258, 0, 280, 89, 169, 481, 481, 207, 300,
|
||||
|
||||
217, 395, 0, 417, 206, 439, 222, 221, 62, 0,
|
||||
220, 140, 491, 0, 0, 0, 219, 0, 0, 0,
|
||||
0, 218, 0, 0, 0, 0, 213, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 491,
|
||||
491, 472, 476, 478, 482, 486, 219, 218, 212, 211,
|
||||
210, 209, 208, 206, 205, 203, 198, 197, 192, 191,
|
||||
190, 189, 188, 187, 186, 185, 183, 176, 169, 168,
|
||||
167, 155, 144, 140, 137, 130, 110
|
||||
0, 322, 203, 342, 0, 364, 208, 384, 0, 406,
|
||||
197, 428, 213, 212, 115, 0, 211, 128, 481, 0,
|
||||
0, 0, 210, 0, 0, 0, 0, 209, 0, 0,
|
||||
0, 0, 208, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 481, 481, 462, 466, 468,
|
||||
472, 476, 215, 210, 209, 208, 202, 201, 200, 199,
|
||||
196, 195, 193, 188, 187, 182, 181, 178, 175, 168,
|
||||
167, 166, 159, 158, 157, 145, 135, 130, 129, 113,
|
||||
102, 88, 75
|
||||
} ;
|
||||
|
||||
static yyconst short int yy_def[178] =
|
||||
static yyconst short int yy_def[184] =
|
||||
{ 0,
|
||||
141, 1, 142, 142, 142, 142, 141, 7, 143, 143,
|
||||
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
|
||||
20, 141, 141, 141, 144, 144, 144, 141, 141, 141,
|
||||
141, 141, 141, 141, 145, 141, 141, 37, 141, 39,
|
||||
40, 141, 146, 141, 141, 141, 141, 141, 21, 141,
|
||||
141, 147, 141, 141, 141, 141, 141, 144, 141, 144,
|
||||
141, 141, 141, 141, 141, 141, 141, 141, 148, 40,
|
||||
40, 146, 141, 141, 141, 141, 147, 144, 141, 149,
|
||||
40, 141, 141, 141, 144, 141, 150, 40, 141, 141,
|
||||
141, 141, 144, 141, 151, 40, 144, 141, 152, 40,
|
||||
147, 1, 148, 148, 148, 148, 1, 7, 149, 149,
|
||||
148, 148, 147, 147, 147, 147, 147, 147, 147, 147,
|
||||
147, 147, 147, 23, 147, 147, 147, 150, 150, 150,
|
||||
147, 147, 147, 147, 147, 147, 147, 151, 147, 147,
|
||||
40, 147, 42, 43, 147, 152, 147, 151, 147, 147,
|
||||
147, 147, 147, 24, 147, 147, 153, 147, 147, 147,
|
||||
147, 147, 150, 147, 150, 147, 147, 147, 147, 147,
|
||||
147, 147, 147, 154, 43, 43, 152, 147, 147, 147,
|
||||
147, 147, 153, 150, 147, 155, 43, 147, 147, 147,
|
||||
150, 147, 156, 43, 147, 147, 147, 147, 150, 147,
|
||||
|
||||
144, 141, 153, 40, 144, 141, 141, 40, 144, 154,
|
||||
106, 141, 141, 155, 156, 157, 141, 158, 159, 160,
|
||||
161, 141, 162, 163, 164, 165, 141, 166, 167, 168,
|
||||
169, 170, 171, 172, 173, 174, 175, 176, 177, 141,
|
||||
0, 141, 141, 141, 141, 141, 141, 141, 141, 141,
|
||||
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
|
||||
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
|
||||
141, 141, 141, 141, 141, 141, 141
|
||||
157, 43, 150, 147, 158, 43, 150, 147, 159, 43,
|
||||
150, 147, 147, 43, 150, 160, 112, 147, 147, 161,
|
||||
162, 163, 147, 164, 165, 166, 167, 147, 168, 169,
|
||||
170, 171, 147, 172, 173, 174, 175, 176, 177, 178,
|
||||
179, 180, 181, 182, 183, 147, 0, 147, 147, 147,
|
||||
147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
|
||||
147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
|
||||
147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
|
||||
147, 147, 147
|
||||
} ;
|
||||
|
||||
static yyconst short int yy_nxt[527] =
|
||||
static yyconst short int yy_nxt[518] =
|
||||
{ 0,
|
||||
12, 13, 14, 15, 16, 12, 17, 12, 12, 18,
|
||||
19, 20, 21, 22, 23, 24, 25, 25, 25, 25,
|
||||
25, 26, 25, 27, 25, 25, 25, 28, 12, 12,
|
||||
25, 25, 25, 25, 29, 30, 33, 66, 34, 31,
|
||||
33, 33, 34, 36, 33, 30, 36, 141, 141, 31,
|
||||
53, 54, 56, 57, 62, 141, 141, 75, 63, 74,
|
||||
74, 67, 35, 112, 62, 75, 35, 35, 63, 113,
|
||||
35, 12, 13, 14, 15, 16, 12, 17, 12, 12,
|
||||
18, 19, 37, 38, 22, 23, 24, 39, 39, 39,
|
||||
39, 40, 41, 40, 40, 40, 40, 40, 28, 12,
|
||||
14, 15, 16, 17, 18, 14, 19, 20, 14, 14,
|
||||
21, 22, 23, 24, 25, 26, 27, 28, 28, 28,
|
||||
28, 28, 29, 28, 30, 28, 28, 28, 31, 14,
|
||||
14, 28, 28, 28, 28, 32, 33, 36, 71, 37,
|
||||
34, 36, 36, 37, 39, 36, 33, 39, 36, 36,
|
||||
34, 147, 147, 47, 47, 58, 59, 61, 62, 147,
|
||||
147, 67, 67, 72, 38, 68, 68, 78, 38, 38,
|
||||
80, 80, 38, 40, 41, 48, 48, 146, 42, 42,
|
||||
42, 42, 43, 44, 43, 43, 43, 43, 43, 72,
|
||||
145, 45, 42, 43, 43, 43, 53, 54, 54, 82,
|
||||
|
||||
42, 39, 40, 40, 40, 29, 48, 49, 49, 76,
|
||||
89, 89, 140, 90, 90, 74, 74, 50, 91, 76,
|
||||
51, 52, 82, 92, 90, 90, 91, 50, 51, 52,
|
||||
68, 68, 139, 92, 82, 69, 69, 69, 69, 138,
|
||||
50, 112, 137, 51, 52, 83, 136, 113, 84, 69,
|
||||
50, 51, 52, 70, 70, 83, 84, 135, 70, 70,
|
||||
70, 70, 71, 71, 71, 71, 71, 71, 71, 134,
|
||||
133, 132, 70, 71, 71, 71, 71, 71, 131, 90,
|
||||
90, 71, 71, 71, 71, 130, 82, 129, 127, 126,
|
||||
125, 124, 122, 121, 120, 71, 79, 79, 82, 119,
|
||||
81, 96, 96, 98, 144, 80, 80, 55, 81, 82,
|
||||
56, 57, 88, 98, 97, 143, 118, 55, 56, 57,
|
||||
73, 73, 97, 119, 88, 74, 74, 74, 74, 118,
|
||||
55, 142, 141, 56, 57, 89, 119, 140, 90, 74,
|
||||
55, 56, 57, 75, 75, 89, 90, 139, 75, 75,
|
||||
75, 75, 76, 76, 76, 76, 76, 76, 76, 138,
|
||||
137, 136, 75, 76, 76, 76, 76, 76, 135, 133,
|
||||
132, 76, 76, 76, 76, 95, 95, 131, 96, 96,
|
||||
130, 96, 96, 128, 127, 76, 85, 85, 88, 126,
|
||||
125, 86, 86, 86, 86, 123, 55, 122, 121, 56,
|
||||
|
||||
117, 80, 80, 80, 80, 116, 50, 115, 114, 51,
|
||||
107, 103, 99, 95, 87, 80, 50, 51, 81, 81,
|
||||
80, 77, 128, 81, 81, 81, 81, 123, 118, 141,
|
||||
110, 110, 109, 105, 101, 97, 93, 81, 86, 86,
|
||||
85, 64, 64, 87, 87, 87, 87, 78, 50, 73,
|
||||
59, 51, 64, 61, 60, 59, 55, 87, 50, 51,
|
||||
88, 88, 47, 46, 45, 88, 88, 88, 88, 44,
|
||||
141, 33, 33, 141, 141, 141, 141, 141, 141, 88,
|
||||
94, 94, 141, 141, 141, 95, 95, 95, 95, 141,
|
||||
50, 141, 141, 51, 141, 141, 141, 141, 141, 95,
|
||||
88, 120, 113, 109, 105, 86, 55, 56, 87, 87,
|
||||
101, 93, 86, 87, 87, 87, 87, 83, 134, 129,
|
||||
124, 147, 116, 116, 115, 111, 107, 87, 92, 92,
|
||||
103, 99, 91, 93, 93, 93, 93, 69, 55, 69,
|
||||
84, 56, 79, 64, 69, 66, 65, 93, 55, 56,
|
||||
94, 94, 64, 60, 52, 94, 94, 94, 94, 51,
|
||||
50, 49, 147, 36, 36, 147, 147, 147, 147, 94,
|
||||
100, 100, 147, 147, 147, 101, 101, 101, 101, 147,
|
||||
55, 147, 147, 56, 147, 147, 147, 147, 147, 101,
|
||||
55, 56, 102, 102, 147, 147, 147, 102, 102, 102,
|
||||
|
||||
50, 51, 96, 96, 141, 141, 141, 96, 96, 96,
|
||||
96, 141, 141, 141, 141, 141, 141, 141, 141, 141,
|
||||
141, 96, 98, 98, 141, 141, 141, 99, 99, 99,
|
||||
99, 141, 50, 141, 141, 51, 141, 141, 141, 141,
|
||||
141, 99, 50, 51, 100, 100, 141, 141, 141, 100,
|
||||
100, 100, 100, 141, 141, 141, 141, 141, 141, 141,
|
||||
141, 141, 141, 100, 102, 102, 141, 141, 141, 103,
|
||||
103, 103, 103, 141, 50, 141, 141, 51, 141, 141,
|
||||
141, 141, 141, 103, 50, 51, 104, 104, 141, 141,
|
||||
141, 104, 104, 104, 104, 141, 141, 141, 141, 141,
|
||||
102, 147, 147, 147, 147, 147, 147, 147, 147, 147,
|
||||
147, 102, 104, 104, 147, 147, 147, 105, 105, 105,
|
||||
105, 147, 55, 147, 147, 56, 147, 147, 147, 147,
|
||||
147, 105, 55, 56, 106, 106, 147, 147, 147, 106,
|
||||
106, 106, 106, 147, 147, 147, 147, 147, 147, 147,
|
||||
147, 147, 147, 106, 108, 108, 147, 147, 147, 109,
|
||||
109, 109, 109, 147, 55, 147, 147, 56, 147, 147,
|
||||
147, 147, 147, 109, 55, 56, 110, 110, 147, 147,
|
||||
147, 110, 110, 110, 110, 147, 147, 147, 147, 147,
|
||||
147, 147, 147, 147, 147, 110, 112, 112, 147, 147,
|
||||
|
||||
141, 141, 141, 141, 141, 104, 106, 106, 141, 141,
|
||||
141, 107, 107, 107, 107, 141, 50, 141, 141, 51,
|
||||
141, 141, 141, 141, 141, 107, 50, 51, 108, 108,
|
||||
141, 141, 141, 108, 108, 108, 108, 141, 141, 141,
|
||||
141, 141, 141, 141, 141, 141, 141, 108, 110, 141,
|
||||
111, 111, 141, 141, 141, 141, 141, 141, 141, 141,
|
||||
50, 141, 141, 51, 141, 141, 141, 141, 141, 141,
|
||||
50, 51, 32, 32, 32, 32, 43, 43, 43, 43,
|
||||
58, 58, 65, 141, 65, 65, 72, 141, 72, 72,
|
||||
11, 141, 141, 141, 141, 141, 141, 141, 141, 141,
|
||||
147, 113, 113, 113, 113, 147, 55, 147, 147, 56,
|
||||
147, 147, 147, 147, 147, 113, 55, 56, 114, 114,
|
||||
147, 147, 147, 114, 114, 114, 114, 147, 147, 147,
|
||||
147, 147, 147, 147, 147, 147, 147, 114, 116, 147,
|
||||
117, 117, 147, 147, 147, 147, 147, 147, 147, 147,
|
||||
55, 147, 147, 56, 147, 147, 147, 147, 147, 147,
|
||||
55, 56, 35, 35, 35, 35, 46, 46, 46, 46,
|
||||
63, 63, 70, 147, 70, 70, 77, 147, 77, 77,
|
||||
13, 147, 147, 147, 147, 147, 147, 147, 147, 147,
|
||||
147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
|
||||
|
||||
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
|
||||
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
|
||||
141, 141, 141, 141, 141, 141
|
||||
147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
|
||||
147, 147, 147, 147, 147, 147, 147
|
||||
} ;
|
||||
|
||||
static yyconst short int yy_chk[527] =
|
||||
static yyconst short int yy_chk[518] =
|
||||
{ 0,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1, 2, 3, 35, 3, 2,
|
||||
4, 5, 4, 5, 6, 8, 6, 21, 38, 8,
|
||||
22, 22, 24, 24, 30, 21, 38, 50, 30, 48,
|
||||
48, 35, 3, 109, 62, 50, 4, 5, 62, 109,
|
||||
6, 7, 7, 7, 7, 7, 7, 7, 7, 7,
|
||||
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
|
||||
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
|
||||
1, 1, 1, 1, 1, 1, 2, 3, 38, 3,
|
||||
2, 4, 5, 4, 5, 6, 8, 6, 11, 12,
|
||||
8, 24, 41, 11, 12, 25, 25, 27, 27, 24,
|
||||
41, 33, 67, 38, 3, 33, 67, 48, 4, 5,
|
||||
53, 53, 6, 7, 7, 11, 12, 183, 7, 7,
|
||||
7, 7, 7, 7, 7, 7, 7, 7, 7, 48,
|
||||
182, 7, 7, 7, 7, 7, 23, 23, 23, 56,
|
||||
|
||||
7, 7, 7, 7, 7, 7, 20, 20, 20, 51,
|
||||
82, 82, 177, 82, 82, 74, 74, 20, 83, 51,
|
||||
20, 20, 74, 84, 89, 89, 83, 20, 20, 20,
|
||||
37, 37, 176, 84, 74, 37, 37, 37, 37, 175,
|
||||
37, 112, 174, 37, 37, 77, 173, 112, 77, 37,
|
||||
37, 37, 37, 39, 39, 77, 77, 172, 39, 39,
|
||||
39, 39, 39, 39, 39, 39, 39, 39, 39, 171,
|
||||
170, 169, 39, 39, 39, 39, 40, 40, 168, 90,
|
||||
90, 40, 40, 40, 40, 167, 90, 166, 165, 164,
|
||||
163, 162, 161, 160, 159, 40, 68, 68, 90, 158,
|
||||
55, 95, 95, 90, 181, 80, 80, 23, 55, 56,
|
||||
23, 23, 80, 90, 89, 180, 115, 23, 23, 23,
|
||||
40, 40, 89, 115, 80, 40, 40, 40, 40, 118,
|
||||
40, 179, 178, 40, 40, 83, 118, 177, 83, 40,
|
||||
40, 40, 40, 42, 42, 83, 83, 176, 42, 42,
|
||||
42, 42, 42, 42, 42, 42, 42, 42, 42, 175,
|
||||
174, 173, 42, 42, 42, 42, 43, 43, 172, 171,
|
||||
170, 43, 43, 43, 43, 88, 88, 169, 88, 88,
|
||||
168, 96, 96, 167, 166, 43, 73, 73, 96, 165,
|
||||
164, 73, 73, 73, 73, 163, 73, 162, 161, 73,
|
||||
|
||||
157, 68, 68, 68, 68, 156, 68, 155, 154, 68,
|
||||
153, 152, 151, 150, 149, 68, 68, 68, 70, 70,
|
||||
148, 147, 127, 70, 70, 70, 70, 122, 117, 111,
|
||||
108, 107, 105, 101, 97, 93, 85, 70, 79, 79,
|
||||
78, 64, 63, 79, 79, 79, 79, 60, 79, 47,
|
||||
41, 79, 31, 29, 27, 26, 23, 79, 79, 79,
|
||||
81, 81, 19, 18, 17, 81, 81, 81, 81, 15,
|
||||
11, 10, 9, 0, 0, 0, 0, 0, 0, 81,
|
||||
86, 86, 0, 0, 0, 86, 86, 86, 86, 0,
|
||||
86, 0, 0, 86, 0, 0, 0, 0, 0, 86,
|
||||
96, 160, 159, 158, 157, 73, 73, 73, 75, 75,
|
||||
156, 155, 154, 75, 75, 75, 75, 153, 133, 128,
|
||||
123, 117, 114, 113, 111, 107, 103, 75, 85, 85,
|
||||
99, 91, 84, 85, 85, 85, 85, 69, 85, 68,
|
||||
65, 85, 52, 44, 34, 32, 30, 85, 85, 85,
|
||||
87, 87, 29, 26, 22, 87, 87, 87, 87, 21,
|
||||
19, 17, 13, 10, 9, 0, 0, 0, 0, 87,
|
||||
92, 92, 0, 0, 0, 92, 92, 92, 92, 0,
|
||||
92, 0, 0, 92, 0, 0, 0, 0, 0, 92,
|
||||
92, 92, 94, 94, 0, 0, 0, 94, 94, 94,
|
||||
|
||||
86, 86, 88, 88, 0, 0, 0, 88, 88, 88,
|
||||
88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 88, 94, 94, 0, 0, 0, 94, 94, 94,
|
||||
94, 0, 94, 0, 0, 94, 0, 0, 0, 0,
|
||||
0, 94, 94, 94, 96, 96, 0, 0, 0, 96,
|
||||
96, 96, 96, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 96, 98, 98, 0, 0, 0, 98,
|
||||
98, 98, 98, 0, 98, 0, 0, 98, 0, 0,
|
||||
0, 0, 0, 98, 98, 98, 100, 100, 0, 0,
|
||||
0, 100, 100, 100, 100, 0, 0, 0, 0, 0,
|
||||
94, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 94, 100, 100, 0, 0, 0, 100, 100, 100,
|
||||
100, 0, 100, 0, 0, 100, 0, 0, 0, 0,
|
||||
0, 100, 100, 100, 102, 102, 0, 0, 0, 102,
|
||||
102, 102, 102, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 102, 104, 104, 0, 0, 0, 104,
|
||||
104, 104, 104, 0, 104, 0, 0, 104, 0, 0,
|
||||
0, 0, 0, 104, 104, 104, 106, 106, 0, 0,
|
||||
0, 106, 106, 106, 106, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 106, 108, 108, 0, 0,
|
||||
|
||||
0, 0, 0, 0, 0, 100, 102, 102, 0, 0,
|
||||
0, 102, 102, 102, 102, 0, 102, 0, 0, 102,
|
||||
0, 0, 0, 0, 0, 102, 102, 102, 104, 104,
|
||||
0, 0, 0, 104, 104, 104, 104, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 104, 106, 0,
|
||||
106, 106, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
106, 0, 0, 106, 0, 0, 0, 0, 0, 0,
|
||||
106, 106, 142, 142, 142, 142, 143, 143, 143, 143,
|
||||
144, 144, 145, 0, 145, 145, 146, 0, 146, 146,
|
||||
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
|
||||
0, 108, 108, 108, 108, 0, 108, 0, 0, 108,
|
||||
0, 0, 0, 0, 0, 108, 108, 108, 110, 110,
|
||||
0, 0, 0, 110, 110, 110, 110, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 110, 112, 0,
|
||||
112, 112, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
112, 0, 0, 112, 0, 0, 0, 0, 0, 0,
|
||||
112, 112, 148, 148, 148, 148, 149, 149, 149, 149,
|
||||
150, 150, 151, 0, 151, 151, 152, 0, 152, 152,
|
||||
147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
|
||||
147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
|
||||
|
||||
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
|
||||
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
|
||||
141, 141, 141, 141, 141, 141
|
||||
147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
|
||||
147, 147, 147, 147, 147, 147, 147
|
||||
} ;
|
||||
|
||||
static yy_state_type yy_last_accepting_state;
|
||||
|
@ -578,7 +578,9 @@ char *yytext;
|
|||
|
||||
#define PP_LINE 4
|
||||
|
||||
#line 42 "parser.l"
|
||||
#define SQUOTE 5
|
||||
|
||||
#line 43 "parser.l"
|
||||
|
||||
#include "config.h"
|
||||
|
||||
|
@ -603,8 +605,6 @@ char *yytext;
|
|||
|
||||
#include "parser.tab.h"
|
||||
|
||||
extern char *temp_name;
|
||||
|
||||
static void addcchar(char c);
|
||||
static char *get_buffered_cstring(void);
|
||||
|
||||
|
@ -816,7 +816,7 @@ YY_DECL
|
|||
register char *yy_cp, *yy_bp;
|
||||
register int yy_act;
|
||||
|
||||
#line 127 "parser.l"
|
||||
#line 126 "parser.l"
|
||||
|
||||
#line 822 "parser.yy.c"
|
||||
|
||||
|
@ -870,13 +870,13 @@ yy_match:
|
|||
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
||||
{
|
||||
yy_current_state = (int) yy_def[yy_current_state];
|
||||
if ( yy_current_state >= 142 )
|
||||
if ( yy_current_state >= 148 )
|
||||
yy_c = yy_meta[(unsigned int) yy_c];
|
||||
}
|
||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
||||
++yy_cp;
|
||||
}
|
||||
while ( yy_base[yy_current_state] != 491 );
|
||||
while ( yy_base[yy_current_state] != 481 );
|
||||
|
||||
yy_find_action:
|
||||
yy_act = yy_accept[yy_current_state];
|
||||
|
@ -904,12 +904,12 @@ do_action: /* This label is used only to access EOF actions. */
|
|||
|
||||
case 1:
|
||||
YY_RULE_SETUP
|
||||
#line 128 "parser.l"
|
||||
#line 127 "parser.l"
|
||||
yy_push_state(PP_LINE);
|
||||
YY_BREAK
|
||||
case 2:
|
||||
YY_RULE_SETUP
|
||||
#line 129 "parser.l"
|
||||
#line 128 "parser.l"
|
||||
{
|
||||
int lineno;
|
||||
char *cptr, *fname;
|
||||
|
@ -932,12 +932,12 @@ YY_RULE_SETUP
|
|||
YY_BREAK
|
||||
case 3:
|
||||
YY_RULE_SETUP
|
||||
#line 148 "parser.l"
|
||||
#line 147 "parser.l"
|
||||
yy_push_state(QUOTE); cbufidx = 0;
|
||||
YY_BREAK
|
||||
case 4:
|
||||
YY_RULE_SETUP
|
||||
#line 149 "parser.l"
|
||||
#line 148 "parser.l"
|
||||
{
|
||||
yy_pop_state();
|
||||
parser_lval.str = get_buffered_cstring();
|
||||
|
@ -946,12 +946,12 @@ YY_RULE_SETUP
|
|||
YY_BREAK
|
||||
case 5:
|
||||
YY_RULE_SETUP
|
||||
#line 154 "parser.l"
|
||||
#line 153 "parser.l"
|
||||
yy_push_state(WSTRQUOTE);
|
||||
YY_BREAK
|
||||
case 6:
|
||||
YY_RULE_SETUP
|
||||
#line 155 "parser.l"
|
||||
#line 154 "parser.l"
|
||||
{
|
||||
yy_pop_state();
|
||||
parser_lval.str = get_buffered_cstring();
|
||||
|
@ -959,145 +959,164 @@ YY_RULE_SETUP
|
|||
}
|
||||
YY_BREAK
|
||||
case 7:
|
||||
#line 161 "parser.l"
|
||||
YY_RULE_SETUP
|
||||
#line 159 "parser.l"
|
||||
yy_push_state(SQUOTE); cbufidx = 0;
|
||||
YY_BREAK
|
||||
case 8:
|
||||
YY_RULE_SETUP
|
||||
#line 161 "parser.l"
|
||||
addcchar(yytext[1]);
|
||||
#line 160 "parser.l"
|
||||
{
|
||||
yy_pop_state();
|
||||
parser_lval.str = get_buffered_cstring();
|
||||
return aSQSTRING;
|
||||
}
|
||||
YY_BREAK
|
||||
case 9:
|
||||
YY_RULE_SETUP
|
||||
#line 162 "parser.l"
|
||||
addcchar('\\'); addcchar(yytext[1]);
|
||||
YY_BREAK
|
||||
#line 166 "parser.l"
|
||||
case 10:
|
||||
YY_RULE_SETUP
|
||||
#line 163 "parser.l"
|
||||
addcchar(yytext[0]);
|
||||
#line 166 "parser.l"
|
||||
addcchar(yytext[1]);
|
||||
YY_BREAK
|
||||
case 11:
|
||||
YY_RULE_SETUP
|
||||
#line 164 "parser.l"
|
||||
yy_push_state(ATTR); return '[';
|
||||
#line 167 "parser.l"
|
||||
addcchar(yytext[1]);
|
||||
YY_BREAK
|
||||
case 12:
|
||||
YY_RULE_SETUP
|
||||
#line 165 "parser.l"
|
||||
yy_pop_state(); return ']';
|
||||
#line 168 "parser.l"
|
||||
addcchar('\\'); addcchar(yytext[1]);
|
||||
YY_BREAK
|
||||
case 13:
|
||||
YY_RULE_SETUP
|
||||
#line 166 "parser.l"
|
||||
return attr_token(yytext);
|
||||
#line 169 "parser.l"
|
||||
addcchar(yytext[0]);
|
||||
YY_BREAK
|
||||
case 14:
|
||||
YY_RULE_SETUP
|
||||
#line 167 "parser.l"
|
||||
#line 170 "parser.l"
|
||||
yy_push_state(ATTR); return '[';
|
||||
YY_BREAK
|
||||
case 15:
|
||||
YY_RULE_SETUP
|
||||
#line 171 "parser.l"
|
||||
yy_pop_state(); return ']';
|
||||
YY_BREAK
|
||||
case 16:
|
||||
YY_RULE_SETUP
|
||||
#line 172 "parser.l"
|
||||
return attr_token(yytext);
|
||||
YY_BREAK
|
||||
case 17:
|
||||
YY_RULE_SETUP
|
||||
#line 173 "parser.l"
|
||||
{
|
||||
parser_lval.uuid = parse_uuid(yytext);
|
||||
return aUUID;
|
||||
}
|
||||
YY_BREAK
|
||||
case 15:
|
||||
case 18:
|
||||
YY_RULE_SETUP
|
||||
#line 171 "parser.l"
|
||||
#line 177 "parser.l"
|
||||
{
|
||||
parser_lval.num = xstrtoul(yytext, NULL, 0);
|
||||
return aHEXNUM;
|
||||
}
|
||||
YY_BREAK
|
||||
case 16:
|
||||
case 19:
|
||||
YY_RULE_SETUP
|
||||
#line 175 "parser.l"
|
||||
#line 181 "parser.l"
|
||||
{
|
||||
parser_lval.num = xstrtoul(yytext, NULL, 0);
|
||||
return aNUM;
|
||||
}
|
||||
YY_BREAK
|
||||
case 17:
|
||||
case 20:
|
||||
YY_RULE_SETUP
|
||||
#line 179 "parser.l"
|
||||
#line 185 "parser.l"
|
||||
{
|
||||
parser_lval.dbl = strtod(yytext, NULL);
|
||||
return aDOUBLE;
|
||||
}
|
||||
YY_BREAK
|
||||
case 18:
|
||||
case 21:
|
||||
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
|
||||
yy_c_buf_p = yy_cp -= 1;
|
||||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||||
YY_RULE_SETUP
|
||||
#line 183 "parser.l"
|
||||
#line 189 "parser.l"
|
||||
return tSAFEARRAY;
|
||||
YY_BREAK
|
||||
case 19:
|
||||
YY_RULE_SETUP
|
||||
#line 184 "parser.l"
|
||||
return kw_token(yytext);
|
||||
YY_BREAK
|
||||
case 20:
|
||||
YY_RULE_SETUP
|
||||
#line 185 "parser.l"
|
||||
line_number++;
|
||||
YY_BREAK
|
||||
case 21:
|
||||
YY_RULE_SETUP
|
||||
#line 186 "parser.l"
|
||||
|
||||
YY_BREAK
|
||||
case 22:
|
||||
YY_RULE_SETUP
|
||||
#line 187 "parser.l"
|
||||
return SHL;
|
||||
#line 190 "parser.l"
|
||||
return kw_token(yytext);
|
||||
YY_BREAK
|
||||
case 23:
|
||||
YY_RULE_SETUP
|
||||
#line 188 "parser.l"
|
||||
return SHR;
|
||||
#line 191 "parser.l"
|
||||
line_number++;
|
||||
YY_BREAK
|
||||
case 24:
|
||||
YY_RULE_SETUP
|
||||
#line 189 "parser.l"
|
||||
return MEMBERPTR;
|
||||
#line 192 "parser.l"
|
||||
|
||||
YY_BREAK
|
||||
case 25:
|
||||
YY_RULE_SETUP
|
||||
#line 190 "parser.l"
|
||||
return EQUALITY;
|
||||
#line 193 "parser.l"
|
||||
return SHL;
|
||||
YY_BREAK
|
||||
case 26:
|
||||
YY_RULE_SETUP
|
||||
#line 191 "parser.l"
|
||||
return INEQUALITY;
|
||||
#line 194 "parser.l"
|
||||
return SHR;
|
||||
YY_BREAK
|
||||
case 27:
|
||||
YY_RULE_SETUP
|
||||
#line 192 "parser.l"
|
||||
return GREATEREQUAL;
|
||||
#line 195 "parser.l"
|
||||
return MEMBERPTR;
|
||||
YY_BREAK
|
||||
case 28:
|
||||
YY_RULE_SETUP
|
||||
#line 193 "parser.l"
|
||||
return LESSEQUAL;
|
||||
#line 196 "parser.l"
|
||||
return EQUALITY;
|
||||
YY_BREAK
|
||||
case 29:
|
||||
YY_RULE_SETUP
|
||||
#line 194 "parser.l"
|
||||
return LOGICALOR;
|
||||
#line 197 "parser.l"
|
||||
return INEQUALITY;
|
||||
YY_BREAK
|
||||
case 30:
|
||||
YY_RULE_SETUP
|
||||
#line 195 "parser.l"
|
||||
return LOGICALAND;
|
||||
#line 198 "parser.l"
|
||||
return GREATEREQUAL;
|
||||
YY_BREAK
|
||||
case 31:
|
||||
YY_RULE_SETUP
|
||||
#line 196 "parser.l"
|
||||
return ELLIPSIS;
|
||||
#line 199 "parser.l"
|
||||
return LESSEQUAL;
|
||||
YY_BREAK
|
||||
case 32:
|
||||
YY_RULE_SETUP
|
||||
#line 197 "parser.l"
|
||||
#line 200 "parser.l"
|
||||
return LOGICALOR;
|
||||
YY_BREAK
|
||||
case 33:
|
||||
YY_RULE_SETUP
|
||||
#line 201 "parser.l"
|
||||
return LOGICALAND;
|
||||
YY_BREAK
|
||||
case 34:
|
||||
YY_RULE_SETUP
|
||||
#line 202 "parser.l"
|
||||
return ELLIPSIS;
|
||||
YY_BREAK
|
||||
case 35:
|
||||
YY_RULE_SETUP
|
||||
#line 203 "parser.l"
|
||||
return yytext[0];
|
||||
YY_BREAK
|
||||
case YY_STATE_EOF(INITIAL):
|
||||
|
@ -1105,19 +1124,20 @@ case YY_STATE_EOF(QUOTE):
|
|||
case YY_STATE_EOF(WSTRQUOTE):
|
||||
case YY_STATE_EOF(ATTR):
|
||||
case YY_STATE_EOF(PP_LINE):
|
||||
#line 198 "parser.l"
|
||||
case YY_STATE_EOF(SQUOTE):
|
||||
#line 204 "parser.l"
|
||||
{
|
||||
if (import_stack_ptr)
|
||||
return aEOF;
|
||||
else yyterminate();
|
||||
}
|
||||
YY_BREAK
|
||||
case 33:
|
||||
case 36:
|
||||
YY_RULE_SETUP
|
||||
#line 203 "parser.l"
|
||||
#line 209 "parser.l"
|
||||
ECHO;
|
||||
YY_BREAK
|
||||
#line 1121 "parser.yy.c"
|
||||
#line 1141 "parser.yy.c"
|
||||
|
||||
case YY_END_OF_BUFFER:
|
||||
{
|
||||
|
@ -1408,7 +1428,7 @@ static yy_state_type yy_get_previous_state()
|
|||
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
||||
{
|
||||
yy_current_state = (int) yy_def[yy_current_state];
|
||||
if ( yy_current_state >= 142 )
|
||||
if ( yy_current_state >= 148 )
|
||||
yy_c = yy_meta[(unsigned int) yy_c];
|
||||
}
|
||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
||||
|
@ -1443,11 +1463,11 @@ yy_state_type yy_current_state;
|
|||
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
||||
{
|
||||
yy_current_state = (int) yy_def[yy_current_state];
|
||||
if ( yy_current_state >= 142 )
|
||||
if ( yy_current_state >= 148 )
|
||||
yy_c = yy_meta[(unsigned int) yy_c];
|
||||
}
|
||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
||||
yy_is_jam = (yy_current_state == 141);
|
||||
yy_is_jam = (yy_current_state == 147);
|
||||
|
||||
return yy_is_jam ? 0 : yy_current_state;
|
||||
}
|
||||
|
@ -2003,7 +2023,7 @@ int main()
|
|||
return 0;
|
||||
}
|
||||
#endif
|
||||
#line 203 "parser.l"
|
||||
#line 209 "parser.l"
|
||||
|
||||
|
||||
#ifndef parser_wrap
|
||||
|
|
|
@ -698,12 +698,12 @@ static int does_any_iface(const statement_list_t *stmts, type_pred_t pred)
|
|||
|
||||
int need_proxy(const type_t *iface)
|
||||
{
|
||||
return is_object(iface->attrs) && !is_local(iface->attrs);
|
||||
return is_object(iface) && !is_local(iface->attrs);
|
||||
}
|
||||
|
||||
int need_stub(const type_t *iface)
|
||||
{
|
||||
return !is_object(iface->attrs) && !is_local(iface->attrs);
|
||||
return !is_object(iface) && !is_local(iface->attrs);
|
||||
}
|
||||
|
||||
int need_proxy_file(const statement_list_t *stmts)
|
||||
|
@ -754,7 +754,7 @@ static void build_iface_list( const statement_list_t *stmts, type_t **ifaces[],
|
|||
type_t *iface = stmt->u.type;
|
||||
if (type_iface_get_inherit(iface) && need_proxy(iface))
|
||||
{
|
||||
*ifaces = xrealloc( *ifaces, (*count + 1) * sizeof(*ifaces) );
|
||||
*ifaces = xrealloc( *ifaces, (*count + 1) * sizeof(**ifaces) );
|
||||
(*ifaces)[(*count)++] = iface;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -69,7 +69,7 @@ static unsigned int write_string_tfs(FILE *file, const attr_list_t *attrs,
|
|||
type_t *type, int toplevel_param,
|
||||
const char *name, unsigned int *typestring_offset);
|
||||
|
||||
const char *string_of_type(unsigned char type)
|
||||
static const char *string_of_type(unsigned char type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
|
@ -133,7 +133,7 @@ static void *get_aliaschain_attrp(const type_t *type, enum attr_type attr)
|
|||
return get_attrp(t->attrs, attr);
|
||||
else if (type_is_alias(t))
|
||||
t = type_alias_get_aliasee(t);
|
||||
else return 0;
|
||||
else return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -391,7 +391,7 @@ unsigned char get_struct_fc(const type_t *type)
|
|||
return RPC_FC_STRUCT;
|
||||
}
|
||||
|
||||
unsigned char get_array_fc(const type_t *type)
|
||||
static unsigned char get_array_fc(const type_t *type)
|
||||
{
|
||||
unsigned char fc;
|
||||
const expr_t *size_is;
|
||||
|
@ -641,7 +641,7 @@ static type_t *get_user_type(const type_t *t, const char **pname)
|
|||
if (type_is_alias(t))
|
||||
t = type_alias_get_aliasee(t);
|
||||
else
|
||||
return 0;
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3298,7 +3298,7 @@ void print_phase_basetype(FILE *file, int indent, const char *local_var_prefix,
|
|||
size = 0;
|
||||
}
|
||||
|
||||
if (phase == PHASE_MARSHAL)
|
||||
if (phase == PHASE_MARSHAL && alignment > 1)
|
||||
print_file(file, indent, "MIDL_memset(__frame->_StubMsg.Buffer, 0, (0x%x - (ULONG_PTR)__frame->_StubMsg.Buffer) & 0x%x);\n", alignment, alignment - 1);
|
||||
print_file(file, indent, "__frame->_StubMsg.Buffer = (unsigned char *)(((ULONG_PTR)__frame->_StubMsg.Buffer + %u) & ~0x%x);\n",
|
||||
alignment - 1, alignment - 1);
|
||||
|
|
|
@ -100,7 +100,7 @@ int parser_debug, yy_flex_debug;
|
|||
|
||||
int pedantic = 0;
|
||||
int do_everything = 1;
|
||||
int preprocess_only = 0;
|
||||
static int preprocess_only = 0;
|
||||
int do_header = 0;
|
||||
int do_typelib = 0;
|
||||
int do_proxies = 0;
|
||||
|
@ -108,7 +108,7 @@ int do_client = 0;
|
|||
int do_server = 0;
|
||||
int do_idfile = 0;
|
||||
int do_dlldata = 0;
|
||||
int no_preprocess = 0;
|
||||
static int no_preprocess = 0;
|
||||
int old_names = 0;
|
||||
int do_win32 = 1;
|
||||
int do_win64 = 1;
|
||||
|
@ -127,16 +127,15 @@ char *client_name;
|
|||
char *client_token;
|
||||
char *server_name;
|
||||
char *server_token;
|
||||
char *idfile_name;
|
||||
char *idfile_token;
|
||||
static char *idfile_name;
|
||||
static char *idfile_token;
|
||||
char *temp_name;
|
||||
const char *prefix_client = "";
|
||||
const char *prefix_server = "";
|
||||
|
||||
int line_number = 1;
|
||||
|
||||
FILE *header;
|
||||
FILE *idfile;
|
||||
static FILE *idfile;
|
||||
|
||||
size_t pointer_size = 0;
|
||||
syskind_t typelib_kind = sizeof(void*) == 8 ? SYS_WIN64 : SYS_WIN32;
|
||||
|
@ -160,18 +159,18 @@ enum {
|
|||
static const char short_options[] =
|
||||
"b:cC:d:D:EhH:I:m:NpP:sS:tT:uU:VW";
|
||||
static const struct option long_options[] = {
|
||||
{ "dlldata", 1, 0, DLLDATA_OPTION },
|
||||
{ "dlldata-only", 0, 0, DLLDATA_ONLY_OPTION },
|
||||
{ "local-stubs", 1, 0, LOCAL_STUBS_OPTION },
|
||||
{ "oldnames", 0, 0, OLDNAMES_OPTION },
|
||||
{ "prefix-all", 1, 0, PREFIX_ALL_OPTION },
|
||||
{ "prefix-client", 1, 0, PREFIX_CLIENT_OPTION },
|
||||
{ "prefix-server", 1, 0, PREFIX_SERVER_OPTION },
|
||||
{ "win32", 0, 0, WIN32_OPTION },
|
||||
{ "win64", 0, 0, WIN64_OPTION },
|
||||
{ "win32-align", 1, 0, WIN32_ALIGN_OPTION },
|
||||
{ "win64-align", 1, 0, WIN64_ALIGN_OPTION },
|
||||
{ 0, 0, 0, 0 }
|
||||
{ "dlldata", 1, NULL, DLLDATA_OPTION },
|
||||
{ "dlldata-only", 0, NULL, DLLDATA_ONLY_OPTION },
|
||||
{ "local-stubs", 1, NULL, LOCAL_STUBS_OPTION },
|
||||
{ "oldnames", 0, NULL, OLDNAMES_OPTION },
|
||||
{ "prefix-all", 1, NULL, PREFIX_ALL_OPTION },
|
||||
{ "prefix-client", 1, NULL, PREFIX_CLIENT_OPTION },
|
||||
{ "prefix-server", 1, NULL, PREFIX_SERVER_OPTION },
|
||||
{ "win32", 0, NULL, WIN32_OPTION },
|
||||
{ "win64", 0, NULL, WIN64_OPTION },
|
||||
{ "win32-align", 1, NULL, WIN32_ALIGN_OPTION },
|
||||
{ "win64-align", 1, NULL, WIN64_ALIGN_OPTION },
|
||||
{ NULL, 0, NULL, 0 }
|
||||
};
|
||||
|
||||
static void rm_tempfile(void);
|
||||
|
@ -431,7 +430,7 @@ static void write_id_data_stmts(const statement_list_t *stmts)
|
|||
if (type_get_type(type) == TYPE_INTERFACE)
|
||||
{
|
||||
const UUID *uuid;
|
||||
if (!is_object(type->attrs) && !is_attr(type->attrs, ATTR_DISPINTERFACE))
|
||||
if (!is_object(type) && !is_attr(type->attrs, ATTR_DISPINTERFACE))
|
||||
continue;
|
||||
uuid = get_attrp(type->attrs, ATTR_UUID);
|
||||
write_guid(idfile, is_attr(type->attrs, ATTR_DISPINTERFACE) ? "DIID" : "IID",
|
||||
|
@ -648,8 +647,8 @@ int main(int argc,char *argv[])
|
|||
|
||||
if(debuglevel)
|
||||
{
|
||||
setbuf(stdout,0);
|
||||
setbuf(stderr,0);
|
||||
setbuf(stdout, NULL);
|
||||
setbuf(stderr, NULL);
|
||||
}
|
||||
|
||||
parser_debug = debuglevel & DEBUGLEVEL_TRACE ? 1 : 0;
|
||||
|
|
|
@ -195,6 +195,7 @@ enum expr_type
|
|||
EXPR_POS,
|
||||
EXPR_STRLIT,
|
||||
EXPR_WSTRLIT,
|
||||
EXPR_CHARCONST,
|
||||
};
|
||||
|
||||
enum type_kind
|
||||
|
|
Loading…
Reference in a new issue