📄 msi_ros.diff
字号:
+ break;
+
+ case 19:
+#line 230 "./cond.y"
+ {
+ yyval.fn_comp_int = comp_lt_i;
+ ;}
+ break;
+
+ case 20:
+#line 234 "./cond.y"
+ {
+ yyval.fn_comp_int = comp_gt_i;
+ ;}
+ break;
+
+ case 21:
+#line 238 "./cond.y"
+ {
+ yyval.fn_comp_int = comp_le_i;
+ ;}
+ break;
+
+ case 22:
+#line 242 "./cond.y"
+ {
+ yyval.fn_comp_int = comp_ge_i;
+ ;}
+ break;
+
+ case 23:
+#line 247 "./cond.y"
+ {
+ yyval.fn_comp_int = comp_bitand;
+ ;}
+ break;
+
+ case 24:
+#line 251 "./cond.y"
+ {
+ yyval.fn_comp_int = comp_highcomp;
+ ;}
+ break;
+
+ case 25:
+#line 255 "./cond.y"
+ {
+ yyval.fn_comp_int = comp_lowcomp;
+ ;}
+ break;
+
+ case 26:
+#line 263 "./cond.y"
+ {
+ yyval.fn_comp_str = comp_eq_s;
+ ;}
+ break;
+
+ case 27:
+#line 267 "./cond.y"
+ {
+ yyval.fn_comp_str = comp_ne_s;
+ ;}
+ break;
+
+ case 28:
+#line 271 "./cond.y"
+ {
+ yyval.fn_comp_str = comp_lt_s;
+ ;}
+ break;
+
+ case 29:
+#line 275 "./cond.y"
+ {
+ yyval.fn_comp_str = comp_gt_s;
+ ;}
+ break;
+
+ case 30:
+#line 279 "./cond.y"
+ {
+ yyval.fn_comp_str = comp_le_s;
+ ;}
+ break;
+
+ case 31:
+#line 283 "./cond.y"
+ {
+ yyval.fn_comp_str = comp_ge_s;
+ ;}
+ break;
+
+ case 32:
+#line 288 "./cond.y"
+ {
+ yyval.fn_comp_str = comp_substring;
+ ;}
+ break;
+
+ case 33:
+#line 292 "./cond.y"
+ {
+ yyval.fn_comp_str = comp_start;
+ ;}
+ break;
+
+ case 34:
+#line 296 "./cond.y"
+ {
+ yyval.fn_comp_str = comp_end;
+ ;}
+ break;
+
+ case 35:
+#line 304 "./cond.y"
+ {
+ yyval.fn_comp_m1 = comp_eq_m1;
+ ;}
+ break;
+
+ case 36:
+#line 308 "./cond.y"
+ {
+ yyval.fn_comp_m1 = comp_ne_m1;
+ ;}
+ break;
+
+ case 37:
+#line 312 "./cond.y"
+ {
+ yyval.fn_comp_m1 = comp_lt_m1;
+ ;}
+ break;
+
+ case 38:
+#line 316 "./cond.y"
+ {
+ yyval.fn_comp_m1 = comp_gt_m1;
+ ;}
+ break;
+
+ case 39:
+#line 320 "./cond.y"
+ {
+ yyval.fn_comp_m1 = comp_le_m1;
+ ;}
+ break;
+
+ case 40:
+#line 324 "./cond.y"
+ {
+ yyval.fn_comp_m1 = comp_ge_m1;
+ ;}
+ break;
+
+ case 41:
+#line 329 "./cond.y"
+ {
+ yyval.fn_comp_m1 = 0;
+ ;}
+ break;
+
+ case 42:
+#line 333 "./cond.y"
+ {
+ yyval.fn_comp_m1 = 0;
+ ;}
+ break;
+
+ case 43:
+#line 337 "./cond.y"
+ {
+ yyval.fn_comp_m1 = 0;
+ ;}
+ break;
+
+ case 44:
+#line 345 "./cond.y"
+ {
+ yyval.fn_comp_m2 = comp_eq_m2;
+ ;}
+ break;
+
+ case 45:
+#line 349 "./cond.y"
+ {
+ yyval.fn_comp_m2 = comp_ne_m2;
+ ;}
+ break;
+
+ case 46:
+#line 353 "./cond.y"
+ {
+ yyval.fn_comp_m2 = comp_lt_m2;
+ ;}
+ break;
+
+ case 47:
+#line 357 "./cond.y"
+ {
+ yyval.fn_comp_m2 = comp_gt_m2;
+ ;}
+ break;
+
+ case 48:
+#line 361 "./cond.y"
+ {
+ yyval.fn_comp_m2 = comp_le_m2;
+ ;}
+ break;
+
+ case 49:
+#line 365 "./cond.y"
+ {
+ yyval.fn_comp_m2 = comp_ge_m2;
+ ;}
+ break;
+
+ case 50:
+#line 370 "./cond.y"
+ {
+ yyval.fn_comp_m2 = 0;
+ ;}
+ break;
+
+ case 51:
+#line 374 "./cond.y"
+ {
+ yyval.fn_comp_m2 = 0;
+ ;}
+ break;
+
+ case 52:
+#line 378 "./cond.y"
+ {
+ yyval.fn_comp_m2 = 0;
+ ;}
+ break;
+
+ case 53:
+#line 385 "./cond.y"
+ {
+ yyval.value = yyvsp[0].value;
+ ;}
+ break;
+
+ case 54:
+#line 389 "./cond.y"
+ {
+ yyval.value = yyvsp[0].value;
+ ;}
+ break;
+
+ case 55:
+#line 396 "./cond.y"
+ {
+ yyval.string = yyvsp[0].string;
+ ;}
+ break;
+
+ case 56:
+#line 400 "./cond.y"
+ {
+ yyval.string = yyvsp[0].string;
+ ;}
+ break;
+
+ case 57:
+#line 407 "./cond.y"
+ {
+ yyval.string = COND_GetLiteral(&yyvsp[0].str);
+ if( !yyval.string )
+ YYABORT;
+ ;}
+ break;
+
+ case 58:
+#line 416 "./cond.y"
+ {
+ COND_input* cond = (COND_input*) info;
+ INSTALLSTATE install = INSTALLSTATE_UNKNOWN, action = INSTALLSTATE_UNKNOWN;
+
+ MSI_GetComponentStateW(cond->package, yyvsp[0].string, &install, &action );
+ yyval.value = action;
+ msi_free( yyvsp[0].string );
+ ;}
+ break;
+
+ case 59:
+#line 425 "./cond.y"
+ {
+ COND_input* cond = (COND_input*) info;
+ INSTALLSTATE install = INSTALLSTATE_UNKNOWN, action = INSTALLSTATE_UNKNOWN;
+
+ MSI_GetComponentStateW(cond->package, yyvsp[0].string, &install, &action );
+ yyval.value = install;
+ msi_free( yyvsp[0].string );
+ ;}
+ break;
+
+ case 60:
+#line 434 "./cond.y"
+ {
+ COND_input* cond = (COND_input*) info;
+ INSTALLSTATE install = INSTALLSTATE_UNKNOWN, action = INSTALLSTATE_UNKNOWN;
+
+ MSI_GetFeatureStateW(cond->package, yyvsp[0].string, &install, &action );
+ yyval.value = action;
+ msi_free( yyvsp[0].string );
+ ;}
+ break;
+
+ case 61:
+#line 443 "./cond.y"
+ {
+ COND_input* cond = (COND_input*) info;
+ INSTALLSTATE install = INSTALLSTATE_UNKNOWN, action = INSTALLSTATE_UNKNOWN;
+
+ MSI_GetFeatureStateW(cond->package, yyvsp[0].string, &install, &action );
+ yyval.value = install;
+ msi_free( yyvsp[0].string );
+ ;}
+ break;
+
+ case 62:
+#line 455 "./cond.y"
+ {
+ DWORD sz;
+ COND_input* cond = (COND_input*) info;
+
+ sz = 0;
+ MSI_GetPropertyW(cond->package, yyvsp[0].string, NULL, &sz);
+ if (sz == 0)
+ {
+ yyval.string = msi_alloc( sizeof(WCHAR));
+ yyval.string[0] = 0;
+ }
+ else
+ {
+ sz ++;
+ yyval.string = msi_alloc( sz*sizeof (WCHAR) );
+
+ /* Lookup the identifier */
+
+ MSI_GetPropertyW(cond->package,yyvsp[0].string,yyval.string,&sz);
+ }
+ msi_free( yyvsp[0].string );
+ ;}
+ break;
+
+ case 63:
+#line 478 "./cond.y"
+ {
+ UINT len = GetEnvironmentVariableW( yyvsp[0].string, NULL, 0 );
+ if( len++ )
+ {
+ yyval.string = msi_alloc( len*sizeof (WCHAR) );
+ if( yyval.string )
+ GetEnvironmentVariableW( yyvsp[0].string, yyval.string, len );
+ }
+ msi_free( yyvsp[0].string );
+ ;}
+ break;
+
+ case 64:
+#line 492 "./cond.y"
+ {
+ yyval.string = COND_GetString(&yyvsp[0].str);
+ if( !yyval.string )
+ YYABORT;
+ ;}
+ break;
+
+ case 65:
+#line 501 "./cond.y"
+ {
+ LPWSTR szNum = COND_GetString(&yyvsp[0].str);
+ if( !szNum )
+ YYABORT;
+ yyval.value = atoiW( szNum );
+ msi_free( szNum );
+ ;}
+ break;
+
+
+ }
+
+/* Line 1000 of yacc.c. */
+#line 1733 "cond.tab.c"
+
+ yyvsp -= yylen;
+ yyssp -= yylen;
+
+
+ YY_STACK_PRINT (yyss, yyssp);
+
+ *++yyvsp = yyval;
+
+
+ /* Now `shift' the result of the reduction. Determine what state
+ that goes to, based on the state we popped back to and the rule
+ number reduced by. */
+
+ yyn = yyr1[yyn];
+
+ yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+ if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+ yystate = yytable[yystate];
+ else
+ yystate = yydefgoto[yyn - YYNTOKENS];
+
+ goto yynewstate;
+
+
+/*------------------------------------.
+| yyerrlab -- here on detecting error |
+`------------------------------------*/
+yyerrlab:
+ /* If not already recovering from an error, report this error. */
+ if (!yyerrstatus)
+ {
+ ++yynerrs;
+#if YYERROR_VERBOSE
+ yyn = yypact[yystate];
+
+ if (YYPACT_NINF < yyn && yyn < YYLAST)
+ {
+ YYSIZE_T yysize = 0;
+ int yytype = YYTRANSLATE (yychar);
+ const char* yyprefix;
+ char *yymsg;
+ int yyx;
+
+ /* Start YYX at -YYN if negative to avoid negative indexes in
+ YYCHECK. */
+ int yyxbegin = yyn < 0 ? -yyn : 0;
+
+ /* Stay within bounds of both yycheck and yytname. */
+ int yychecklim = YYLAST - yyn;
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+ int yycount = 0;
+
+ yyprefix = ", expecting ";
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+ {
+ yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
+ yycount += 1;
+ if (yycount == 5)
+ {
+ yysize = 0;
+ break;
+ }
+ }
+ yysize += (sizeof ("syntax error, unexpected ")
+ + yystrlen (yytname[yytype]));
+ yymsg = (char *) YYSTACK_ALLOC (yysize);
+ if (yymsg != 0)
+ {
+ char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -