diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index 59e7c9ff719..729128b4389 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -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) diff --git a/reactos/tools/widl/expr.c b/reactos/tools/widl/expr.c index b5283767288..bca7c5a3e91 100644 --- a/reactos/tools/widl/expr.c +++ b/reactos/tools/widl/expr.c @@ -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); diff --git a/reactos/tools/widl/header.c b/reactos/tools/widl/header.c index e87a44e9077..5602b6da572 100644 --- a/reactos/tools/widl/header.c +++ b/reactos/tools/widl/header.c @@ -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); diff --git a/reactos/tools/widl/header.h b/reactos/tools/widl/header.h index d4b3b88f32e..7d6c5439d7b 100644 --- a/reactos/tools/widl/header.h +++ b/reactos/tools/widl/header.h @@ -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); diff --git a/reactos/tools/widl/parser.h b/reactos/tools/widl/parser.h index 71f08dc994a..1bcc3c182f2 100644 --- a/reactos/tools/widl/parser.h +++ b/reactos/tools/widl/parser.h @@ -45,4 +45,6 @@ void pop_import(void); int is_type(const char *name); +extern char *temp_name; + #endif diff --git a/reactos/tools/widl/parser.l b/reactos/tools/widl/parser.l index f509cb19eae..0d231fc7885 100644 --- a/reactos/tools/widl/parser.l +++ b/reactos/tools/widl/parser.l @@ -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; } -\\\\ | +\' yy_push_state(SQUOTE); cbufidx = 0; +\' { + yy_pop_state(); + parser_lval.str = get_buffered_cstring(); + return aSQSTRING; + } +\\\\ | \\\" addcchar(yytext[1]); -\\. addcchar('\\'); addcchar(yytext[1]); -. addcchar(yytext[0]); +\\\' addcchar(yytext[1]); +\\. addcchar('\\'); addcchar(yytext[1]); +. addcchar(yytext[0]); \[ yy_push_state(ATTR); return '['; \] yy_pop_state(); return ']'; {cident} return attr_token(yytext); diff --git a/reactos/tools/widl/parser.tab.c b/reactos/tools/widl/parser.tab.c index 198575fba90..cdb7eeb41a1 100644 --- a/reactos/tools/widl/parser.tab.c +++ b/reactos/tools/widl/parser.tab.c @@ -268,150 +268,151 @@ static statement_list_t *append_statement(statement_list_t *list, statement_t *s 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 @@ -454,7 +455,7 @@ typedef union YYSTYPE /* Line 214 of yacc.c */ -#line 458 "parser.tab.c" +#line 459 "parser.tab.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -466,7 +467,7 @@ typedef union YYSTYPE /* Line 264 of yacc.c */ -#line 470 "parser.tab.c" +#line 471 "parser.tab.c" #ifdef short # undef short @@ -681,20 +682,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 3 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 2392 +#define YYLAST 2343 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 178 +#define YYNTOKENS 179 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 99 /* YYNRULES -- Number of rules. */ -#define YYNRULES 344 +#define YYNRULES 345 /* YYNRULES -- Number of states. */ -#define YYNSTATES 606 +#define YYNSTATES 607 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 408 +#define YYMAXUTOK 409 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -705,16 +706,16 @@ static const yytype_uint8 yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 162, 2, 2, 2, 161, 154, 2, - 173, 174, 159, 158, 149, 157, 169, 160, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 151, 172, - 155, 177, 156, 150, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 163, 2, 2, 2, 162, 155, 2, + 174, 175, 160, 159, 150, 158, 170, 161, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 152, 173, + 156, 178, 157, 151, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 170, 2, 171, 153, 2, 2, 2, 2, 2, + 2, 171, 2, 172, 154, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 175, 152, 176, 163, 2, 2, 2, + 2, 2, 2, 176, 153, 177, 164, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -742,7 +743,7 @@ static const yytype_uint8 yytranslate[] = 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 164, 165, 166, 167, 168 + 145, 146, 147, 148, 149, 165, 166, 167, 168, 169 }; #if YYDEBUG @@ -766,135 +767,135 @@ static const yytype_uint16 yyprhs[] = 388, 393, 398, 400, 402, 404, 406, 408, 410, 412, 413, 416, 421, 425, 426, 429, 431, 433, 437, 441, 443, 449, 451, 455, 456, 458, 460, 462, 464, 466, - 468, 470, 472, 474, 476, 482, 486, 490, 494, 498, - 502, 506, 510, 514, 518, 522, 526, 530, 534, 538, - 542, 546, 550, 554, 557, 560, 563, 566, 569, 572, - 576, 580, 586, 592, 597, 601, 603, 607, 609, 611, - 612, 615, 620, 624, 627, 630, 631, 634, 637, 639, - 643, 647, 651, 654, 655, 657, 658, 660, 662, 664, - 666, 668, 670, 672, 675, 678, 680, 682, 684, 686, - 688, 690, 691, 693, 695, 698, 700, 703, 706, 708, - 710, 712, 715, 718, 721, 727, 728, 731, 734, 737, - 740, 743, 746, 750, 753, 757, 763, 769, 770, 773, - 776, 779, 782, 789, 798, 801, 804, 807, 810, 813, - 816, 822, 824, 826, 828, 830, 832, 833, 836, 839, - 843, 844, 846, 849, 852, 855, 859, 862, 864, 866, - 870, 873, 878, 882, 885, 887, 891, 894, 895, 897, - 901, 904, 906, 910, 915, 919, 922, 924, 928, 931, - 932, 934, 936, 940, 943, 945, 949, 954, 956, 960, - 961, 964, 967, 969, 973, 975, 979, 981, 983, 985, - 991, 993, 995, 997, 999, 1002, 1004, 1007, 1009, 1012, - 1017, 1022, 1028, 1039, 1041 + 468, 470, 472, 474, 476, 478, 484, 488, 492, 496, + 500, 504, 508, 512, 516, 520, 524, 528, 532, 536, + 540, 544, 548, 552, 556, 559, 562, 565, 568, 571, + 574, 578, 582, 588, 594, 599, 603, 605, 609, 611, + 613, 614, 617, 622, 626, 629, 632, 633, 636, 639, + 641, 645, 649, 653, 656, 657, 659, 660, 662, 664, + 666, 668, 670, 672, 674, 677, 680, 682, 684, 686, + 688, 690, 692, 693, 695, 697, 700, 702, 705, 708, + 710, 712, 714, 717, 720, 723, 729, 730, 733, 736, + 739, 742, 745, 748, 752, 755, 759, 765, 771, 772, + 775, 778, 781, 784, 791, 800, 803, 806, 809, 812, + 815, 818, 824, 826, 828, 830, 832, 834, 835, 838, + 841, 845, 846, 848, 851, 854, 857, 861, 864, 866, + 868, 872, 875, 880, 884, 887, 889, 893, 896, 897, + 899, 903, 906, 908, 912, 917, 921, 924, 926, 930, + 933, 934, 936, 938, 942, 945, 947, 951, 956, 958, + 962, 963, 966, 969, 971, 975, 977, 981, 983, 985, + 987, 993, 995, 997, 999, 1001, 1004, 1006, 1009, 1011, + 1014, 1019, 1024, 1030, 1041, 1043 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 179, 0, -1, 180, -1, -1, 180, 245, -1, 180, - 244, -1, 180, 231, 172, -1, 180, 233, -1, 180, - 248, -1, 180, 192, -1, 180, 184, -1, -1, 181, - 245, -1, 181, 244, -1, 181, 231, 172, -1, 181, - 233, -1, 181, 248, -1, 181, 184, -1, 181, 189, - -1, 181, 192, -1, -1, 182, 184, -1, -1, 172, - -1, 186, -1, 185, 172, -1, 224, 172, -1, 188, - -1, 274, 172, -1, 210, -1, 272, -1, 275, -1, - 199, 210, -1, 199, 272, -1, 199, 275, -1, 47, - 173, 8, 174, -1, 80, 8, 172, -1, 187, 181, - 11, -1, 81, 173, 8, 174, 183, -1, 92, 3, - -1, 199, 190, 175, -1, 191, 181, 176, 183, -1, - -1, 195, -1, 196, -1, 194, 149, 196, -1, 194, - -1, 194, 149, 21, -1, 199, 253, 264, -1, 253, - 264, -1, 170, 212, 171, -1, 170, 159, 171, -1, - -1, 199, -1, 170, 200, 171, -1, 202, -1, 200, - 149, 202, -1, 200, 171, 170, 202, -1, 8, -1, - 201, 149, 8, -1, -1, 22, -1, 24, 173, 8, - 174, -1, 25, -1, 26, -1, 28, -1, 29, -1, - 31, -1, 34, 173, 227, 174, -1, 36, 173, 214, - 174, -1, 43, -1, 44, -1, 45, -1, 46, -1, - 48, -1, 49, -1, 50, 173, 216, 174, -1, 51, - -1, 52, -1, 54, 173, 8, 174, -1, 56, -1, - 57, 173, 201, 174, -1, 58, 173, 216, 174, -1, - 61, -1, 66, -1, 68, 173, 215, 174, -1, 69, - 173, 8, 174, -1, 70, 173, 8, 174, -1, 71, - 173, 215, 174, -1, 72, 173, 8, 174, -1, 73, - -1, 75, 173, 215, 174, -1, 76, -1, 77, 173, - 213, 174, -1, 78, -1, 79, 173, 67, 3, 174, - -1, 82, -1, 85, -1, 91, 173, 211, 174, -1, - 90, 173, 215, 174, -1, 90, -1, 93, -1, 97, - -1, 98, -1, 99, -1, 101, -1, 102, -1, 103, - -1, 104, -1, 105, -1, 107, 173, 271, 174, -1, - 109, -1, 110, -1, 111, -1, 113, -1, 114, 173, - 215, 149, 215, 174, -1, 115, -1, 118, -1, 119, - -1, 120, -1, 124, 173, 211, 174, -1, 127, -1, - 130, -1, 131, -1, 134, 173, 213, 174, -1, 135, - 173, 273, 174, -1, 136, 173, 273, 174, -1, 142, - 173, 203, 174, -1, 143, -1, 144, -1, 145, 173, - 276, 174, -1, 148, 173, 273, 174, -1, 271, -1, - 10, -1, 8, -1, 37, -1, 64, -1, 106, -1, - 129, -1, -1, 205, 206, -1, 36, 215, 151, 221, - -1, 48, 151, 221, -1, -1, 208, 149, -1, 208, - -1, 209, -1, 208, 149, 209, -1, 227, 177, 215, - -1, 227, -1, 59, 226, 175, 207, 176, -1, 212, - -1, 211, 149, 212, -1, -1, 213, -1, 5, -1, - 6, -1, 7, -1, 63, -1, 100, -1, 137, -1, - 8, -1, 9, -1, 3, -1, 213, 150, 213, 151, - 213, -1, 213, 19, 213, -1, 213, 20, 213, -1, - 213, 152, 213, -1, 213, 153, 213, -1, 213, 154, - 213, -1, 213, 15, 213, -1, 213, 16, 213, -1, - 213, 156, 213, -1, 213, 155, 213, -1, 213, 17, - 213, -1, 213, 18, 213, -1, 213, 12, 213, -1, - 213, 13, 213, -1, 213, 158, 213, -1, 213, 157, - 213, -1, 213, 161, 213, -1, 213, 159, 213, -1, - 213, 160, 213, -1, 162, 213, -1, 163, 213, -1, - 158, 213, -1, 157, 213, -1, 154, 213, -1, 159, - 213, -1, 213, 14, 3, -1, 213, 169, 3, -1, - 173, 253, 260, 174, 213, -1, 125, 173, 253, 260, - 174, -1, 213, 170, 213, 171, -1, 173, 213, 174, - -1, 215, -1, 214, 149, 215, -1, 213, -1, 213, - -1, -1, 217, 218, -1, 198, 253, 269, 172, -1, - 198, 275, 172, -1, 222, 172, -1, 199, 172, -1, - -1, 220, 219, -1, 222, 172, -1, 172, -1, 198, - 253, 256, -1, 198, 253, 256, -1, 199, 253, 270, - -1, 253, 270, -1, -1, 227, -1, -1, 3, -1, - 4, -1, 3, -1, 4, -1, 32, -1, 147, -1, - 230, -1, 123, 230, -1, 141, 230, -1, 141, -1, - 65, -1, 55, -1, 30, -1, 60, -1, 67, -1, - -1, 86, -1, 86, -1, 122, 229, -1, 126, -1, - 94, 229, -1, 74, 229, -1, 88, -1, 38, -1, - 87, -1, 39, 3, -1, 39, 4, -1, 199, 231, - -1, 232, 175, 234, 176, 183, -1, -1, 234, 235, - -1, 198, 245, -1, 53, 3, -1, 53, 4, -1, - 199, 236, -1, 108, 151, -1, 238, 222, 172, -1, - 95, 151, -1, 239, 223, 172, -1, 237, 175, 238, - 239, 176, -1, 237, 175, 242, 172, 176, -1, -1, - 151, 4, -1, 89, 3, -1, 89, 4, -1, 199, - 242, -1, 243, 241, 175, 182, 176, 183, -1, 243, - 151, 3, 175, 188, 182, 176, 183, -1, 240, 183, - -1, 242, 172, -1, 236, 172, -1, 96, 3, -1, - 96, 4, -1, 199, 246, -1, 247, 175, 182, 176, - 183, -1, 62, -1, 128, -1, 117, -1, 84, -1, - 42, -1, -1, 252, 251, -1, 273, 254, -1, 255, - 273, 254, -1, -1, 255, -1, 251, 254, -1, 250, - 254, -1, 249, 254, -1, 159, 252, 256, -1, 204, - 256, -1, 257, -1, 227, -1, 173, 256, 174, -1, - 257, 197, -1, 257, 173, 193, 174, -1, 159, 252, - 260, -1, 204, 260, -1, 261, -1, 159, 252, 264, - -1, 204, 264, -1, -1, 258, -1, 173, 259, 174, - -1, 261, 197, -1, 197, -1, 173, 193, 174, -1, - 261, 173, 193, 174, -1, 159, 252, 264, -1, 204, - 264, -1, 265, -1, 159, 252, 264, -1, 204, 264, - -1, -1, 262, -1, 227, -1, 173, 263, 174, -1, - 265, 197, -1, 197, -1, 173, 193, 174, -1, 265, - 173, 193, 174, -1, 256, -1, 266, 149, 256, -1, - -1, 151, 216, -1, 262, 267, -1, 268, -1, 269, - 149, 268, -1, 256, -1, 256, 177, 216, -1, 116, - -1, 140, -1, 112, -1, 132, 226, 175, 217, 176, - -1, 146, -1, 4, -1, 228, -1, 210, -1, 59, - 3, -1, 272, -1, 132, 3, -1, 275, -1, 139, - 3, -1, 121, 173, 273, 174, -1, 138, 198, 253, - 266, -1, 139, 226, 175, 220, 176, -1, 139, 226, - 133, 173, 222, 174, 225, 175, 205, 176, -1, 5, - -1, 5, 169, 5, -1 + 180, 0, -1, 181, -1, -1, 181, 246, -1, 181, + 245, -1, 181, 232, 173, -1, 181, 234, -1, 181, + 249, -1, 181, 193, -1, 181, 185, -1, -1, 182, + 246, -1, 182, 245, -1, 182, 232, 173, -1, 182, + 234, -1, 182, 249, -1, 182, 185, -1, 182, 190, + -1, 182, 193, -1, -1, 183, 185, -1, -1, 173, + -1, 187, -1, 186, 173, -1, 225, 173, -1, 189, + -1, 275, 173, -1, 211, -1, 273, -1, 276, -1, + 200, 211, -1, 200, 273, -1, 200, 276, -1, 48, + 174, 8, 175, -1, 81, 8, 173, -1, 188, 182, + 12, -1, 82, 174, 8, 175, 184, -1, 93, 3, + -1, 200, 191, 176, -1, 192, 182, 177, 184, -1, + -1, 196, -1, 197, -1, 195, 150, 197, -1, 195, + -1, 195, 150, 22, -1, 200, 254, 265, -1, 254, + 265, -1, 171, 213, 172, -1, 171, 160, 172, -1, + -1, 200, -1, 171, 201, 172, -1, 203, -1, 201, + 150, 203, -1, 201, 172, 171, 203, -1, 8, -1, + 202, 150, 8, -1, -1, 23, -1, 25, 174, 8, + 175, -1, 26, -1, 27, -1, 29, -1, 30, -1, + 32, -1, 35, 174, 228, 175, -1, 37, 174, 215, + 175, -1, 44, -1, 45, -1, 46, -1, 47, -1, + 49, -1, 50, -1, 51, 174, 217, 175, -1, 52, + -1, 53, -1, 55, 174, 8, 175, -1, 57, -1, + 58, 174, 202, 175, -1, 59, 174, 217, 175, -1, + 62, -1, 67, -1, 69, 174, 216, 175, -1, 70, + 174, 8, 175, -1, 71, 174, 8, 175, -1, 72, + 174, 216, 175, -1, 73, 174, 8, 175, -1, 74, + -1, 76, 174, 216, 175, -1, 77, -1, 78, 174, + 214, 175, -1, 79, -1, 80, 174, 68, 3, 175, + -1, 83, -1, 86, -1, 92, 174, 212, 175, -1, + 91, 174, 216, 175, -1, 91, -1, 94, -1, 98, + -1, 99, -1, 100, -1, 102, -1, 103, -1, 104, + -1, 105, -1, 106, -1, 108, 174, 272, 175, -1, + 110, -1, 111, -1, 112, -1, 114, -1, 115, 174, + 216, 150, 216, 175, -1, 116, -1, 119, -1, 120, + -1, 121, -1, 125, 174, 212, 175, -1, 128, -1, + 131, -1, 132, -1, 135, 174, 214, 175, -1, 136, + 174, 274, 175, -1, 137, 174, 274, 175, -1, 143, + 174, 204, 175, -1, 144, -1, 145, -1, 146, 174, + 277, 175, -1, 149, 174, 274, 175, -1, 272, -1, + 11, -1, 8, -1, 38, -1, 65, -1, 107, -1, + 130, -1, -1, 206, 207, -1, 37, 216, 152, 222, + -1, 49, 152, 222, -1, -1, 209, 150, -1, 209, + -1, 210, -1, 209, 150, 210, -1, 228, 178, 216, + -1, 228, -1, 60, 227, 176, 208, 177, -1, 213, + -1, 212, 150, 213, -1, -1, 214, -1, 5, -1, + 6, -1, 7, -1, 64, -1, 101, -1, 138, -1, + 8, -1, 9, -1, 10, -1, 3, -1, 214, 151, + 214, 152, 214, -1, 214, 20, 214, -1, 214, 21, + 214, -1, 214, 153, 214, -1, 214, 154, 214, -1, + 214, 155, 214, -1, 214, 16, 214, -1, 214, 17, + 214, -1, 214, 157, 214, -1, 214, 156, 214, -1, + 214, 18, 214, -1, 214, 19, 214, -1, 214, 13, + 214, -1, 214, 14, 214, -1, 214, 159, 214, -1, + 214, 158, 214, -1, 214, 162, 214, -1, 214, 160, + 214, -1, 214, 161, 214, -1, 163, 214, -1, 164, + 214, -1, 159, 214, -1, 158, 214, -1, 155, 214, + -1, 160, 214, -1, 214, 15, 3, -1, 214, 170, + 3, -1, 174, 254, 261, 175, 214, -1, 126, 174, + 254, 261, 175, -1, 214, 171, 214, 172, -1, 174, + 214, 175, -1, 216, -1, 215, 150, 216, -1, 214, + -1, 214, -1, -1, 218, 219, -1, 199, 254, 270, + 173, -1, 199, 276, 173, -1, 223, 173, -1, 200, + 173, -1, -1, 221, 220, -1, 223, 173, -1, 173, + -1, 199, 254, 257, -1, 199, 254, 257, -1, 200, + 254, 271, -1, 254, 271, -1, -1, 228, -1, -1, + 3, -1, 4, -1, 3, -1, 4, -1, 33, -1, + 148, -1, 231, -1, 124, 231, -1, 142, 231, -1, + 142, -1, 66, -1, 56, -1, 31, -1, 61, -1, + 68, -1, -1, 87, -1, 87, -1, 123, 230, -1, + 127, -1, 95, 230, -1, 75, 230, -1, 89, -1, + 39, -1, 88, -1, 40, 3, -1, 40, 4, -1, + 200, 232, -1, 233, 176, 235, 177, 184, -1, -1, + 235, 236, -1, 199, 246, -1, 54, 3, -1, 54, + 4, -1, 200, 237, -1, 109, 152, -1, 239, 223, + 173, -1, 96, 152, -1, 240, 224, 173, -1, 238, + 176, 239, 240, 177, -1, 238, 176, 243, 173, 177, + -1, -1, 152, 4, -1, 90, 3, -1, 90, 4, + -1, 200, 243, -1, 244, 242, 176, 183, 177, 184, + -1, 244, 152, 3, 176, 189, 183, 177, 184, -1, + 241, 184, -1, 243, 173, -1, 237, 173, -1, 97, + 3, -1, 97, 4, -1, 200, 247, -1, 248, 176, + 183, 177, 184, -1, 63, -1, 129, -1, 118, -1, + 85, -1, 43, -1, -1, 253, 252, -1, 274, 255, + -1, 256, 274, 255, -1, -1, 256, -1, 252, 255, + -1, 251, 255, -1, 250, 255, -1, 160, 253, 257, + -1, 205, 257, -1, 258, -1, 228, -1, 174, 257, + 175, -1, 258, 198, -1, 258, 174, 194, 175, -1, + 160, 253, 261, -1, 205, 261, -1, 262, -1, 160, + 253, 265, -1, 205, 265, -1, -1, 259, -1, 174, + 260, 175, -1, 262, 198, -1, 198, -1, 174, 194, + 175, -1, 262, 174, 194, 175, -1, 160, 253, 265, + -1, 205, 265, -1, 266, -1, 160, 253, 265, -1, + 205, 265, -1, -1, 263, -1, 228, -1, 174, 264, + 175, -1, 266, 198, -1, 198, -1, 174, 194, 175, + -1, 266, 174, 194, 175, -1, 257, -1, 267, 150, + 257, -1, -1, 152, 217, -1, 263, 268, -1, 269, + -1, 270, 150, 269, -1, 257, -1, 257, 178, 217, + -1, 117, -1, 141, -1, 113, -1, 133, 227, 176, + 218, 177, -1, 147, -1, 4, -1, 229, -1, 211, + -1, 60, 3, -1, 273, -1, 133, 3, -1, 276, + -1, 140, 3, -1, 122, 174, 274, 175, -1, 139, + 199, 254, 267, -1, 140, 227, 176, 221, 177, -1, + 140, 227, 134, 174, 223, 175, 226, 176, 206, 177, + -1, 5, -1, 5, 170, 5, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -919,22 +920,22 @@ static const yytype_uint16 yyrline[] = 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, - 662, 663, 665, 667, 668, 671, 672, 675, 681, 687, - 688, 691, 696, 703, 704, 707, 708, 712, 713, 716, - 723, 732, 736, 741, 742, 745, 746, 747, 750, 752, - 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, - 765, 768, 769, 772, 773, 774, 775, 776, 777, 778, - 779, 782, 783, 791, 797, 801, 802, 806, 809, 810, - 813, 823, 824, 827, 828, 831, 837, 843, 844, 847, - 848, 851, 862, 869, 875, 879, 880, 883, 884, 887, - 892, 899, 900, 901, 905, 909, 912, 913, 916, 917, - 921, 922, 926, 927, 928, 932, 934, 935, 939, 940, - 941, 942, 950, 952, 953, 958, 960, 964, 965, 970, - 971, 972, 973, 978, 987, 989, 990, 995, 997, 1001, - 1002, 1009, 1010, 1011, 1012, 1013, 1018, 1026, 1027, 1030, - 1031, 1034, 1041, 1042, 1047, 1048, 1052, 1053, 1054, 1057, - 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, - 1072, 1078, 1080, 1086, 1087 + 662, 663, 664, 666, 668, 669, 672, 673, 676, 682, + 688, 689, 692, 697, 704, 705, 708, 709, 713, 714, + 717, 724, 733, 737, 742, 743, 746, 747, 748, 751, + 753, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 769, 770, 773, 774, 775, 776, 777, 778, + 779, 780, 783, 784, 792, 798, 802, 803, 807, 810, + 811, 814, 824, 825, 828, 829, 832, 838, 844, 845, + 848, 849, 852, 863, 870, 876, 880, 881, 884, 885, + 888, 893, 900, 901, 902, 906, 910, 913, 914, 917, + 918, 922, 923, 927, 928, 929, 933, 935, 936, 940, + 941, 942, 943, 951, 953, 954, 959, 961, 965, 966, + 971, 972, 973, 974, 979, 988, 990, 991, 996, 998, + 1002, 1003, 1010, 1011, 1012, 1013, 1014, 1019, 1027, 1028, + 1031, 1032, 1035, 1042, 1043, 1048, 1049, 1053, 1054, 1055, + 1058, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, + 1070, 1073, 1079, 1081, 1087, 1088 }; #endif @@ -944,13 +945,13 @@ static const yytype_uint16 yyrline[] = static const char *const yytname[] = { "$end", "error", "$undefined", "aIDENTIFIER", "aKNOWNTYPE", "aNUM", - "aHEXNUM", "aDOUBLE", "aSTRING", "aWSTRING", "aUUID", "aEOF", "SHL", - "SHR", "MEMBERPTR", "EQUALITY", "INEQUALITY", "GREATEREQUAL", - "LESSEQUAL", "LOGICALOR", "LOGICALAND", "ELLIPSIS", "tAGGREGATABLE", - "tALLOCATE", "tANNOTATION", "tAPPOBJECT", "tASYNC", "tASYNCUUID", - "tAUTOHANDLE", "tBINDABLE", "tBOOLEAN", "tBROADCAST", "tBYTE", - "tBYTECOUNT", "tCALLAS", "tCALLBACK", "tCASE", "tCDECL", "tCHAR", - "tCOCLASS", "tCODE", "tCOMMSTATUS", "tCONST", "tCONTEXTHANDLE", + "aHEXNUM", "aDOUBLE", "aSTRING", "aWSTRING", "aSQSTRING", "aUUID", + "aEOF", "SHL", "SHR", "MEMBERPTR", "EQUALITY", "INEQUALITY", + "GREATEREQUAL", "LESSEQUAL", "LOGICALOR", "LOGICALAND", "ELLIPSIS", + "tAGGREGATABLE", "tALLOCATE", "tANNOTATION", "tAPPOBJECT", "tASYNC", + "tASYNCUUID", "tAUTOHANDLE", "tBINDABLE", "tBOOLEAN", "tBROADCAST", + "tBYTE", "tBYTECOUNT", "tCALLAS", "tCALLBACK", "tCASE", "tCDECL", + "tCHAR", "tCOCLASS", "tCODE", "tCOMMSTATUS", "tCONST", "tCONTEXTHANDLE", "tCONTEXTHANDLENOSERIALIZE", "tCONTEXTHANDLESERIALIZE", "tCONTROL", "tCPPQUOTE", "tDEFAULT", "tDEFAULTCOLLELEM", "tDEFAULTVALUE", "tDEFAULTVTABLE", "tDISPLAYBIND", "tDISPINTERFACE", "tDLLNAME", @@ -1019,51 +1020,51 @@ static const yytype_uint16 yytoknum[] = 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 44, - 63, 58, 124, 94, 38, 60, 62, 45, 43, 42, - 47, 37, 33, 126, 404, 405, 406, 407, 408, 46, - 91, 93, 59, 40, 41, 123, 125, 61 + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 44, 63, 58, 124, 94, 38, 60, 62, 45, 43, + 42, 47, 37, 33, 126, 405, 406, 407, 408, 409, + 46, 91, 93, 59, 40, 41, 123, 125, 61 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 0, 178, 179, 180, 180, 180, 180, 180, 180, 180, - 180, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 182, 182, 183, 183, 184, 184, 184, 184, 184, 185, - 185, 185, 185, 185, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 193, 194, 194, 195, 195, 196, 196, - 197, 197, 198, 198, 199, 200, 200, 200, 201, 201, - 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 203, 203, 204, 204, 204, 204, 205, - 205, 206, 206, 207, 207, 207, 208, 208, 209, 209, - 210, 211, 211, 212, 212, 213, 213, 213, 213, 213, - 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, - 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, - 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, - 213, 213, 213, 213, 213, 214, 214, 215, 216, 217, - 217, 218, 218, 219, 219, 220, 220, 221, 221, 222, - 223, 224, 224, 225, 225, 226, 226, 226, 227, 227, - 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, - 228, 229, 229, 230, 230, 230, 230, 230, 230, 230, - 230, 231, 231, 232, 233, 234, 234, 235, 236, 236, - 237, 238, 238, 239, 239, 240, 240, 241, 241, 242, - 242, 243, 244, 244, 244, 245, 245, 246, 246, 247, - 248, 249, 249, 249, 250, 251, 252, 252, 253, 253, - 254, 254, 255, 255, 255, 256, 256, 256, 257, 257, - 257, 257, 258, 258, 258, 259, 259, 260, 260, 261, - 261, 261, 261, 261, 262, 262, 262, 263, 263, 264, - 264, 265, 265, 265, 265, 265, 265, 266, 266, 267, - 267, 268, 269, 269, 270, 270, 271, 271, 271, 272, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 274, 275, 275, 276, 276 + 0, 179, 180, 181, 181, 181, 181, 181, 181, 181, + 181, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 183, 183, 184, 184, 185, 185, 185, 185, 185, 186, + 186, 186, 186, 186, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 194, 195, 195, 196, 196, 197, 197, + 198, 198, 199, 199, 200, 201, 201, 201, 202, 202, + 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, + 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, + 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, + 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, + 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, + 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, + 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, + 203, 203, 203, 204, 204, 205, 205, 205, 205, 206, + 206, 207, 207, 208, 208, 208, 209, 209, 210, 210, + 211, 212, 212, 213, 213, 214, 214, 214, 214, 214, + 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, + 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, + 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, + 214, 214, 214, 214, 214, 214, 215, 215, 216, 217, + 218, 218, 219, 219, 220, 220, 221, 221, 222, 222, + 223, 224, 225, 225, 226, 226, 227, 227, 227, 228, + 228, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 230, 230, 231, 231, 231, 231, 231, 231, + 231, 231, 232, 232, 233, 234, 235, 235, 236, 237, + 237, 238, 239, 239, 240, 240, 241, 241, 242, 242, + 243, 243, 244, 245, 245, 245, 246, 246, 247, 247, + 248, 249, 250, 250, 250, 251, 252, 253, 253, 254, + 254, 255, 255, 256, 256, 256, 257, 257, 257, 258, + 258, 258, 258, 259, 259, 259, 260, 260, 261, 261, + 262, 262, 262, 262, 262, 263, 263, 263, 264, 264, + 265, 265, 266, 266, 266, 266, 266, 266, 267, 267, + 268, 268, 269, 270, 270, 271, 271, 272, 272, 272, + 273, 274, 274, 274, 274, 274, 274, 274, 274, 274, + 274, 275, 276, 276, 277, 277 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1085,25 +1086,25 @@ static const yytype_uint8 yyr2[] = 4, 4, 1, 1, 1, 1, 1, 1, 1, 0, 2, 4, 3, 0, 2, 1, 1, 3, 3, 1, 5, 1, 3, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 5, 3, 3, 3, 3, 3, + 1, 1, 1, 1, 1, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 2, 2, 2, 2, 2, 2, 3, - 3, 5, 5, 4, 3, 1, 3, 1, 1, 0, - 2, 4, 3, 2, 2, 0, 2, 2, 1, 3, - 3, 3, 2, 0, 1, 0, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, - 1, 0, 1, 1, 2, 1, 2, 2, 1, 1, - 1, 2, 2, 2, 5, 0, 2, 2, 2, 2, - 2, 2, 3, 2, 3, 5, 5, 0, 2, 2, - 2, 2, 6, 8, 2, 2, 2, 2, 2, 2, - 5, 1, 1, 1, 1, 1, 0, 2, 2, 3, - 0, 1, 2, 2, 2, 3, 2, 1, 1, 3, - 2, 4, 3, 2, 1, 3, 2, 0, 1, 3, - 2, 1, 3, 4, 3, 2, 1, 3, 2, 0, - 1, 1, 3, 2, 1, 3, 4, 1, 3, 0, - 2, 2, 1, 3, 1, 3, 1, 1, 1, 5, - 1, 1, 1, 1, 2, 1, 2, 1, 2, 4, - 4, 5, 10, 1, 3 + 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, + 3, 3, 5, 5, 4, 3, 1, 3, 1, 1, + 0, 2, 4, 3, 2, 2, 0, 2, 2, 1, + 3, 3, 3, 2, 0, 1, 0, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, + 1, 1, 0, 1, 1, 2, 1, 2, 2, 1, + 1, 1, 2, 2, 2, 5, 0, 2, 2, 2, + 2, 2, 2, 3, 2, 3, 5, 5, 0, 2, + 2, 2, 2, 6, 8, 2, 2, 2, 2, 2, + 2, 5, 1, 1, 1, 1, 1, 0, 2, 2, + 3, 0, 1, 2, 2, 2, 3, 2, 1, 1, + 3, 2, 4, 3, 2, 1, 3, 2, 0, 1, + 3, 2, 1, 3, 4, 3, 2, 1, 3, 2, + 0, 1, 1, 3, 2, 1, 3, 4, 1, 3, + 0, 2, 2, 1, 3, 1, 3, 1, 1, 1, + 5, 1, 1, 1, 1, 2, 1, 2, 1, 2, + 4, 4, 5, 10, 1, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -1111,725 +1112,715 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 3, 0, 2, 1, 331, 228, 220, 239, 0, 275, - 0, 0, 227, 215, 229, 271, 226, 230, 231, 0, - 274, 233, 240, 238, 0, 231, 273, 0, 231, 0, - 235, 272, 215, 52, 215, 225, 330, 221, 60, 10, - 0, 24, 11, 27, 11, 9, 0, 333, 0, 332, - 222, 0, 0, 7, 0, 0, 22, 0, 257, 5, - 4, 0, 8, 280, 280, 280, 0, 0, 335, 280, - 0, 337, 241, 242, 0, 248, 249, 334, 217, 0, - 232, 237, 0, 259, 260, 236, 0, 234, 223, 336, - 0, 0, 53, 338, 0, 224, 61, 0, 63, 64, + 3, 0, 2, 1, 332, 229, 221, 240, 0, 276, + 0, 0, 228, 216, 230, 272, 227, 231, 232, 0, + 275, 234, 241, 239, 0, 232, 274, 0, 232, 0, + 236, 273, 216, 52, 216, 226, 331, 222, 60, 10, + 0, 24, 11, 27, 11, 9, 0, 334, 0, 333, + 223, 0, 0, 7, 0, 0, 22, 0, 258, 5, + 4, 0, 8, 281, 281, 281, 0, 0, 336, 281, + 0, 338, 242, 243, 0, 249, 250, 335, 218, 0, + 233, 238, 0, 260, 261, 237, 0, 235, 224, 337, + 0, 0, 53, 339, 0, 225, 61, 0, 63, 64, 65, 66, 67, 0, 0, 70, 71, 72, 73, 74, 75, 0, 77, 78, 0, 80, 0, 0, 83, 84, 0, 0, 0, 0, 0, 90, 0, 92, 0, 94, 0, 96, 97, 100, 0, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 0, 111, 112, 113, 328, 114, - 0, 116, 326, 117, 118, 119, 0, 121, 122, 123, - 0, 0, 0, 327, 0, 128, 129, 0, 0, 0, - 55, 132, 25, 0, 0, 0, 0, 0, 333, 243, - 250, 261, 269, 0, 335, 337, 26, 6, 245, 266, - 0, 23, 264, 265, 0, 0, 20, 284, 281, 283, - 282, 218, 219, 135, 136, 137, 138, 276, 0, 0, - 288, 324, 287, 212, 333, 335, 280, 337, 278, 28, - 0, 143, 36, 0, 199, 0, 0, 205, 0, 0, + 106, 107, 108, 109, 0, 111, 112, 113, 329, 114, + 0, 116, 327, 117, 118, 119, 0, 121, 122, 123, + 0, 0, 0, 328, 0, 128, 129, 0, 0, 0, + 55, 132, 25, 0, 0, 0, 0, 0, 334, 244, + 251, 262, 270, 0, 336, 338, 26, 6, 246, 267, + 0, 23, 265, 266, 0, 0, 20, 285, 282, 284, + 283, 219, 220, 135, 136, 137, 138, 277, 0, 0, + 289, 325, 288, 213, 334, 336, 281, 338, 279, 28, + 0, 143, 36, 0, 200, 0, 0, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 153, 0, 0, 153, 0, 0, 0, 0, 0, 0, 60, 54, 37, 0, 17, 18, - 19, 0, 15, 13, 12, 16, 22, 39, 267, 268, - 40, 211, 52, 0, 52, 0, 0, 258, 20, 0, - 0, 0, 286, 0, 153, 42, 290, 279, 35, 0, - 145, 146, 149, 339, 52, 317, 340, 52, 52, 0, - 0, 163, 155, 156, 157, 161, 162, 158, 159, 0, - 160, 0, 0, 0, 0, 0, 0, 0, 197, 0, - 195, 198, 0, 0, 58, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 151, 154, 0, - 0, 0, 0, 0, 0, 134, 133, 0, 343, 0, - 0, 56, 60, 0, 14, 41, 22, 0, 246, 251, - 0, 0, 0, 52, 0, 0, 0, 22, 21, 0, - 277, 285, 289, 325, 0, 0, 0, 46, 43, 44, - 0, 309, 150, 144, 0, 329, 0, 200, 0, 0, - 341, 53, 206, 0, 62, 68, 0, 187, 186, 185, - 188, 183, 184, 0, 297, 0, 0, 0, 0, 0, + 19, 0, 15, 13, 12, 16, 22, 39, 268, 269, + 40, 212, 52, 0, 52, 0, 0, 259, 20, 0, + 0, 0, 287, 0, 153, 42, 291, 280, 35, 0, + 145, 146, 149, 340, 52, 318, 341, 52, 52, 0, + 0, 164, 155, 156, 157, 161, 162, 163, 158, 159, + 0, 160, 0, 0, 0, 0, 0, 0, 0, 198, + 0, 196, 199, 0, 0, 58, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 151, 154, + 0, 0, 0, 0, 0, 0, 134, 133, 0, 344, + 0, 0, 56, 60, 0, 14, 41, 22, 0, 247, + 252, 0, 0, 0, 52, 0, 0, 0, 22, 21, + 0, 278, 286, 290, 326, 0, 0, 0, 46, 43, + 44, 0, 310, 150, 144, 0, 330, 0, 201, 0, + 0, 342, 53, 207, 0, 62, 68, 0, 188, 187, + 186, 189, 184, 185, 0, 298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 69, 76, - 79, 0, 81, 82, 85, 86, 87, 88, 89, 91, - 93, 0, 99, 153, 98, 110, 0, 120, 124, 125, - 126, 127, 0, 130, 131, 57, 0, 244, 247, 253, - 0, 252, 255, 0, 0, 256, 20, 22, 270, 51, - 50, 291, 0, 309, 276, 42, 314, 309, 311, 310, - 49, 306, 147, 148, 0, 337, 318, 213, 204, 203, - 297, 194, 276, 42, 301, 297, 298, 0, 294, 176, - 177, 189, 170, 171, 174, 175, 165, 166, 0, 167, - 168, 169, 173, 172, 179, 178, 181, 182, 180, 190, - 0, 196, 59, 95, 152, 0, 344, 22, 209, 0, - 254, 0, 262, 47, 45, 48, 309, 276, 0, 309, - 0, 305, 42, 313, 319, 322, 0, 202, 0, 214, - 0, 297, 276, 0, 309, 0, 293, 0, 42, 300, - 0, 193, 115, 38, 210, 22, 304, 309, 315, 308, - 312, 0, 0, 321, 0, 201, 139, 192, 292, 309, - 302, 296, 299, 191, 0, 164, 263, 307, 316, 320, - 323, 0, 295, 303, 0, 0, 342, 140, 0, 52, - 52, 208, 142, 0, 141, 207 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, + 76, 79, 0, 81, 82, 85, 86, 87, 88, 89, + 91, 93, 0, 99, 153, 98, 110, 0, 120, 124, + 125, 126, 127, 0, 130, 131, 57, 0, 245, 248, + 254, 0, 253, 256, 0, 0, 257, 20, 22, 271, + 51, 50, 292, 0, 310, 277, 42, 315, 310, 312, + 311, 49, 307, 147, 148, 0, 338, 319, 214, 205, + 204, 298, 195, 277, 42, 302, 298, 299, 0, 295, + 177, 178, 190, 171, 172, 175, 176, 166, 167, 0, + 168, 169, 170, 174, 173, 180, 179, 182, 183, 181, + 191, 0, 197, 59, 95, 152, 0, 345, 22, 210, + 0, 255, 0, 263, 47, 45, 48, 310, 277, 0, + 310, 0, 306, 42, 314, 320, 323, 0, 203, 0, + 215, 0, 298, 277, 0, 310, 0, 294, 0, 42, + 301, 0, 194, 115, 38, 211, 22, 305, 310, 316, + 309, 313, 0, 0, 322, 0, 202, 139, 193, 293, + 310, 303, 297, 300, 192, 0, 165, 264, 308, 317, + 321, 324, 0, 296, 304, 0, 0, 343, 140, 0, + 52, 52, 209, 142, 0, 141, 208 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 2, 173, 279, 192, 368, 40, 41, 42, - 43, 259, 177, 44, 260, 376, 377, 378, 379, 476, - 361, 92, 169, 325, 170, 347, 477, 591, 597, 289, - 290, 291, 214, 336, 337, 318, 319, 320, 322, 294, - 387, 392, 298, 602, 603, 464, 48, 548, 79, 478, - 49, 81, 50, 261, 52, 262, 272, 358, 54, 55, - 274, 363, 56, 195, 57, 58, 263, 264, 182, 61, + -1, 1, 2, 173, 279, 192, 369, 40, 41, 42, + 43, 259, 177, 44, 260, 377, 378, 379, 380, 477, + 362, 92, 169, 326, 170, 348, 478, 592, 598, 289, + 290, 291, 214, 337, 338, 319, 320, 321, 323, 294, + 388, 393, 298, 603, 604, 465, 48, 549, 79, 479, + 49, 81, 50, 261, 52, 262, 272, 359, 54, 55, + 274, 364, 56, 195, 57, 58, 263, 264, 182, 61, 265, 63, 64, 65, 280, 66, 197, 67, 211, 212, - 496, 555, 497, 498, 479, 540, 480, 481, 296, 573, - 545, 546, 213, 171, 215, 69, 70, 217, 349 + 497, 556, 498, 499, 480, 541, 481, 482, 296, 574, + 546, 547, 213, 171, 215, 69, 70, 217, 350 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -472 +#define YYPACT_NINF -459 static const yytype_int16 yypact[] = { - -472, 38, 1206, -472, -472, -472, -472, -472, 75, -472, - -86, 228, -472, 238, -472, -472, -472, -472, 28, 101, - -472, -472, -472, -472, 265, 28, -472, -23, 28, 408, - -472, -472, 271, -3, 287, 408, -472, -472, 2244, -472, - 25, -472, -472, -472, -472, -472, 1982, 34, 47, -472, - -472, 52, 54, -472, 73, 61, 106, 110, 62, -472, - -472, 97, -472, 31, 31, 31, 114, 2135, 123, 31, - 133, 135, -472, -472, 218, -472, -472, 126, -472, 142, - -472, -472, 146, -472, -472, -472, 2135, -472, -472, 126, - 148, 2060, -472, -99, -89, -472, -472, 151, -472, -472, - -472, -472, -472, 153, 154, -472, -472, -472, -472, -472, - -472, 156, -472, -472, 157, -472, 159, 160, -472, -472, - 161, 162, 163, 165, 167, -472, 169, -472, 173, -472, - 174, -472, -472, 185, 187, -472, -472, -472, -472, -472, - -472, -472, -472, -472, 192, -472, -472, -472, -472, -472, - 194, -472, -472, -472, -472, -472, 201, -472, -472, -472, - 210, 212, 214, -472, 215, -472, -472, 216, 219, -79, - -472, -472, -472, 1111, 425, 334, 290, 224, 230, -472, - -472, -472, -472, 114, 233, 235, -472, -472, -472, -472, - 24, -472, -472, -472, 296, 225, -472, -472, -472, -472, - -472, -472, -472, -472, -472, -472, -472, -472, 114, 114, - -472, 229, -26, -472, -472, -472, 31, -472, -472, -472, - 236, 312, -472, 237, -472, 114, 242, -472, 400, 312, - 967, 967, 401, 409, 967, 967, 410, 411, 967, 413, - 967, 967, 349, 967, 967, -21, 967, 967, 967, 2135, - 2135, 129, 418, 2135, 2244, 254, -472, 260, -472, -472, - -472, 263, -472, -472, -472, -472, 106, -472, -472, -472, - -472, -472, -145, 285, -65, 266, 264, -472, -472, 520, - 64, 268, -472, 967, 974, 1552, -472, -472, -472, 269, - 292, -472, 272, -472, -54, -472, 294, -3, -36, 270, - 274, -472, -472, -472, -472, -472, -472, -472, -472, 277, - -472, 967, 967, 967, 967, 967, 967, 805, 1801, -125, - -472, 1801, 279, 280, -472, -110, 282, 284, 286, 288, - 291, 295, 297, 1557, 448, 300, -109, -472, 1801, 301, - 310, -72, 1615, 302, 303, -472, -472, 305, 299, 307, - 309, -472, 2244, 453, -472, -472, 106, 1, -472, -472, - 335, 2060, 321, -34, 322, 417, 615, 106, -472, 2060, - -472, -472, -472, -472, 895, 329, 330, 354, -472, -472, - 2060, 57, -472, 312, 967, -472, 2060, -472, 114, 333, - -472, 336, -472, 338, -472, -472, 2060, 18, 18, 18, - 18, 18, 18, 1638, 267, 967, 967, 512, 967, 967, - 967, 967, 967, 967, 967, 967, 967, 967, 967, 967, - 967, 967, 967, 967, 967, 513, 967, 967, -472, -472, - -472, 510, -472, -472, -472, -472, -472, -472, -472, -472, - -472, 346, -472, 967, -472, -472, 967, -472, -472, -472, - -472, -472, 516, -472, -472, -472, 348, -472, -472, -472, - 114, -472, -472, 2060, 351, -472, -472, 106, -472, -472, - -472, -472, 1474, 57, -472, 1318, -472, 57, -472, -472, - -472, 41, -472, -472, 57, 353, -472, 312, -472, -472, - 267, -472, -472, 1396, -472, 267, -472, 352, 48, 193, - 193, -472, 221, 221, 152, 152, 1688, 1765, 1742, 1819, - 1838, 1870, 152, 152, 234, 234, 18, 18, 18, -472, - 1720, -472, -472, -472, -472, 358, -472, 106, -472, 114, - -472, 710, -472, -472, -472, -472, 32, -472, 361, 57, - 362, -472, 1552, -472, 376, -472, -45, -472, 363, -472, - 365, 255, -472, 367, 57, 369, -472, 967, 1552, -472, - 967, -472, -472, -472, -472, 106, -472, 32, -472, -472, - -472, 370, 967, -472, 57, -472, -472, -472, -472, 32, - -472, -472, -472, 18, 371, 1801, -472, -472, -472, -472, - -472, 23, -472, -472, 967, 377, -472, -472, 398, 20, - 20, -472, -472, 382, -472, -472 + -459, 58, 1214, -459, -459, -459, -459, -459, 161, -459, + -102, 256, -459, 264, -459, -459, -459, -459, -1, 88, + -459, -459, -459, -459, 289, -1, -459, -67, -1, 484, + -459, -459, 295, -19, 297, 484, -459, -459, 2194, -459, + -16, -459, -459, -459, -459, -459, 2007, 5, 13, -459, + -459, 39, 25, -459, 46, 72, 54, 89, 117, -459, + -459, 98, -459, -14, -14, -14, 287, 992, 103, -14, + 109, 113, -459, -459, 276, -459, -459, 112, -459, 119, + -459, -459, 129, -459, -459, -459, 992, -459, -459, 112, + 128, 2085, -459, -103, -101, -459, -459, 134, -459, -459, + -459, -459, -459, 140, 144, -459, -459, -459, -459, -459, + -459, 146, -459, -459, 149, -459, 153, 154, -459, -459, + 163, 164, 168, 171, 174, -459, 175, -459, 177, -459, + 182, -459, -459, 184, 185, -459, -459, -459, -459, -459, + -459, -459, -459, -459, 186, -459, -459, -459, -459, -459, + 192, -459, -459, -459, -459, -459, 194, -459, -459, -459, + 200, 201, 204, -459, 205, -459, -459, 207, 208, -93, + -459, -459, -459, 1119, 500, 359, 303, 209, 210, -459, + -459, -459, -459, 287, 211, 216, -459, -459, -459, -459, + 33, -459, -459, -459, 307, 212, -459, -459, -459, -459, + -459, -459, -459, -459, -459, -459, -459, -459, 287, 287, + -459, 213, -87, -459, -459, -459, -14, -459, -459, -459, + 218, 309, -459, 220, -459, 287, 223, -459, 391, 309, + 944, 944, 392, 398, 944, 944, 399, 400, 944, 402, + 944, 944, 344, 944, 944, -72, 944, 944, 944, 992, + 992, 111, 410, 992, 2194, 245, -459, 244, -459, -459, + -459, 246, -459, -459, -459, -459, 54, -459, -459, -459, + -459, -459, -50, 268, -32, 248, 247, -459, -459, 595, + 40, 253, -459, 944, 983, 1577, -459, -459, -459, 255, + 272, -459, 252, -459, -18, -459, 284, -19, -8, 260, + 262, -459, -459, -459, -459, -459, -459, -459, -459, -459, + 266, -459, 944, 944, 944, 944, 944, 944, 880, 1826, + -80, -459, 1826, 263, 267, -459, -69, 269, 270, 271, + 273, 274, 280, 281, 1582, 438, 285, -62, -459, 1826, + 291, 293, -24, 1640, 294, 298, -459, -459, 300, 302, + 301, 304, -459, 2194, 443, -459, -459, 54, 7, -459, + -459, 316, 2085, 305, 14, 306, 389, 690, 54, -459, + 2085, -459, -459, -459, -459, 326, 308, 313, 327, -459, + -459, 2085, 90, -459, 309, 944, -459, 2085, -459, 287, + 318, -459, 321, -459, 322, -459, -459, 2085, 11, 11, + 11, 11, 11, 11, 1663, 279, 944, 944, 479, 944, + 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, + 944, 944, 944, 944, 944, 944, 488, 944, 944, -459, + -459, -459, 489, -459, -459, -459, -459, -459, -459, -459, + -459, -459, 324, -459, 944, -459, -459, 944, -459, -459, + -459, -459, -459, 491, -459, -459, -459, 330, -459, -459, + -459, 287, -459, -459, 2085, 328, -459, -459, 54, -459, + -459, -459, -459, 1499, 90, -459, 1326, -459, 90, -459, + -459, -459, 16, -459, -459, 90, 329, -459, 309, -459, + -459, 279, -459, -459, 1404, -459, 279, -459, 331, 31, + 243, 243, -459, 444, 444, 95, 95, 1713, 1790, 1767, + 1844, 1863, 1895, 95, 95, 193, 193, 11, 11, 11, + -459, 1745, -459, -459, -459, -459, 332, -459, 54, -459, + 287, -459, 785, -459, -459, -459, -459, 145, -459, 333, + 90, 334, -459, 1577, -459, 358, -459, -74, -459, 335, + -459, 337, 47, -459, 338, 90, 339, -459, 944, 1577, + -459, 944, -459, -459, -459, -459, 54, -459, 145, -459, + -459, -459, 340, 944, -459, 90, -459, -459, -459, -459, + 145, -459, -459, -459, 11, 341, 1826, -459, -459, -459, + -459, -459, -9, -459, -459, 944, 365, -459, -459, 366, + 51, 51, -459, -459, 347, -459, -459 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -472, -472, -472, 511, -271, -257, 10, -472, -472, -472, - 195, -472, -472, -472, 557, -409, -472, -472, 89, -192, - -6, -2, -472, -472, -244, -472, -63, -472, -472, -472, - -472, 182, 2, 323, -261, -159, -472, -224, -228, -472, - -472, -472, -472, -32, -167, -472, -472, -472, 164, -40, - -472, 200, 100, 51, -472, 567, -472, -472, 527, -472, - -472, -472, -472, -472, -13, -472, 572, -1, -472, -472, - 574, -472, -472, -265, -411, -41, -7, -22, -180, -472, - -472, -472, -439, -472, -471, -472, -456, -472, -472, -472, - 3, -472, 395, 339, 6, -49, -472, 0, -472 + -459, -459, -459, 477, -258, -257, 19, -459, -459, -459, + 156, -459, -459, -459, 522, -429, -459, -459, 52, -202, + -21, -2, -459, -459, -229, -459, -65, -459, -459, -459, + -459, 142, 2, 282, -260, -181, -459, -224, -227, -459, + -459, -459, -459, -73, -206, -459, -459, -459, 215, -63, + -459, 188, 121, 28, -459, 525, -459, -459, 490, -459, + -459, -459, -459, -459, -23, -459, 533, 3, -459, -459, + 535, -459, -459, -265, -413, -40, -10, -27, -191, -459, + -459, -459, -414, -459, -458, -459, -439, -459, -459, -459, + -33, -459, 361, 310, 6, -54, -459, 0, -459 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -217 +#define YYTABLE_NINF -218 static const yytype_int16 yytable[] = { - 46, 60, 71, 209, 47, 183, 326, 366, 68, 355, - 351, 327, 39, 544, 330, 370, 332, 535, 216, 335, - 286, 541, 340, 375, 427, 38, 210, 91, 281, 282, - 360, 356, 407, 181, -216, 201, 202, 223, 3, 431, - 443, 198, 198, 198, 226, 295, 185, 198, 178, 428, - 225, 550, 184, 51, 11, 373, 556, 199, 200, 594, - 201, 202, 218, 536, 432, 444, 538, 201, 202, 203, - 254, 595, 321, 9, 9, 321, -216, 443, 72, 73, - 566, 551, 333, 569, 553, 338, 227, 74, 338, 342, - 24, 148, 255, 15, 203, 152, 204, 179, 581, 457, - 371, 203, 447, 544, 574, 38, 9, 362, 455, 82, - 468, 587, 578, 24, 80, 20, 38, 201, 202, 163, - 209, 204, 385, 592, 321, 338, 567, 575, 204, 88, - 389, 393, 273, 571, 38, 95, 38, 345, 205, 346, - 390, 579, 462, 210, 284, 209, 209, 285, 26, 584, - 86, 203, 397, 398, 399, 400, 401, 402, 403, 31, - 483, 206, 209, 205, 405, 406, 407, 38, 210, 210, - 205, 46, 46, 71, 71, 47, 47, 275, 204, 68, - 68, 292, 524, 258, 258, 210, 206, 425, 426, 300, - 38, 474, 601, 206, 198, 531, 90, 172, 94, 596, - 343, 344, 284, 521, 350, 475, -29, 407, 486, 287, - 532, 284, 494, 194, 542, 400, 474, 209, 284, 186, - 205, 558, 525, 207, 187, 85, 220, 284, 87, 188, - 475, 75, 76, 405, 406, 407, 190, 208, 410, 411, - 210, 77, 78, 206, 381, 189, 499, 500, 407, 502, - 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 513, 514, 515, 516, 517, 518, 357, 520, 83, 84, - 563, 370, 196, 207, 89, 78, 404, 369, 191, 71, - 528, 47, 193, 380, 338, 68, 370, 208, 386, 543, - 93, 78, 203, 268, 269, -30, 391, 9, 494, 276, - 277, -216, 370, 494, 203, 219, 559, -31, 586, 420, - 421, 422, 423, 424, 370, 201, 202, 221, 222, 204, - 460, 425, 426, 224, 228, 209, 229, 230, 183, 231, - 232, 204, 233, 234, 235, 236, 237, 267, 238, 473, - 239, 495, 240, 292, 589, 484, 241, 242, 210, 564, - 420, 421, 422, 423, 424, 490, 458, 463, 243, 494, - 244, 205, 425, 426, 369, 245, 71, 246, 47, 185, - 598, 178, 68, 205, 247, 184, 418, 419, 420, 421, - 422, 423, 424, 248, 206, 249, 485, 250, 251, 252, - 425, 426, 253, 422, 423, 424, 206, 209, 583, 270, - 278, 585, -32, 425, 426, -33, 283, -34, 299, 323, - 288, 293, 539, 321, 492, 297, 334, 324, 328, 329, - 210, 331, 529, 348, 352, 284, 492, 495, 493, 4, - 554, 381, 495, 353, 381, 354, 359, 284, 364, 365, - 493, 383, 372, 388, 394, 382, 7, 549, 395, 384, - 396, 441, 381, 429, 430, 5, 433, 6, 434, 446, - 435, 456, 436, 7, 8, 437, 209, 9, 452, 438, - 380, 439, 10, 380, 442, 445, 449, 450, 11, 451, - 12, 453, 18, 454, 13, 14, 459, 15, 495, 210, - 16, 380, 17, 461, 21, 22, 23, 19, 465, 18, - 470, 381, 25, 472, 471, 19, 257, 487, 488, 20, - 489, 21, 22, 23, 24, 501, 519, 381, 522, 25, - 523, 526, 527, 530, 4, 547, 557, 572, 599, 369, - 28, 71, 562, 47, 30, 568, 570, 68, 576, 577, - 380, 580, 26, 582, 588, 593, 27, 28, 29, 600, - 5, 30, 6, 31, 605, 174, 380, 32, 7, 45, - 466, 534, 9, 33, 34, 482, 35, 10, 604, 53, - 341, 36, 37, 180, 59, 12, 62, 590, 271, 13, - 14, 0, 15, 0, 339, 16, 0, 17, 0, 0, - 0, 0, 0, 0, 18, 38, 0, 0, 0, 0, - 19, 266, 0, 0, 20, 0, 21, 22, 23, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 4, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, - 0, 27, 28, 29, 0, 5, 30, 6, 31, 0, - 0, 0, 32, 7, 0, 0, 0, 9, 33, 34, - 0, 35, 10, 0, 0, 0, 36, 37, 0, 0, - 12, 0, 0, 0, 13, 14, 0, 15, 0, 0, - 16, 0, 17, 0, 0, 0, 0, 0, 0, 18, - 38, 0, 0, 0, 0, 19, 367, 0, 0, 20, - 0, 21, 22, 23, 0, 0, 0, 0, 0, 25, - 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 26, 0, 0, 0, 27, 28, 29, 0, - 5, 30, 6, 31, 0, 0, 0, 32, 7, 0, - 0, 0, 9, 33, 34, 0, 35, 10, 0, 0, - 0, 36, 37, 0, 0, 12, 0, 0, 0, 13, - 14, 0, 15, 0, 0, 16, 0, 17, 0, 0, - 0, 0, 0, 0, 18, 38, 0, 0, 0, 0, - 19, 467, 0, 0, 20, 0, 21, 22, 23, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 301, 4, - 302, 303, 304, 305, 306, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, - 0, 27, 28, 29, 0, 5, 30, 6, 31, 0, - 0, 0, 32, 7, 0, 0, 0, 9, 33, 34, - 0, 35, 0, 0, 0, 0, 36, 37, 0, 0, - 12, 0, 0, 0, 13, 14, 0, 15, 307, 0, - 16, 0, 17, 0, 0, 0, 0, 0, 0, 18, - 38, 0, 0, 0, 0, 0, 565, 0, 0, 20, - 0, 21, 22, 23, 0, 0, 0, 0, 301, 25, - 302, 303, 304, 305, 306, 308, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 26, 0, 0, 0, 27, 28, 29, 0, - 309, 30, 0, 31, 0, 0, 0, 32, 0, 0, - 0, 0, 310, 0, 34, 0, 35, 0, 0, 0, - 0, 36, 37, 0, 0, 0, 0, 0, 307, 311, - 0, 0, 312, 313, 314, 0, 0, 315, 316, 0, - 301, 0, 302, 303, 304, 305, 306, 301, 317, 302, - 303, 304, 305, 306, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 308, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 307, 0, 310, 0, 0, 0, 0, 307, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, - 0, 0, 312, 313, 314, 0, 0, 315, 316, 0, - 0, 0, 0, 0, 0, 0, 469, 308, 317, 0, - 0, 0, 0, 0, 308, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 309, 0, 0, 0, 0, 0, 0, 309, - 0, 0, 0, 0, 310, 0, 0, 0, 0, 0, - 0, 310, 0, 0, 0, 4, 0, 0, 0, 0, - 0, 311, 256, 0, 312, 313, 314, 0, 311, 315, - 316, 312, 313, 374, 0, 0, 315, 316, 0, 0, - 317, 5, 0, 6, 0, 0, 0, 317, 0, 7, - 8, 0, 0, 9, 0, 0, 0, 0, 10, 0, - 0, 0, 0, 0, 11, 0, 12, 0, 0, 0, + 46, 209, 71, 210, 47, 60, 183, 327, 68, 356, + 286, 328, 91, 216, 331, 371, 333, 281, 282, 336, + 367, 39, 341, 181, 376, 352, 408, 545, 595, 9, + 51, -217, 223, 226, 295, 536, 198, 198, 198, 542, + 596, 148, 198, 201, 202, 152, 185, 539, 178, 15, + 322, 225, 184, 322, 199, 200, 374, 254, 3, 218, + 334, 11, 537, 339, 361, 554, 339, 343, 363, 163, + 428, 20, 74, -217, 179, 227, 575, 551, 203, 255, + 552, 432, 557, 9, 284, 203, 80, 285, 444, 372, + 9, 390, 394, 201, 202, 429, 82, 24, 567, 576, + 458, 570, 322, 339, 26, 204, 433, 86, 406, 407, + 408, 469, 204, 445, 572, 31, 582, 545, 209, 346, + 210, 38, 347, 24, 456, 568, 444, 357, 203, 588, + 585, 398, 399, 400, 401, 402, 403, 404, 579, 38, + 580, 593, 273, 209, 209, 210, 210, 205, 201, 202, + 88, 448, 38, 38, 205, 204, 95, 172, 292, 386, + 209, 484, 210, 38, 72, 73, 300, 275, 597, 391, + 206, 46, 46, 71, 71, 47, 47, 206, -29, 68, + 68, 426, 427, 203, 525, 38, 186, 284, 9, 198, + 543, 463, 258, 258, 401, 344, 345, 205, 487, 351, + 207, 188, 284, 495, 522, 559, 287, 493, 408, 532, + 204, 533, 187, 85, 208, 209, 87, 210, 284, 189, + 206, 494, 38, 526, 602, 500, 501, 191, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 382, 521, 90, 190, 94, + 475, 358, 205, 421, 422, 423, 424, 425, 408, 75, + 76, 284, 193, 339, 476, 426, 427, 77, 78, 194, + 529, 564, 371, 387, 196, 206, -30, 370, 405, 71, + 544, 47, 219, 381, 220, 68, -31, 371, -217, 495, + 201, 202, 83, 84, 495, 221, 392, 560, 89, 78, + 93, 78, 222, 371, 224, 475, 268, 269, 228, 587, + 276, 277, 201, 202, 229, 371, 284, 203, 230, 476, + 231, 292, 461, 232, 209, 203, 210, 233, 234, 301, + 183, 302, 303, 304, 305, 306, 307, 235, 236, 565, + 496, 474, 237, 464, 204, 238, 590, 485, 239, 240, + 495, 241, 204, 423, 424, 425, 242, 491, 243, 244, + 245, 459, 267, 426, 427, 370, 246, 71, 247, 47, + 185, 599, 178, 68, 248, 249, 184, 584, 250, 251, + 586, 252, 253, -32, -33, 270, 205, 486, 278, -34, + 308, 283, 322, 288, 205, 293, 209, 297, 210, 299, + 324, 421, 422, 423, 424, 425, 325, 329, 330, 206, + 332, 540, 335, 426, 427, 349, 353, 206, 354, 355, + 360, 365, 384, 366, 530, 550, 496, 309, 373, 555, + 385, 496, 383, 382, 389, 395, 382, 396, 430, 493, + 397, 442, 431, 447, 434, 435, 436, 207, 437, 438, + 284, 457, 310, 494, 382, 439, 440, 406, 407, 408, + 443, 208, 411, 412, 311, 209, 446, 210, 460, 450, + 19, 381, 453, 451, 381, 452, 454, 473, 462, 455, + 471, 312, 502, 466, 313, 314, 315, 496, 472, 316, + 317, 520, 381, 488, 489, 490, 527, 523, 470, 524, + 318, 531, 548, 382, 4, 528, 558, 563, 569, 571, + 573, 577, 578, 581, 583, 589, 594, 600, 601, 382, + 606, 174, 467, 7, 45, 535, 483, 53, 605, 342, + 370, 5, 71, 6, 47, 59, 180, 62, 68, 7, + 8, 381, 591, 9, 271, 0, 0, 0, 10, 0, + 0, 0, 0, 0, 11, 340, 12, 381, 0, 18, 13, 14, 0, 15, 0, 0, 16, 0, 17, 0, - 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, + 0, 21, 22, 23, 0, 18, 0, 0, 0, 25, 0, 19, 257, 0, 0, 20, 0, 21, 22, 23, - 24, 0, 0, 0, 0, 25, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, + 24, 0, 0, 0, 0, 25, 0, 0, 0, 4, + 419, 420, 421, 422, 423, 424, 425, 28, 0, 0, + 0, 30, 0, 0, 426, 427, 0, 0, 26, 0, 0, 0, 27, 28, 29, 0, 5, 30, 6, 31, - 0, 0, 0, 32, 7, 8, 0, 0, 9, 33, - 34, 0, 35, 10, 0, 0, 0, 36, 37, 11, + 0, 0, 0, 32, 7, 0, 0, 0, 9, 33, + 34, 0, 35, 10, 0, 0, 0, 36, 37, 0, 0, 12, 0, 0, 0, 13, 14, 0, 15, 0, 0, 16, 0, 17, 0, 0, 0, 0, 0, 0, - 18, 38, 0, 0, 0, 0, 19, 0, 0, 0, - 20, 0, 21, 22, 23, 24, 0, 0, 0, 0, + 18, 38, 0, 0, 0, 0, 19, 266, 0, 0, + 20, 0, 21, 22, 23, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 26, 0, 0, 0, 27, 28, 29, + 0, 5, 30, 6, 31, 0, 0, 0, 32, 7, + 0, 0, 0, 9, 33, 34, 0, 35, 10, 0, + 0, 0, 36, 37, 0, 0, 12, 0, 0, 0, + 13, 14, 0, 15, 0, 0, 16, 0, 17, 0, + 0, 0, 0, 0, 0, 18, 38, 0, 0, 0, + 0, 19, 368, 0, 0, 20, 0, 21, 22, 23, + 0, 0, 0, 0, 0, 25, 0, 0, 0, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, + 0, 0, 27, 28, 29, 0, 5, 30, 6, 31, + 0, 0, 0, 32, 7, 0, 0, 0, 9, 33, + 34, 0, 35, 10, 0, 0, 0, 36, 37, 0, + 0, 12, 0, 0, 0, 13, 14, 0, 15, 0, + 0, 16, 0, 17, 0, 0, 0, 0, 0, 0, + 18, 38, 0, 0, 0, 0, 19, 468, 0, 0, + 20, 0, 21, 22, 23, 0, 0, 0, 0, 0, + 25, 0, 0, 301, 4, 302, 303, 304, 305, 306, + 307, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 26, 0, 0, 0, 27, 28, 29, + 0, 5, 30, 6, 31, 0, 0, 0, 32, 7, + 0, 0, 0, 9, 33, 34, 0, 35, 0, 0, + 0, 0, 36, 37, 0, 0, 12, 0, 0, 0, + 13, 14, 0, 15, 308, 0, 16, 301, 17, 302, + 303, 304, 305, 306, 307, 18, 38, 0, 0, 0, + 0, 0, 566, 0, 0, 20, 0, 21, 22, 23, + 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, + 0, 309, 0, 0, 0, 0, 301, 0, 302, 303, + 304, 305, 306, 307, 0, 0, 4, 0, 26, 0, + 0, 0, 27, 28, 29, 0, 310, 30, 308, 31, + 0, 0, 0, 32, 0, 0, 0, 0, 311, 0, + 34, 0, 35, 5, 0, 6, 0, 36, 37, 0, + 0, 7, 0, 0, 0, 312, 0, 0, 313, 314, + 315, 0, 0, 316, 317, 309, 0, 308, 12, 0, + 0, 0, 13, 14, 318, 0, 0, 0, 16, 0, + 17, 0, 0, 0, 0, 0, 0, 18, 0, 0, + 310, 0, 0, 0, 0, 0, 0, 0, 0, 21, + 22, 23, 311, 0, 309, 0, 0, 25, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, + 0, 0, 313, 314, 315, 0, 0, 316, 317, 310, + 0, 0, 0, 0, 27, 28, 29, 0, 318, 30, + 0, 311, 0, 4, 0, 32, 0, 0, 0, 0, + 0, 256, 34, 0, 35, 0, 0, 0, 312, 36, + 37, 313, 314, 375, 0, 0, 316, 317, 0, 0, + 5, 0, 6, 0, 0, 0, 0, 318, 7, 8, + 0, 0, 9, 0, 0, 0, 0, 10, 0, 0, + 0, 0, 0, 11, 0, 12, 0, 0, 0, 13, + 14, 0, 15, 0, 0, 16, 0, 17, 0, 0, + 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, + 19, 257, 0, 0, 20, 0, 21, 22, 23, 24, + 0, 0, 0, 0, 25, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, + 0, 27, 28, 29, 0, 5, 30, 6, 31, 0, + 0, 0, 32, 7, 8, 0, 0, 9, 33, 34, + 0, 35, 10, 0, 0, 0, 36, 37, 11, 0, + 12, 0, 0, 0, 13, 14, 0, 15, 0, 0, + 16, 0, 17, 0, 0, 0, 0, 0, 0, 18, + 38, 0, 0, 0, 0, 19, 0, 0, 0, 20, + 0, 21, 22, 23, 24, 0, 0, 0, 0, 25, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 26, 0, 0, 0, 27, 28, 29, 0, + 0, 30, 0, 31, 0, 0, 0, 32, 0, 0, + 0, 0, 0, 33, 34, 0, 35, 5, 0, 6, + 0, 36, 37, 0, 203, 7, 0, 0, 0, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 12, 0, 0, 38, 13, 14, 0, 15, + 0, 204, 16, 0, 17, 0, 0, 0, 0, 0, + 0, 18, 0, 0, 0, 0, 0, 0, 4, 0, + 0, 20, 0, 21, 22, 23, 0, 0, 0, 0, + 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 205, 0, 5, 0, 6, 0, 0, + 0, 0, 203, 7, 26, 0, 0, 9, 27, 28, + 29, 0, 0, 30, 0, 31, 206, 0, 0, 32, + 12, 0, 0, 0, 13, 14, 34, 15, 35, 204, + 16, 0, 17, 36, 37, 0, 0, 0, 0, 18, + 0, 0, 0, 0, 0, 0, 538, 0, 0, 20, + 0, 21, 22, 23, 0, 0, 0, 38, 0, 25, + 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, + 0, 205, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 534, 26, 0, 0, 0, 27, 28, 29, 0, + 5, 30, 6, 31, 206, 0, 0, 32, 7, 0, + 0, 0, 9, 0, 34, 0, 35, 0, 0, 0, + 0, 36, 37, 0, 0, 12, 0, 0, 0, 13, + 14, 0, 15, 0, 553, 16, 0, 17, 0, 0, + 0, 0, 0, 0, 18, 38, 0, 0, 0, 0, + 0, 4, 0, 0, 20, 0, 21, 22, 23, 0, + 0, 0, 0, 0, 25, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 0, 0, 0, 0, 5, 0, + 6, 0, 0, 0, 0, 0, 7, 26, 0, 0, + 9, 27, 28, 29, 0, 0, 30, 0, 31, 0, + 0, 0, 32, 12, 0, 0, 0, 13, 14, 34, + 15, 35, 0, 16, 0, 17, 36, 37, 0, 0, + 0, 0, 18, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 20, 0, 21, 22, 23, 0, 0, 0, + 38, 0, 25, 0, 0, 0, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 26, 0, 0, 0, 27, + 28, 29, 0, 0, 30, 0, 31, 0, 0, 0, + 32, 0, 0, 0, 0, 0, 0, 34, 0, 35, + 0, 0, 0, 0, 36, 37, 406, 407, 408, 409, + 410, 411, 412, 415, 414, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 0, 0, 0, 38, 0, + 0, 0, 426, 427, 0, 0, 0, 441, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, + 0, 415, 0, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 406, 407, 408, 409, 410, 411, 412, + 426, 427, 0, 0, 415, 449, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 0, 0, 0, 0, + 0, 0, 0, 426, 427, 0, 0, 0, 492, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 406, 407, 408, + 409, 410, 411, 412, 0, 0, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 406, 407, 408, 409, + 410, 411, 412, 426, 427, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 415, 0, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 406, 407, + 408, 409, 410, 411, 412, 426, 427, 562, 415, 561, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 0, 0, 0, 0, 0, 0, 0, 426, 427, 0, + 0, 0, 0, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 0, 0, 0, 0, 0, 0, 0, + 426, 427, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 415, 0, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 0, + 0, 0, 0, 0, 0, 0, 426, 427, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 0, 0, 0, + 0, 4, 0, 0, 426, 427, 0, 0, 418, 419, + 420, 421, 422, 423, 424, 425, 0, 0, 0, 0, + 0, 0, 0, 426, 427, 0, 0, 0, 5, 0, + 6, 0, 0, 0, 0, 0, 7, 8, 0, 0, + 9, 419, 420, 421, 422, 423, 424, 425, 0, 0, + 0, 11, 0, 12, 0, 426, 427, 13, 14, 0, + 15, 0, 0, 16, 0, 17, 0, 0, 0, 0, + 0, 0, 18, 0, 0, 0, 0, 0, 0, 4, + 0, 0, 20, 0, 21, 22, 23, 24, 0, 0, + 175, 0, 25, 0, 176, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 5, 0, 6, 0, + 0, 0, 0, 0, 7, 26, 0, 0, 9, 27, + 28, 29, 0, 0, 30, 0, 31, 0, 0, 0, + 32, 12, 0, 0, 0, 13, 14, 34, 15, 35, + 0, 16, 0, 17, 36, 37, 0, 0, 0, 0, + 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 0, 21, 22, 23, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 26, 0, 0, 0, 27, 28, 29, - 0, 0, 30, 0, 31, 0, 0, 0, 32, 0, - 0, 0, 0, 0, 33, 34, 0, 35, 5, 0, - 6, 0, 36, 37, 0, 203, 7, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 12, 0, 0, 38, 13, 14, 0, - 15, 0, 204, 16, 0, 17, 0, 0, 0, 0, - 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 20, 0, 21, 22, 23, 0, 0, 0, - 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 205, 0, 5, 0, 6, 0, - 0, 0, 0, 203, 7, 26, 0, 0, 9, 27, - 28, 29, 0, 0, 30, 0, 31, 206, 0, 0, - 32, 12, 0, 0, 0, 13, 14, 34, 15, 35, - 204, 16, 0, 17, 36, 37, 0, 0, 0, 0, - 18, 0, 0, 0, 0, 0, 0, 537, 4, 0, - 20, 0, 21, 22, 23, 0, 0, 0, 38, 0, - 25, 0, 0, 0, 0, 533, 0, 0, 0, 0, - 0, 0, 205, 0, 5, 0, 6, 0, 0, 0, - 0, 0, 7, 26, 0, 0, 9, 27, 28, 29, - 0, 0, 30, 0, 31, 206, 0, 0, 32, 12, - 0, 0, 0, 13, 14, 34, 15, 35, 0, 16, - 0, 17, 36, 37, 0, 0, 0, 0, 18, 0, - 0, 0, 0, 0, 0, 552, 4, 0, 20, 0, - 21, 22, 23, 0, 0, 0, 38, 0, 25, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 0, 0, - 0, 0, 5, 0, 6, 0, 0, 0, 0, 0, - 7, 26, 0, 0, 9, 27, 28, 29, 0, 0, - 30, 0, 31, 0, 0, 0, 32, 12, 0, 0, - 0, 13, 14, 34, 15, 35, 0, 16, 0, 17, - 36, 37, 0, 0, 0, 0, 18, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 20, 0, 21, 22, - 23, 0, 0, 0, 38, 0, 25, 0, 0, 0, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, - 0, 0, 0, 27, 28, 29, 0, 0, 30, 0, - 31, 0, 0, 0, 32, 0, 0, 0, 0, 0, - 0, 34, 0, 35, 0, 0, 0, 0, 36, 37, - 405, 406, 407, 408, 409, 410, 411, 414, 413, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 0, - 0, 0, 38, 0, 0, 0, 425, 426, 0, 0, - 0, 440, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 0, 0, 414, 0, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, 405, 406, 407, - 408, 409, 410, 411, 425, 426, 0, 0, 414, 448, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 0, 0, 0, 0, 0, 0, 0, 425, 426, 0, - 0, 0, 491, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 405, 406, 407, 408, 409, 410, 411, 0, 0, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 405, 406, 407, 408, 409, 410, 411, 425, 426, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 405, 406, 407, 408, 409, 410, 411, 425, - 426, 561, 414, 560, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 0, 0, 0, 0, 0, 0, - 0, 425, 426, 0, 0, 0, 0, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, 0, 0, 0, - 0, 0, 0, 0, 425, 426, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 414, 0, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 0, 0, 0, 0, 0, 0, 0, - 425, 426, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 0, 0, 0, 0, 0, 4, 0, 425, 426, - 0, 0, 417, 418, 419, 420, 421, 422, 423, 424, - 0, 0, 0, 0, 0, 0, 0, 425, 426, 0, - 0, 0, 5, 0, 6, 0, 0, 0, 0, 0, - 7, 8, 0, 0, 9, 418, 419, 420, 421, 422, - 423, 424, 0, 0, 0, 11, 0, 12, 0, 425, - 426, 13, 14, 0, 15, 0, 0, 16, 0, 17, - 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, - 0, 0, 0, 0, 4, 0, 20, 0, 21, 22, - 23, 24, 0, 0, 175, 0, 25, 0, 176, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5, 0, 6, 0, 0, 0, 0, 0, 7, 26, - 0, 0, 9, 27, 28, 29, 0, 0, 30, 0, - 31, 0, 0, 0, 32, 12, 0, 0, 0, 13, - 14, 34, 15, 35, 0, 16, 0, 17, 36, 37, - 0, 0, 0, 0, 18, 0, 0, 0, 0, 4, - 0, 0, 0, 0, 20, 0, 21, 22, 23, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 5, 0, 6, 0, 0, - 0, 0, 0, 7, 0, 0, 0, 26, 0, 0, - 0, 27, 28, 29, 0, 0, 30, 0, 31, 0, - 12, 0, 32, 0, 13, 14, 0, 0, 0, 34, - 16, 35, 17, 0, 0, 0, 36, 37, 0, 18, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 21, 22, 23, 0, 0, 0, 0, 0, 25, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 27, 28, 29, 0, - 0, 30, 0, 0, 0, 0, 96, 32, 97, 98, - 99, 0, 100, 101, 34, 102, 35, 0, 103, 0, - 104, 36, 37, 0, 0, 0, 0, 105, 106, 107, - 108, 0, 109, 110, 111, 112, 113, 0, 114, 0, - 115, 116, 117, 0, 0, 118, 0, 0, 0, 0, - 119, 0, 120, 121, 122, 123, 124, 125, 0, 126, - 127, 128, 129, 130, 0, 0, 131, 0, 0, 132, - 0, 0, 0, 0, 133, 134, 0, 135, 0, 0, - 0, 136, 137, 138, 0, 139, 140, 141, 142, 143, - 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, - 152, 0, 153, 154, 155, 0, 0, 0, 156, 0, - 0, 157, 0, 0, 158, 159, 0, 0, 160, 161, - 162, 0, 0, 0, 163, 0, 164, 165, 166, 167, - 0, 0, 168 + 0, 0, 0, 26, 0, 0, 0, 27, 28, 29, + 0, 0, 30, 0, 31, 0, 0, 96, 32, 97, + 98, 99, 0, 100, 101, 34, 102, 35, 0, 103, + 0, 104, 36, 37, 0, 0, 0, 0, 105, 106, + 107, 108, 0, 109, 110, 111, 112, 113, 0, 114, + 0, 115, 116, 117, 0, 0, 118, 0, 0, 0, + 0, 119, 0, 120, 121, 122, 123, 124, 125, 0, + 126, 127, 128, 129, 130, 0, 0, 131, 0, 0, + 132, 0, 0, 0, 0, 133, 134, 0, 135, 0, + 0, 0, 136, 137, 138, 0, 139, 140, 141, 142, + 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, + 151, 152, 0, 153, 154, 155, 0, 0, 0, 156, + 0, 0, 157, 0, 0, 158, 159, 0, 0, 160, + 161, 162, 0, 0, 0, 163, 0, 164, 165, 166, + 167, 0, 0, 168 }; static const yytype_int16 yycheck[] = { - 2, 2, 2, 66, 2, 46, 234, 278, 2, 266, - 254, 235, 2, 484, 238, 280, 240, 473, 67, 243, - 212, 477, 246, 284, 149, 170, 66, 33, 208, 209, - 95, 176, 14, 46, 133, 3, 4, 86, 0, 149, - 149, 63, 64, 65, 133, 225, 46, 69, 46, 174, - 91, 490, 46, 2, 53, 283, 495, 64, 65, 36, - 3, 4, 69, 474, 174, 174, 475, 3, 4, 37, - 149, 48, 231, 42, 42, 234, 175, 149, 3, 4, - 536, 492, 241, 539, 493, 244, 175, 173, 247, 248, - 89, 112, 171, 62, 37, 116, 64, 46, 554, 356, - 280, 37, 174, 574, 149, 170, 42, 274, 352, 8, - 367, 567, 551, 89, 86, 84, 170, 3, 4, 140, - 183, 64, 176, 579, 283, 284, 537, 172, 64, 29, - 297, 298, 108, 542, 170, 35, 170, 8, 106, 10, - 176, 552, 176, 183, 170, 208, 209, 173, 117, 558, - 173, 37, 311, 312, 313, 314, 315, 316, 317, 128, - 384, 129, 225, 106, 12, 13, 14, 170, 208, 209, - 106, 173, 174, 173, 174, 173, 174, 190, 64, 173, - 174, 221, 443, 173, 174, 225, 129, 169, 170, 229, - 170, 159, 172, 129, 216, 466, 32, 172, 34, 176, - 249, 250, 170, 427, 253, 173, 172, 14, 388, 216, - 467, 170, 404, 151, 173, 374, 159, 280, 170, 172, - 106, 173, 446, 159, 172, 25, 8, 170, 28, 175, - 173, 3, 4, 12, 13, 14, 175, 173, 17, 18, - 280, 3, 4, 129, 285, 172, 405, 406, 14, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 272, 426, 3, 4, - 527, 536, 175, 159, 3, 4, 317, 279, 172, 279, - 460, 279, 172, 285, 443, 279, 551, 173, 294, 481, - 3, 4, 37, 3, 4, 172, 298, 42, 490, 3, - 4, 175, 567, 495, 37, 172, 498, 172, 565, 157, - 158, 159, 160, 161, 579, 3, 4, 175, 172, 64, - 361, 169, 170, 175, 173, 388, 173, 173, 369, 173, - 173, 64, 173, 173, 173, 173, 173, 3, 173, 380, - 173, 404, 173, 383, 572, 386, 173, 173, 388, 529, - 157, 158, 159, 160, 161, 396, 357, 363, 173, 551, - 173, 106, 169, 170, 366, 173, 366, 173, 366, 369, - 594, 369, 366, 106, 173, 369, 155, 156, 157, 158, - 159, 160, 161, 173, 129, 173, 386, 173, 173, 173, - 169, 170, 173, 159, 160, 161, 129, 460, 557, 175, - 175, 560, 172, 169, 170, 172, 177, 172, 8, 8, - 174, 174, 475, 572, 159, 173, 67, 8, 8, 8, - 460, 8, 463, 5, 170, 170, 159, 490, 173, 4, - 493, 472, 495, 173, 475, 172, 151, 170, 172, 175, - 173, 149, 174, 149, 174, 176, 38, 487, 174, 177, - 173, 3, 493, 174, 174, 30, 174, 32, 174, 149, - 174, 8, 174, 38, 39, 174, 529, 42, 169, 174, - 472, 174, 47, 475, 174, 174, 174, 174, 53, 174, - 55, 174, 74, 174, 59, 60, 151, 62, 551, 529, - 65, 493, 67, 172, 86, 87, 88, 80, 176, 74, - 171, 542, 94, 149, 174, 80, 81, 174, 172, 84, - 172, 86, 87, 88, 89, 3, 3, 558, 8, 94, - 174, 5, 174, 172, 4, 172, 174, 151, 151, 531, - 122, 531, 174, 531, 126, 174, 174, 531, 175, 174, - 542, 174, 117, 174, 174, 174, 121, 122, 123, 151, - 30, 126, 32, 128, 172, 44, 558, 132, 38, 2, - 365, 472, 42, 138, 139, 383, 141, 47, 600, 2, - 247, 146, 147, 46, 2, 55, 2, 574, 183, 59, - 60, -1, 62, -1, 245, 65, -1, 67, -1, -1, - -1, -1, -1, -1, 74, 170, -1, -1, -1, -1, - 80, 176, -1, -1, 84, -1, 86, 87, 88, -1, - -1, -1, -1, -1, 94, -1, -1, -1, -1, 4, + 2, 66, 2, 66, 2, 2, 46, 234, 2, 266, + 212, 235, 33, 67, 238, 280, 240, 208, 209, 243, + 278, 2, 246, 46, 284, 254, 15, 485, 37, 43, + 2, 134, 86, 134, 225, 474, 63, 64, 65, 478, + 49, 113, 69, 3, 4, 117, 46, 476, 46, 63, + 231, 91, 46, 234, 64, 65, 283, 150, 0, 69, + 241, 54, 475, 244, 96, 494, 247, 248, 274, 141, + 150, 85, 174, 176, 46, 176, 150, 491, 38, 172, + 493, 150, 496, 43, 171, 38, 87, 174, 150, 280, + 43, 297, 298, 3, 4, 175, 8, 90, 537, 173, + 357, 540, 283, 284, 118, 65, 175, 174, 13, 14, + 15, 368, 65, 175, 543, 129, 555, 575, 183, 8, + 183, 171, 11, 90, 353, 538, 150, 177, 38, 568, + 559, 312, 313, 314, 315, 316, 317, 318, 552, 171, + 553, 580, 109, 208, 209, 208, 209, 107, 3, 4, + 29, 175, 171, 171, 107, 65, 35, 173, 221, 177, + 225, 385, 225, 171, 3, 4, 229, 190, 177, 177, + 130, 173, 174, 173, 174, 173, 174, 130, 173, 173, + 174, 170, 171, 38, 444, 171, 173, 171, 43, 216, + 174, 177, 173, 174, 375, 249, 250, 107, 389, 253, + 160, 176, 171, 405, 428, 174, 216, 160, 15, 467, + 65, 468, 173, 25, 174, 280, 28, 280, 171, 173, + 130, 174, 171, 447, 173, 406, 407, 173, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 285, 427, 32, 176, 34, + 160, 272, 107, 158, 159, 160, 161, 162, 15, 3, + 4, 171, 173, 444, 174, 170, 171, 3, 4, 152, + 461, 528, 537, 294, 176, 130, 173, 279, 318, 279, + 482, 279, 173, 285, 8, 279, 173, 552, 176, 491, + 3, 4, 3, 4, 496, 176, 298, 499, 3, 4, + 3, 4, 173, 568, 176, 160, 3, 4, 174, 566, + 3, 4, 3, 4, 174, 580, 171, 38, 174, 174, + 174, 384, 362, 174, 389, 38, 389, 174, 174, 3, + 370, 5, 6, 7, 8, 9, 10, 174, 174, 530, + 405, 381, 174, 364, 65, 174, 573, 387, 174, 174, + 552, 174, 65, 160, 161, 162, 174, 397, 174, 174, + 174, 358, 3, 170, 171, 367, 174, 367, 174, 367, + 370, 595, 370, 367, 174, 174, 370, 558, 174, 174, + 561, 174, 174, 173, 173, 176, 107, 387, 176, 173, + 64, 178, 573, 175, 107, 175, 461, 174, 461, 8, + 8, 158, 159, 160, 161, 162, 8, 8, 8, 130, + 8, 476, 68, 170, 171, 5, 171, 130, 174, 173, + 152, 173, 150, 176, 464, 488, 491, 101, 175, 494, + 178, 496, 177, 473, 150, 175, 476, 175, 175, 160, + 174, 3, 175, 150, 175, 175, 175, 160, 175, 175, + 171, 8, 126, 174, 494, 175, 175, 13, 14, 15, + 175, 174, 18, 19, 138, 530, 175, 530, 152, 175, + 81, 473, 170, 175, 476, 175, 175, 150, 173, 175, + 172, 155, 3, 177, 158, 159, 160, 552, 175, 163, + 164, 3, 494, 175, 173, 173, 5, 8, 172, 175, + 174, 173, 173, 543, 4, 175, 175, 175, 175, 175, + 152, 176, 175, 175, 175, 175, 175, 152, 152, 559, + 173, 44, 366, 39, 2, 473, 384, 2, 601, 247, + 532, 31, 532, 33, 532, 2, 46, 2, 532, 39, + 40, 543, 575, 43, 183, -1, -1, -1, 48, -1, + -1, -1, -1, -1, 54, 245, 56, 559, -1, 75, + 60, 61, -1, 63, -1, -1, 66, -1, 68, -1, + -1, 87, 88, 89, -1, 75, -1, -1, -1, 95, + -1, 81, 82, -1, -1, 85, -1, 87, 88, 89, + 90, -1, -1, -1, -1, 95, -1, -1, -1, 4, + 156, 157, 158, 159, 160, 161, 162, 123, -1, -1, + -1, 127, -1, -1, 170, 171, -1, -1, 118, -1, + -1, -1, 122, 123, 124, -1, 31, 127, 33, 129, + -1, -1, -1, 133, 39, -1, -1, -1, 43, 139, + 140, -1, 142, 48, -1, -1, -1, 147, 148, -1, + -1, 56, -1, -1, -1, 60, 61, -1, 63, -1, + -1, 66, -1, 68, -1, -1, -1, -1, -1, -1, + 75, 171, -1, -1, -1, -1, 81, 177, -1, -1, + 85, -1, 87, 88, 89, -1, -1, -1, -1, -1, + 95, -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 117, -1, -1, - -1, 121, 122, 123, -1, 30, 126, 32, 128, -1, - -1, -1, 132, 38, -1, -1, -1, 42, 138, 139, - -1, 141, 47, -1, -1, -1, 146, 147, -1, -1, - 55, -1, -1, -1, 59, 60, -1, 62, -1, -1, - 65, -1, 67, -1, -1, -1, -1, -1, -1, 74, - 170, -1, -1, -1, -1, 80, 176, -1, -1, 84, - -1, 86, 87, 88, -1, -1, -1, -1, -1, 94, - -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, + -1, -1, -1, 118, -1, -1, -1, 122, 123, 124, + -1, 31, 127, 33, 129, -1, -1, -1, 133, 39, + -1, -1, -1, 43, 139, 140, -1, 142, 48, -1, + -1, -1, 147, 148, -1, -1, 56, -1, -1, -1, + 60, 61, -1, 63, -1, -1, 66, -1, 68, -1, + -1, -1, -1, -1, -1, 75, 171, -1, -1, -1, + -1, 81, 177, -1, -1, 85, -1, 87, 88, 89, + -1, -1, -1, -1, -1, 95, -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 117, -1, -1, -1, 121, 122, 123, -1, - 30, 126, 32, 128, -1, -1, -1, 132, 38, -1, - -1, -1, 42, 138, 139, -1, 141, 47, -1, -1, - -1, 146, 147, -1, -1, 55, -1, -1, -1, 59, - 60, -1, 62, -1, -1, 65, -1, 67, -1, -1, - -1, -1, -1, -1, 74, 170, -1, -1, -1, -1, - 80, 176, -1, -1, 84, -1, 86, 87, 88, -1, - -1, -1, -1, -1, 94, -1, -1, -1, 3, 4, - 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 117, -1, -1, - -1, 121, 122, 123, -1, 30, 126, 32, 128, -1, - -1, -1, 132, 38, -1, -1, -1, 42, 138, 139, - -1, 141, -1, -1, -1, -1, 146, 147, -1, -1, - 55, -1, -1, -1, 59, 60, -1, 62, 63, -1, - 65, -1, 67, -1, -1, -1, -1, -1, -1, 74, - 170, -1, -1, -1, -1, -1, 176, -1, -1, 84, - -1, 86, 87, 88, -1, -1, -1, -1, 3, 94, - 5, 6, 7, 8, 9, 100, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 118, -1, + -1, -1, 122, 123, 124, -1, 31, 127, 33, 129, + -1, -1, -1, 133, 39, -1, -1, -1, 43, 139, + 140, -1, 142, 48, -1, -1, -1, 147, 148, -1, + -1, 56, -1, -1, -1, 60, 61, -1, 63, -1, + -1, 66, -1, 68, -1, -1, -1, -1, -1, -1, + 75, 171, -1, -1, -1, -1, 81, 177, -1, -1, + 85, -1, 87, 88, 89, -1, -1, -1, -1, -1, + 95, -1, -1, 3, 4, 5, 6, 7, 8, 9, + 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 118, -1, -1, -1, 122, 123, 124, + -1, 31, 127, 33, 129, -1, -1, -1, 133, 39, + -1, -1, -1, 43, 139, 140, -1, 142, -1, -1, + -1, -1, 147, 148, -1, -1, 56, -1, -1, -1, + 60, 61, -1, 63, 64, -1, 66, 3, 68, 5, + 6, 7, 8, 9, 10, 75, 171, -1, -1, -1, + -1, -1, 177, -1, -1, 85, -1, 87, 88, 89, + -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, + -1, 101, -1, -1, -1, -1, 3, -1, 5, 6, + 7, 8, 9, 10, -1, -1, 4, -1, 118, -1, + -1, -1, 122, 123, 124, -1, 126, 127, 64, 129, + -1, -1, -1, 133, -1, -1, -1, -1, 138, -1, + 140, -1, 142, 31, -1, 33, -1, 147, 148, -1, + -1, 39, -1, -1, -1, 155, -1, -1, 158, 159, + 160, -1, -1, 163, 164, 101, -1, 64, 56, -1, + -1, -1, 60, 61, 174, -1, -1, -1, 66, -1, + 68, -1, -1, -1, -1, -1, -1, 75, -1, -1, + 126, -1, -1, -1, -1, -1, -1, -1, -1, 87, + 88, 89, 138, -1, 101, -1, -1, 95, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 155, + -1, -1, 158, 159, 160, -1, -1, 163, 164, 126, + -1, -1, -1, -1, 122, 123, 124, -1, 174, 127, + -1, 138, -1, 4, -1, 133, -1, -1, -1, -1, + -1, 12, 140, -1, 142, -1, -1, -1, 155, 147, + 148, 158, 159, 160, -1, -1, 163, 164, -1, -1, + 31, -1, 33, -1, -1, -1, -1, 174, 39, 40, + -1, -1, 43, -1, -1, -1, -1, 48, -1, -1, + -1, -1, -1, 54, -1, 56, -1, -1, -1, 60, + 61, -1, 63, -1, -1, 66, -1, 68, -1, -1, + -1, -1, -1, -1, 75, -1, -1, -1, -1, -1, + 81, 82, -1, -1, 85, -1, 87, 88, 89, 90, + -1, -1, -1, -1, 95, -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 117, -1, -1, -1, 121, 122, 123, -1, - 125, 126, -1, 128, -1, -1, -1, 132, -1, -1, - -1, -1, 137, -1, 139, -1, 141, -1, -1, -1, - -1, 146, 147, -1, -1, -1, -1, -1, 63, 154, - -1, -1, 157, 158, 159, -1, -1, 162, 163, -1, - 3, -1, 5, 6, 7, 8, 9, 3, 173, 5, - 6, 7, 8, 9, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 118, -1, -1, + -1, 122, 123, 124, -1, 31, 127, 33, 129, -1, + -1, -1, 133, 39, 40, -1, -1, 43, 139, 140, + -1, 142, 48, -1, -1, -1, 147, 148, 54, -1, + 56, -1, -1, -1, 60, 61, -1, 63, -1, -1, + 66, -1, 68, -1, -1, -1, -1, -1, -1, 75, + 171, -1, -1, -1, -1, 81, -1, -1, -1, 85, + -1, 87, 88, 89, 90, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 63, -1, 137, -1, -1, -1, -1, 63, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 154, - -1, -1, 157, 158, 159, -1, -1, 162, 163, -1, - -1, -1, -1, -1, -1, -1, 171, 100, 173, -1, - -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, + 4, -1, 118, -1, -1, -1, 122, 123, 124, -1, + -1, 127, -1, 129, -1, -1, -1, 133, -1, -1, + -1, -1, -1, 139, 140, -1, 142, 31, -1, 33, + -1, 147, 148, -1, 38, 39, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 125, -1, -1, -1, -1, -1, -1, 125, - -1, -1, -1, -1, 137, -1, -1, -1, -1, -1, - -1, 137, -1, -1, -1, 4, -1, -1, -1, -1, - -1, 154, 11, -1, 157, 158, 159, -1, 154, 162, - 163, 157, 158, 159, -1, -1, 162, 163, -1, -1, - 173, 30, -1, 32, -1, -1, -1, 173, -1, 38, - 39, -1, -1, 42, -1, -1, -1, -1, 47, -1, - -1, -1, -1, -1, 53, -1, 55, -1, -1, -1, - 59, 60, -1, 62, -1, -1, 65, -1, 67, -1, - -1, -1, -1, -1, -1, 74, -1, -1, -1, -1, - -1, 80, 81, -1, -1, 84, -1, 86, 87, 88, - 89, -1, -1, -1, -1, 94, -1, -1, -1, -1, - 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 117, -1, - -1, -1, 121, 122, 123, -1, 30, 126, 32, 128, - -1, -1, -1, 132, 38, 39, -1, -1, 42, 138, - 139, -1, 141, 47, -1, -1, -1, 146, 147, 53, - -1, 55, -1, -1, -1, 59, 60, -1, 62, -1, - -1, 65, -1, 67, -1, -1, -1, -1, -1, -1, - 74, 170, -1, -1, -1, -1, 80, -1, -1, -1, - 84, -1, 86, 87, 88, 89, -1, -1, -1, -1, - 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 56, -1, -1, 171, 60, 61, -1, 63, + -1, 65, 66, -1, 68, -1, -1, -1, -1, -1, + -1, 75, -1, -1, -1, -1, -1, -1, 4, -1, + -1, 85, -1, 87, 88, 89, -1, -1, -1, -1, + -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 107, -1, 31, -1, 33, -1, -1, + -1, -1, 38, 39, 118, -1, -1, 43, 122, 123, + 124, -1, -1, 127, -1, 129, 130, -1, -1, 133, + 56, -1, -1, -1, 60, 61, 140, 63, 142, 65, + 66, -1, 68, 147, 148, -1, -1, -1, -1, 75, + -1, -1, -1, -1, -1, -1, 160, -1, -1, 85, + -1, 87, 88, 89, -1, -1, -1, 171, -1, 95, + -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, + -1, 107, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 22, 118, -1, -1, -1, 122, 123, 124, -1, + 31, 127, 33, 129, 130, -1, -1, 133, 39, -1, + -1, -1, 43, -1, 140, -1, 142, -1, -1, -1, + -1, 147, 148, -1, -1, 56, -1, -1, -1, 60, + 61, -1, 63, -1, 160, 66, -1, 68, -1, -1, + -1, -1, -1, -1, 75, 171, -1, -1, -1, -1, + -1, 4, -1, -1, 85, -1, 87, 88, 89, -1, + -1, -1, -1, -1, 95, 13, 14, 15, 16, 17, + 18, 19, 20, 21, -1, -1, -1, -1, 31, -1, + 33, -1, -1, -1, -1, -1, 39, 118, -1, -1, + 43, 122, 123, 124, -1, -1, 127, -1, 129, -1, + -1, -1, 133, 56, -1, -1, -1, 60, 61, 140, + 63, 142, -1, 66, -1, 68, 147, 148, -1, -1, + -1, -1, 75, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 85, -1, 87, 88, 89, -1, -1, -1, + 171, -1, 95, -1, -1, -1, 13, 14, 15, 16, + 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 118, -1, -1, -1, 122, + 123, 124, -1, -1, 127, -1, 129, -1, -1, -1, + 133, -1, -1, -1, -1, -1, -1, 140, -1, 142, + -1, -1, -1, -1, 147, 148, 13, 14, 15, 16, + 17, 18, 19, 151, 21, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, -1, -1, -1, 171, -1, + -1, -1, 170, 171, -1, -1, -1, 175, 13, 14, + 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 4, 117, -1, -1, -1, 121, 122, 123, - -1, -1, 126, -1, 128, -1, -1, -1, 132, -1, - -1, -1, -1, -1, 138, 139, -1, 141, 30, -1, - 32, -1, 146, 147, -1, 37, 38, -1, -1, -1, - 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 55, -1, -1, 170, 59, 60, -1, - 62, -1, 64, 65, -1, 67, -1, -1, -1, -1, - -1, -1, 74, -1, -1, -1, -1, -1, -1, -1, - 4, -1, 84, -1, 86, 87, 88, -1, -1, -1, - -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 106, -1, 30, -1, 32, -1, - -1, -1, -1, 37, 38, 117, -1, -1, 42, 121, - 122, 123, -1, -1, 126, -1, 128, 129, -1, -1, - 132, 55, -1, -1, -1, 59, 60, 139, 62, 141, - 64, 65, -1, 67, 146, 147, -1, -1, -1, -1, - 74, -1, -1, -1, -1, -1, -1, 159, 4, -1, - 84, -1, 86, 87, 88, -1, -1, -1, 170, -1, - 94, -1, -1, -1, -1, 21, -1, -1, -1, -1, - -1, -1, 106, -1, 30, -1, 32, -1, -1, -1, - -1, -1, 38, 117, -1, -1, 42, 121, 122, 123, - -1, -1, 126, -1, 128, 129, -1, -1, 132, 55, - -1, -1, -1, 59, 60, 139, 62, 141, -1, 65, - -1, 67, 146, 147, -1, -1, -1, -1, 74, -1, - -1, -1, -1, -1, -1, 159, 4, -1, 84, -1, - 86, 87, 88, -1, -1, -1, 170, -1, 94, 12, - 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, - -1, -1, 30, -1, 32, -1, -1, -1, -1, -1, - 38, 117, -1, -1, 42, 121, 122, 123, -1, -1, - 126, -1, 128, -1, -1, -1, 132, 55, -1, -1, - -1, 59, 60, 139, 62, 141, -1, 65, -1, 67, - 146, 147, -1, -1, -1, -1, 74, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 84, -1, 86, 87, - 88, -1, -1, -1, 170, -1, 94, -1, -1, -1, - 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 117, - -1, -1, -1, 121, 122, 123, -1, -1, 126, -1, - 128, -1, -1, -1, 132, -1, -1, -1, -1, -1, - -1, 139, -1, 141, -1, -1, -1, -1, 146, 147, - 12, 13, 14, 15, 16, 17, 18, 150, 20, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, - -1, -1, 170, -1, -1, -1, 169, 170, -1, -1, - -1, 174, 12, 13, 14, 15, 16, 17, 18, 19, - 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 12, 13, 14, 15, 16, 17, - 18, 19, 20, -1, -1, 150, -1, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 12, 13, 14, - 15, 16, 17, 18, 169, 170, -1, -1, 150, 174, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - -1, -1, -1, -1, -1, -1, -1, 169, 170, -1, - -1, -1, 174, 12, 13, 14, 15, 16, 17, 18, - 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 12, 13, 14, 15, 16, 17, 18, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 12, 13, 14, 15, 16, 17, 18, 169, 170, -1, + 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, + -1, 151, -1, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 13, 14, 15, 16, 17, 18, 19, + 170, 171, -1, -1, 151, 175, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, -1, -1, -1, -1, + -1, -1, -1, 170, 171, -1, -1, -1, 175, 13, + 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 13, 14, 15, + 16, 17, 18, 19, -1, -1, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 13, 14, 15, 16, + 17, 18, 19, 170, 171, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 151, -1, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 13, 14, + 15, 16, 17, 18, 19, 170, 171, 172, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + -1, -1, -1, -1, -1, -1, -1, 170, 171, -1, + -1, -1, -1, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, -1, -1, -1, -1, -1, -1, -1, + 170, 171, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 151, -1, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, -1, + -1, -1, -1, -1, -1, -1, 170, 171, 154, 155, + 156, 157, 158, 159, 160, 161, 162, -1, -1, -1, + -1, 4, -1, -1, 170, 171, -1, -1, 155, 156, + 157, 158, 159, 160, 161, 162, -1, -1, -1, -1, + -1, -1, -1, 170, 171, -1, -1, -1, 31, -1, + 33, -1, -1, -1, -1, -1, 39, 40, -1, -1, + 43, 156, 157, 158, 159, 160, 161, 162, -1, -1, + -1, 54, -1, 56, -1, 170, 171, 60, 61, -1, + 63, -1, -1, 66, -1, 68, -1, -1, -1, -1, + -1, -1, 75, -1, -1, -1, -1, -1, -1, 4, + -1, -1, 85, -1, 87, 88, 89, 90, -1, -1, + 93, -1, 95, -1, 97, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 31, -1, 33, -1, + -1, -1, -1, -1, 39, 118, -1, -1, 43, 122, + 123, 124, -1, -1, 127, -1, 129, -1, -1, -1, + 133, 56, -1, -1, -1, 60, 61, 140, 63, 142, + -1, 66, -1, 68, 147, 148, -1, -1, -1, -1, + 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 85, -1, 87, 88, 89, -1, -1, -1, -1, -1, + 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 12, 13, 14, 15, 16, 17, 18, 169, - 170, 171, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, -1, -1, -1, -1, -1, -1, - -1, 169, 170, -1, -1, -1, -1, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, -1, -1, -1, - -1, -1, -1, -1, 169, 170, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 150, -1, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, -1, -1, -1, -1, -1, -1, -1, - 169, 170, 153, 154, 155, 156, 157, 158, 159, 160, - 161, -1, -1, -1, -1, -1, 4, -1, 169, 170, - -1, -1, 154, 155, 156, 157, 158, 159, 160, 161, - -1, -1, -1, -1, -1, -1, -1, 169, 170, -1, - -1, -1, 30, -1, 32, -1, -1, -1, -1, -1, - 38, 39, -1, -1, 42, 155, 156, 157, 158, 159, - 160, 161, -1, -1, -1, 53, -1, 55, -1, 169, - 170, 59, 60, -1, 62, -1, -1, 65, -1, 67, - -1, -1, -1, -1, -1, -1, 74, -1, -1, -1, - -1, -1, -1, -1, 4, -1, 84, -1, 86, 87, - 88, 89, -1, -1, 92, -1, 94, -1, 96, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 30, -1, 32, -1, -1, -1, -1, -1, 38, 117, - -1, -1, 42, 121, 122, 123, -1, -1, 126, -1, - 128, -1, -1, -1, 132, 55, -1, -1, -1, 59, - 60, 139, 62, 141, -1, 65, -1, 67, 146, 147, - -1, -1, -1, -1, 74, -1, -1, -1, -1, 4, - -1, -1, -1, -1, 84, -1, 86, 87, 88, -1, - -1, -1, -1, -1, 94, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 30, -1, 32, -1, -1, - -1, -1, -1, 38, -1, -1, -1, 117, -1, -1, - -1, 121, 122, 123, -1, -1, 126, -1, 128, -1, - 55, -1, 132, -1, 59, 60, -1, -1, -1, 139, - 65, 141, 67, -1, -1, -1, 146, 147, -1, 74, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 86, 87, 88, -1, -1, -1, -1, -1, 94, - -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, 121, 122, 123, -1, - -1, 126, -1, -1, -1, -1, 22, 132, 24, 25, - 26, -1, 28, 29, 139, 31, 141, -1, 34, -1, - 36, 146, 147, -1, -1, -1, -1, 43, 44, 45, - 46, -1, 48, 49, 50, 51, 52, -1, 54, -1, - 56, 57, 58, -1, -1, 61, -1, -1, -1, -1, - 66, -1, 68, 69, 70, 71, 72, 73, -1, 75, - 76, 77, 78, 79, -1, -1, 82, -1, -1, 85, - -1, -1, -1, -1, 90, 91, -1, 93, -1, -1, - -1, 97, 98, 99, -1, 101, 102, 103, 104, 105, - -1, 107, -1, 109, 110, 111, 112, 113, 114, 115, - 116, -1, 118, 119, 120, -1, -1, -1, 124, -1, - -1, 127, -1, -1, 130, 131, -1, -1, 134, 135, - 136, -1, -1, -1, 140, -1, 142, 143, 144, 145, - -1, -1, 148 + -1, -1, -1, 118, -1, -1, -1, 122, 123, 124, + -1, -1, 127, -1, 129, -1, -1, 23, 133, 25, + 26, 27, -1, 29, 30, 140, 32, 142, -1, 35, + -1, 37, 147, 148, -1, -1, -1, -1, 44, 45, + 46, 47, -1, 49, 50, 51, 52, 53, -1, 55, + -1, 57, 58, 59, -1, -1, 62, -1, -1, -1, + -1, 67, -1, 69, 70, 71, 72, 73, 74, -1, + 76, 77, 78, 79, 80, -1, -1, 83, -1, -1, + 86, -1, -1, -1, -1, 91, 92, -1, 94, -1, + -1, -1, 98, 99, 100, -1, 102, 103, 104, 105, + 106, -1, 108, -1, 110, 111, 112, 113, 114, 115, + 116, 117, -1, 119, 120, 121, -1, -1, -1, 125, + -1, -1, 128, -1, -1, 131, 132, -1, -1, 135, + 136, 137, -1, -1, -1, 141, -1, 143, 144, 145, + 146, -1, -1, 149 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { - 0, 179, 180, 0, 4, 30, 32, 38, 39, 42, - 47, 53, 55, 59, 60, 62, 65, 67, 74, 80, - 84, 86, 87, 88, 89, 94, 117, 121, 122, 123, - 126, 128, 132, 138, 139, 141, 146, 147, 170, 184, - 185, 186, 187, 188, 191, 192, 199, 210, 224, 228, - 230, 231, 232, 233, 236, 237, 240, 242, 243, 244, - 245, 247, 248, 249, 250, 251, 253, 255, 272, 273, - 274, 275, 3, 4, 173, 3, 4, 3, 4, 226, - 86, 229, 8, 3, 4, 229, 173, 229, 230, 3, - 226, 198, 199, 3, 226, 230, 22, 24, 25, 26, - 28, 29, 31, 34, 36, 43, 44, 45, 46, 48, - 49, 50, 51, 52, 54, 56, 57, 58, 61, 66, - 68, 69, 70, 71, 72, 73, 75, 76, 77, 78, - 79, 82, 85, 90, 91, 93, 97, 98, 99, 101, - 102, 103, 104, 105, 107, 109, 110, 111, 112, 113, - 114, 115, 116, 118, 119, 120, 124, 127, 130, 131, - 134, 135, 136, 140, 142, 143, 144, 145, 148, 200, - 202, 271, 172, 181, 181, 92, 96, 190, 210, 231, - 236, 242, 246, 253, 272, 275, 172, 172, 175, 172, - 175, 172, 183, 172, 151, 241, 175, 254, 255, 254, - 254, 3, 4, 37, 64, 106, 129, 159, 173, 204, - 227, 256, 257, 270, 210, 272, 273, 275, 254, 172, - 8, 175, 172, 273, 175, 253, 133, 175, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 149, 171, 11, 81, 184, 189, - 192, 231, 233, 244, 245, 248, 176, 3, 3, 4, - 175, 270, 234, 108, 238, 242, 3, 4, 175, 182, - 252, 256, 256, 177, 170, 173, 197, 254, 174, 207, - 208, 209, 227, 174, 217, 256, 266, 173, 220, 8, - 227, 3, 5, 6, 7, 8, 9, 63, 100, 125, - 137, 154, 157, 158, 159, 162, 163, 173, 213, 214, - 215, 213, 216, 8, 8, 201, 216, 215, 8, 8, - 215, 8, 215, 213, 67, 215, 211, 212, 213, 271, - 215, 211, 213, 273, 273, 8, 10, 203, 5, 276, - 273, 202, 170, 173, 172, 183, 176, 198, 235, 151, - 95, 198, 222, 239, 172, 175, 182, 176, 184, 199, - 251, 256, 174, 216, 159, 212, 193, 194, 195, 196, - 199, 253, 176, 149, 177, 176, 198, 218, 149, 222, - 176, 199, 219, 222, 174, 174, 173, 213, 213, 213, - 213, 213, 213, 213, 253, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 150, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 169, 170, 149, 174, 174, - 174, 149, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 3, 174, 149, 174, 174, 149, 174, 174, 174, - 174, 174, 169, 174, 174, 202, 8, 183, 245, 151, - 253, 172, 176, 198, 223, 176, 188, 176, 183, 171, - 171, 174, 149, 253, 159, 173, 197, 204, 227, 262, - 264, 265, 209, 215, 253, 275, 256, 174, 172, 172, - 253, 174, 159, 173, 197, 204, 258, 260, 261, 213, - 213, 3, 213, 213, 213, 213, 213, 213, 213, 213, - 213, 213, 213, 213, 213, 213, 213, 213, 213, 3, - 213, 215, 8, 174, 212, 215, 5, 174, 256, 253, - 172, 182, 183, 21, 196, 264, 252, 159, 193, 204, - 263, 264, 173, 197, 262, 268, 269, 172, 225, 227, - 260, 252, 159, 193, 204, 259, 260, 174, 173, 197, - 151, 171, 174, 183, 256, 176, 264, 252, 174, 264, - 174, 193, 151, 267, 149, 172, 175, 174, 260, 252, - 174, 264, 174, 213, 193, 213, 183, 264, 174, 216, - 268, 205, 264, 174, 36, 48, 176, 206, 215, 151, - 151, 172, 221, 222, 221, 172 + 0, 180, 181, 0, 4, 31, 33, 39, 40, 43, + 48, 54, 56, 60, 61, 63, 66, 68, 75, 81, + 85, 87, 88, 89, 90, 95, 118, 122, 123, 124, + 127, 129, 133, 139, 140, 142, 147, 148, 171, 185, + 186, 187, 188, 189, 192, 193, 200, 211, 225, 229, + 231, 232, 233, 234, 237, 238, 241, 243, 244, 245, + 246, 248, 249, 250, 251, 252, 254, 256, 273, 274, + 275, 276, 3, 4, 174, 3, 4, 3, 4, 227, + 87, 230, 8, 3, 4, 230, 174, 230, 231, 3, + 227, 199, 200, 3, 227, 231, 23, 25, 26, 27, + 29, 30, 32, 35, 37, 44, 45, 46, 47, 49, + 50, 51, 52, 53, 55, 57, 58, 59, 62, 67, + 69, 70, 71, 72, 73, 74, 76, 77, 78, 79, + 80, 83, 86, 91, 92, 94, 98, 99, 100, 102, + 103, 104, 105, 106, 108, 110, 111, 112, 113, 114, + 115, 116, 117, 119, 120, 121, 125, 128, 131, 132, + 135, 136, 137, 141, 143, 144, 145, 146, 149, 201, + 203, 272, 173, 182, 182, 93, 97, 191, 211, 232, + 237, 243, 247, 254, 273, 276, 173, 173, 176, 173, + 176, 173, 184, 173, 152, 242, 176, 255, 256, 255, + 255, 3, 4, 38, 65, 107, 130, 160, 174, 205, + 228, 257, 258, 271, 211, 273, 274, 276, 255, 173, + 8, 176, 173, 274, 176, 254, 134, 176, 174, 174, + 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, + 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, + 174, 174, 174, 174, 150, 172, 12, 82, 185, 190, + 193, 232, 234, 245, 246, 249, 177, 3, 3, 4, + 176, 271, 235, 109, 239, 243, 3, 4, 176, 183, + 253, 257, 257, 178, 171, 174, 198, 255, 175, 208, + 209, 210, 228, 175, 218, 257, 267, 174, 221, 8, + 228, 3, 5, 6, 7, 8, 9, 10, 64, 101, + 126, 138, 155, 158, 159, 160, 163, 164, 174, 214, + 215, 216, 214, 217, 8, 8, 202, 217, 216, 8, + 8, 216, 8, 216, 214, 68, 216, 212, 213, 214, + 272, 216, 212, 214, 274, 274, 8, 11, 204, 5, + 277, 274, 203, 171, 174, 173, 184, 177, 199, 236, + 152, 96, 199, 223, 240, 173, 176, 183, 177, 185, + 200, 252, 257, 175, 217, 160, 213, 194, 195, 196, + 197, 200, 254, 177, 150, 178, 177, 199, 219, 150, + 223, 177, 200, 220, 223, 175, 175, 174, 214, 214, + 214, 214, 214, 214, 214, 254, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 151, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 170, 171, 150, 175, + 175, 175, 150, 175, 175, 175, 175, 175, 175, 175, + 175, 175, 3, 175, 150, 175, 175, 150, 175, 175, + 175, 175, 175, 170, 175, 175, 203, 8, 184, 246, + 152, 254, 173, 177, 199, 224, 177, 189, 177, 184, + 172, 172, 175, 150, 254, 160, 174, 198, 205, 228, + 263, 265, 266, 210, 216, 254, 276, 257, 175, 173, + 173, 254, 175, 160, 174, 198, 205, 259, 261, 262, + 214, 214, 3, 214, 214, 214, 214, 214, 214, 214, + 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, + 3, 214, 216, 8, 175, 213, 216, 5, 175, 257, + 254, 173, 183, 184, 22, 197, 265, 253, 160, 194, + 205, 264, 265, 174, 198, 263, 269, 270, 173, 226, + 228, 261, 253, 160, 194, 205, 260, 261, 175, 174, + 198, 152, 172, 175, 184, 257, 177, 265, 253, 175, + 265, 175, 194, 152, 268, 150, 173, 176, 175, 261, + 253, 175, 265, 175, 214, 194, 214, 184, 265, 175, + 217, 269, 206, 265, 175, 37, 49, 177, 207, 216, + 152, 152, 173, 222, 223, 222, 173 }; #define yyerrok (yyerrstatus = 0) @@ -3755,350 +3746,357 @@ yyreduce: /* Line 1455 of yacc.c */ #line 635 "parser.y" - { (yyval.expr) = make_exprs(EXPR_IDENTIFIER, (yyvsp[(1) - (1)].str)); ;} + { (yyval.expr) = make_exprs(EXPR_CHARCONST, (yyvsp[(1) - (1)].str)); ;} break; case 164: /* Line 1455 of yacc.c */ #line 636 "parser.y" - { (yyval.expr) = make_expr3(EXPR_COND, (yyvsp[(1) - (5)].expr), (yyvsp[(3) - (5)].expr), (yyvsp[(5) - (5)].expr)); ;} + { (yyval.expr) = make_exprs(EXPR_IDENTIFIER, (yyvsp[(1) - (1)].str)); ;} break; case 165: /* Line 1455 of yacc.c */ #line 637 "parser.y" - { (yyval.expr) = make_expr2(EXPR_LOGOR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} + { (yyval.expr) = make_expr3(EXPR_COND, (yyvsp[(1) - (5)].expr), (yyvsp[(3) - (5)].expr), (yyvsp[(5) - (5)].expr)); ;} break; case 166: /* Line 1455 of yacc.c */ #line 638 "parser.y" - { (yyval.expr) = make_expr2(EXPR_LOGAND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_LOGOR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 167: /* Line 1455 of yacc.c */ #line 639 "parser.y" - { (yyval.expr) = make_expr2(EXPR_OR , (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_LOGAND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 168: /* Line 1455 of yacc.c */ #line 640 "parser.y" - { (yyval.expr) = make_expr2(EXPR_XOR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_OR , (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 169: /* Line 1455 of yacc.c */ #line 641 "parser.y" - { (yyval.expr) = make_expr2(EXPR_AND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_XOR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 170: /* Line 1455 of yacc.c */ #line 642 "parser.y" - { (yyval.expr) = make_expr2(EXPR_EQUALITY, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_AND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 171: /* Line 1455 of yacc.c */ #line 643 "parser.y" - { (yyval.expr) = make_expr2(EXPR_INEQUALITY, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_EQUALITY, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 172: /* Line 1455 of yacc.c */ #line 644 "parser.y" - { (yyval.expr) = make_expr2(EXPR_GTR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_INEQUALITY, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 173: /* Line 1455 of yacc.c */ #line 645 "parser.y" - { (yyval.expr) = make_expr2(EXPR_LESS, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_GTR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 174: /* Line 1455 of yacc.c */ #line 646 "parser.y" - { (yyval.expr) = make_expr2(EXPR_GTREQL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_LESS, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 175: /* Line 1455 of yacc.c */ #line 647 "parser.y" - { (yyval.expr) = make_expr2(EXPR_LESSEQL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_GTREQL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 176: /* Line 1455 of yacc.c */ #line 648 "parser.y" - { (yyval.expr) = make_expr2(EXPR_SHL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_LESSEQL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 177: /* Line 1455 of yacc.c */ #line 649 "parser.y" - { (yyval.expr) = make_expr2(EXPR_SHR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_SHL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 178: /* Line 1455 of yacc.c */ #line 650 "parser.y" - { (yyval.expr) = make_expr2(EXPR_ADD, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_SHR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 179: /* Line 1455 of yacc.c */ #line 651 "parser.y" - { (yyval.expr) = make_expr2(EXPR_SUB, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_ADD, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 180: /* Line 1455 of yacc.c */ #line 652 "parser.y" - { (yyval.expr) = make_expr2(EXPR_MOD, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_SUB, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 181: /* Line 1455 of yacc.c */ #line 653 "parser.y" - { (yyval.expr) = make_expr2(EXPR_MUL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_MOD, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 182: /* Line 1455 of yacc.c */ #line 654 "parser.y" - { (yyval.expr) = make_expr2(EXPR_DIV, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_MUL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 183: /* Line 1455 of yacc.c */ #line 655 "parser.y" - { (yyval.expr) = make_expr1(EXPR_LOGNOT, (yyvsp[(2) - (2)].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_DIV, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 184: /* Line 1455 of yacc.c */ #line 656 "parser.y" - { (yyval.expr) = make_expr1(EXPR_NOT, (yyvsp[(2) - (2)].expr)); ;} + { (yyval.expr) = make_expr1(EXPR_LOGNOT, (yyvsp[(2) - (2)].expr)); ;} break; case 185: /* Line 1455 of yacc.c */ #line 657 "parser.y" - { (yyval.expr) = make_expr1(EXPR_POS, (yyvsp[(2) - (2)].expr)); ;} + { (yyval.expr) = make_expr1(EXPR_NOT, (yyvsp[(2) - (2)].expr)); ;} break; case 186: /* Line 1455 of yacc.c */ #line 658 "parser.y" - { (yyval.expr) = make_expr1(EXPR_NEG, (yyvsp[(2) - (2)].expr)); ;} + { (yyval.expr) = make_expr1(EXPR_POS, (yyvsp[(2) - (2)].expr)); ;} break; case 187: /* Line 1455 of yacc.c */ #line 659 "parser.y" - { (yyval.expr) = make_expr1(EXPR_ADDRESSOF, (yyvsp[(2) - (2)].expr)); ;} + { (yyval.expr) = make_expr1(EXPR_NEG, (yyvsp[(2) - (2)].expr)); ;} break; case 188: /* Line 1455 of yacc.c */ #line 660 "parser.y" - { (yyval.expr) = make_expr1(EXPR_PPTR, (yyvsp[(2) - (2)].expr)); ;} + { (yyval.expr) = make_expr1(EXPR_ADDRESSOF, (yyvsp[(2) - (2)].expr)); ;} break; case 189: /* Line 1455 of yacc.c */ #line 661 "parser.y" - { (yyval.expr) = make_expr2(EXPR_MEMBER, make_expr1(EXPR_PPTR, (yyvsp[(1) - (3)].expr)), make_exprs(EXPR_IDENTIFIER, (yyvsp[(3) - (3)].str))); ;} + { (yyval.expr) = make_expr1(EXPR_PPTR, (yyvsp[(2) - (2)].expr)); ;} break; case 190: /* Line 1455 of yacc.c */ #line 662 "parser.y" - { (yyval.expr) = make_expr2(EXPR_MEMBER, (yyvsp[(1) - (3)].expr), make_exprs(EXPR_IDENTIFIER, (yyvsp[(3) - (3)].str))); ;} + { (yyval.expr) = make_expr2(EXPR_MEMBER, make_expr1(EXPR_PPTR, (yyvsp[(1) - (3)].expr)), make_exprs(EXPR_IDENTIFIER, (yyvsp[(3) - (3)].str))); ;} break; case 191: /* Line 1455 of yacc.c */ -#line 664 "parser.y" - { (yyval.expr) = make_exprt(EXPR_CAST, declare_var(NULL, (yyvsp[(2) - (5)].declspec), (yyvsp[(3) - (5)].declarator), 0), (yyvsp[(5) - (5)].expr)); free((yyvsp[(2) - (5)].declspec)); free((yyvsp[(3) - (5)].declarator)); ;} +#line 663 "parser.y" + { (yyval.expr) = make_expr2(EXPR_MEMBER, (yyvsp[(1) - (3)].expr), make_exprs(EXPR_IDENTIFIER, (yyvsp[(3) - (3)].str))); ;} break; case 192: /* Line 1455 of yacc.c */ -#line 666 "parser.y" - { (yyval.expr) = make_exprt(EXPR_SIZEOF, declare_var(NULL, (yyvsp[(3) - (5)].declspec), (yyvsp[(4) - (5)].declarator), 0), NULL); free((yyvsp[(3) - (5)].declspec)); free((yyvsp[(4) - (5)].declarator)); ;} +#line 665 "parser.y" + { (yyval.expr) = make_exprt(EXPR_CAST, declare_var(NULL, (yyvsp[(2) - (5)].declspec), (yyvsp[(3) - (5)].declarator), 0), (yyvsp[(5) - (5)].expr)); free((yyvsp[(2) - (5)].declspec)); free((yyvsp[(3) - (5)].declarator)); ;} break; case 193: /* Line 1455 of yacc.c */ #line 667 "parser.y" - { (yyval.expr) = make_expr2(EXPR_ARRAY, (yyvsp[(1) - (4)].expr), (yyvsp[(3) - (4)].expr)); ;} + { (yyval.expr) = make_exprt(EXPR_SIZEOF, declare_var(NULL, (yyvsp[(3) - (5)].declspec), (yyvsp[(4) - (5)].declarator), 0), NULL); free((yyvsp[(3) - (5)].declspec)); free((yyvsp[(4) - (5)].declarator)); ;} break; case 194: /* Line 1455 of yacc.c */ #line 668 "parser.y" - { (yyval.expr) = (yyvsp[(2) - (3)].expr); ;} + { (yyval.expr) = make_expr2(EXPR_ARRAY, (yyvsp[(1) - (4)].expr), (yyvsp[(3) - (4)].expr)); ;} break; case 195: /* Line 1455 of yacc.c */ -#line 671 "parser.y" - { (yyval.expr_list) = append_expr( NULL, (yyvsp[(1) - (1)].expr) ); ;} +#line 669 "parser.y" + { (yyval.expr) = (yyvsp[(2) - (3)].expr); ;} break; case 196: /* Line 1455 of yacc.c */ #line 672 "parser.y" - { (yyval.expr_list) = append_expr( (yyvsp[(1) - (3)].expr_list), (yyvsp[(3) - (3)].expr) ); ;} + { (yyval.expr_list) = append_expr( NULL, (yyvsp[(1) - (1)].expr) ); ;} break; case 197: /* Line 1455 of yacc.c */ -#line 675 "parser.y" +#line 673 "parser.y" + { (yyval.expr_list) = append_expr( (yyvsp[(1) - (3)].expr_list), (yyvsp[(3) - (3)].expr) ); ;} + break; + + case 198: + +/* Line 1455 of yacc.c */ +#line 676 "parser.y" { (yyval.expr) = (yyvsp[(1) - (1)].expr); if (!(yyval.expr)->is_const) error_loc("expression is not an integer constant\n"); ;} break; - case 198: + case 199: /* Line 1455 of yacc.c */ -#line 681 "parser.y" +#line 682 "parser.y" { (yyval.expr) = (yyvsp[(1) - (1)].expr); if (!(yyval.expr)->is_const && (yyval.expr)->type != EXPR_STRLIT && (yyval.expr)->type != EXPR_WSTRLIT) error_loc("expression is not constant\n"); ;} break; - case 199: - -/* Line 1455 of yacc.c */ -#line 687 "parser.y" - { (yyval.var_list) = NULL; ;} - break; - case 200: /* Line 1455 of yacc.c */ #line 688 "parser.y" - { (yyval.var_list) = append_var_list((yyvsp[(1) - (2)].var_list), (yyvsp[(2) - (2)].var_list)); ;} + { (yyval.var_list) = NULL; ;} break; case 201: /* Line 1455 of yacc.c */ -#line 692 "parser.y" +#line 689 "parser.y" + { (yyval.var_list) = append_var_list((yyvsp[(1) - (2)].var_list), (yyvsp[(2) - (2)].var_list)); ;} + break; + + case 202: + +/* Line 1455 of yacc.c */ +#line 693 "parser.y" { const char *first = LIST_ENTRY(list_head((yyvsp[(3) - (4)].declarator_list)), declarator_t, entry)->var->name; check_field_attrs(first, (yyvsp[(1) - (4)].attr_list)); (yyval.var_list) = set_var_types((yyvsp[(1) - (4)].attr_list), (yyvsp[(2) - (4)].declspec), (yyvsp[(3) - (4)].declarator_list)); ;} break; - case 202: + case 203: /* Line 1455 of yacc.c */ -#line 696 "parser.y" +#line 697 "parser.y" { var_t *v = make_var(NULL); v->type = (yyvsp[(2) - (3)].type); v->attrs = (yyvsp[(1) - (3)].attr_list); (yyval.var_list) = append_var(NULL, v); ;} break; - case 203: - -/* Line 1455 of yacc.c */ -#line 703 "parser.y" - { (yyval.var) = (yyvsp[(1) - (2)].var); ;} - break; - case 204: /* Line 1455 of yacc.c */ #line 704 "parser.y" - { (yyval.var) = make_var(NULL); (yyval.var)->attrs = (yyvsp[(1) - (2)].attr_list); ;} + { (yyval.var) = (yyvsp[(1) - (2)].var); ;} break; case 205: /* Line 1455 of yacc.c */ -#line 707 "parser.y" - { (yyval.var_list) = NULL; ;} +#line 705 "parser.y" + { (yyval.var) = make_var(NULL); (yyval.var)->attrs = (yyvsp[(1) - (2)].attr_list); ;} break; case 206: /* Line 1455 of yacc.c */ #line 708 "parser.y" - { (yyval.var_list) = append_var( (yyvsp[(1) - (2)].var_list), (yyvsp[(2) - (2)].var) ); ;} + { (yyval.var_list) = NULL; ;} break; case 207: /* Line 1455 of yacc.c */ -#line 712 "parser.y" - { (yyval.var) = (yyvsp[(1) - (2)].var); ;} +#line 709 "parser.y" + { (yyval.var_list) = append_var( (yyvsp[(1) - (2)].var_list), (yyvsp[(2) - (2)].var) ); ;} break; case 208: /* Line 1455 of yacc.c */ #line 713 "parser.y" - { (yyval.var) = NULL; ;} + { (yyval.var) = (yyvsp[(1) - (2)].var); ;} break; case 209: /* Line 1455 of yacc.c */ -#line 716 "parser.y" +#line 714 "parser.y" + { (yyval.var) = NULL; ;} + break; + + case 210: + +/* Line 1455 of yacc.c */ +#line 717 "parser.y" { (yyval.var) = declare_var(check_field_attrs((yyvsp[(3) - (3)].declarator)->var->name, (yyvsp[(1) - (3)].attr_list)), (yyvsp[(2) - (3)].declspec), (yyvsp[(3) - (3)].declarator), FALSE); free((yyvsp[(3) - (3)].declarator)); ;} break; - case 210: + case 211: /* Line 1455 of yacc.c */ -#line 723 "parser.y" +#line 724 "parser.y" { var_t *v; v = declare_var(check_function_attrs((yyvsp[(3) - (3)].declarator)->var->name, (yyvsp[(1) - (3)].attr_list)), (yyvsp[(2) - (3)].declspec), (yyvsp[(3) - (3)].declarator), FALSE); @@ -4107,43 +4105,36 @@ yyreduce: ;} break; - case 211: - -/* Line 1455 of yacc.c */ -#line 733 "parser.y" - { (yyval.var) = declare_var((yyvsp[(1) - (3)].attr_list), (yyvsp[(2) - (3)].declspec), (yyvsp[(3) - (3)].declarator), FALSE); - free((yyvsp[(3) - (3)].declarator)); - ;} - break; - case 212: /* Line 1455 of yacc.c */ -#line 736 "parser.y" - { (yyval.var) = declare_var(NULL, (yyvsp[(1) - (2)].declspec), (yyvsp[(2) - (2)].declarator), FALSE); - free((yyvsp[(2) - (2)].declarator)); +#line 734 "parser.y" + { (yyval.var) = declare_var((yyvsp[(1) - (3)].attr_list), (yyvsp[(2) - (3)].declspec), (yyvsp[(3) - (3)].declarator), FALSE); + free((yyvsp[(3) - (3)].declarator)); ;} break; case 213: /* Line 1455 of yacc.c */ -#line 741 "parser.y" - { (yyval.var) = NULL; ;} +#line 737 "parser.y" + { (yyval.var) = declare_var(NULL, (yyvsp[(1) - (2)].declspec), (yyvsp[(2) - (2)].declarator), FALSE); + free((yyvsp[(2) - (2)].declarator)); + ;} break; - case 215: + case 214: /* Line 1455 of yacc.c */ -#line 745 "parser.y" - { (yyval.str) = NULL; ;} +#line 742 "parser.y" + { (yyval.var) = NULL; ;} break; case 216: /* Line 1455 of yacc.c */ #line 746 "parser.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} + { (yyval.str) = NULL; ;} break; case 217: @@ -4156,22 +4147,22 @@ yyreduce: case 218: /* Line 1455 of yacc.c */ -#line 750 "parser.y" - { (yyval.var) = make_var((yyvsp[(1) - (1)].str)); ;} +#line 748 "parser.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 219: /* Line 1455 of yacc.c */ -#line 752 "parser.y" +#line 751 "parser.y" { (yyval.var) = make_var((yyvsp[(1) - (1)].str)); ;} break; case 220: /* Line 1455 of yacc.c */ -#line 755 "parser.y" - { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); ;} +#line 753 "parser.y" + { (yyval.var) = make_var((yyvsp[(1) - (1)].str)); ;} break; case 221: @@ -4181,32 +4172,32 @@ yyreduce: { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); ;} break; - case 223: + case 222: /* Line 1455 of yacc.c */ -#line 758 "parser.y" - { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[(2) - (2)].type)), -1); ;} +#line 757 "parser.y" + { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); ;} break; case 224: /* Line 1455 of yacc.c */ #line 759 "parser.y" - { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[(2) - (2)].type)), 1); ;} + { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[(2) - (2)].type)), -1); ;} break; case 225: /* Line 1455 of yacc.c */ #line 760 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT, 1); ;} + { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[(2) - (2)].type)), 1); ;} break; case 226: /* Line 1455 of yacc.c */ #line 761 "parser.y" - { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); ;} + { (yyval.type) = type_new_int(TYPE_BASIC_INT, 1); ;} break; case 227: @@ -4237,73 +4228,80 @@ yyreduce: { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); ;} break; - case 233: + case 231: /* Line 1455 of yacc.c */ -#line 772 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT, 0); ;} +#line 766 "parser.y" + { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); ;} break; case 234: /* Line 1455 of yacc.c */ #line 773 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT16, 0); ;} + { (yyval.type) = type_new_int(TYPE_BASIC_INT, 0); ;} break; case 235: /* Line 1455 of yacc.c */ #line 774 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT8, 0); ;} + { (yyval.type) = type_new_int(TYPE_BASIC_INT16, 0); ;} break; case 236: /* Line 1455 of yacc.c */ #line 775 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT32, 0); ;} + { (yyval.type) = type_new_int(TYPE_BASIC_INT8, 0); ;} break; case 237: /* Line 1455 of yacc.c */ #line 776 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_HYPER, 0); ;} + { (yyval.type) = type_new_int(TYPE_BASIC_INT32, 0); ;} break; case 238: /* Line 1455 of yacc.c */ #line 777 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT64, 0); ;} + { (yyval.type) = type_new_int(TYPE_BASIC_HYPER, 0); ;} break; case 239: /* Line 1455 of yacc.c */ #line 778 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_CHAR, 0); ;} + { (yyval.type) = type_new_int(TYPE_BASIC_INT64, 0); ;} break; case 240: /* Line 1455 of yacc.c */ #line 779 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT3264, 0); ;} + { (yyval.type) = type_new_int(TYPE_BASIC_CHAR, 0); ;} break; case 241: /* Line 1455 of yacc.c */ -#line 782 "parser.y" - { (yyval.type) = type_new_coclass((yyvsp[(2) - (2)].str)); ;} +#line 780 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_INT3264, 0); ;} break; case 242: /* Line 1455 of yacc.c */ #line 783 "parser.y" + { (yyval.type) = type_new_coclass((yyvsp[(2) - (2)].str)); ;} + break; + + case 243: + +/* Line 1455 of yacc.c */ +#line 784 "parser.y" { (yyval.type) = find_type((yyvsp[(2) - (2)].str), 0); if (type_get_type_detect_alias((yyval.type)) != TYPE_COCLASS) error_loc("%s was not declared a coclass at %s:%d\n", @@ -4312,49 +4310,42 @@ yyreduce: ;} break; - case 243: + case 244: /* Line 1455 of yacc.c */ -#line 791 "parser.y" +#line 792 "parser.y" { (yyval.type) = (yyvsp[(2) - (2)].type); check_def((yyval.type)); (yyval.type)->attrs = check_coclass_attrs((yyvsp[(2) - (2)].type)->name, (yyvsp[(1) - (2)].attr_list)); ;} break; - case 244: - -/* Line 1455 of yacc.c */ -#line 798 "parser.y" - { (yyval.type) = type_coclass_define((yyvsp[(1) - (5)].type), (yyvsp[(3) - (5)].ifref_list)); ;} - break; - case 245: /* Line 1455 of yacc.c */ -#line 801 "parser.y" - { (yyval.ifref_list) = NULL; ;} +#line 799 "parser.y" + { (yyval.type) = type_coclass_define((yyvsp[(1) - (5)].type), (yyvsp[(3) - (5)].ifref_list)); ;} break; case 246: /* Line 1455 of yacc.c */ #line 802 "parser.y" - { (yyval.ifref_list) = append_ifref( (yyvsp[(1) - (2)].ifref_list), (yyvsp[(2) - (2)].ifref) ); ;} + { (yyval.ifref_list) = NULL; ;} break; case 247: /* Line 1455 of yacc.c */ -#line 806 "parser.y" - { (yyval.ifref) = make_ifref((yyvsp[(2) - (2)].type)); (yyval.ifref)->attrs = (yyvsp[(1) - (2)].attr_list); ;} +#line 803 "parser.y" + { (yyval.ifref_list) = append_ifref( (yyvsp[(1) - (2)].ifref_list), (yyvsp[(2) - (2)].ifref) ); ;} break; case 248: /* Line 1455 of yacc.c */ -#line 809 "parser.y" - { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); ;} +#line 807 "parser.y" + { (yyval.ifref) = make_ifref((yyvsp[(2) - (2)].type)); (yyval.ifref)->attrs = (yyvsp[(1) - (2)].attr_list); ;} break; case 249: @@ -4367,7 +4358,14 @@ yyreduce: case 250: /* Line 1455 of yacc.c */ -#line 813 "parser.y" +#line 811 "parser.y" + { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); ;} + break; + + case 251: + +/* Line 1455 of yacc.c */ +#line 814 "parser.y" { attr_t *attrs; is_object_interface = TRUE; (yyval.type) = (yyvsp[(2) - (2)].type); @@ -4378,71 +4376,64 @@ yyreduce: ;} break; - case 251: - -/* Line 1455 of yacc.c */ -#line 823 "parser.y" - { (yyval.var_list) = NULL; ;} - break; - case 252: /* Line 1455 of yacc.c */ #line 824 "parser.y" - { (yyval.var_list) = append_var( (yyvsp[(1) - (3)].var_list), (yyvsp[(2) - (3)].var) ); ;} + { (yyval.var_list) = NULL; ;} break; case 253: /* Line 1455 of yacc.c */ -#line 827 "parser.y" - { (yyval.stmt_list) = NULL; ;} +#line 825 "parser.y" + { (yyval.var_list) = append_var( (yyvsp[(1) - (3)].var_list), (yyvsp[(2) - (3)].var) ); ;} break; case 254: /* Line 1455 of yacc.c */ #line 828 "parser.y" - { (yyval.stmt_list) = append_func( (yyvsp[(1) - (3)].stmt_list), (yyvsp[(2) - (3)].func) ); ;} + { (yyval.stmt_list) = NULL; ;} break; case 255: /* Line 1455 of yacc.c */ -#line 834 "parser.y" - { (yyval.type) = (yyvsp[(1) - (5)].type); - type_dispinterface_define((yyval.type), (yyvsp[(3) - (5)].var_list), (yyvsp[(4) - (5)].stmt_list)); - ;} +#line 829 "parser.y" + { (yyval.stmt_list) = append_func( (yyvsp[(1) - (3)].stmt_list), (yyvsp[(2) - (3)].func) ); ;} break; case 256: /* Line 1455 of yacc.c */ -#line 838 "parser.y" +#line 835 "parser.y" { (yyval.type) = (yyvsp[(1) - (5)].type); - type_dispinterface_define_from_iface((yyval.type), (yyvsp[(3) - (5)].type)); + type_dispinterface_define((yyval.type), (yyvsp[(3) - (5)].var_list), (yyvsp[(4) - (5)].stmt_list)); ;} break; case 257: /* Line 1455 of yacc.c */ -#line 843 "parser.y" - { (yyval.type) = NULL; ;} +#line 839 "parser.y" + { (yyval.type) = (yyvsp[(1) - (5)].type); + type_dispinterface_define_from_iface((yyval.type), (yyvsp[(3) - (5)].type)); + ;} break; case 258: /* Line 1455 of yacc.c */ #line 844 "parser.y" - { (yyval.type) = find_type_or_error2((yyvsp[(2) - (2)].str), 0); ;} + { (yyval.type) = NULL; ;} break; case 259: /* Line 1455 of yacc.c */ -#line 847 "parser.y" - { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); ;} +#line 845 "parser.y" + { (yyval.type) = find_type_or_error2((yyvsp[(2) - (2)].str), 0); is_object_interface = 1; ;} break; case 260: @@ -4455,49 +4446,49 @@ yyreduce: case 261: /* Line 1455 of yacc.c */ -#line 851 "parser.y" - { (yyval.ifinfo).interface = (yyvsp[(2) - (2)].type); - (yyval.ifinfo).old_pointer_default = pointer_default; - if (is_attr((yyvsp[(1) - (2)].attr_list), ATTR_POINTERDEFAULT)) - pointer_default = get_attrv((yyvsp[(1) - (2)].attr_list), ATTR_POINTERDEFAULT); - is_object_interface = is_object((yyvsp[(1) - (2)].attr_list)); - check_def((yyvsp[(2) - (2)].type)); - (yyvsp[(2) - (2)].type)->attrs = check_iface_attrs((yyvsp[(2) - (2)].type)->name, (yyvsp[(1) - (2)].attr_list)); - (yyvsp[(2) - (2)].type)->defined = TRUE; - ;} +#line 849 "parser.y" + { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); ;} break; case 262: /* Line 1455 of yacc.c */ -#line 863 "parser.y" - { (yyval.type) = (yyvsp[(1) - (6)].ifinfo).interface; - type_interface_define((yyval.type), (yyvsp[(2) - (6)].type), (yyvsp[(4) - (6)].stmt_list)); - pointer_default = (yyvsp[(1) - (6)].ifinfo).old_pointer_default; +#line 852 "parser.y" + { (yyval.ifinfo).interface = (yyvsp[(2) - (2)].type); + (yyval.ifinfo).old_pointer_default = pointer_default; + if (is_attr((yyvsp[(1) - (2)].attr_list), ATTR_POINTERDEFAULT)) + pointer_default = get_attrv((yyvsp[(1) - (2)].attr_list), ATTR_POINTERDEFAULT); + check_def((yyvsp[(2) - (2)].type)); + (yyvsp[(2) - (2)].type)->attrs = check_iface_attrs((yyvsp[(2) - (2)].type)->name, (yyvsp[(1) - (2)].attr_list)); + is_object_interface = is_object((yyvsp[(2) - (2)].type)); + (yyvsp[(2) - (2)].type)->defined = TRUE; ;} break; case 263: /* Line 1455 of yacc.c */ -#line 871 "parser.y" - { (yyval.type) = (yyvsp[(1) - (8)].ifinfo).interface; - type_interface_define((yyval.type), find_type_or_error2((yyvsp[(3) - (8)].str), 0), (yyvsp[(6) - (8)].stmt_list)); - pointer_default = (yyvsp[(1) - (8)].ifinfo).old_pointer_default; +#line 864 "parser.y" + { (yyval.type) = (yyvsp[(1) - (6)].ifinfo).interface; + type_interface_define((yyval.type), (yyvsp[(2) - (6)].type), (yyvsp[(4) - (6)].stmt_list)); + pointer_default = (yyvsp[(1) - (6)].ifinfo).old_pointer_default; ;} break; case 264: /* Line 1455 of yacc.c */ -#line 875 "parser.y" - { (yyval.type) = (yyvsp[(1) - (2)].type); ;} +#line 872 "parser.y" + { (yyval.type) = (yyvsp[(1) - (8)].ifinfo).interface; + type_interface_define((yyval.type), find_type_or_error2((yyvsp[(3) - (8)].str), 0), (yyvsp[(6) - (8)].stmt_list)); + pointer_default = (yyvsp[(1) - (8)].ifinfo).old_pointer_default; + ;} break; case 265: /* Line 1455 of yacc.c */ -#line 879 "parser.y" +#line 876 "parser.y" { (yyval.type) = (yyvsp[(1) - (2)].type); ;} break; @@ -4511,8 +4502,8 @@ yyreduce: case 267: /* Line 1455 of yacc.c */ -#line 883 "parser.y" - { (yyval.type) = type_new_module((yyvsp[(2) - (2)].str)); ;} +#line 881 "parser.y" + { (yyval.type) = (yyvsp[(1) - (2)].type); ;} break; case 268: @@ -4525,96 +4516,96 @@ yyreduce: case 269: /* Line 1455 of yacc.c */ -#line 887 "parser.y" - { (yyval.type) = (yyvsp[(2) - (2)].type); - (yyval.type)->attrs = check_module_attrs((yyvsp[(2) - (2)].type)->name, (yyvsp[(1) - (2)].attr_list)); - ;} +#line 885 "parser.y" + { (yyval.type) = type_new_module((yyvsp[(2) - (2)].str)); ;} break; case 270: /* Line 1455 of yacc.c */ -#line 893 "parser.y" - { (yyval.type) = (yyvsp[(1) - (5)].type); - type_module_define((yyval.type), (yyvsp[(3) - (5)].stmt_list)); +#line 888 "parser.y" + { (yyval.type) = (yyvsp[(2) - (2)].type); + (yyval.type)->attrs = check_module_attrs((yyvsp[(2) - (2)].type)->name, (yyvsp[(1) - (2)].attr_list)); ;} break; case 271: /* Line 1455 of yacc.c */ -#line 899 "parser.y" - { (yyval.stgclass) = STG_EXTERN; ;} +#line 894 "parser.y" + { (yyval.type) = (yyvsp[(1) - (5)].type); + type_module_define((yyval.type), (yyvsp[(3) - (5)].stmt_list)); + ;} break; case 272: /* Line 1455 of yacc.c */ #line 900 "parser.y" - { (yyval.stgclass) = STG_STATIC; ;} + { (yyval.stgclass) = STG_EXTERN; ;} break; case 273: /* Line 1455 of yacc.c */ #line 901 "parser.y" - { (yyval.stgclass) = STG_REGISTER; ;} + { (yyval.stgclass) = STG_STATIC; ;} break; case 274: /* Line 1455 of yacc.c */ -#line 905 "parser.y" - { (yyval.attr) = make_attr(ATTR_INLINE); ;} +#line 902 "parser.y" + { (yyval.stgclass) = STG_REGISTER; ;} break; case 275: /* Line 1455 of yacc.c */ -#line 909 "parser.y" - { (yyval.attr) = make_attr(ATTR_CONST); ;} +#line 906 "parser.y" + { (yyval.attr) = make_attr(ATTR_INLINE); ;} break; case 276: /* Line 1455 of yacc.c */ -#line 912 "parser.y" - { (yyval.attr_list) = NULL; ;} +#line 910 "parser.y" + { (yyval.attr) = make_attr(ATTR_CONST); ;} break; case 277: /* Line 1455 of yacc.c */ #line 913 "parser.y" - { (yyval.attr_list) = append_attr((yyvsp[(1) - (2)].attr_list), (yyvsp[(2) - (2)].attr)); ;} + { (yyval.attr_list) = NULL; ;} break; case 278: /* Line 1455 of yacc.c */ -#line 916 "parser.y" - { (yyval.declspec) = make_decl_spec((yyvsp[(1) - (2)].type), (yyvsp[(2) - (2)].declspec), NULL, NULL, STG_NONE); ;} +#line 914 "parser.y" + { (yyval.attr_list) = append_attr((yyvsp[(1) - (2)].attr_list), (yyvsp[(2) - (2)].attr)); ;} break; case 279: /* Line 1455 of yacc.c */ -#line 918 "parser.y" - { (yyval.declspec) = make_decl_spec((yyvsp[(2) - (3)].type), (yyvsp[(1) - (3)].declspec), (yyvsp[(3) - (3)].declspec), NULL, STG_NONE); ;} +#line 917 "parser.y" + { (yyval.declspec) = make_decl_spec((yyvsp[(1) - (2)].type), (yyvsp[(2) - (2)].declspec), NULL, NULL, STG_NONE); ;} break; case 280: /* Line 1455 of yacc.c */ -#line 921 "parser.y" - { (yyval.declspec) = NULL; ;} +#line 919 "parser.y" + { (yyval.declspec) = make_decl_spec((yyvsp[(2) - (3)].type), (yyvsp[(1) - (3)].declspec), (yyvsp[(3) - (3)].declspec), NULL, STG_NONE); ;} break; - case 282: + case 281: /* Line 1455 of yacc.c */ -#line 926 "parser.y" - { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[(2) - (2)].declspec), NULL, (yyvsp[(1) - (2)].attr), STG_NONE); ;} +#line 922 "parser.y" + { (yyval.declspec) = NULL; ;} break; case 283: @@ -4628,126 +4619,123 @@ yyreduce: /* Line 1455 of yacc.c */ #line 928 "parser.y" - { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[(2) - (2)].declspec), NULL, NULL, (yyvsp[(1) - (2)].stgclass)); ;} + { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[(2) - (2)].declspec), NULL, (yyvsp[(1) - (2)].attr), STG_NONE); ;} break; case 285: /* Line 1455 of yacc.c */ -#line 933 "parser.y" - { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); ;} +#line 929 "parser.y" + { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[(2) - (2)].declspec), NULL, NULL, (yyvsp[(1) - (2)].stgclass)); ;} break; case 286: /* Line 1455 of yacc.c */ #line 934 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); ;} + { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); ;} break; - case 288: + case 287: /* Line 1455 of yacc.c */ -#line 939 "parser.y" - { (yyval.declarator) = make_declarator((yyvsp[(1) - (1)].var)); ;} +#line 935 "parser.y" + { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); ;} break; case 289: /* Line 1455 of yacc.c */ #line 940 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (3)].declarator); ;} + { (yyval.declarator) = make_declarator((yyvsp[(1) - (1)].var)); ;} break; case 290: /* Line 1455 of yacc.c */ #line 941 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(2) - (2)].expr)); ;} + { (yyval.declarator) = (yyvsp[(2) - (3)].declarator); ;} break; case 291: /* Line 1455 of yacc.c */ #line 942 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (4)].declarator); - (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(3) - (4)].var_list))); - (yyval.declarator)->type = NULL; - ;} + { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(2) - (2)].expr)); ;} break; case 292: /* Line 1455 of yacc.c */ -#line 951 "parser.y" - { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); ;} +#line 943 "parser.y" + { (yyval.declarator) = (yyvsp[(1) - (4)].declarator); + (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(3) - (4)].var_list))); + (yyval.declarator)->type = NULL; + ;} break; case 293: /* Line 1455 of yacc.c */ #line 952 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); ;} + { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); ;} break; - case 295: + case 294: /* Line 1455 of yacc.c */ -#line 959 "parser.y" - { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); ;} +#line 953 "parser.y" + { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); ;} break; case 296: /* Line 1455 of yacc.c */ #line 960 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); ;} + { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); ;} break; case 297: /* Line 1455 of yacc.c */ -#line 964 "parser.y" - { (yyval.declarator) = make_declarator(NULL); ;} +#line 961 "parser.y" + { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); ;} break; - case 299: + case 298: /* Line 1455 of yacc.c */ -#line 970 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (3)].declarator); ;} +#line 965 "parser.y" + { (yyval.declarator) = make_declarator(NULL); ;} break; case 300: /* Line 1455 of yacc.c */ #line 971 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(2) - (2)].expr)); ;} + { (yyval.declarator) = (yyvsp[(2) - (3)].declarator); ;} break; case 301: /* Line 1455 of yacc.c */ #line 972 "parser.y" - { (yyval.declarator) = make_declarator(NULL); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(1) - (1)].expr)); ;} + { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(2) - (2)].expr)); ;} break; case 302: /* Line 1455 of yacc.c */ -#line 974 "parser.y" - { (yyval.declarator) = make_declarator(NULL); - (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(2) - (3)].var_list))); - (yyval.declarator)->type = NULL; - ;} +#line 973 "parser.y" + { (yyval.declarator) = make_declarator(NULL); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(1) - (1)].expr)); ;} break; case 303: /* Line 1455 of yacc.c */ -#line 979 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (4)].declarator); - (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(3) - (4)].var_list))); +#line 975 "parser.y" + { (yyval.declarator) = make_declarator(NULL); + (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(2) - (3)].var_list))); (yyval.declarator)->type = NULL; ;} break; @@ -4755,82 +4743,82 @@ yyreduce: case 304: /* Line 1455 of yacc.c */ -#line 988 "parser.y" - { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); ;} +#line 980 "parser.y" + { (yyval.declarator) = (yyvsp[(1) - (4)].declarator); + (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(3) - (4)].var_list))); + (yyval.declarator)->type = NULL; + ;} break; case 305: /* Line 1455 of yacc.c */ #line 989 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); ;} + { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); ;} break; - case 307: + case 306: /* Line 1455 of yacc.c */ -#line 996 "parser.y" - { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); ;} +#line 990 "parser.y" + { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); ;} break; case 308: /* Line 1455 of yacc.c */ #line 997 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); ;} + { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); ;} break; case 309: /* Line 1455 of yacc.c */ -#line 1001 "parser.y" - { (yyval.declarator) = make_declarator(NULL); ;} +#line 998 "parser.y" + { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); ;} break; - case 311: + case 310: /* Line 1455 of yacc.c */ -#line 1009 "parser.y" - { (yyval.declarator) = make_declarator((yyvsp[(1) - (1)].var)); ;} +#line 1002 "parser.y" + { (yyval.declarator) = make_declarator(NULL); ;} break; case 312: /* Line 1455 of yacc.c */ #line 1010 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (3)].declarator); ;} + { (yyval.declarator) = make_declarator((yyvsp[(1) - (1)].var)); ;} break; case 313: /* Line 1455 of yacc.c */ #line 1011 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(2) - (2)].expr)); ;} + { (yyval.declarator) = (yyvsp[(2) - (3)].declarator); ;} break; case 314: /* Line 1455 of yacc.c */ #line 1012 "parser.y" - { (yyval.declarator) = make_declarator(NULL); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(1) - (1)].expr)); ;} + { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(2) - (2)].expr)); ;} break; case 315: /* Line 1455 of yacc.c */ -#line 1014 "parser.y" - { (yyval.declarator) = make_declarator(NULL); - (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(2) - (3)].var_list))); - (yyval.declarator)->type = NULL; - ;} +#line 1013 "parser.y" + { (yyval.declarator) = make_declarator(NULL); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(1) - (1)].expr)); ;} break; case 316: /* Line 1455 of yacc.c */ -#line 1019 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (4)].declarator); - (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(3) - (4)].var_list))); +#line 1015 "parser.y" + { (yyval.declarator) = make_declarator(NULL); + (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(2) - (3)].var_list))); (yyval.declarator)->type = NULL; ;} break; @@ -4838,116 +4826,119 @@ yyreduce: case 317: /* Line 1455 of yacc.c */ -#line 1026 "parser.y" - { (yyval.declarator_list) = append_declarator( NULL, (yyvsp[(1) - (1)].declarator) ); ;} +#line 1020 "parser.y" + { (yyval.declarator) = (yyvsp[(1) - (4)].declarator); + (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(3) - (4)].var_list))); + (yyval.declarator)->type = NULL; + ;} break; case 318: /* Line 1455 of yacc.c */ #line 1027 "parser.y" - { (yyval.declarator_list) = append_declarator( (yyvsp[(1) - (3)].declarator_list), (yyvsp[(3) - (3)].declarator) ); ;} + { (yyval.declarator_list) = append_declarator( NULL, (yyvsp[(1) - (1)].declarator) ); ;} break; case 319: /* Line 1455 of yacc.c */ -#line 1030 "parser.y" - { (yyval.expr) = NULL; ;} +#line 1028 "parser.y" + { (yyval.declarator_list) = append_declarator( (yyvsp[(1) - (3)].declarator_list), (yyvsp[(3) - (3)].declarator) ); ;} break; case 320: /* Line 1455 of yacc.c */ #line 1031 "parser.y" - { (yyval.expr) = (yyvsp[(2) - (2)].expr); ;} + { (yyval.expr) = NULL; ;} break; case 321: /* Line 1455 of yacc.c */ -#line 1034 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->bits = (yyvsp[(2) - (2)].expr); - if (!(yyval.declarator)->bits && !(yyval.declarator)->var->name) - error_loc("unnamed fields are not allowed"); - ;} +#line 1032 "parser.y" + { (yyval.expr) = (yyvsp[(2) - (2)].expr); ;} break; case 322: /* Line 1455 of yacc.c */ -#line 1041 "parser.y" - { (yyval.declarator_list) = append_declarator( NULL, (yyvsp[(1) - (1)].declarator) ); ;} +#line 1035 "parser.y" + { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->bits = (yyvsp[(2) - (2)].expr); + if (!(yyval.declarator)->bits && !(yyval.declarator)->var->name) + error_loc("unnamed fields are not allowed\n"); + ;} break; case 323: /* Line 1455 of yacc.c */ -#line 1043 "parser.y" - { (yyval.declarator_list) = append_declarator( (yyvsp[(1) - (3)].declarator_list), (yyvsp[(3) - (3)].declarator) ); ;} +#line 1042 "parser.y" + { (yyval.declarator_list) = append_declarator( NULL, (yyvsp[(1) - (1)].declarator) ); ;} break; case 324: /* Line 1455 of yacc.c */ -#line 1047 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (1)].declarator); ;} +#line 1044 "parser.y" + { (yyval.declarator_list) = append_declarator( (yyvsp[(1) - (3)].declarator_list), (yyvsp[(3) - (3)].declarator) ); ;} break; case 325: /* Line 1455 of yacc.c */ #line 1048 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (3)].declarator); (yyvsp[(1) - (3)].declarator)->var->eval = (yyvsp[(3) - (3)].expr); ;} + { (yyval.declarator) = (yyvsp[(1) - (1)].declarator); ;} break; case 326: /* Line 1455 of yacc.c */ -#line 1052 "parser.y" - { (yyval.num) = RPC_FC_RP; ;} +#line 1049 "parser.y" + { (yyval.declarator) = (yyvsp[(1) - (3)].declarator); (yyvsp[(1) - (3)].declarator)->var->eval = (yyvsp[(3) - (3)].expr); ;} break; case 327: /* Line 1455 of yacc.c */ #line 1053 "parser.y" - { (yyval.num) = RPC_FC_UP; ;} + { (yyval.num) = RPC_FC_RP; ;} break; case 328: /* Line 1455 of yacc.c */ #line 1054 "parser.y" - { (yyval.num) = RPC_FC_FP; ;} + { (yyval.num) = RPC_FC_UP; ;} break; case 329: /* Line 1455 of yacc.c */ -#line 1057 "parser.y" - { (yyval.type) = type_new_struct((yyvsp[(2) - (5)].str), TRUE, (yyvsp[(4) - (5)].var_list)); ;} +#line 1055 "parser.y" + { (yyval.num) = RPC_FC_FP; ;} break; case 330: /* Line 1455 of yacc.c */ -#line 1060 "parser.y" - { (yyval.type) = type_new_void(); ;} +#line 1058 "parser.y" + { (yyval.type) = type_new_struct((yyvsp[(2) - (5)].str), TRUE, (yyvsp[(4) - (5)].var_list)); ;} break; case 331: /* Line 1455 of yacc.c */ #line 1061 "parser.y" - { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); ;} + { (yyval.type) = type_new_void(); ;} break; case 332: /* Line 1455 of yacc.c */ #line 1062 "parser.y" - { (yyval.type) = (yyvsp[(1) - (1)].type); ;} + { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); ;} break; case 333: @@ -4961,85 +4952,92 @@ yyreduce: /* Line 1455 of yacc.c */ #line 1064 "parser.y" - { (yyval.type) = type_new_enum((yyvsp[(2) - (2)].str), FALSE, NULL); ;} + { (yyval.type) = (yyvsp[(1) - (1)].type); ;} break; case 335: /* Line 1455 of yacc.c */ #line 1065 "parser.y" - { (yyval.type) = (yyvsp[(1) - (1)].type); ;} + { (yyval.type) = type_new_enum((yyvsp[(2) - (2)].str), FALSE, NULL); ;} break; case 336: /* Line 1455 of yacc.c */ #line 1066 "parser.y" - { (yyval.type) = type_new_struct((yyvsp[(2) - (2)].str), FALSE, NULL); ;} + { (yyval.type) = (yyvsp[(1) - (1)].type); ;} break; case 337: /* Line 1455 of yacc.c */ #line 1067 "parser.y" - { (yyval.type) = (yyvsp[(1) - (1)].type); ;} + { (yyval.type) = type_new_struct((yyvsp[(2) - (2)].str), FALSE, NULL); ;} break; case 338: /* Line 1455 of yacc.c */ #line 1068 "parser.y" - { (yyval.type) = type_new_nonencapsulated_union((yyvsp[(2) - (2)].str), FALSE, NULL); ;} + { (yyval.type) = (yyvsp[(1) - (1)].type); ;} break; case 339: /* Line 1455 of yacc.c */ #line 1069 "parser.y" - { (yyval.type) = make_safearray((yyvsp[(3) - (4)].type)); ;} + { (yyval.type) = type_new_nonencapsulated_union((yyvsp[(2) - (2)].str), FALSE, NULL); ;} break; case 340: /* Line 1455 of yacc.c */ -#line 1073 "parser.y" - { reg_typedefs((yyvsp[(3) - (4)].declspec), (yyvsp[(4) - (4)].declarator_list), check_typedef_attrs((yyvsp[(2) - (4)].attr_list))); - (yyval.statement) = make_statement_typedef((yyvsp[(4) - (4)].declarator_list)); - ;} +#line 1070 "parser.y" + { (yyval.type) = make_safearray((yyvsp[(3) - (4)].type)); ;} break; case 341: /* Line 1455 of yacc.c */ -#line 1079 "parser.y" - { (yyval.type) = type_new_nonencapsulated_union((yyvsp[(2) - (5)].str), TRUE, (yyvsp[(4) - (5)].var_list)); ;} +#line 1074 "parser.y" + { reg_typedefs((yyvsp[(3) - (4)].declspec), (yyvsp[(4) - (4)].declarator_list), check_typedef_attrs((yyvsp[(2) - (4)].attr_list))); + (yyval.statement) = make_statement_typedef((yyvsp[(4) - (4)].declarator_list)); + ;} break; case 342: /* Line 1455 of yacc.c */ -#line 1082 "parser.y" - { (yyval.type) = type_new_encapsulated_union((yyvsp[(2) - (10)].str), (yyvsp[(5) - (10)].var), (yyvsp[(7) - (10)].var), (yyvsp[(9) - (10)].var_list)); ;} +#line 1080 "parser.y" + { (yyval.type) = type_new_nonencapsulated_union((yyvsp[(2) - (5)].str), TRUE, (yyvsp[(4) - (5)].var_list)); ;} break; case 343: /* Line 1455 of yacc.c */ -#line 1086 "parser.y" - { (yyval.num) = MAKEVERSION((yyvsp[(1) - (1)].num), 0); ;} +#line 1083 "parser.y" + { (yyval.type) = type_new_encapsulated_union((yyvsp[(2) - (10)].str), (yyvsp[(5) - (10)].var), (yyvsp[(7) - (10)].var), (yyvsp[(9) - (10)].var_list)); ;} break; case 344: /* Line 1455 of yacc.c */ #line 1087 "parser.y" + { (yyval.num) = MAKEVERSION((yyvsp[(1) - (1)].num), 0); ;} + break; + + case 345: + +/* Line 1455 of yacc.c */ +#line 1088 "parser.y" { (yyval.num) = MAKEVERSION((yyvsp[(1) - (3)].num), (yyvsp[(3) - (3)].num)); ;} break; /* Line 1455 of yacc.c */ -#line 5043 "parser.tab.c" +#line 5041 "parser.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -5251,7 +5249,7 @@ yyreturn: /* Line 1675 of yacc.c */ -#line 1090 "parser.y" +#line 1091 "parser.y" static void decl_builtin_basic(const char *name, enum type_basic_type type) diff --git a/reactos/tools/widl/parser.tab.h b/reactos/tools/widl/parser.tab.h index 73f6993dbcc..1266e128b4a 100644 --- a/reactos/tools/widl/parser.tab.h +++ b/reactos/tools/widl/parser.tab.h @@ -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 */ diff --git a/reactos/tools/widl/parser.y b/reactos/tools/widl/parser.y index de44ab5626f..2af7742d172 100644 --- a/reactos/tools/widl/parser.y +++ b/reactos/tools/widl/parser.y @@ -186,7 +186,7 @@ static statement_list_t *append_statement(statement_list_t *list, statement_t *s %token aKNOWNTYPE %token aNUM aHEXNUM %token aDOUBLE -%token aSTRING aWSTRING +%token aSTRING aWSTRING aSQSTRING %token 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"); } ; diff --git a/reactos/tools/widl/parser.yy.c b/reactos/tools/widl/parser.yy.c index 9cb425c8573..2bf33f614bc 100644 --- a/reactos/tools/widl/parser.yy.c +++ b/reactos/tools/widl/parser.yy.c @@ -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 diff --git a/reactos/tools/widl/proxy.c b/reactos/tools/widl/proxy.c index cc753bbfcf2..30feca8dbe5 100644 --- a/reactos/tools/widl/proxy.c +++ b/reactos/tools/widl/proxy.c @@ -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; } } diff --git a/reactos/tools/widl/typegen.c b/reactos/tools/widl/typegen.c index fdb2379a070..c35020c90ad 100644 --- a/reactos/tools/widl/typegen.c +++ b/reactos/tools/widl/typegen.c @@ -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); diff --git a/reactos/tools/widl/widl.c b/reactos/tools/widl/widl.c index c1c3832df2c..8c76c24e08e 100644 --- a/reactos/tools/widl/widl.c +++ b/reactos/tools/widl/widl.c @@ -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; diff --git a/reactos/tools/widl/widltypes.h b/reactos/tools/widl/widltypes.h index f0afce4e6a5..9ee3b45882e 100644 --- a/reactos/tools/widl/widltypes.h +++ b/reactos/tools/widl/widltypes.h @@ -195,6 +195,7 @@ enum expr_type EXPR_POS, EXPR_STRLIT, EXPR_WSTRLIT, + EXPR_CHARCONST, }; enum type_kind