47 #define YYBISON_VERSION "3.1" 50 #define YYSKELETON_NAME "yacc.c" 63 #define yyparse cond_parse 64 #define yylex cond_lex 65 #define yyerror cond_error 66 #define yydebug cond_debug 67 #define yynerrs cond_nerrs 111 #include "msiserver.h" 113 #include "wine/unicode.h" 114 #include "wine/list.h" 182 if (
val.type != VALUE_INTEGER)
187 #line 188 "cond.tab.c" 190 # if defined __cplusplus && 201103L <= __cplusplus 191 # define YY_NULLPTR nullptr 193 # define YY_NULLPTR 0 198 #ifdef YYERROR_VERBOSE 199 # undef YYERROR_VERBOSE 200 # define YYERROR_VERBOSE 1 202 # define YYERROR_VERBOSE 0 211 extern int cond_debug;
261 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 273 #line 274 "cond.tab.c" 277 # define YYSTYPE_IS_TRIVIAL 1 278 # define YYSTYPE_IS_DECLARED 1 289 #line 290 "cond.tab.c" 320 # ifdef __SIZE_TYPE__ 321 # define YYSIZE_T __SIZE_TYPE__ 322 # elif defined size_t 323 # define YYSIZE_T size_t 324 # elif ! defined YYSIZE_T 326 # define YYSIZE_T size_t 328 # define YYSIZE_T unsigned 332 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) 335 # if defined YYENABLE_NLS && YYENABLE_NLS 337 # include <libintl.h> 338 # define YY_(Msgid) dgettext ("bison-runtime", Msgid) 342 # define YY_(Msgid) Msgid 347 # if (defined __GNUC__ \ 348 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ 349 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C 350 # define YY_ATTRIBUTE(Spec) __attribute__(Spec) 352 # define YY_ATTRIBUTE(Spec) 356 #ifndef YY_ATTRIBUTE_PURE 357 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) 360 #ifndef YY_ATTRIBUTE_UNUSED 361 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) 364 #if !defined _Noreturn \ 365 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) 366 # if defined _MSC_VER && 1200 <= _MSC_VER 367 # define _Noreturn __declspec (noreturn) 369 # define _Noreturn YY_ATTRIBUTE ((__noreturn__)) 374 #if ! defined lint || defined __GNUC__ 375 # define YYUSE(E) ((void) (E)) 380 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ 382 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ 383 _Pragma ("GCC diagnostic push") \ 384 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ 385 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 386 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ 387 _Pragma ("GCC diagnostic pop") 389 # define YY_INITIAL_VALUE(Value) Value 391 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 392 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 393 # define YY_IGNORE_MAYBE_UNINITIALIZED_END 395 #ifndef YY_INITIAL_VALUE 396 # define YY_INITIAL_VALUE(Value) 400 #if ! defined yyoverflow || YYERROR_VERBOSE 404 # ifdef YYSTACK_USE_ALLOCA 405 # if YYSTACK_USE_ALLOCA 407 # define YYSTACK_ALLOC __builtin_alloca 408 # elif defined __BUILTIN_VA_ARG_INCR 411 # define YYSTACK_ALLOC __alloca 412 # elif defined _MSC_VER 414 # define alloca _alloca 416 # define YYSTACK_ALLOC alloca 417 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS 420 # ifndef EXIT_SUCCESS 421 # define EXIT_SUCCESS 0 428 # ifdef YYSTACK_ALLOC 430 # define YYSTACK_FREE(Ptr) do { ; } while (0) 431 # ifndef YYSTACK_ALLOC_MAXIMUM 436 # define YYSTACK_ALLOC_MAXIMUM 4032 439 # define YYSTACK_ALLOC YYMALLOC 440 # define YYSTACK_FREE YYFREE 441 # ifndef YYSTACK_ALLOC_MAXIMUM 442 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 444 # if (defined __cplusplus && ! defined EXIT_SUCCESS \ 445 && ! ((defined YYMALLOC || defined malloc) \ 446 && (defined YYFREE || defined free))) 448 # ifndef EXIT_SUCCESS 449 # define EXIT_SUCCESS 0 453 # define YYMALLOC malloc 454 # if ! defined malloc && ! defined EXIT_SUCCESS 460 # if ! defined free && ! defined EXIT_SUCCESS 468 #if (! defined yyoverflow \ 469 && (! defined __cplusplus \ 470 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 480 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 484 # define YYSTACK_BYTES(N) \ 485 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ 486 + YYSTACK_GAP_MAXIMUM) 488 # define YYCOPY_NEEDED 1 495 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 498 YYSIZE_T yynewbytes; \ 499 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 500 Stack = &yyptr->Stack_alloc; \ 501 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 502 yyptr += yynewbytes / sizeof (*yyptr); \ 508 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED 512 # if defined __GNUC__ && 1 < __GNUC__ 513 # define YYCOPY(Dst, Src, Count) \ 514 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) 516 # define YYCOPY(Dst, Src, Count) \ 520 for (yyi = 0; yyi < (Count); yyi++) \ 521 (Dst)[yyi] = (Src)[yyi]; \ 545 #define YYMAXUTOK 295 547 #define YYTRANSLATE(YYX) \ 548 ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 554 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
555 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
556 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
557 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
558 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
559 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
560 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
561 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
562 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
563 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
564 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
565 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
566 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
567 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
568 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
569 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
570 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
571 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
572 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
573 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
574 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
575 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
576 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
577 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
578 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
579 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
580 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
581 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
582 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
583 35, 36, 37, 38, 39, 40
590 0, 149, 149, 155, 162, 166, 170, 174, 178, 185,
591 189, 196, 200, 208, 243, 251, 252, 253, 254, 255,
592 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
593 266, 267, 268, 272, 286, 301, 309, 319, 336, 353,
598 #if YYDEBUG || YYERROR_VERBOSE || 0 601 static const char *
const yytname[] =
603 "$end",
"error",
"$undefined",
"COND_SPACE",
"COND_EOF",
"COND_OR",
604 "COND_AND",
"COND_NOT",
"COND_XOR",
"COND_IMP",
"COND_EQV",
"COND_LT",
605 "COND_GT",
"COND_EQ",
"COND_NE",
"COND_GE",
"COND_LE",
"COND_ILT",
606 "COND_IGT",
"COND_IEQ",
"COND_INE",
"COND_IGE",
"COND_ILE",
"COND_LPAR",
607 "COND_RPAR",
"COND_TILDA",
"COND_SS",
"COND_ISS",
"COND_ILHS",
608 "COND_IRHS",
"COND_LHS",
"COND_RHS",
"COND_PERCENT",
"COND_DOLLARS",
609 "COND_QUESTION",
"COND_AMPER",
"COND_EXCLAM",
"COND_IDENT",
610 "COND_NUMBER",
"COND_LITER",
"COND_ERROR",
"$accept",
"condition",
611 "expression",
"boolean_term",
"boolean_factor",
"operator",
"value",
621 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
622 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
623 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
624 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
629 #define YYPACT_NINF -45 631 #define yypact_value_is_default(Yystate) \ 632 (!!((Yystate) == (-45))) 634 #define YYTABLE_NINF -1 636 #define yytable_value_is_error(Yytable_value) \ 643 -7, -7, -7, -36, -36, -36, -36, -36, -45, -45,
644 -45, 2, 5, 3, -45, 23, -45, -45, -2, -45,
645 -45, -45, -45, -45, -45, -7, -7, -7, -7, -7,
646 -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
647 -45, -45, -45, -45, -45, -45, -45, -45, 24, -45,
656 3, 0, 0, 0, 0, 0, 0, 0, 41, 36,
657 35, 0, 2, 4, 9, 12, 33, 11, 0, 34,
658 37, 38, 39, 40, 1, 0, 0, 0, 0, 0,
659 17, 18, 15, 16, 20, 19, 24, 25, 22, 23,
660 27, 26, 21, 28, 31, 32, 29, 30, 0, 14,
667 -45, -45, 9, 39, 4, -45, -44, 14
673 -1, 11, 12, 13, 14, 48, 15, 16
681 1, 8, 24, 25, 55, 17, 26, 27, 28, 29,
682 25, 18, 0, 26, 27, 28, 2, 19, 20, 21,
683 22, 23, 49, 0, 0, 3, 4, 5, 6, 7,
684 8, 9, 10, 54, 30, 31, 32, 33, 34, 35,
685 36, 37, 38, 39, 40, 41, 0, 0, 0, 42,
686 43, 44, 45, 46, 47, 0, 3, 4, 5, 6,
687 7, 8, 9, 10, 50, 51, 52, 53
692 7, 37, 0, 5, 48, 1, 8, 9, 10, 6,
693 5, 2, -1, 8, 9, 10, 23, 3, 4, 5,
694 6, 7, 24, -1, -1, 32, 33, 34, 35, 36,
695 37, 38, 39, 29, 11, 12, 13, 14, 15, 16,
696 17, 18, 19, 20, 21, 22, -1, -1, -1, 26,
697 27, 28, 29, 30, 31, -1, 32, 33, 34, 35,
698 36, 37, 38, 39, 25, 26, 27, 28
705 0, 7, 23, 32, 33, 34, 35, 36, 37, 38,
706 39, 42, 43, 44, 45, 47, 48, 45, 43, 48,
707 48, 48, 48, 48, 0, 5, 8, 9, 10, 6,
708 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
709 21, 22, 26, 27, 28, 29, 30, 31, 46, 24,
710 44, 44, 44, 44, 45, 47
716 0, 41, 42, 42, 43, 43, 43, 43, 43, 44,
717 44, 45, 45, 45, 45, 46, 46, 46, 46, 46,
718 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
719 46, 46, 46, 47, 47, 47, 47, 47, 47, 47,
726 0, 2, 1, 0, 1, 3, 3, 3, 3, 1,
727 3, 2, 1, 3, 3, 1, 1, 1, 1, 1,
728 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
729 1, 1, 1, 1, 2, 1, 1, 2, 2, 2,
734 #define yyerrok (yyerrstatus = 0) 735 #define yyclearin (yychar = YYEMPTY) 739 #define YYACCEPT goto yyacceptlab 740 #define YYABORT goto yyabortlab 741 #define YYERROR goto yyerrorlab 744 #define YYRECOVERING() (!!yyerrstatus) 746 #define YYBACKUP(Token, Value) \ 748 if (yychar == YYEMPTY) \ 752 YYPOPSTACK (yylen); \ 758 yyerror (info, YY_("syntax error: cannot back up")); \ 765 #define YYERRCODE 256 774 # define YYFPRINTF fprintf 777 # define YYDPRINTF(Args) \ 784 #ifndef YY_LOCATION_PRINT 785 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 789 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 793 YYFPRINTF (stderr, "%s ", Title); \ 794 yy_symbol_print (stderr, \ 795 Type, Value, info); \ 796 YYFPRINTF (stderr, "\n"); \ 808 FILE *yyo = yyoutput;
815 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
828 YYFPRINTF (yyoutput,
"%s %s (",
831 yy_symbol_value_print (yyoutput, yytype, yyvaluep,
info);
832 YYFPRINTF (yyoutput,
")");
843 YYFPRINTF (
stderr,
"Stack now");
844 for (; yybottom <= yytop; yybottom++)
846 int yybot = *yybottom;
847 YYFPRINTF (
stderr,
" %d", yybot);
852 # define YY_STACK_PRINT(Bottom, Top) \ 855 yy_stack_print ((Bottom), (Top)); \ 866 unsigned long yylno = yyrline[yyrule];
867 int yynrhs =
yyr2[yyrule];
869 YYFPRINTF (
stderr,
"Reducing stack by rule %d (line %lu):\n",
872 for (yyi = 0; yyi < yynrhs; yyi++)
874 YYFPRINTF (
stderr,
" $%d = ", yyi + 1);
876 yystos[yyssp[yyi + 1 - yynrhs]],
877 &(yyvsp[(yyi + 1) - (yynrhs)])
883 # define YY_REDUCE_PRINT(Rule) \ 886 yy_reduce_print (yyssp, yyvsp, Rule, info); \ 893 # define YYDPRINTF(Args) 894 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) 895 # define YY_STACK_PRINT(Bottom, Top) 896 # define YY_REDUCE_PRINT(Rule) 902 # define YYINITDEPTH 200 913 # define YYMAXDEPTH 10000 920 # if defined __GLIBC__ && defined _STRING_H 921 # define yystrlen strlen 928 for (yylen = 0; yystr[yylen]; yylen++)
936 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE 937 # define yystpcpy stpcpy 942 yystpcpy (
char *yydest,
const char *yysrc)
945 const char *yys = yysrc;
947 while ((*yyd++ = *yys++) !=
'\0')
964 yytnamerr (
char *yyres,
const char *yystr)
969 char const *yyp = yystr;
976 goto do_not_strip_quotes;
980 goto do_not_strip_quotes;
993 do_not_strip_quotes: ;
999 return yystpcpy (yyres, yystr) - yyres;
1017 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1021 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1051 int yyn =
yypact[*yyssp];
1052 yyarg[yycount++] =
yytname[yytoken];
1058 int yyxbegin = yyn < 0 ? -yyn : 0;
1060 int yychecklim =
YYLAST - yyn + 1;
1064 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1068 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1074 yyarg[yycount++] =
yytname[yyx];
1077 if (! (yysize <= yysize1
1088 # define YYCASE_(N, S) \ 1094 YYCASE_(1,
YY_(
"syntax error, unexpected %s"));
1095 YYCASE_(2,
YY_(
"syntax error, unexpected %s, expecting %s"));
1096 YYCASE_(3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
1097 YYCASE_(4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
1098 YYCASE_(5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1109 if (*yymsg_alloc < yysize)
1111 *yymsg_alloc = 2 * yysize;
1112 if (! (yysize <= *yymsg_alloc
1124 while ((*yyp = *yyformat) !=
'\0')
1125 if (*yyp ==
'%' && yyformat[1] ==
's' && yyi < yycount)
1215 char *yymsg = yymsgbuf;
1216 YYSIZE_T yymsg_alloc =
sizeof yymsgbuf;
1219 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) 1225 yyssp = yyss = yyssa;
1226 yyvsp = yyvs = yyvsa;
1248 if (yyss + yystacksize - 1 <= yyssp)
1251 YYSIZE_T yysize = yyssp - yyss + 1;
1265 yyoverflow (
YY_(
"memory exhausted"),
1266 &yyss1, yysize *
sizeof (*yyssp),
1267 &yyvs1, yysize *
sizeof (*yyvsp),
1274 # ifndef YYSTACK_RELOCATE 1275 goto yyexhaustedlab;
1279 goto yyexhaustedlab;
1289 goto yyexhaustedlab;
1292 # undef YYSTACK_RELOCATE 1299 yyssp = yyss + yysize - 1;
1300 yyvsp = yyvs + yysize - 1;
1303 (
unsigned long) yystacksize));
1305 if (yyss + yystacksize - 1 <= yyssp)
1407 yyval = yyvsp[1-yylen];
1417 cond->
result = (yyvsp[0].bool);
1419 #line 1420 "cond.tab.c" 1428 #line 1429 "cond.tab.c" 1434 (yyval.
bool) = (yyvsp[0].
bool);
1436 #line 1437 "cond.tab.c" 1442 (yyval.
bool) = (yyvsp[-2].
bool) || (yyvsp[0].bool);
1444 #line 1445 "cond.tab.c" 1450 (yyval.
bool) = !(yyvsp[-2].
bool) || (yyvsp[0].bool);
1452 #line 1453 "cond.tab.c" 1458 (yyval.
bool) = ( (yyvsp[-2].
bool) || (yyvsp[0].bool) ) && !( (yyvsp[-2].bool) && (yyvsp[0].
bool) );
1460 #line 1461 "cond.tab.c" 1466 (yyval.
bool) = ( (yyvsp[-2].
bool) && (yyvsp[0].bool) ) || ( !(yyvsp[-2].bool) && !(yyvsp[0].
bool) );
1468 #line 1469 "cond.tab.c" 1474 (yyval.
bool) = (yyvsp[0].
bool);
1476 #line 1477 "cond.tab.c" 1482 (yyval.
bool) = (yyvsp[-2].
bool) && (yyvsp[0].bool);
1484 #line 1485 "cond.tab.c" 1490 (yyval.
bool) = !(yyvsp[0].
bool);
1492 #line 1493 "cond.tab.c" 1498 if ((yyvsp[0].
value).type == VALUE_INTEGER)
1499 (yyval.
bool) = (yyvsp[0].value).
u.integer ? 1 : 0;
1501 (yyval.
bool) = (yyvsp[0].value).
u.string && (yyvsp[0].value).u.string[0];
1504 #line 1505 "cond.tab.c" 1510 if ((yyvsp[-2].
value).
type == VALUE_INTEGER && (yyvsp[0].
value).
type == VALUE_INTEGER)
1514 else if ((yyvsp[-2].
value).type != VALUE_INTEGER && (yyvsp[0].value).
type != VALUE_INTEGER)
1517 (yyvsp[-2].value).
type == VALUE_SYMBOL || (yyvsp[0].
value).type == VALUE_SYMBOL);
1519 else if ((yyvsp[-2].
value).type == VALUE_LITERAL || (yyvsp[0].value).
type == VALUE_LITERAL)
1523 else if ((yyvsp[-2].
value).type == VALUE_SYMBOL)
1543 #line 1544 "cond.tab.c" 1549 (yyval.
bool) = (yyvsp[-1].
bool);
1551 #line 1552 "cond.tab.c" 1557 #line 1558 "cond.tab.c" 1563 #line 1564 "cond.tab.c" 1569 #line 1570 "cond.tab.c" 1575 #line 1576 "cond.tab.c" 1581 #line 1582 "cond.tab.c" 1587 #line 1588 "cond.tab.c" 1593 #line 1594 "cond.tab.c" 1599 #line 1600 "cond.tab.c" 1605 #line 1606 "cond.tab.c" 1611 #line 1612 "cond.tab.c" 1617 #line 1618 "cond.tab.c" 1623 #line 1624 "cond.tab.c" 1629 #line 1630 "cond.tab.c" 1635 #line 1636 "cond.tab.c" 1641 #line 1642 "cond.tab.c" 1647 #line 1648 "cond.tab.c" 1653 #line 1654 "cond.tab.c" 1659 #line 1660 "cond.tab.c" 1670 if ((yyval.
value).u.string)
1677 #line 1678 "cond.tab.c" 1690 if( !(yyval.
value).u.string )
1696 #line 1697 "cond.tab.c" 1705 if( !(yyval.
value).u.string )
1708 #line 1709 "cond.tab.c" 1722 #line 1723 "cond.tab.c" 1743 #line 1744 "cond.tab.c" 1764 #line 1765 "cond.tab.c" 1785 #line 1786 "cond.tab.c" 1806 #line 1807 "cond.tab.c" 1817 #line 1818 "cond.tab.c" 1821 #line 1822 "cond.tab.c" 1850 if (0 <= yystate && yystate <=
YYLAST &&
yycheck[yystate] == *yyssp)
1870 #if ! YYERROR_VERBOSE 1873 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ 1876 char const *yymsgp =
YY_(
"syntax error");
1877 int yysyntax_error_status;
1879 if (yysyntax_error_status == 0)
1881 else if (yysyntax_error_status == 1)
1883 if (yymsg != yymsgbuf)
1889 yymsg_alloc =
sizeof yymsgbuf;
1890 yysyntax_error_status = 2;
1899 if (yysyntax_error_status == 2)
1900 goto yyexhaustedlab;
1902 # undef YYSYNTAX_ERROR 1908 if (yyerrstatus == 3)
2010 #if !defined yyoverflow || YYERROR_VERBOSE 2033 while (yyssp != yyss)
2044 if (yymsg != yymsgbuf)
2055 return( ( (
x >=
'A' ) && (
x <=
'Z' ) ) ||
2056 ( (
x >=
'a' ) && (
x <=
'z' ) ) ||
2062 return( ((
x >=
'0' ) && (
x <=
'9' )) || (
x ==
'-') || (
x ==
'.') );
2120 if (
r >
l)
return 0;
2127 if (
r >
l)
return 0;
2134 if (
r >
l)
return 0;
2141 if (
r >
l)
return 0;
2145 ERR(
"invalid substring operator\n");
2191 ERR(
"invalid string operator\n");
2222 return (
a &
b ) ? 1 : 0;
2224 return ( (
a & 0xffff ) ==
b ) ? 1 : 0;
2226 return ( ( (
a>>16) & 0xffff ) ==
b ) ? 1 : 0;
2228 ERR(
"invalid integer operator\n");
2238 || (
x ==
'#' ) || (
x ==
'.') );
2243 static const struct {
2285 str->data = &cond->
str[cond->
n];
2300 case '=': rc =
COND_EQ;
break;
2328 static const WCHAR szNot[] = {
'N',
'O',
'T',0};
2329 static const WCHAR szAnd[] = {
'A',
'N',
'D',0};
2330 static const WCHAR szXor[] = {
'X',
'O',
'R',0};
2331 static const WCHAR szEqv[] = {
'E',
'Q',
'V',0};
2332 static const WCHAR szImp[] = {
'I',
'M',
'P',0};
2333 static const WCHAR szOr[] = {
'O',
'R',0};
2363 ERR(
"Got unknown character %c(%x)\n",ch,ch);
2472 cond.
str = szCondition;
2488 WARN(
"condition parser failed to free up some memory: %p\n",
ptr );
2501 package = msihandle2msiinfo( hInstall, MSIHANDLETYPE_PACKAGE);
2509 if (!remote_package)
2515 IWineMsiRemotePackage_Release( remote_package );
2519 hr = IWineMsiRemotePackage_EvaluateCondition( remote_package,
condition );
2522 IWineMsiRemotePackage_Release( remote_package );
2546 if( szCondition && !szwCond )
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
static size_t double int int int * sign
static INT compare_int(INT a, INT operator, INT b)
static int COND_IsAlpha(WCHAR x)
static int COND_GetOne(struct cond_str *str, COND_input *cond)
static BOOL num_from_prop(LPCWSTR p, INT *val)
static int yysyntax_error(YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
#define LIST_FOR_EACH_SAFE(cursor, cursor2, list)
static const yytype_uint8 yystos[]
static const yytype_uint8 yydefact[]
WINE_UNICODE_INLINE unsigned int strlenW(const WCHAR *str)
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList
static INT compare_string(LPCWSTR a, INT operator, LPCWSTR b, BOOL convert)
static YYSIZE_T yystrlen(const char *yystr)
static WCHAR * strdupW(const WCHAR *src)
static void value_free(struct value val)
GLdouble GLdouble GLdouble r
WINE_UNICODE_INLINE WCHAR * strchrW(const WCHAR *str, WCHAR ch)
MSICONDITION WINAPI MsiEvaluateConditionW(MSIHANDLE hInstall, LPCWSTR szCondition)
#define yypact_value_is_default(Yystate)
static BOOL str_is_number(LPCWSTR str)
LPWSTR WINAPI CharLowerW(_Inout_ LPWSTR)
__WINE_SERVER_LIST_INLINE void list_add_head(struct list *list, struct list *elem)
static void * cond_alloc(COND_input *cond, unsigned int sz)
static const char *const yytname[]
GLint GLint GLint GLint GLint x
static const yytype_int8 yycheck[]
#define strncmpiW(s1, s2, n)
int cond_parse(COND_input *info)
#define yytable_value_is_error(Yytable_value)
WINE_UNICODE_INLINE int strncmpW(const WCHAR *str1, const WCHAR *str2, int n)
static int COND_IsNumber(WCHAR x)
static YYSIZE_T yytnamerr(char *yyres, const char *yystr)
static int COND_IsIdent(WCHAR x)
#define ERROR_FUNCTION_FAILED
#define HRESULT_FACILITY(hr)
MSICONDITION WINAPI MsiEvaluateConditionA(MSIHANDLE hInstall, LPCSTR szCondition)
BSTR WINAPI SysAllocString(LPCOLESTR str)
static WCHAR * strstriW(const WCHAR *str, const WCHAR *sub)
static LPWSTR COND_GetLiteral(COND_input *info, const struct cond_str *str)
#define YYSTACK_ALLOC_MAXIMUM
static int cond_error(COND_input *info, const char *str)
static const WCHAR szEmpty[]
#define YY_REDUCE_PRINT(Rule)
unsigned short yytype_uint16
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
GLboolean GLboolean GLboolean b
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
unsigned short yytype_uint16
static const yytype_uint8 yytable[]
static void yydestruct(const char *yymsg, int yytype, YYSTYPE *yyvaluep, COND_input *info)
struct tag_yyinput COND_input
static const yytype_uint8 yyr2[]
WINE_DEFAULT_DEBUG_CHANNEL(msi)
unsigned char yytype_uint8
int msiobj_release(MSIOBJECTHDR *info)
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
enum value::value_type type
static const yytype_uint8 yytranslate[]
#define YY_STACK_PRINT(Bottom, Top)
#define memcpy(s1, s2, n)
static void cond_free(void *ptr)
static const yytype_int8 yypgoto[]
static char * yystpcpy(char *yydest, const char *yysrc)
static const yytype_int8 yydefgoto[]
static LPWSTR COND_GetString(COND_input *info, const struct cond_str *str)
static void * cond_track_mem(COND_input *cond, void *ptr, unsigned int sz)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
static int COND_GetOperator(COND_input *cond)
WINE_UNICODE_INLINE int isdigitW(WCHAR wc)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
static const yytype_uint8 yyr1[]
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
static BOOL msi_free(void *mem)
static int cond_lex(void *COND_lval, COND_input *info)
WINE_UNICODE_INLINE int strcmpW(const WCHAR *str1, const WCHAR *str2)
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
MSICONDITION MSI_EvaluateConditionW(MSIPACKAGE *package, LPCWSTR szCondition)
static void * msi_alloc(size_t len) __WINE_ALLOC_SIZE(1)
#define YY_INITIAL_VALUE(Value)
IUnknown * msi_get_remote(MSIHANDLE handle)
static const yytype_int8 yypact[]
GLuint GLuint GLsizei GLenum type
GLboolean GLboolean GLboolean GLboolean a
UINT MSI_GetComponentStateW(MSIPACKAGE *package, LPCWSTR szComponent, INSTALLSTATE *piInstalled, INSTALLSTATE *piAction)
#define GetEnvironmentVariableW(x, y, z)
static WCHAR * strdupAtoW(const char *str)
UINT MSI_GetFeatureStateW(MSIPACKAGE *package, LPCWSTR szFeature, INSTALLSTATE *piInstalled, INSTALLSTATE *piAction)
unsigned char yytype_uint8
#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
WINE_UNICODE_INLINE int atoiW(const WCHAR *str)
static INT compare_substring(LPCWSTR a, INT operator, LPCWSTR b)
LPWSTR msi_dup_property(MSIDATABASE *db, LPCWSTR prop) DECLSPEC_HIDDEN