diff --git a/libyara/grammar.c b/libyara/grammar.c index c56aa6365f..111e3410ff 100644 --- a/libyara/grammar.c +++ b/libyara/grammar.c @@ -878,16 +878,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 476 +#define YYLAST 480 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 84 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 54 /* YYNRULES -- Number of rules. */ -#define YYNRULES 168 +#define YYNRULES 169 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 275 +#define YYNSTATES 276 /* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 319 @@ -942,23 +942,23 @@ static const yytype_int8 yytranslate[] = /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { - 0, 362, 362, 363, 364, 365, 366, 367, 368, 376, - 389, 394, 388, 425, 428, 444, 447, 462, 470, 471, - 476, 477, 483, 486, 502, 511, 553, 554, 559, 576, - 590, 604, 618, 636, 637, 643, 642, 659, 658, 679, - 678, 703, 709, 769, 770, 771, 772, 773, 774, 780, - 801, 832, 837, 854, 859, 879, 880, 894, 895, 896, - 897, 898, 902, 903, 917, 921, 1017, 1065, 1126, 1171, - 1172, 1176, 1211, 1264, 1319, 1350, 1357, 1364, 1377, 1388, - 1399, 1410, 1421, 1432, 1443, 1454, 1469, 1485, 1497, 1572, - 1610, 1514, 1739, 1762, 1774, 1802, 1821, 1844, 1892, 1899, - 1906, 1905, 1952, 1951, 2002, 2010, 2018, 2026, 2034, 2042, - 2050, 2054, 2062, 2063, 2088, 2108, 2136, 2210, 2242, 2260, - 2271, 2314, 2330, 2350, 2360, 2359, 2368, 2382, 2383, 2388, - 2398, 2413, 2412, 2425, 2426, 2431, 2464, 2489, 2545, 2552, - 2558, 2564, 2574, 2578, 2586, 2598, 2612, 2619, 2626, 2651, - 2663, 2675, 2687, 2702, 2714, 2729, 2772, 2793, 2828, 2863, - 2897, 2922, 2939, 2949, 2959, 2969, 2979, 2999, 3019 + 0, 362, 362, 363, 364, 365, 366, 367, 368, 372, + 380, 393, 398, 392, 429, 432, 448, 451, 466, 474, + 475, 480, 481, 487, 490, 506, 515, 557, 558, 563, + 580, 594, 608, 622, 640, 641, 647, 646, 663, 662, + 683, 682, 707, 713, 773, 774, 775, 776, 777, 778, + 784, 805, 836, 841, 858, 863, 883, 884, 898, 899, + 900, 901, 902, 906, 907, 921, 925, 1021, 1069, 1130, + 1175, 1176, 1180, 1215, 1268, 1323, 1354, 1361, 1368, 1381, + 1392, 1403, 1414, 1425, 1436, 1447, 1458, 1473, 1489, 1501, + 1576, 1614, 1518, 1743, 1766, 1778, 1806, 1825, 1848, 1896, + 1903, 1910, 1909, 1956, 1955, 2006, 2014, 2022, 2030, 2038, + 2046, 2054, 2058, 2066, 2067, 2092, 2112, 2140, 2214, 2246, + 2264, 2275, 2318, 2334, 2354, 2364, 2363, 2372, 2386, 2387, + 2392, 2402, 2417, 2416, 2429, 2430, 2435, 2468, 2493, 2549, + 2556, 2562, 2568, 2578, 2582, 2590, 2602, 2616, 2623, 2630, + 2655, 2667, 2679, 2691, 2706, 2718, 2733, 2776, 2797, 2832, + 2867, 2901, 2926, 2943, 2953, 2963, 2973, 2983, 3003, 3023 }; #endif @@ -1014,12 +1014,12 @@ yysymbol_name (yysymbol_kind_t yysymbol) } #endif -#define YYPACT_NINF (-172) +#define YYPACT_NINF (-170) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF (-138) +#define YYTABLE_NINF (-139) #define yytable_value_is_error(Yyn) \ 0 @@ -1028,34 +1028,34 @@ yysymbol_name (yysymbol_kind_t yysymbol) STATE-NUM. */ static const yytype_int16 yypact[] = { - -172, 121, -172, -39, -172, 2, -172, -172, 151, -172, - -172, -172, -172, 24, -172, -172, -172, -172, -38, 59, - 16, -172, 65, 95, -172, 29, 109, 112, 55, -172, - 71, 112, -172, 130, 163, 22, -172, 101, 130, -172, - 116, 118, -172, -172, -172, -172, 178, -5, -172, 66, - -172, -172, 177, 174, 179, -172, -16, 162, 120, 123, - -172, -172, 124, -172, -172, -172, -172, -172, -172, -172, - 132, -172, -172, 66, 66, 198, 198, 66, 103, -172, - 110, -172, 168, -172, 277, -172, -172, -172, 198, 129, - 129, 198, 198, 198, 198, 7, 376, -172, -172, -172, - -172, 110, 140, 237, 66, 197, 198, -172, -172, -35, - 199, 198, 198, 198, 198, 198, 198, 198, 198, 198, - 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, - 198, 198, 198, 157, 85, 111, 216, 376, 198, -172, - -172, 186, 287, 319, 338, -172, -4, 198, -172, -172, - 144, 142, 139, -172, 297, 66, 66, -172, 215, -15, - -172, -172, 376, 376, 376, 376, 376, 376, 376, 376, - 376, 376, 376, 376, 376, 26, 26, 386, 396, 406, - 117, 117, -172, -172, -35, -172, -172, -172, -172, 149, - 153, 154, -172, -172, -172, -172, -172, -172, -172, -172, - -172, -172, -172, 176, -172, -172, -172, -172, -33, 158, - 4, -172, 66, -172, 181, -172, 20, 225, 198, 129, - -172, -172, 240, 238, 239, 198, -172, -172, -172, -172, - -9, 249, 139, -172, -172, 46, -172, 193, 53, -172, - 376, -172, -48, 183, 184, 357, 188, 198, 103, -172, - -172, -172, -172, -172, 20, -172, -172, 225, 247, -172, - -172, -172, -172, 66, 76, 176, -172, -172, 191, 23, - -172, 198, -172, -172, 376 + -170, 32, -170, 28, -170, 0, -170, -170, 137, -170, + -170, -170, -170, -170, 11, -170, -170, -170, -170, -40, + 59, 1, -170, 83, 91, -170, 39, 99, 106, 53, + -170, 46, 106, -170, 122, 127, 54, -170, 71, 122, + -170, 74, 77, -170, -170, -170, -170, 148, 118, -170, + 78, -170, -170, 134, 158, 165, -170, 42, 131, 110, + 119, -170, -170, 121, -170, -170, -170, -170, -170, -170, + -170, 144, -170, -170, 78, 78, 212, 212, 78, 55, + -170, 95, -170, 166, -170, 291, -170, -170, -170, 212, + 130, 130, 212, 212, 212, 212, 7, 390, -170, -170, + -170, -170, 95, 125, 251, 78, 194, 212, -170, -170, + -35, 187, 212, 212, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 212, 170, 145, 96, 204, 390, 212, + -170, -170, 199, 301, 333, 352, -170, 68, 212, -170, + -170, 149, 141, 146, -170, 311, 78, 78, -170, 222, + 47, -170, -170, 390, 390, 390, 390, 390, 390, 390, + 390, 390, 390, 390, 390, 390, 18, 18, 400, 151, + 410, 126, 126, -170, -170, -35, -170, -170, -170, -170, + 157, 160, 161, -170, -170, -170, -170, -170, -170, -170, + -170, -170, -170, -170, 189, -170, -170, -170, -170, -33, + 164, -2, -170, 78, -170, 184, -170, -3, 231, 212, + 130, -170, -170, 228, 226, 227, 212, -170, -170, -170, + -170, -9, 238, 146, -170, -170, -62, -170, 202, 35, + -170, 390, -170, -60, 192, 193, 371, 195, 212, 55, + -170, -170, -170, -170, -170, -3, -170, -170, 231, 257, + -170, -170, -170, -170, 78, 43, 189, -170, -170, 196, + -37, -170, 212, -170, -170, 390 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1063,56 +1063,56 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 0, 1, 18, 8, 0, 4, 3, 0, 7, - 6, 5, 9, 0, 20, 21, 19, 10, 22, 0, - 0, 24, 23, 13, 25, 0, 15, 0, 0, 11, - 0, 14, 26, 0, 0, 0, 27, 0, 16, 33, - 0, 0, 29, 28, 31, 32, 0, 35, 34, 0, - 12, 30, 0, 0, 0, 65, 85, 150, 152, 154, - 146, 147, 0, 148, 73, 143, 144, 139, 140, 141, - 0, 75, 76, 0, 0, 0, 0, 0, 155, 168, - 17, 74, 0, 138, 110, 41, 55, 62, 0, 0, - 0, 0, 0, 0, 0, 0, 137, 98, 99, 156, - 165, 0, 74, 110, 69, 0, 0, 102, 100, 0, + 2, 0, 1, 19, 8, 0, 4, 3, 0, 9, + 7, 6, 5, 10, 0, 21, 22, 20, 11, 23, + 0, 0, 25, 24, 14, 26, 0, 16, 0, 0, + 12, 0, 15, 27, 0, 0, 0, 28, 0, 17, + 34, 0, 0, 30, 29, 32, 33, 0, 36, 35, + 0, 13, 31, 0, 0, 0, 66, 86, 151, 153, + 155, 147, 148, 0, 149, 74, 144, 145, 140, 141, + 142, 0, 76, 77, 0, 0, 0, 0, 0, 156, + 169, 18, 75, 0, 139, 111, 42, 56, 63, 0, + 0, 0, 0, 0, 0, 0, 0, 138, 99, 100, + 157, 166, 0, 75, 111, 70, 0, 0, 103, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 36, 38, 40, 86, 0, 87, - 149, 0, 0, 0, 0, 88, 0, 0, 111, 142, - 0, 70, 71, 66, 0, 0, 0, 126, 124, 92, - 93, 77, 78, 80, 82, 79, 81, 83, 84, 108, - 109, 104, 106, 105, 107, 166, 167, 164, 162, 163, - 157, 158, 159, 160, 0, 161, 47, 44, 43, 48, - 51, 53, 45, 46, 42, 61, 58, 57, 59, 60, - 56, 64, 63, 0, 151, 153, 145, 114, 0, 0, - 0, 68, 0, 67, 103, 101, 0, 0, 0, 0, - 94, 95, 0, 0, 0, 0, 124, 113, 123, 90, - 0, 0, 72, 129, 130, 0, 127, 135, 0, 133, - 97, 96, 0, 0, 0, 0, 0, 0, 116, 112, - 117, 119, 115, 125, 0, 136, 132, 0, 0, 49, - 52, 54, 120, 0, 0, 121, 128, 134, 0, 0, - 118, 0, 50, 91, 122 + 0, 0, 0, 0, 0, 37, 39, 41, 87, 0, + 88, 150, 0, 0, 0, 0, 89, 0, 0, 112, + 143, 0, 71, 72, 67, 0, 0, 0, 127, 125, + 93, 94, 78, 79, 81, 83, 80, 82, 84, 85, + 109, 110, 105, 107, 106, 108, 167, 168, 165, 163, + 164, 158, 159, 160, 161, 0, 162, 48, 45, 44, + 49, 52, 54, 46, 47, 43, 62, 59, 58, 60, + 61, 57, 65, 64, 0, 152, 154, 146, 115, 0, + 0, 0, 69, 0, 68, 104, 102, 0, 0, 0, + 0, 95, 96, 0, 0, 0, 0, 125, 114, 124, + 91, 0, 0, 73, 130, 131, 0, 128, 136, 0, + 134, 98, 97, 0, 0, 0, 0, 0, 0, 117, + 113, 118, 120, 116, 126, 0, 137, 133, 0, 0, + 50, 53, 55, 121, 0, 0, 122, 129, 135, 0, + 0, 119, 0, 51, 92, 123 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -172, -172, 264, 268, -172, -172, -172, -172, -172, -172, - -172, -172, -172, -172, 241, -172, 235, -172, -172, -172, - -172, -172, -172, -172, -172, -172, 45, -172, -172, 175, - -49, -74, -172, -172, -172, -172, -172, -172, -172, -172, - -89, -172, -172, -171, -172, -172, 32, 104, -172, -172, - 30, 219, -172, -65 + -170, -170, 273, 274, -170, -170, -170, -170, -170, -170, + -170, -170, -170, -170, 246, -170, 241, -170, -170, -170, + -170, -170, -170, -170, -170, -170, 51, -170, -170, 173, + -50, -75, -170, -170, -170, -170, -170, -170, -170, -170, + -90, -170, -170, -169, -170, -170, 30, 101, -170, -170, + 29, 218, -170, -66 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - 0, 1, 6, 7, 18, 34, 26, 29, 41, 8, - 16, 20, 22, 31, 32, 38, 39, 52, 53, 54, - 134, 194, 135, 200, 136, 202, 78, 150, 151, 79, - 101, 81, 146, 246, 156, 155, 209, 210, 249, 250, - 139, 264, 227, 159, 216, 235, 236, 160, 217, 238, - 239, 82, 83, 84 + 0, 1, 6, 7, 19, 35, 27, 30, 42, 8, + 17, 21, 23, 32, 33, 39, 40, 53, 54, 55, + 135, 195, 136, 201, 137, 203, 79, 151, 152, 80, + 102, 82, 147, 247, 157, 156, 210, 211, 250, 251, + 140, 265, 228, 160, 217, 236, 237, 161, 218, 239, + 240, 83, 84, 85 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1120,184 +1120,186 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 80, 140, 55, 102, 157, 96, 157, 207, 145, 5, - 99, 100, 103, 220, 88, 218, -39, -37, -89, 258, - 89, 219, 12, 137, 97, 98, 141, 142, 143, 144, - 152, 259, 233, 208, 9, 17, 234, 228, 19, 42, - 230, 154, 43, 158, -89, 226, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 185, 247, - 21, 44, 45, 203, 107, 108, 24, 55, 56, 57, - 58, 59, 185, 60, 61, 62, 63, 231, 64, 46, - 23, 186, 129, 130, 131, 132, 147, 65, 66, 67, - 68, 69, 273, 25, 70, 27, 214, 215, 187, 188, - 189, 190, 191, 192, 193, 71, 72, 195, 28, 73, - 74, 2, 3, 30, 4, 253, -18, -18, -18, 254, - 241, 33, 256, 75, 196, 197, 257, 76, 232, 198, - 199, 251, 37, 55, 77, 57, 58, 59, 35, 60, - 61, 62, 63, 240, 64, 270, 13, 14, 15, 271, - 245, 107, 108, 65, 66, 67, 68, 69, 55, 5, - 57, 58, 59, 40, 60, 61, 62, 63, 47, 64, - 225, 104, 265, 105, 106, 131, 132, 147, 65, 66, - -74, -74, 49, 50, 184, 51, 86, 85, 90, 75, - 87, 91, 93, 76, 92, 109, 274, 138, 153, 55, - 94, 57, 58, 59, 269, 60, 61, 62, 63, 148, - 64, 64, 201, 211, 75, 212, -131, 222, 76, 65, - 66, 223, 224, 108, 229, 94, 237, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 147, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 147, 242, 243, 244, - 252, 255, 260, 261, 268, 75, 263, 10, 204, 76, - 272, 11, 36, 48, -137, 248, 94, 110, 111, 112, - 113, 114, 115, 116, 117, 161, 266, 267, 221, 95, - 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 0, 0, - 0, 0, 0, 0, -137, 0, 149, 110, 111, 112, - 113, 114, 115, 116, 117, 0, 0, 0, 0, 0, - 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 147, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 147, 0, 205, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 147, - 0, 0, 0, 0, 0, 0, 0, 0, 206, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 147, 0, - 0, 0, 0, 0, 0, 0, 0, 149, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 147, 0, 0, - 0, 0, 0, 0, 0, 0, 262, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 147, 124, 125, 0, - 127, 128, 129, 130, 131, 132, 147, 124, 125, 0, - 0, 128, 129, 130, 131, 132, 147, 124, 125, 0, - 0, 0, 129, 130, 131, 132, 147 + 81, 141, 56, 103, 158, 97, 158, 259, 146, 234, + 100, 101, 104, 235, 108, 109, 221, 254, -90, 260, + 13, 255, 18, 138, 98, 99, 142, 143, 144, 145, + 153, 9, 2, 3, 231, 4, 20, -19, -19, -19, + 229, 155, 274, 159, -90, 227, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 186, 248, + 22, 43, 89, 204, 44, 24, 5, 219, 90, 208, + 5, 232, 186, 220, 130, 131, 132, 133, 148, 56, + 57, 58, 59, 60, 25, 61, 62, 63, 64, 26, + 65, 10, 196, 45, 46, 209, 215, 216, 29, 66, + 67, 68, 69, 70, 257, 28, 71, 31, 258, 197, + 198, 47, 271, 36, 199, 200, 272, 72, 73, 34, + 242, 74, 75, 105, 38, 106, 107, 41, 233, -40, + -38, 252, 14, 15, 16, 76, 108, 109, 48, 77, + 50, 187, 51, 241, 86, 56, 78, 58, 59, 60, + 246, 61, 62, 63, 64, 52, 65, 91, 188, 189, + 190, 191, 192, 193, 194, 66, 67, 68, 69, 70, + 87, 56, 266, 58, 59, 60, 88, 61, 62, 63, + 64, 92, 65, 226, 132, 133, 148, -75, -75, 94, + 93, 66, 67, 110, 149, 154, 275, 185, 139, 65, + 202, 76, 125, 126, 270, 77, 129, 130, 131, 132, + 133, 148, 95, 56, 213, 58, 59, 60, 212, 61, + 62, 63, 64, -132, 65, 223, 109, 76, 224, 225, + 230, 77, 238, 66, 67, 243, 244, 245, 95, 253, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 148, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 148, + 256, 261, 262, 264, 269, 273, 11, 12, 37, 76, + 49, 205, 249, 77, 162, 267, 222, 268, -138, 96, + 95, 111, 112, 113, 114, 115, 116, 117, 118, 0, + 0, 0, 0, 0, 0, 0, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 0, 0, 0, 0, 0, 0, -138, 0, + 150, 111, 112, 113, 114, 115, 116, 117, 118, 0, + 0, 0, 0, 0, 0, 0, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 148, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 148, 0, 206, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 214, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 148, 0, 0, 0, 0, 0, 0, + 0, 0, 207, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 148, 0, 0, 0, 0, 0, 0, 0, + 0, 150, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 148, 0, 0, 0, 0, 0, 0, 0, 0, + 263, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 148, 125, 126, 0, 128, 129, 130, 131, 132, 133, + 148, 125, 126, 0, 0, 0, 130, 131, 132, 133, + 148 }; static const yytype_int16 yycheck[] = { - 49, 90, 11, 77, 39, 70, 39, 11, 1, 48, - 75, 76, 77, 184, 30, 30, 21, 22, 11, 67, - 36, 36, 20, 88, 73, 74, 91, 92, 93, 94, - 104, 79, 12, 37, 73, 11, 16, 208, 76, 17, - 36, 106, 20, 78, 37, 78, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 78, - 11, 49, 50, 138, 51, 52, 11, 11, 12, 13, - 14, 15, 147, 17, 18, 19, 20, 83, 22, 67, - 74, 6, 66, 67, 68, 69, 70, 31, 32, 33, - 34, 35, 79, 8, 38, 76, 155, 156, 23, 24, - 25, 26, 27, 28, 29, 49, 50, 6, 9, 53, - 54, 0, 1, 11, 3, 79, 5, 6, 7, 83, - 219, 76, 79, 67, 23, 24, 83, 71, 212, 28, - 29, 230, 12, 11, 78, 13, 14, 15, 77, 17, - 18, 19, 20, 218, 22, 79, 5, 6, 7, 83, - 225, 51, 52, 31, 32, 33, 34, 35, 11, 48, - 13, 14, 15, 10, 17, 18, 19, 20, 77, 22, - 4, 78, 247, 80, 81, 68, 69, 70, 31, 32, - 51, 52, 76, 75, 37, 17, 22, 20, 36, 67, - 21, 81, 78, 71, 81, 37, 271, 78, 11, 11, - 78, 13, 14, 15, 263, 17, 18, 19, 20, 79, - 22, 22, 6, 79, 67, 83, 11, 78, 71, 31, - 32, 78, 78, 52, 76, 78, 11, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 17, 20, 20, - 11, 68, 79, 79, 17, 67, 78, 3, 82, 71, - 79, 3, 31, 38, 37, 230, 78, 40, 41, 42, - 43, 44, 45, 46, 47, 110, 254, 257, 184, 70, - -1, -1, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, -1, -1, - -1, -1, -1, -1, 37, -1, 79, 40, 41, 42, - 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, - -1, -1, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, -1, 82, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, + 50, 91, 11, 78, 39, 71, 39, 67, 1, 12, + 76, 77, 78, 16, 51, 52, 185, 79, 11, 79, + 20, 83, 11, 89, 74, 75, 92, 93, 94, 95, + 105, 3, 0, 1, 36, 3, 76, 5, 6, 7, + 209, 107, 79, 78, 37, 78, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 78, + 11, 17, 30, 139, 20, 74, 48, 30, 36, 11, + 48, 83, 148, 36, 66, 67, 68, 69, 70, 11, + 12, 13, 14, 15, 11, 17, 18, 19, 20, 8, + 22, 73, 6, 49, 50, 37, 156, 157, 9, 31, + 32, 33, 34, 35, 79, 76, 38, 11, 83, 23, + 24, 67, 79, 77, 28, 29, 83, 49, 50, 76, + 220, 53, 54, 78, 12, 80, 81, 10, 213, 21, + 22, 231, 5, 6, 7, 67, 51, 52, 77, 71, + 76, 6, 75, 219, 20, 11, 78, 13, 14, 15, + 226, 17, 18, 19, 20, 17, 22, 36, 23, 24, + 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, + 22, 11, 248, 13, 14, 15, 21, 17, 18, 19, + 20, 81, 22, 4, 68, 69, 70, 51, 52, 78, + 81, 31, 32, 37, 79, 11, 272, 37, 78, 22, + 6, 67, 61, 62, 264, 71, 65, 66, 67, 68, + 69, 70, 78, 11, 83, 13, 14, 15, 79, 17, + 18, 19, 20, 11, 22, 78, 52, 67, 78, 78, + 76, 71, 11, 31, 32, 17, 20, 20, 78, 11, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - -1, -1, -1, -1, -1, -1, -1, -1, 79, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, -1, - -1, -1, -1, -1, -1, -1, -1, 79, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, -1, -1, - -1, -1, -1, -1, -1, -1, 79, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 61, 62, -1, - 64, 65, 66, 67, 68, 69, 70, 61, 62, -1, - -1, 65, 66, 67, 68, 69, 70, 61, 62, -1, - -1, -1, 66, 67, 68, 69, 70 + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 68, 79, 79, 78, 17, 79, 3, 3, 32, 67, + 39, 82, 231, 71, 111, 255, 185, 258, 37, 71, + 78, 40, 41, 42, 43, 44, 45, 46, 47, -1, + -1, -1, -1, -1, -1, -1, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, -1, -1, -1, -1, -1, -1, 37, -1, + 79, 40, 41, 42, 43, 44, 45, 46, 47, -1, + -1, -1, -1, -1, -1, -1, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, -1, 82, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 82, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, -1, -1, -1, -1, -1, -1, + -1, -1, 79, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, -1, -1, -1, -1, -1, -1, -1, + -1, 79, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, + 79, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 61, 62, -1, 64, 65, 66, 67, 68, 69, + 70, 61, 62, -1, -1, -1, 66, 67, 68, 69, + 70 }; /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 85, 0, 1, 3, 48, 86, 87, 93, 73, - 86, 87, 20, 5, 6, 7, 94, 11, 88, 76, - 95, 11, 96, 74, 11, 8, 90, 76, 9, 91, - 11, 97, 98, 76, 89, 77, 98, 12, 99, 100, - 10, 92, 17, 20, 49, 50, 67, 77, 100, 76, - 75, 17, 101, 102, 103, 11, 12, 13, 14, 15, - 17, 18, 19, 20, 22, 31, 32, 33, 34, 35, - 38, 49, 50, 53, 54, 67, 71, 78, 110, 113, - 114, 115, 135, 136, 137, 20, 22, 21, 30, 36, - 36, 81, 81, 78, 78, 135, 137, 114, 114, 137, - 137, 114, 115, 137, 78, 80, 81, 51, 52, 37, - 40, 41, 42, 43, 44, 45, 46, 47, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 104, 106, 108, 137, 78, 124, - 124, 137, 137, 137, 137, 1, 116, 70, 79, 79, - 111, 112, 115, 11, 137, 119, 118, 39, 78, 127, - 131, 113, 137, 137, 137, 137, 137, 137, 137, 137, + 0, 85, 0, 1, 3, 48, 86, 87, 93, 3, + 73, 86, 87, 20, 5, 6, 7, 94, 11, 88, + 76, 95, 11, 96, 74, 11, 8, 90, 76, 9, + 91, 11, 97, 98, 76, 89, 77, 98, 12, 99, + 100, 10, 92, 17, 20, 49, 50, 67, 77, 100, + 76, 75, 17, 101, 102, 103, 11, 12, 13, 14, + 15, 17, 18, 19, 20, 22, 31, 32, 33, 34, + 35, 38, 49, 50, 53, 54, 67, 71, 78, 110, + 113, 114, 115, 135, 136, 137, 20, 22, 21, 30, + 36, 36, 81, 81, 78, 78, 135, 137, 114, 114, + 137, 137, 114, 115, 137, 78, 80, 81, 51, 52, + 37, 40, 41, 42, 43, 44, 45, 46, 47, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 104, 106, 108, 137, 78, + 124, 124, 137, 137, 137, 137, 1, 116, 70, 79, + 79, 111, 112, 115, 11, 137, 119, 118, 39, 78, + 127, 131, 113, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 37, 137, 6, 23, 24, 25, - 26, 27, 28, 29, 105, 6, 23, 24, 28, 29, - 107, 6, 109, 137, 82, 82, 79, 11, 37, 120, - 121, 79, 83, 82, 114, 114, 128, 132, 30, 36, - 127, 131, 78, 78, 78, 4, 78, 126, 127, 76, - 36, 83, 115, 12, 16, 129, 130, 11, 133, 134, - 137, 124, 17, 20, 20, 137, 117, 78, 110, 122, - 123, 124, 11, 79, 83, 68, 79, 83, 67, 79, - 79, 79, 79, 78, 125, 137, 130, 134, 17, 114, - 79, 83, 79, 79, 137 + 137, 137, 137, 137, 137, 37, 137, 6, 23, 24, + 25, 26, 27, 28, 29, 105, 6, 23, 24, 28, + 29, 107, 6, 109, 137, 82, 82, 79, 11, 37, + 120, 121, 79, 83, 82, 114, 114, 128, 132, 30, + 36, 127, 131, 78, 78, 78, 4, 78, 126, 127, + 76, 36, 83, 115, 12, 16, 129, 130, 11, 133, + 134, 137, 124, 17, 20, 20, 137, 117, 78, 110, + 122, 123, 124, 11, 79, 83, 68, 79, 83, 67, + 79, 79, 79, 79, 78, 125, 137, 130, 134, 17, + 114, 79, 83, 79, 79, 137 }; /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ static const yytype_uint8 yyr1[] = { - 0, 84, 85, 85, 85, 85, 85, 85, 85, 86, - 88, 89, 87, 90, 90, 91, 91, 92, 93, 93, - 94, 94, 95, 95, 96, 96, 97, 97, 98, 98, - 98, 98, 98, 99, 99, 101, 100, 102, 100, 103, - 100, 104, 104, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 106, 106, 107, 107, 107, - 107, 107, 108, 108, 109, 110, 110, 110, 110, 111, - 111, 112, 112, 113, 114, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 116, - 117, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 118, 115, 119, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 120, 120, 121, 121, 122, 122, 123, 123, - 124, 125, 125, 126, 128, 127, 127, 129, 129, 130, - 130, 132, 131, 133, 133, 134, 134, 135, 135, 136, - 136, 136, 137, 137, 137, 137, 137, 137, 137, 137, + 0, 84, 85, 85, 85, 85, 85, 85, 85, 85, + 86, 88, 89, 87, 90, 90, 91, 91, 92, 93, + 93, 94, 94, 95, 95, 96, 96, 97, 97, 98, + 98, 98, 98, 98, 99, 99, 101, 100, 102, 100, + 103, 100, 104, 104, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 106, 106, 107, 107, + 107, 107, 107, 108, 108, 109, 110, 110, 110, 110, + 111, 111, 112, 112, 113, 114, 115, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 116, 117, 115, 115, 115, 115, 115, 115, 115, 115, + 115, 118, 115, 119, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 120, 120, 121, 121, 122, 122, 123, + 123, 124, 125, 125, 126, 128, 127, 127, 129, 129, + 130, 130, 132, 131, 133, 133, 134, 134, 135, 135, + 136, 136, 136, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137 + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137 }; /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ static const yytype_int8 yyr2[] = { - 0, 2, 0, 2, 2, 3, 3, 3, 2, 2, - 0, 0, 11, 0, 3, 0, 3, 3, 0, 2, - 1, 1, 0, 2, 1, 2, 1, 2, 3, 3, - 4, 3, 3, 1, 2, 0, 5, 0, 5, 0, - 5, 0, 2, 1, 1, 1, 1, 1, 1, 4, - 6, 1, 4, 1, 4, 0, 2, 1, 1, 1, - 1, 1, 0, 2, 1, 1, 3, 4, 4, 0, - 1, 1, 3, 1, 1, 1, 1, 3, 3, 3, - 3, 3, 3, 3, 3, 1, 3, 3, 3, 0, - 0, 9, 3, 3, 4, 4, 5, 5, 2, 2, - 0, 4, 0, 4, 3, 3, 3, 3, 3, 3, - 1, 3, 3, 2, 1, 3, 1, 1, 3, 1, - 5, 1, 3, 1, 0, 4, 1, 1, 3, 1, - 1, 0, 4, 1, 3, 1, 2, 1, 1, 1, - 1, 1, 3, 1, 1, 4, 1, 1, 1, 3, - 1, 4, 1, 4, 1, 1, 2, 3, 3, 3, - 3, 3, 3, 3, 3, 2, 3, 3, 1 + 0, 2, 0, 2, 2, 3, 3, 3, 2, 3, + 2, 0, 0, 11, 0, 3, 0, 3, 3, 0, + 2, 1, 1, 0, 2, 1, 2, 1, 2, 3, + 3, 4, 3, 3, 1, 2, 0, 5, 0, 5, + 0, 5, 0, 2, 1, 1, 1, 1, 1, 1, + 4, 6, 1, 4, 1, 4, 0, 2, 1, 1, + 1, 1, 1, 0, 2, 1, 1, 3, 4, 4, + 0, 1, 1, 3, 1, 1, 1, 1, 3, 3, + 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, + 0, 0, 9, 3, 3, 4, 4, 5, 5, 2, + 2, 0, 4, 0, 4, 3, 3, 3, 3, 3, + 3, 1, 3, 3, 2, 1, 3, 1, 1, 3, + 1, 5, 1, 3, 1, 0, 4, 1, 1, 3, + 1, 1, 0, 4, 1, 3, 1, 2, 1, 1, + 1, 1, 1, 3, 1, 1, 4, 1, 1, 1, + 3, 1, 4, 1, 4, 1, 1, 2, 3, 3, + 3, 3, 3, 3, 3, 3, 2, 3, 3, 1 }; @@ -1774,55 +1776,55 @@ yydestruct (const char *yymsg, case YYSYMBOL__IDENTIFIER_: /* "identifier" */ #line 313 "libyara/grammar.y" { yr_free(((*yyvaluep).c_string)); ((*yyvaluep).c_string) = NULL; } -#line 1778 "libyara/grammar.c" +#line 1780 "libyara/grammar.c" break; case YYSYMBOL__STRING_IDENTIFIER_: /* "string identifier" */ #line 317 "libyara/grammar.y" { yr_free(((*yyvaluep).c_string)); ((*yyvaluep).c_string) = NULL; } -#line 1784 "libyara/grammar.c" +#line 1786 "libyara/grammar.c" break; case YYSYMBOL__STRING_COUNT_: /* "string count" */ #line 314 "libyara/grammar.y" { yr_free(((*yyvaluep).c_string)); ((*yyvaluep).c_string) = NULL; } -#line 1790 "libyara/grammar.c" +#line 1792 "libyara/grammar.c" break; case YYSYMBOL__STRING_OFFSET_: /* "string offset" */ #line 315 "libyara/grammar.y" { yr_free(((*yyvaluep).c_string)); ((*yyvaluep).c_string) = NULL; } -#line 1796 "libyara/grammar.c" +#line 1798 "libyara/grammar.c" break; case YYSYMBOL__STRING_LENGTH_: /* "string length" */ #line 316 "libyara/grammar.y" { yr_free(((*yyvaluep).c_string)); ((*yyvaluep).c_string) = NULL; } -#line 1802 "libyara/grammar.c" +#line 1804 "libyara/grammar.c" break; case YYSYMBOL__STRING_IDENTIFIER_WITH_WILDCARD_: /* "string identifier with wildcard" */ #line 318 "libyara/grammar.y" { yr_free(((*yyvaluep).c_string)); ((*yyvaluep).c_string) = NULL; } -#line 1808 "libyara/grammar.c" +#line 1810 "libyara/grammar.c" break; case YYSYMBOL__TEXT_STRING_: /* "text string" */ #line 319 "libyara/grammar.y" { yr_free(((*yyvaluep).sized_string)); ((*yyvaluep).sized_string) = NULL; } -#line 1814 "libyara/grammar.c" +#line 1816 "libyara/grammar.c" break; case YYSYMBOL__HEX_STRING_: /* "hex string" */ #line 320 "libyara/grammar.y" { yr_free(((*yyvaluep).sized_string)); ((*yyvaluep).sized_string) = NULL; } -#line 1820 "libyara/grammar.c" +#line 1822 "libyara/grammar.c" break; case YYSYMBOL__REGEXP_: /* "regular expression" */ #line 321 "libyara/grammar.y" { yr_free(((*yyvaluep).sized_string)); ((*yyvaluep).sized_string) = NULL; } -#line 1826 "libyara/grammar.c" +#line 1828 "libyara/grammar.c" break; case YYSYMBOL_string_modifiers: /* string_modifiers */ @@ -1834,7 +1836,7 @@ yydestruct (const char *yymsg, ((*yyvaluep).modifier).alphabet = NULL; } } -#line 1838 "libyara/grammar.c" +#line 1840 "libyara/grammar.c" break; case YYSYMBOL_string_modifier: /* string_modifier */ @@ -1846,19 +1848,19 @@ yydestruct (const char *yymsg, ((*yyvaluep).modifier).alphabet = NULL; } } -#line 1850 "libyara/grammar.c" +#line 1852 "libyara/grammar.c" break; case YYSYMBOL_arguments: /* arguments */ #line 323 "libyara/grammar.y" { yr_free(((*yyvaluep).c_string)); ((*yyvaluep).c_string) = NULL; } -#line 1856 "libyara/grammar.c" +#line 1858 "libyara/grammar.c" break; case YYSYMBOL_arguments_list: /* arguments_list */ #line 324 "libyara/grammar.y" { yr_free(((*yyvaluep).c_string)); ((*yyvaluep).c_string) = NULL; } -#line 1862 "libyara/grammar.c" +#line 1864 "libyara/grammar.c" break; default: @@ -2139,11 +2141,19 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); { _yr_compiler_pop_file_name(compiler); } -#line 2143 "libyara/grammar.c" +#line 2145 "libyara/grammar.c" + break; + + case 9: /* rules: rules error "end of included file" */ +#line 373 "libyara/grammar.y" + { + _yr_compiler_pop_file_name(compiler); + } +#line 2153 "libyara/grammar.c" break; - case 9: /* import: "" "text string" */ -#line 377 "libyara/grammar.y" + case 10: /* import: "" "text string" */ +#line 381 "libyara/grammar.y" { int result = yr_parser_reduce_import(yyscanner, (yyvsp[0].sized_string)); @@ -2151,20 +2161,20 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(result); } -#line 2155 "libyara/grammar.c" +#line 2165 "libyara/grammar.c" break; - case 10: /* @1: %empty */ -#line 389 "libyara/grammar.y" + case 11: /* @1: %empty */ +#line 393 "libyara/grammar.y" { fail_if_error(yr_parser_reduce_rule_declaration_phase_1( yyscanner, (int32_t) (yyvsp[-2].integer), (yyvsp[0].c_string), &(yyval.rule))); } -#line 2164 "libyara/grammar.c" +#line 2174 "libyara/grammar.c" break; - case 11: /* $@2: %empty */ -#line 394 "libyara/grammar.y" + case 12: /* $@2: %empty */ +#line 398 "libyara/grammar.y" { YR_RULE* rule = (YR_RULE*) yr_arena_ref_to_ptr( compiler->arena, &(yyvsp[-4].rule)); @@ -2178,11 +2188,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); rule->strings = (YR_STRING*) yr_arena_ref_to_ptr( compiler->arena, &(yyvsp[0].string)); } -#line 2182 "libyara/grammar.c" +#line 2192 "libyara/grammar.c" break; - case 12: /* rule: rule_modifiers "" "identifier" @1 tags '{' meta strings $@2 condition '}' */ -#line 408 "libyara/grammar.y" + case 13: /* rule: rule_modifiers "" "identifier" @1 tags '{' meta strings $@2 condition '}' */ +#line 412 "libyara/grammar.y" { YR_RULE* rule = (YR_RULE*) yr_arena_ref_to_ptr( compiler->arena, &(yyvsp[-7].rule)); @@ -2195,19 +2205,19 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(result); } -#line 2199 "libyara/grammar.c" +#line 2209 "libyara/grammar.c" break; - case 13: /* meta: %empty */ -#line 425 "libyara/grammar.y" + case 14: /* meta: %empty */ +#line 429 "libyara/grammar.y" { (yyval.meta) = YR_ARENA_NULL_REF; } -#line 2207 "libyara/grammar.c" +#line 2217 "libyara/grammar.c" break; - case 14: /* meta: "" ':' meta_declarations */ -#line 429 "libyara/grammar.y" + case 15: /* meta: "" ':' meta_declarations */ +#line 433 "libyara/grammar.y" { YR_META* meta = yr_arena_get_ptr( compiler->arena, @@ -2218,19 +2228,19 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.meta) = (yyvsp[0].meta); } -#line 2222 "libyara/grammar.c" +#line 2232 "libyara/grammar.c" break; - case 15: /* strings: %empty */ -#line 444 "libyara/grammar.y" + case 16: /* strings: %empty */ +#line 448 "libyara/grammar.y" { (yyval.string) = YR_ARENA_NULL_REF; } -#line 2230 "libyara/grammar.c" +#line 2240 "libyara/grammar.c" break; - case 16: /* strings: "" ':' string_declarations */ -#line 448 "libyara/grammar.y" + case 17: /* strings: "" ':' string_declarations */ +#line 452 "libyara/grammar.y" { YR_STRING* string = (YR_STRING*) yr_arena_get_ptr( compiler->arena, @@ -2241,51 +2251,51 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.string) = (yyvsp[0].string); } -#line 2245 "libyara/grammar.c" +#line 2255 "libyara/grammar.c" break; - case 17: /* condition: "" ':' boolean_expression */ -#line 463 "libyara/grammar.y" + case 18: /* condition: "" ':' boolean_expression */ +#line 467 "libyara/grammar.y" { (yyval.expression) = (yyvsp[0].expression); } -#line 2253 "libyara/grammar.c" +#line 2263 "libyara/grammar.c" break; - case 18: /* rule_modifiers: %empty */ -#line 470 "libyara/grammar.y" + case 19: /* rule_modifiers: %empty */ +#line 474 "libyara/grammar.y" { (yyval.integer) = 0; } -#line 2259 "libyara/grammar.c" +#line 2269 "libyara/grammar.c" break; - case 19: /* rule_modifiers: rule_modifiers rule_modifier */ -#line 471 "libyara/grammar.y" + case 20: /* rule_modifiers: rule_modifiers rule_modifier */ +#line 475 "libyara/grammar.y" { (yyval.integer) = (yyvsp[-1].integer) | (yyvsp[0].integer); } -#line 2265 "libyara/grammar.c" +#line 2275 "libyara/grammar.c" break; - case 20: /* rule_modifier: "" */ -#line 476 "libyara/grammar.y" + case 21: /* rule_modifier: "" */ +#line 480 "libyara/grammar.y" { (yyval.integer) = RULE_FLAGS_PRIVATE; } -#line 2271 "libyara/grammar.c" +#line 2281 "libyara/grammar.c" break; - case 21: /* rule_modifier: "" */ -#line 477 "libyara/grammar.y" + case 22: /* rule_modifier: "" */ +#line 481 "libyara/grammar.y" { (yyval.integer) = RULE_FLAGS_GLOBAL; } -#line 2277 "libyara/grammar.c" +#line 2287 "libyara/grammar.c" break; - case 22: /* tags: %empty */ -#line 483 "libyara/grammar.y" + case 23: /* tags: %empty */ +#line 487 "libyara/grammar.y" { (yyval.tag) = YR_ARENA_NULL_REF; } -#line 2285 "libyara/grammar.c" +#line 2295 "libyara/grammar.c" break; - case 23: /* tags: ':' tag_list */ -#line 487 "libyara/grammar.y" + case 24: /* tags: ':' tag_list */ +#line 491 "libyara/grammar.y" { // Tags list is represented in the arena as a sequence // of null-terminated strings, the sequence ends with an @@ -2297,11 +2307,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.tag) = (yyvsp[0].tag); } -#line 2301 "libyara/grammar.c" +#line 2311 "libyara/grammar.c" break; - case 24: /* tag_list: "identifier" */ -#line 503 "libyara/grammar.y" + case 25: /* tag_list: "identifier" */ +#line 507 "libyara/grammar.y" { int result = yr_arena_write_string( yyget_extra(yyscanner)->arena, YR_SZ_POOL, (yyvsp[0].c_string), &(yyval.tag)); @@ -2310,11 +2320,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(result); } -#line 2314 "libyara/grammar.c" +#line 2324 "libyara/grammar.c" break; - case 25: /* tag_list: tag_list "identifier" */ -#line 512 "libyara/grammar.y" + case 26: /* tag_list: tag_list "identifier" */ +#line 516 "libyara/grammar.y" { YR_ARENA_REF ref; @@ -2351,23 +2361,23 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.tag) = (yyvsp[-1].tag); } -#line 2355 "libyara/grammar.c" +#line 2365 "libyara/grammar.c" break; - case 26: /* meta_declarations: meta_declaration */ -#line 553 "libyara/grammar.y" + case 27: /* meta_declarations: meta_declaration */ +#line 557 "libyara/grammar.y" { (yyval.meta) = (yyvsp[0].meta); } -#line 2361 "libyara/grammar.c" +#line 2371 "libyara/grammar.c" break; - case 27: /* meta_declarations: meta_declarations meta_declaration */ -#line 554 "libyara/grammar.y" + case 28: /* meta_declarations: meta_declarations meta_declaration */ +#line 558 "libyara/grammar.y" { (yyval.meta) = (yyvsp[-1].meta); } -#line 2367 "libyara/grammar.c" +#line 2377 "libyara/grammar.c" break; - case 28: /* meta_declaration: "identifier" '=' "text string" */ -#line 560 "libyara/grammar.y" + case 29: /* meta_declaration: "identifier" '=' "text string" */ +#line 564 "libyara/grammar.y" { SIZED_STRING* sized_string = (yyvsp[0].sized_string); @@ -2384,11 +2394,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(result); } -#line 2388 "libyara/grammar.c" +#line 2398 "libyara/grammar.c" break; - case 29: /* meta_declaration: "identifier" '=' "integer number" */ -#line 577 "libyara/grammar.y" + case 30: /* meta_declaration: "identifier" '=' "integer number" */ +#line 581 "libyara/grammar.y" { int result = yr_parser_reduce_meta_declaration( yyscanner, @@ -2402,11 +2412,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(result); } -#line 2406 "libyara/grammar.c" +#line 2416 "libyara/grammar.c" break; - case 30: /* meta_declaration: "identifier" '=' '-' "integer number" */ -#line 591 "libyara/grammar.y" + case 31: /* meta_declaration: "identifier" '=' '-' "integer number" */ +#line 595 "libyara/grammar.y" { int result = yr_parser_reduce_meta_declaration( yyscanner, @@ -2420,11 +2430,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(result); } -#line 2424 "libyara/grammar.c" +#line 2434 "libyara/grammar.c" break; - case 31: /* meta_declaration: "identifier" '=' "" */ -#line 605 "libyara/grammar.y" + case 32: /* meta_declaration: "identifier" '=' "" */ +#line 609 "libyara/grammar.y" { int result = yr_parser_reduce_meta_declaration( yyscanner, @@ -2438,11 +2448,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(result); } -#line 2442 "libyara/grammar.c" +#line 2452 "libyara/grammar.c" break; - case 32: /* meta_declaration: "identifier" '=' "" */ -#line 619 "libyara/grammar.y" + case 33: /* meta_declaration: "identifier" '=' "" */ +#line 623 "libyara/grammar.y" { int result = yr_parser_reduce_meta_declaration( yyscanner, @@ -2456,31 +2466,31 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(result); } -#line 2460 "libyara/grammar.c" +#line 2470 "libyara/grammar.c" break; - case 33: /* string_declarations: string_declaration */ -#line 636 "libyara/grammar.y" + case 34: /* string_declarations: string_declaration */ +#line 640 "libyara/grammar.y" { (yyval.string) = (yyvsp[0].string); } -#line 2466 "libyara/grammar.c" +#line 2476 "libyara/grammar.c" break; - case 34: /* string_declarations: string_declarations string_declaration */ -#line 637 "libyara/grammar.y" + case 35: /* string_declarations: string_declarations string_declaration */ +#line 641 "libyara/grammar.y" { (yyval.string) = (yyvsp[-1].string); } -#line 2472 "libyara/grammar.c" +#line 2482 "libyara/grammar.c" break; - case 35: /* $@3: %empty */ -#line 643 "libyara/grammar.y" + case 36: /* $@3: %empty */ +#line 647 "libyara/grammar.y" { compiler->current_line = yyget_lineno(yyscanner); } -#line 2480 "libyara/grammar.c" +#line 2490 "libyara/grammar.c" break; - case 36: /* string_declaration: "string identifier" '=' $@3 "text string" string_modifiers */ -#line 647 "libyara/grammar.y" + case 37: /* string_declaration: "string identifier" '=' $@3 "text string" string_modifiers */ +#line 651 "libyara/grammar.y" { int result = yr_parser_reduce_string_declaration( yyscanner, (yyvsp[0].modifier), (yyvsp[-4].c_string), (yyvsp[-1].sized_string), &(yyval.string)); @@ -2492,19 +2502,19 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(result); compiler->current_line = 0; } -#line 2496 "libyara/grammar.c" +#line 2506 "libyara/grammar.c" break; - case 37: /* $@4: %empty */ -#line 659 "libyara/grammar.y" + case 38: /* $@4: %empty */ +#line 663 "libyara/grammar.y" { compiler->current_line = yyget_lineno(yyscanner); } -#line 2504 "libyara/grammar.c" +#line 2514 "libyara/grammar.c" break; - case 38: /* string_declaration: "string identifier" '=' $@4 "regular expression" regexp_modifiers */ -#line 663 "libyara/grammar.y" + case 39: /* string_declaration: "string identifier" '=' $@4 "regular expression" regexp_modifiers */ +#line 667 "libyara/grammar.y" { int result; @@ -2520,19 +2530,19 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); compiler->current_line = 0; } -#line 2524 "libyara/grammar.c" +#line 2534 "libyara/grammar.c" break; - case 39: /* $@5: %empty */ -#line 679 "libyara/grammar.y" + case 40: /* $@5: %empty */ +#line 683 "libyara/grammar.y" { compiler->current_line = yyget_lineno(yyscanner); } -#line 2532 "libyara/grammar.c" +#line 2542 "libyara/grammar.c" break; - case 40: /* string_declaration: "string identifier" '=' $@5 "hex string" hex_modifiers */ -#line 683 "libyara/grammar.y" + case 41: /* string_declaration: "string identifier" '=' $@5 "hex string" hex_modifiers */ +#line 687 "libyara/grammar.y" { int result; @@ -2548,22 +2558,22 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); compiler->current_line = 0; } -#line 2552 "libyara/grammar.c" +#line 2562 "libyara/grammar.c" break; - case 41: /* string_modifiers: %empty */ -#line 703 "libyara/grammar.y" + case 42: /* string_modifiers: %empty */ +#line 707 "libyara/grammar.y" { (yyval.modifier).flags = 0; (yyval.modifier).xor_min = 0; (yyval.modifier).xor_max = 0; (yyval.modifier).alphabet = NULL; } -#line 2563 "libyara/grammar.c" +#line 2573 "libyara/grammar.c" break; - case 42: /* string_modifiers: string_modifiers string_modifier */ -#line 710 "libyara/grammar.y" + case 43: /* string_modifiers: string_modifiers string_modifier */ +#line 714 "libyara/grammar.y" { (yyval.modifier) = (yyvsp[-1].modifier); @@ -2619,51 +2629,51 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.modifier).flags = (yyval.modifier).flags | (yyvsp[0].modifier).flags; } } -#line 2623 "libyara/grammar.c" +#line 2633 "libyara/grammar.c" break; - case 43: /* string_modifier: "" */ -#line 769 "libyara/grammar.y" + case 44: /* string_modifier: "" */ +#line 773 "libyara/grammar.y" { (yyval.modifier).flags = STRING_FLAGS_WIDE; } -#line 2629 "libyara/grammar.c" +#line 2639 "libyara/grammar.c" break; - case 44: /* string_modifier: "" */ -#line 770 "libyara/grammar.y" + case 45: /* string_modifier: "" */ +#line 774 "libyara/grammar.y" { (yyval.modifier).flags = STRING_FLAGS_ASCII; } -#line 2635 "libyara/grammar.c" +#line 2645 "libyara/grammar.c" break; - case 45: /* string_modifier: "" */ -#line 771 "libyara/grammar.y" + case 46: /* string_modifier: "" */ +#line 775 "libyara/grammar.y" { (yyval.modifier).flags = STRING_FLAGS_NO_CASE; } -#line 2641 "libyara/grammar.c" +#line 2651 "libyara/grammar.c" break; - case 46: /* string_modifier: "" */ -#line 772 "libyara/grammar.y" + case 47: /* string_modifier: "" */ +#line 776 "libyara/grammar.y" { (yyval.modifier).flags = STRING_FLAGS_FULL_WORD; } -#line 2647 "libyara/grammar.c" +#line 2657 "libyara/grammar.c" break; - case 47: /* string_modifier: "" */ -#line 773 "libyara/grammar.y" + case 48: /* string_modifier: "" */ +#line 777 "libyara/grammar.y" { (yyval.modifier).flags = STRING_FLAGS_PRIVATE; } -#line 2653 "libyara/grammar.c" +#line 2663 "libyara/grammar.c" break; - case 48: /* string_modifier: "" */ -#line 775 "libyara/grammar.y" + case 49: /* string_modifier: "" */ +#line 779 "libyara/grammar.y" { (yyval.modifier).flags = STRING_FLAGS_XOR; (yyval.modifier).xor_min = 0; (yyval.modifier).xor_max = 255; } -#line 2663 "libyara/grammar.c" +#line 2673 "libyara/grammar.c" break; - case 49: /* string_modifier: "" '(' "integer number" ')' */ -#line 781 "libyara/grammar.y" + case 50: /* string_modifier: "" '(' "integer number" ')' */ +#line 785 "libyara/grammar.y" { int result = ERROR_SUCCESS; @@ -2679,11 +2689,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.modifier).xor_min = (uint8_t) (yyvsp[-1].integer); (yyval.modifier).xor_max = (uint8_t) (yyvsp[-1].integer); } -#line 2683 "libyara/grammar.c" +#line 2693 "libyara/grammar.c" break; - case 50: /* string_modifier: "" '(' "integer number" '-' "integer number" ')' */ -#line 802 "libyara/grammar.y" + case 51: /* string_modifier: "" '(' "integer number" '-' "integer number" ')' */ +#line 806 "libyara/grammar.y" { int result = ERROR_SUCCESS; @@ -2714,20 +2724,20 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.modifier).xor_min = (uint8_t) (yyvsp[-3].integer); (yyval.modifier).xor_max = (uint8_t) (yyvsp[-1].integer); } -#line 2718 "libyara/grammar.c" +#line 2728 "libyara/grammar.c" break; - case 51: /* string_modifier: "" */ -#line 833 "libyara/grammar.y" + case 52: /* string_modifier: "" */ +#line 837 "libyara/grammar.y" { (yyval.modifier).flags = STRING_FLAGS_BASE64; (yyval.modifier).alphabet = ss_new(DEFAULT_BASE64_ALPHABET); } -#line 2727 "libyara/grammar.c" +#line 2737 "libyara/grammar.c" break; - case 52: /* string_modifier: "" '(' "text string" ')' */ -#line 838 "libyara/grammar.y" + case 53: /* string_modifier: "" '(' "text string" ')' */ +#line 842 "libyara/grammar.y" { int result = ERROR_SUCCESS; @@ -2744,20 +2754,20 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.modifier).flags = STRING_FLAGS_BASE64; (yyval.modifier).alphabet = (yyvsp[-1].sized_string); } -#line 2748 "libyara/grammar.c" +#line 2758 "libyara/grammar.c" break; - case 53: /* string_modifier: "" */ -#line 855 "libyara/grammar.y" + case 54: /* string_modifier: "" */ +#line 859 "libyara/grammar.y" { (yyval.modifier).flags = STRING_FLAGS_BASE64_WIDE; (yyval.modifier).alphabet = ss_new(DEFAULT_BASE64_ALPHABET); } -#line 2757 "libyara/grammar.c" +#line 2767 "libyara/grammar.c" break; - case 54: /* string_modifier: "" '(' "text string" ')' */ -#line 860 "libyara/grammar.y" + case 55: /* string_modifier: "" '(' "text string" ')' */ +#line 864 "libyara/grammar.y" { int result = ERROR_SUCCESS; @@ -2774,17 +2784,17 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.modifier).flags = STRING_FLAGS_BASE64_WIDE; (yyval.modifier).alphabet = (yyvsp[-1].sized_string); } -#line 2778 "libyara/grammar.c" +#line 2788 "libyara/grammar.c" break; - case 55: /* regexp_modifiers: %empty */ -#line 879 "libyara/grammar.y" + case 56: /* regexp_modifiers: %empty */ +#line 883 "libyara/grammar.y" { (yyval.modifier).flags = 0; } -#line 2784 "libyara/grammar.c" +#line 2794 "libyara/grammar.c" break; - case 56: /* regexp_modifiers: regexp_modifiers regexp_modifier */ -#line 881 "libyara/grammar.y" + case 57: /* regexp_modifiers: regexp_modifiers regexp_modifier */ +#line 885 "libyara/grammar.y" { if ((yyvsp[-1].modifier).flags & (yyvsp[0].modifier).flags) { @@ -2795,47 +2805,47 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.modifier).flags = (yyvsp[-1].modifier).flags | (yyvsp[0].modifier).flags; } } -#line 2799 "libyara/grammar.c" +#line 2809 "libyara/grammar.c" break; - case 57: /* regexp_modifier: "" */ -#line 894 "libyara/grammar.y" + case 58: /* regexp_modifier: "" */ +#line 898 "libyara/grammar.y" { (yyval.modifier).flags = STRING_FLAGS_WIDE; } -#line 2805 "libyara/grammar.c" +#line 2815 "libyara/grammar.c" break; - case 58: /* regexp_modifier: "" */ -#line 895 "libyara/grammar.y" + case 59: /* regexp_modifier: "" */ +#line 899 "libyara/grammar.y" { (yyval.modifier).flags = STRING_FLAGS_ASCII; } -#line 2811 "libyara/grammar.c" +#line 2821 "libyara/grammar.c" break; - case 59: /* regexp_modifier: "" */ -#line 896 "libyara/grammar.y" + case 60: /* regexp_modifier: "" */ +#line 900 "libyara/grammar.y" { (yyval.modifier).flags = STRING_FLAGS_NO_CASE; } -#line 2817 "libyara/grammar.c" +#line 2827 "libyara/grammar.c" break; - case 60: /* regexp_modifier: "" */ -#line 897 "libyara/grammar.y" + case 61: /* regexp_modifier: "" */ +#line 901 "libyara/grammar.y" { (yyval.modifier).flags = STRING_FLAGS_FULL_WORD; } -#line 2823 "libyara/grammar.c" +#line 2833 "libyara/grammar.c" break; - case 61: /* regexp_modifier: "" */ -#line 898 "libyara/grammar.y" + case 62: /* regexp_modifier: "" */ +#line 902 "libyara/grammar.y" { (yyval.modifier).flags = STRING_FLAGS_PRIVATE; } -#line 2829 "libyara/grammar.c" +#line 2839 "libyara/grammar.c" break; - case 62: /* hex_modifiers: %empty */ -#line 902 "libyara/grammar.y" + case 63: /* hex_modifiers: %empty */ +#line 906 "libyara/grammar.y" { (yyval.modifier).flags = 0; } -#line 2835 "libyara/grammar.c" +#line 2845 "libyara/grammar.c" break; - case 63: /* hex_modifiers: hex_modifiers hex_modifier */ -#line 904 "libyara/grammar.y" + case 64: /* hex_modifiers: hex_modifiers hex_modifier */ +#line 908 "libyara/grammar.y" { if ((yyvsp[-1].modifier).flags & (yyvsp[0].modifier).flags) { @@ -2846,17 +2856,17 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.modifier).flags = (yyvsp[-1].modifier).flags | (yyvsp[0].modifier).flags; } } -#line 2850 "libyara/grammar.c" +#line 2860 "libyara/grammar.c" break; - case 64: /* hex_modifier: "" */ -#line 917 "libyara/grammar.y" + case 65: /* hex_modifier: "" */ +#line 921 "libyara/grammar.y" { (yyval.modifier).flags = STRING_FLAGS_PRIVATE; } -#line 2856 "libyara/grammar.c" +#line 2866 "libyara/grammar.c" break; - case 65: /* identifier: "identifier" */ -#line 922 "libyara/grammar.y" + case 66: /* identifier: "identifier" */ +#line 926 "libyara/grammar.y" { YR_EXPRESSION expr; @@ -2952,11 +2962,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(result); } -#line 2956 "libyara/grammar.c" +#line 2966 "libyara/grammar.c" break; - case 66: /* identifier: identifier '.' "identifier" */ -#line 1018 "libyara/grammar.y" + case 67: /* identifier: identifier '.' "identifier" */ +#line 1022 "libyara/grammar.y" { int result = ERROR_SUCCESS; YR_OBJECT* field = NULL; @@ -3004,11 +3014,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(result); } -#line 3008 "libyara/grammar.c" +#line 3018 "libyara/grammar.c" break; - case 67: /* identifier: identifier '[' primary_expression ']' */ -#line 1066 "libyara/grammar.y" + case 68: /* identifier: identifier '[' primary_expression ']' */ +#line 1070 "libyara/grammar.y" { int result = ERROR_SUCCESS; YR_OBJECT_ARRAY* array; @@ -3068,11 +3078,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(result); } -#line 3072 "libyara/grammar.c" +#line 3082 "libyara/grammar.c" break; - case 68: /* identifier: identifier '(' arguments ')' */ -#line 1127 "libyara/grammar.y" + case 69: /* identifier: identifier '(' arguments ')' */ +#line 1131 "libyara/grammar.y" { YR_ARENA_REF ref = YR_ARENA_NULL_REF; int result = ERROR_SUCCESS; @@ -3113,23 +3123,23 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(result); } -#line 3117 "libyara/grammar.c" +#line 3127 "libyara/grammar.c" break; - case 69: /* arguments: %empty */ -#line 1171 "libyara/grammar.y" + case 70: /* arguments: %empty */ +#line 1175 "libyara/grammar.y" { (yyval.c_string) = yr_strdup(""); } -#line 3123 "libyara/grammar.c" +#line 3133 "libyara/grammar.c" break; - case 70: /* arguments: arguments_list */ -#line 1172 "libyara/grammar.y" + case 71: /* arguments: arguments_list */ +#line 1176 "libyara/grammar.y" { (yyval.c_string) = (yyvsp[0].c_string); } -#line 3129 "libyara/grammar.c" +#line 3139 "libyara/grammar.c" break; - case 71: /* arguments_list: expression */ -#line 1177 "libyara/grammar.y" + case 72: /* arguments_list: expression */ +#line 1181 "libyara/grammar.y" { (yyval.c_string) = (char*) yr_malloc(YR_MAX_FUNCTION_ARGS + 1); @@ -3164,11 +3174,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); assert(compiler->last_error != ERROR_SUCCESS); } } -#line 3168 "libyara/grammar.c" +#line 3178 "libyara/grammar.c" break; - case 72: /* arguments_list: arguments_list ',' expression */ -#line 1212 "libyara/grammar.y" + case 73: /* arguments_list: arguments_list ',' expression */ +#line 1216 "libyara/grammar.y" { int result = ERROR_SUCCESS; @@ -3217,11 +3227,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.c_string) = (yyvsp[-2].c_string); } -#line 3221 "libyara/grammar.c" +#line 3231 "libyara/grammar.c" break; - case 73: /* regexp: "regular expression" */ -#line 1265 "libyara/grammar.y" + case 74: /* regexp: "regular expression" */ +#line 1269 "libyara/grammar.y" { YR_ARENA_REF re_ref; RE_ERROR error; @@ -3272,11 +3282,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_REGEXP; } -#line 3276 "libyara/grammar.c" +#line 3286 "libyara/grammar.c" break; - case 74: /* boolean_expression: expression */ -#line 1320 "libyara/grammar.y" + case 75: /* boolean_expression: expression */ +#line 1324 "libyara/grammar.y" { if ((yyvsp[0].expression).type == EXPRESSION_TYPE_STRING) { @@ -3304,33 +3314,33 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; } -#line 3308 "libyara/grammar.c" +#line 3318 "libyara/grammar.c" break; - case 75: /* expression: "" */ -#line 1351 "libyara/grammar.y" + case 76: /* expression: "" */ +#line 1355 "libyara/grammar.y" { fail_if_error(yr_parser_emit_push_const(yyscanner, 1)); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; (yyval.expression).required_strings.count = 0; } -#line 3319 "libyara/grammar.c" +#line 3329 "libyara/grammar.c" break; - case 76: /* expression: "" */ -#line 1358 "libyara/grammar.y" + case 77: /* expression: "" */ +#line 1362 "libyara/grammar.y" { fail_if_error(yr_parser_emit_push_const(yyscanner, 0)); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; (yyval.expression).required_strings.count = 0; } -#line 3330 "libyara/grammar.c" +#line 3340 "libyara/grammar.c" break; - case 77: /* expression: primary_expression "" regexp */ -#line 1365 "libyara/grammar.y" + case 78: /* expression: primary_expression "" regexp */ +#line 1369 "libyara/grammar.y" { check_type((yyvsp[-2].expression), EXPRESSION_TYPE_STRING, "matches"); check_type((yyvsp[0].expression), EXPRESSION_TYPE_REGEXP, "matches"); @@ -3343,11 +3353,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; (yyval.expression).required_strings.count = 0; } -#line 3347 "libyara/grammar.c" +#line 3357 "libyara/grammar.c" break; - case 78: /* expression: primary_expression "" primary_expression */ -#line 1378 "libyara/grammar.y" + case 79: /* expression: primary_expression "" primary_expression */ +#line 1382 "libyara/grammar.y" { check_type((yyvsp[-2].expression), EXPRESSION_TYPE_STRING, "contains"); check_type((yyvsp[0].expression), EXPRESSION_TYPE_STRING, "contains"); @@ -3358,11 +3368,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; (yyval.expression).required_strings.count = 0; } -#line 3362 "libyara/grammar.c" +#line 3372 "libyara/grammar.c" break; - case 79: /* expression: primary_expression "" primary_expression */ -#line 1389 "libyara/grammar.y" + case 80: /* expression: primary_expression "" primary_expression */ +#line 1393 "libyara/grammar.y" { check_type((yyvsp[-2].expression), EXPRESSION_TYPE_STRING, "icontains"); check_type((yyvsp[0].expression), EXPRESSION_TYPE_STRING, "icontains"); @@ -3373,11 +3383,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; (yyval.expression).required_strings.count = 0; } -#line 3377 "libyara/grammar.c" +#line 3387 "libyara/grammar.c" break; - case 80: /* expression: primary_expression "" primary_expression */ -#line 1400 "libyara/grammar.y" + case 81: /* expression: primary_expression "" primary_expression */ +#line 1404 "libyara/grammar.y" { check_type((yyvsp[-2].expression), EXPRESSION_TYPE_STRING, "startswith"); check_type((yyvsp[0].expression), EXPRESSION_TYPE_STRING, "startswith"); @@ -3388,11 +3398,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; (yyval.expression).required_strings.count = 0; } -#line 3392 "libyara/grammar.c" +#line 3402 "libyara/grammar.c" break; - case 81: /* expression: primary_expression "" primary_expression */ -#line 1411 "libyara/grammar.y" + case 82: /* expression: primary_expression "" primary_expression */ +#line 1415 "libyara/grammar.y" { check_type((yyvsp[-2].expression), EXPRESSION_TYPE_STRING, "istartswith"); check_type((yyvsp[0].expression), EXPRESSION_TYPE_STRING, "istartswith"); @@ -3403,11 +3413,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; (yyval.expression).required_strings.count = 0; } -#line 3407 "libyara/grammar.c" +#line 3417 "libyara/grammar.c" break; - case 82: /* expression: primary_expression "" primary_expression */ -#line 1422 "libyara/grammar.y" + case 83: /* expression: primary_expression "" primary_expression */ +#line 1426 "libyara/grammar.y" { check_type((yyvsp[-2].expression), EXPRESSION_TYPE_STRING, "endswith"); check_type((yyvsp[0].expression), EXPRESSION_TYPE_STRING, "endswith"); @@ -3418,11 +3428,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; (yyval.expression).required_strings.count = 0; } -#line 3422 "libyara/grammar.c" +#line 3432 "libyara/grammar.c" break; - case 83: /* expression: primary_expression "" primary_expression */ -#line 1433 "libyara/grammar.y" + case 84: /* expression: primary_expression "" primary_expression */ +#line 1437 "libyara/grammar.y" { check_type((yyvsp[-2].expression), EXPRESSION_TYPE_STRING, "iendswith"); check_type((yyvsp[0].expression), EXPRESSION_TYPE_STRING, "iendswith"); @@ -3433,11 +3443,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; (yyval.expression).required_strings.count = 0; } -#line 3437 "libyara/grammar.c" +#line 3447 "libyara/grammar.c" break; - case 84: /* expression: primary_expression "" primary_expression */ -#line 1444 "libyara/grammar.y" + case 85: /* expression: primary_expression "" primary_expression */ +#line 1448 "libyara/grammar.y" { check_type((yyvsp[-2].expression), EXPRESSION_TYPE_STRING, "iequals"); check_type((yyvsp[0].expression), EXPRESSION_TYPE_STRING, "iequals"); @@ -3448,11 +3458,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; (yyval.expression).required_strings.count = 0; } -#line 3452 "libyara/grammar.c" +#line 3462 "libyara/grammar.c" break; - case 85: /* expression: "string identifier" */ -#line 1455 "libyara/grammar.y" + case 86: /* expression: "string identifier" */ +#line 1459 "libyara/grammar.y" { int result = yr_parser_reduce_string_identifier( yyscanner, @@ -3467,11 +3477,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; (yyval.expression).required_strings.count = 1; } -#line 3471 "libyara/grammar.c" +#line 3481 "libyara/grammar.c" break; - case 86: /* expression: "string identifier" "" primary_expression */ -#line 1470 "libyara/grammar.y" + case 87: /* expression: "string identifier" "" primary_expression */ +#line 1474 "libyara/grammar.y" { int result; @@ -3487,11 +3497,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).required_strings.count = 1; (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; } -#line 3491 "libyara/grammar.c" +#line 3501 "libyara/grammar.c" break; - case 87: /* expression: "string identifier" "" range */ -#line 1486 "libyara/grammar.y" + case 88: /* expression: "string identifier" "" range */ +#line 1490 "libyara/grammar.y" { int result = yr_parser_reduce_string_identifier( yyscanner, (yyvsp[-2].c_string), OP_FOUND_IN, YR_UNDEFINED); @@ -3503,11 +3513,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).required_strings.count = 1; (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; } -#line 3507 "libyara/grammar.c" +#line 3517 "libyara/grammar.c" break; - case 88: /* expression: "" for_expression error */ -#line 1498 "libyara/grammar.y" + case 89: /* expression: "" for_expression error */ +#line 1502 "libyara/grammar.y" { // Free all the loop variable identifiers, including the variables for // the current loop (represented by loop_index), and set loop_index to @@ -3524,11 +3534,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); compiler->loop_index = -1; YYERROR; } -#line 3528 "libyara/grammar.c" +#line 3538 "libyara/grammar.c" break; - case 89: /* $@6: %empty */ -#line 1572 "libyara/grammar.y" + case 90: /* $@6: %empty */ +#line 1576 "libyara/grammar.y" { // var_frame is used for accessing local variables used in this loop. // All local variables are accessed using var_frame as a reference, @@ -3566,11 +3576,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(yr_parser_emit_with_arg( yyscanner, OP_POP_M, var_frame + 2, NULL, NULL)); } -#line 3570 "libyara/grammar.c" +#line 3580 "libyara/grammar.c" break; - case 90: /* $@7: %empty */ -#line 1610 "libyara/grammar.y" + case 91: /* $@7: %empty */ +#line 1614 "libyara/grammar.y" { YR_LOOP_CONTEXT* loop_ctx = &compiler->loop[compiler->loop_index]; YR_FIXUP* fixup; @@ -3619,11 +3629,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); loop_ctx->start_ref = loop_start_ref; } -#line 3623 "libyara/grammar.c" +#line 3633 "libyara/grammar.c" break; - case 91: /* expression: "" for_expression $@6 for_iteration ':' $@7 '(' boolean_expression ')' */ -#line 1659 "libyara/grammar.y" + case 92: /* expression: "" for_expression $@6 for_iteration ':' $@7 '(' boolean_expression ')' */ +#line 1663 "libyara/grammar.y" { int32_t jmp_offset; YR_FIXUP* fixup; @@ -3704,11 +3714,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; (yyval.expression).required_strings.count = 0; } -#line 3708 "libyara/grammar.c" +#line 3718 "libyara/grammar.c" break; - case 92: /* expression: for_expression "" string_set */ -#line 1740 "libyara/grammar.y" + case 93: /* expression: for_expression "" string_set */ +#line 1744 "libyara/grammar.y" { if ((yyvsp[-2].expression).type == EXPRESSION_TYPE_INTEGER && (yyvsp[-2].expression).value.integer > (yyvsp[0].integer)) { @@ -3731,11 +3741,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; } -#line 3735 "libyara/grammar.c" +#line 3745 "libyara/grammar.c" break; - case 93: /* expression: for_expression "" rule_set */ -#line 1763 "libyara/grammar.y" + case 94: /* expression: for_expression "" rule_set */ +#line 1767 "libyara/grammar.y" { if ((yyvsp[-2].expression).type == EXPRESSION_TYPE_INTEGER && (yyvsp[-2].expression).value.integer > (yyvsp[0].integer)) { @@ -3747,11 +3757,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; (yyval.expression).required_strings.count = 0; } -#line 3751 "libyara/grammar.c" +#line 3761 "libyara/grammar.c" break; - case 94: /* expression: primary_expression '%' "" string_set */ -#line 1775 "libyara/grammar.y" + case 95: /* expression: primary_expression '%' "" string_set */ +#line 1779 "libyara/grammar.y" { check_type((yyvsp[-3].expression), EXPRESSION_TYPE_INTEGER, "%"); @@ -3779,11 +3789,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); yr_parser_emit_with_arg(yyscanner, OP_OF_PERCENT, OF_STRING_SET, NULL, NULL); } -#line 3783 "libyara/grammar.c" +#line 3793 "libyara/grammar.c" break; - case 95: /* expression: primary_expression '%' "" rule_set */ -#line 1803 "libyara/grammar.y" + case 96: /* expression: primary_expression '%' "" rule_set */ +#line 1807 "libyara/grammar.y" { check_type((yyvsp[-3].expression), EXPRESSION_TYPE_INTEGER, "%"); @@ -3802,11 +3812,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); yr_parser_emit_with_arg(yyscanner, OP_OF_PERCENT, OF_RULE_SET, NULL, NULL); } -#line 3806 "libyara/grammar.c" +#line 3816 "libyara/grammar.c" break; - case 96: /* expression: for_expression "" string_set "" range */ -#line 1822 "libyara/grammar.y" + case 97: /* expression: for_expression "" string_set "" range */ +#line 1826 "libyara/grammar.y" { if ((yyvsp[-4].expression).type == EXPRESSION_TYPE_INTEGER && (yyvsp[-4].expression).value.integer > (yyvsp[-2].integer)) { @@ -3829,11 +3839,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; } -#line 3833 "libyara/grammar.c" +#line 3843 "libyara/grammar.c" break; - case 97: /* expression: for_expression "" string_set "" primary_expression */ -#line 1845 "libyara/grammar.y" + case 98: /* expression: for_expression "" string_set "" primary_expression */ +#line 1849 "libyara/grammar.y" { if ((yyvsp[0].expression).type != EXPRESSION_TYPE_INTEGER) { @@ -3881,32 +3891,32 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; } -#line 3885 "libyara/grammar.c" +#line 3895 "libyara/grammar.c" break; - case 98: /* expression: "" boolean_expression */ -#line 1893 "libyara/grammar.y" + case 99: /* expression: "" boolean_expression */ +#line 1897 "libyara/grammar.y" { yr_parser_emit(yyscanner, OP_NOT, NULL); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; (yyval.expression).required_strings.count = 0; } -#line 3896 "libyara/grammar.c" +#line 3906 "libyara/grammar.c" break; - case 99: /* expression: "" boolean_expression */ -#line 1900 "libyara/grammar.y" + case 100: /* expression: "" boolean_expression */ +#line 1904 "libyara/grammar.y" { yr_parser_emit(yyscanner, OP_DEFINED, NULL); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; (yyval.expression).required_strings.count = 0; } -#line 3906 "libyara/grammar.c" +#line 3916 "libyara/grammar.c" break; - case 100: /* $@8: %empty */ -#line 1906 "libyara/grammar.y" + case 101: /* $@8: %empty */ +#line 1910 "libyara/grammar.y" { YR_FIXUP* fixup; YR_ARENA_REF jmp_offset_ref; @@ -3928,11 +3938,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fixup->next = compiler->fixup_stack_head; compiler->fixup_stack_head = fixup; } -#line 3932 "libyara/grammar.c" +#line 3942 "libyara/grammar.c" break; - case 101: /* expression: boolean_expression "" $@8 boolean_expression */ -#line 1928 "libyara/grammar.y" + case 102: /* expression: boolean_expression "" $@8 boolean_expression */ +#line 1932 "libyara/grammar.y" { YR_FIXUP* fixup; @@ -3956,11 +3966,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; (yyval.expression).required_strings.count = (yyvsp[0].expression).required_strings.count + (yyvsp[-3].expression).required_strings.count; } -#line 3960 "libyara/grammar.c" +#line 3970 "libyara/grammar.c" break; - case 102: /* $@9: %empty */ -#line 1952 "libyara/grammar.y" + case 103: /* $@9: %empty */ +#line 1956 "libyara/grammar.y" { YR_FIXUP* fixup; YR_ARENA_REF jmp_offset_ref; @@ -3981,11 +3991,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fixup->next = compiler->fixup_stack_head; compiler->fixup_stack_head = fixup; } -#line 3985 "libyara/grammar.c" +#line 3995 "libyara/grammar.c" break; - case 103: /* expression: boolean_expression "" $@9 boolean_expression */ -#line 1973 "libyara/grammar.y" + case 104: /* expression: boolean_expression "" $@9 boolean_expression */ +#line 1977 "libyara/grammar.y" { YR_FIXUP* fixup; @@ -4015,11 +4025,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).required_strings.count = (yyvsp[-3].expression).required_strings.count; } } -#line 4019 "libyara/grammar.c" +#line 4029 "libyara/grammar.c" break; - case 104: /* expression: primary_expression "<" primary_expression */ -#line 2003 "libyara/grammar.y" + case 105: /* expression: primary_expression "<" primary_expression */ +#line 2007 "libyara/grammar.y" { fail_if_error(yr_parser_reduce_operation( yyscanner, "<", (yyvsp[-2].expression), (yyvsp[0].expression))); @@ -4027,11 +4037,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; (yyval.expression).required_strings.count = 0; } -#line 4031 "libyara/grammar.c" +#line 4041 "libyara/grammar.c" break; - case 105: /* expression: primary_expression ">" primary_expression */ -#line 2011 "libyara/grammar.y" + case 106: /* expression: primary_expression ">" primary_expression */ +#line 2015 "libyara/grammar.y" { fail_if_error(yr_parser_reduce_operation( yyscanner, ">", (yyvsp[-2].expression), (yyvsp[0].expression))); @@ -4039,11 +4049,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; (yyval.expression).required_strings.count = 0; } -#line 4043 "libyara/grammar.c" +#line 4053 "libyara/grammar.c" break; - case 106: /* expression: primary_expression "<=" primary_expression */ -#line 2019 "libyara/grammar.y" + case 107: /* expression: primary_expression "<=" primary_expression */ +#line 2023 "libyara/grammar.y" { fail_if_error(yr_parser_reduce_operation( yyscanner, "<=", (yyvsp[-2].expression), (yyvsp[0].expression))); @@ -4051,11 +4061,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; (yyval.expression).required_strings.count = 0; } -#line 4055 "libyara/grammar.c" +#line 4065 "libyara/grammar.c" break; - case 107: /* expression: primary_expression ">=" primary_expression */ -#line 2027 "libyara/grammar.y" + case 108: /* expression: primary_expression ">=" primary_expression */ +#line 2031 "libyara/grammar.y" { fail_if_error(yr_parser_reduce_operation( yyscanner, ">=", (yyvsp[-2].expression), (yyvsp[0].expression))); @@ -4063,11 +4073,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; (yyval.expression).required_strings.count = 0; } -#line 4067 "libyara/grammar.c" +#line 4077 "libyara/grammar.c" break; - case 108: /* expression: primary_expression "==" primary_expression */ -#line 2035 "libyara/grammar.y" + case 109: /* expression: primary_expression "==" primary_expression */ +#line 2039 "libyara/grammar.y" { fail_if_error(yr_parser_reduce_operation( yyscanner, "==", (yyvsp[-2].expression), (yyvsp[0].expression))); @@ -4075,11 +4085,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; (yyval.expression).required_strings.count = 0; } -#line 4079 "libyara/grammar.c" +#line 4089 "libyara/grammar.c" break; - case 109: /* expression: primary_expression "!=" primary_expression */ -#line 2043 "libyara/grammar.y" + case 110: /* expression: primary_expression "!=" primary_expression */ +#line 2047 "libyara/grammar.y" { fail_if_error(yr_parser_reduce_operation( yyscanner, "!=", (yyvsp[-2].expression), (yyvsp[0].expression))); @@ -4087,33 +4097,33 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_BOOLEAN; (yyval.expression).required_strings.count = 0; } -#line 4091 "libyara/grammar.c" +#line 4101 "libyara/grammar.c" break; - case 110: /* expression: primary_expression */ -#line 2051 "libyara/grammar.y" + case 111: /* expression: primary_expression */ +#line 2055 "libyara/grammar.y" { (yyval.expression) = (yyvsp[0].expression); } -#line 4099 "libyara/grammar.c" +#line 4109 "libyara/grammar.c" break; - case 111: /* expression: '(' expression ')' */ -#line 2055 "libyara/grammar.y" + case 112: /* expression: '(' expression ')' */ +#line 2059 "libyara/grammar.y" { (yyval.expression) = (yyvsp[-1].expression); } -#line 4107 "libyara/grammar.c" +#line 4117 "libyara/grammar.c" break; - case 112: /* for_iteration: for_variables "" iterator */ -#line 2062 "libyara/grammar.y" + case 113: /* for_iteration: for_variables "" iterator */ +#line 2066 "libyara/grammar.y" { (yyval.integer) = FOR_ITERATION_ITERATOR; } -#line 4113 "libyara/grammar.c" +#line 4123 "libyara/grammar.c" break; - case 113: /* for_iteration: "" string_iterator */ -#line 2064 "libyara/grammar.y" + case 114: /* for_iteration: "" string_iterator */ +#line 2068 "libyara/grammar.y" { int var_frame; int result = ERROR_SUCCESS; @@ -4134,11 +4144,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.integer) = FOR_ITERATION_STRING_SET; } -#line 4138 "libyara/grammar.c" +#line 4148 "libyara/grammar.c" break; - case 114: /* for_variables: "identifier" */ -#line 2089 "libyara/grammar.y" + case 115: /* for_variables: "identifier" */ +#line 2093 "libyara/grammar.y" { int result = ERROR_SUCCESS; @@ -4158,11 +4168,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); assert(loop_ctx->vars_count <= YR_MAX_LOOP_VARS); } -#line 4162 "libyara/grammar.c" +#line 4172 "libyara/grammar.c" break; - case 115: /* for_variables: for_variables ',' "identifier" */ -#line 2109 "libyara/grammar.y" + case 116: /* for_variables: for_variables ',' "identifier" */ +#line 2113 "libyara/grammar.y" { int result = ERROR_SUCCESS; @@ -4187,11 +4197,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); loop_ctx->vars[loop_ctx->vars_count++].identifier.ptr = (yyvsp[0].c_string); } -#line 4191 "libyara/grammar.c" +#line 4201 "libyara/grammar.c" break; - case 116: /* iterator: identifier */ -#line 2137 "libyara/grammar.y" + case 117: /* iterator: identifier */ +#line 2141 "libyara/grammar.y" { YR_LOOP_CONTEXT* loop_ctx = &compiler->loop[compiler->loop_index]; @@ -4265,11 +4275,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(result); } -#line 4269 "libyara/grammar.c" +#line 4279 "libyara/grammar.c" break; - case 117: /* iterator: set */ -#line 2211 "libyara/grammar.y" + case 118: /* iterator: set */ +#line 2215 "libyara/grammar.y" { int result = ERROR_SUCCESS; @@ -4297,11 +4307,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(result); } -#line 4301 "libyara/grammar.c" +#line 4311 "libyara/grammar.c" break; - case 118: /* set: '(' enumeration ')' */ -#line 2243 "libyara/grammar.y" + case 119: /* set: '(' enumeration ')' */ +#line 2247 "libyara/grammar.y" { // $2.count contains the number of items in the enumeration fail_if_error(yr_parser_emit_push_const(yyscanner, (yyvsp[-1].enumeration).count)); @@ -4319,22 +4329,22 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.enumeration).type = (yyvsp[-1].enumeration).type; } -#line 4323 "libyara/grammar.c" +#line 4333 "libyara/grammar.c" break; - case 119: /* set: range */ -#line 2261 "libyara/grammar.y" + case 120: /* set: range */ +#line 2265 "libyara/grammar.y" { fail_if_error(yr_parser_emit( yyscanner, OP_ITER_START_INT_RANGE, NULL)); (yyval.enumeration).type = EXPRESSION_TYPE_INTEGER; } -#line 4334 "libyara/grammar.c" +#line 4344 "libyara/grammar.c" break; - case 120: /* range: '(' primary_expression ".." primary_expression ')' */ -#line 2272 "libyara/grammar.y" + case 121: /* range: '(' primary_expression ".." primary_expression ')' */ +#line 2276 "libyara/grammar.y" { int result = ERROR_SUCCESS; @@ -4373,11 +4383,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(result); } -#line 4377 "libyara/grammar.c" +#line 4387 "libyara/grammar.c" break; - case 121: /* enumeration: primary_expression */ -#line 2315 "libyara/grammar.y" + case 122: /* enumeration: primary_expression */ +#line 2319 "libyara/grammar.y" { int result = ERROR_SUCCESS; @@ -4393,11 +4403,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.enumeration).type = (yyvsp[0].expression).type; (yyval.enumeration).count = 1; } -#line 4397 "libyara/grammar.c" +#line 4407 "libyara/grammar.c" break; - case 122: /* enumeration: enumeration ',' primary_expression */ -#line 2331 "libyara/grammar.y" + case 123: /* enumeration: enumeration ',' primary_expression */ +#line 2335 "libyara/grammar.y" { int result = ERROR_SUCCESS; @@ -4413,38 +4423,38 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.enumeration).type = (yyvsp[-2].enumeration).type; (yyval.enumeration).count = (yyvsp[-2].enumeration).count + 1; } -#line 4417 "libyara/grammar.c" +#line 4427 "libyara/grammar.c" break; - case 123: /* string_iterator: string_set */ -#line 2351 "libyara/grammar.y" + case 124: /* string_iterator: string_set */ +#line 2355 "libyara/grammar.y" { fail_if_error(yr_parser_emit_push_const(yyscanner, (yyvsp[0].integer))); fail_if_error(yr_parser_emit(yyscanner, OP_ITER_START_STRING_SET, NULL)); } -#line 4427 "libyara/grammar.c" +#line 4437 "libyara/grammar.c" break; - case 124: /* $@10: %empty */ -#line 2360 "libyara/grammar.y" + case 125: /* $@10: %empty */ +#line 2364 "libyara/grammar.y" { // Push end-of-list marker yr_parser_emit_push_const(yyscanner, YR_UNDEFINED); } -#line 4436 "libyara/grammar.c" +#line 4446 "libyara/grammar.c" break; - case 125: /* string_set: '(' $@10 string_enumeration ')' */ -#line 2365 "libyara/grammar.y" + case 126: /* string_set: '(' $@10 string_enumeration ')' */ +#line 2369 "libyara/grammar.y" { (yyval.integer) = (yyvsp[-1].integer); } -#line 4444 "libyara/grammar.c" +#line 4454 "libyara/grammar.c" break; - case 126: /* string_set: "" */ -#line 2369 "libyara/grammar.y" + case 127: /* string_set: "" */ +#line 2373 "libyara/grammar.y" { fail_if_error(yr_parser_emit_push_const(yyscanner, YR_UNDEFINED)); @@ -4454,23 +4464,23 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.integer) = count; } -#line 4458 "libyara/grammar.c" +#line 4468 "libyara/grammar.c" break; - case 127: /* string_enumeration: string_enumeration_item */ -#line 2382 "libyara/grammar.y" + case 128: /* string_enumeration: string_enumeration_item */ +#line 2386 "libyara/grammar.y" { (yyval.integer) = (yyvsp[0].integer); } -#line 4464 "libyara/grammar.c" +#line 4474 "libyara/grammar.c" break; - case 128: /* string_enumeration: string_enumeration ',' string_enumeration_item */ -#line 2383 "libyara/grammar.y" + case 129: /* string_enumeration: string_enumeration ',' string_enumeration_item */ +#line 2387 "libyara/grammar.y" { (yyval.integer) = (yyvsp[-2].integer) + (yyvsp[0].integer); } -#line 4470 "libyara/grammar.c" +#line 4480 "libyara/grammar.c" break; - case 129: /* string_enumeration_item: "string identifier" */ -#line 2389 "libyara/grammar.y" + case 130: /* string_enumeration_item: "string identifier" */ +#line 2393 "libyara/grammar.y" { int count = 0; int result = yr_parser_emit_pushes_for_strings(yyscanner, (yyvsp[0].c_string), &count); @@ -4480,11 +4490,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.integer) = count; } -#line 4484 "libyara/grammar.c" +#line 4494 "libyara/grammar.c" break; - case 130: /* string_enumeration_item: "string identifier with wildcard" */ -#line 2399 "libyara/grammar.y" + case 131: /* string_enumeration_item: "string identifier with wildcard" */ +#line 2403 "libyara/grammar.y" { int count = 0; int result = yr_parser_emit_pushes_for_strings(yyscanner, (yyvsp[0].c_string), &count); @@ -4494,40 +4504,40 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.integer) = count; } -#line 4498 "libyara/grammar.c" +#line 4508 "libyara/grammar.c" break; - case 131: /* $@11: %empty */ -#line 2413 "libyara/grammar.y" + case 132: /* $@11: %empty */ +#line 2417 "libyara/grammar.y" { // Push end-of-list marker yr_parser_emit_push_const(yyscanner, YR_UNDEFINED); } -#line 4507 "libyara/grammar.c" +#line 4517 "libyara/grammar.c" break; - case 132: /* rule_set: '(' $@11 rule_enumeration ')' */ -#line 2418 "libyara/grammar.y" + case 133: /* rule_set: '(' $@11 rule_enumeration ')' */ +#line 2422 "libyara/grammar.y" { (yyval.integer) = (yyvsp[-1].integer); } -#line 4515 "libyara/grammar.c" +#line 4525 "libyara/grammar.c" break; - case 133: /* rule_enumeration: rule_enumeration_item */ -#line 2425 "libyara/grammar.y" + case 134: /* rule_enumeration: rule_enumeration_item */ +#line 2429 "libyara/grammar.y" { (yyval.integer) = (yyvsp[0].integer); } -#line 4521 "libyara/grammar.c" +#line 4531 "libyara/grammar.c" break; - case 134: /* rule_enumeration: rule_enumeration ',' rule_enumeration_item */ -#line 2426 "libyara/grammar.y" + case 135: /* rule_enumeration: rule_enumeration ',' rule_enumeration_item */ +#line 2430 "libyara/grammar.y" { (yyval.integer) = (yyvsp[-2].integer) + (yyvsp[0].integer); } -#line 4527 "libyara/grammar.c" +#line 4537 "libyara/grammar.c" break; - case 135: /* rule_enumeration_item: "identifier" */ -#line 2432 "libyara/grammar.y" + case 136: /* rule_enumeration_item: "identifier" */ +#line 2436 "libyara/grammar.y" { int result = ERROR_SUCCESS; @@ -4560,11 +4570,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.integer) = 1; } -#line 4564 "libyara/grammar.c" +#line 4574 "libyara/grammar.c" break; - case 136: /* rule_enumeration_item: "identifier" '*' */ -#line 2465 "libyara/grammar.y" + case 137: /* rule_enumeration_item: "identifier" '*' */ +#line 2469 "libyara/grammar.y" { int count = 0; YR_NAMESPACE* ns = (YR_NAMESPACE*) yr_arena_get_ptr( @@ -4585,11 +4595,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.integer) = count; } -#line 4589 "libyara/grammar.c" +#line 4599 "libyara/grammar.c" break; - case 137: /* for_expression: primary_expression */ -#line 2490 "libyara/grammar.y" + case 138: /* for_expression: primary_expression */ +#line 2494 "libyara/grammar.y" { if ((yyvsp[0].expression).type == EXPRESSION_TYPE_INTEGER && !IS_UNDEFINED((yyvsp[0].expression).value.integer)) { @@ -4645,57 +4655,57 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).value.integer = (yyvsp[0].expression).value.integer; } -#line 4649 "libyara/grammar.c" +#line 4659 "libyara/grammar.c" break; - case 138: /* for_expression: for_quantifier */ -#line 2546 "libyara/grammar.y" + case 139: /* for_expression: for_quantifier */ +#line 2550 "libyara/grammar.y" { (yyval.expression).value.integer = (yyvsp[0].expression).value.integer; } -#line 4657 "libyara/grammar.c" +#line 4667 "libyara/grammar.c" break; - case 139: /* for_quantifier: "" */ -#line 2553 "libyara/grammar.y" + case 140: /* for_quantifier: "" */ +#line 2557 "libyara/grammar.y" { yr_parser_emit_push_const(yyscanner, YR_UNDEFINED); (yyval.expression).type = EXPRESSION_TYPE_QUANTIFIER; (yyval.expression).value.integer = FOR_EXPRESSION_ALL; } -#line 4667 "libyara/grammar.c" +#line 4677 "libyara/grammar.c" break; - case 140: /* for_quantifier: "" */ -#line 2559 "libyara/grammar.y" + case 141: /* for_quantifier: "" */ +#line 2563 "libyara/grammar.y" { yr_parser_emit_push_const(yyscanner, 1); (yyval.expression).type = EXPRESSION_TYPE_QUANTIFIER; (yyval.expression).value.integer = FOR_EXPRESSION_ANY; } -#line 4677 "libyara/grammar.c" +#line 4687 "libyara/grammar.c" break; - case 141: /* for_quantifier: "" */ -#line 2565 "libyara/grammar.y" + case 142: /* for_quantifier: "" */ +#line 2569 "libyara/grammar.y" { yr_parser_emit_push_const(yyscanner, 0); (yyval.expression).type = EXPRESSION_TYPE_QUANTIFIER; (yyval.expression).value.integer = FOR_EXPRESSION_NONE; } -#line 4687 "libyara/grammar.c" +#line 4697 "libyara/grammar.c" break; - case 142: /* primary_expression: '(' primary_expression ')' */ -#line 2575 "libyara/grammar.y" + case 143: /* primary_expression: '(' primary_expression ')' */ +#line 2579 "libyara/grammar.y" { (yyval.expression) = (yyvsp[-1].expression); } -#line 4695 "libyara/grammar.c" +#line 4705 "libyara/grammar.c" break; - case 143: /* primary_expression: "" */ -#line 2579 "libyara/grammar.y" + case 144: /* primary_expression: "" */ +#line 2583 "libyara/grammar.y" { fail_if_error(yr_parser_emit( yyscanner, OP_FILESIZE, NULL)); @@ -4703,11 +4713,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_INTEGER; (yyval.expression).value.integer = YR_UNDEFINED; } -#line 4707 "libyara/grammar.c" +#line 4717 "libyara/grammar.c" break; - case 144: /* primary_expression: "" */ -#line 2587 "libyara/grammar.y" + case 145: /* primary_expression: "" */ +#line 2591 "libyara/grammar.y" { yywarning(yyscanner, "using deprecated \"entrypoint\" keyword. Use the \"entry_point\" " @@ -4719,11 +4729,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_INTEGER; (yyval.expression).value.integer = YR_UNDEFINED; } -#line 4723 "libyara/grammar.c" +#line 4733 "libyara/grammar.c" break; - case 145: /* primary_expression: "integer function" '(' primary_expression ')' */ -#line 2599 "libyara/grammar.y" + case 146: /* primary_expression: "integer function" '(' primary_expression ')' */ +#line 2603 "libyara/grammar.y" { check_type((yyvsp[-1].expression), EXPRESSION_TYPE_INTEGER, "intXXXX or uintXXXX"); @@ -4737,33 +4747,33 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_INTEGER; (yyval.expression).value.integer = YR_UNDEFINED; } -#line 4741 "libyara/grammar.c" +#line 4751 "libyara/grammar.c" break; - case 146: /* primary_expression: "integer number" */ -#line 2613 "libyara/grammar.y" + case 147: /* primary_expression: "integer number" */ +#line 2617 "libyara/grammar.y" { fail_if_error(yr_parser_emit_push_const(yyscanner, (yyvsp[0].integer))); (yyval.expression).type = EXPRESSION_TYPE_INTEGER; (yyval.expression).value.integer = (yyvsp[0].integer); } -#line 4752 "libyara/grammar.c" +#line 4762 "libyara/grammar.c" break; - case 147: /* primary_expression: "floating point number" */ -#line 2620 "libyara/grammar.y" + case 148: /* primary_expression: "floating point number" */ +#line 2624 "libyara/grammar.y" { fail_if_error(yr_parser_emit_with_arg_double( yyscanner, OP_PUSH, (yyvsp[0].double_), NULL, NULL)); (yyval.expression).type = EXPRESSION_TYPE_FLOAT; } -#line 4763 "libyara/grammar.c" +#line 4773 "libyara/grammar.c" break; - case 148: /* primary_expression: "text string" */ -#line 2627 "libyara/grammar.y" + case 149: /* primary_expression: "text string" */ +#line 2631 "libyara/grammar.y" { YR_ARENA_REF ref; @@ -4788,11 +4798,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_STRING; (yyval.expression).value.sized_string_ref = ref; } -#line 4792 "libyara/grammar.c" +#line 4802 "libyara/grammar.c" break; - case 149: /* primary_expression: "string count" "" range */ -#line 2652 "libyara/grammar.y" + case 150: /* primary_expression: "string count" "" range */ +#line 2656 "libyara/grammar.y" { int result = yr_parser_reduce_string_identifier( yyscanner, (yyvsp[-2].c_string), OP_COUNT_IN, YR_UNDEFINED); @@ -4804,11 +4814,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_INTEGER; (yyval.expression).value.integer = YR_UNDEFINED; } -#line 4808 "libyara/grammar.c" +#line 4818 "libyara/grammar.c" break; - case 150: /* primary_expression: "string count" */ -#line 2664 "libyara/grammar.y" + case 151: /* primary_expression: "string count" */ +#line 2668 "libyara/grammar.y" { int result = yr_parser_reduce_string_identifier( yyscanner, (yyvsp[0].c_string), OP_COUNT, YR_UNDEFINED); @@ -4820,11 +4830,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_INTEGER; (yyval.expression).value.integer = YR_UNDEFINED; } -#line 4824 "libyara/grammar.c" +#line 4834 "libyara/grammar.c" break; - case 151: /* primary_expression: "string offset" '[' primary_expression ']' */ -#line 2676 "libyara/grammar.y" + case 152: /* primary_expression: "string offset" '[' primary_expression ']' */ +#line 2680 "libyara/grammar.y" { int result = yr_parser_reduce_string_identifier( yyscanner, (yyvsp[-3].c_string), OP_OFFSET, YR_UNDEFINED); @@ -4836,11 +4846,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_INTEGER; (yyval.expression).value.integer = YR_UNDEFINED; } -#line 4840 "libyara/grammar.c" +#line 4850 "libyara/grammar.c" break; - case 152: /* primary_expression: "string offset" */ -#line 2688 "libyara/grammar.y" + case 153: /* primary_expression: "string offset" */ +#line 2692 "libyara/grammar.y" { int result = yr_parser_emit_push_const(yyscanner, 1); @@ -4855,11 +4865,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_INTEGER; (yyval.expression).value.integer = YR_UNDEFINED; } -#line 4859 "libyara/grammar.c" +#line 4869 "libyara/grammar.c" break; - case 153: /* primary_expression: "string length" '[' primary_expression ']' */ -#line 2703 "libyara/grammar.y" + case 154: /* primary_expression: "string length" '[' primary_expression ']' */ +#line 2707 "libyara/grammar.y" { int result = yr_parser_reduce_string_identifier( yyscanner, (yyvsp[-3].c_string), OP_LENGTH, YR_UNDEFINED); @@ -4871,11 +4881,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_INTEGER; (yyval.expression).value.integer = YR_UNDEFINED; } -#line 4875 "libyara/grammar.c" +#line 4885 "libyara/grammar.c" break; - case 154: /* primary_expression: "string length" */ -#line 2715 "libyara/grammar.y" + case 155: /* primary_expression: "string length" */ +#line 2719 "libyara/grammar.y" { int result = yr_parser_emit_push_const(yyscanner, 1); @@ -4890,11 +4900,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_INTEGER; (yyval.expression).value.integer = YR_UNDEFINED; } -#line 4894 "libyara/grammar.c" +#line 4904 "libyara/grammar.c" break; - case 155: /* primary_expression: identifier */ -#line 2730 "libyara/grammar.y" + case 156: /* primary_expression: identifier */ +#line 2734 "libyara/grammar.y" { int result = ERROR_SUCCESS; @@ -4937,11 +4947,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(result); } -#line 4941 "libyara/grammar.c" +#line 4951 "libyara/grammar.c" break; - case 156: /* primary_expression: '-' primary_expression */ -#line 2773 "libyara/grammar.y" + case 157: /* primary_expression: '-' primary_expression */ +#line 2777 "libyara/grammar.y" { int result = ERROR_SUCCESS; @@ -4962,11 +4972,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(result); } -#line 4966 "libyara/grammar.c" +#line 4976 "libyara/grammar.c" break; - case 157: /* primary_expression: primary_expression '+' primary_expression */ -#line 2794 "libyara/grammar.y" + case 158: /* primary_expression: primary_expression '+' primary_expression */ +#line 2798 "libyara/grammar.y" { int result = yr_parser_reduce_operation( yyscanner, "+", (yyvsp[-2].expression), (yyvsp[0].expression)); @@ -5001,11 +5011,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(result); } -#line 5005 "libyara/grammar.c" +#line 5015 "libyara/grammar.c" break; - case 158: /* primary_expression: primary_expression '-' primary_expression */ -#line 2829 "libyara/grammar.y" + case 159: /* primary_expression: primary_expression '-' primary_expression */ +#line 2833 "libyara/grammar.y" { int result = yr_parser_reduce_operation( yyscanner, "-", (yyvsp[-2].expression), (yyvsp[0].expression)); @@ -5040,11 +5050,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(result); } -#line 5044 "libyara/grammar.c" +#line 5054 "libyara/grammar.c" break; - case 159: /* primary_expression: primary_expression '*' primary_expression */ -#line 2864 "libyara/grammar.y" + case 160: /* primary_expression: primary_expression '*' primary_expression */ +#line 2868 "libyara/grammar.y" { int result = yr_parser_reduce_operation( yyscanner, "*", (yyvsp[-2].expression), (yyvsp[0].expression)); @@ -5078,11 +5088,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(result); } -#line 5082 "libyara/grammar.c" +#line 5092 "libyara/grammar.c" break; - case 160: /* primary_expression: primary_expression '\\' primary_expression */ -#line 2898 "libyara/grammar.y" + case 161: /* primary_expression: primary_expression '\\' primary_expression */ +#line 2902 "libyara/grammar.y" { int result = yr_parser_reduce_operation( yyscanner, "\\", (yyvsp[-2].expression), (yyvsp[0].expression)); @@ -5107,11 +5117,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(result); } -#line 5111 "libyara/grammar.c" +#line 5121 "libyara/grammar.c" break; - case 161: /* primary_expression: primary_expression '%' primary_expression */ -#line 2923 "libyara/grammar.y" + case 162: /* primary_expression: primary_expression '%' primary_expression */ +#line 2927 "libyara/grammar.y" { check_type((yyvsp[-2].expression), EXPRESSION_TYPE_INTEGER, "%"); check_type((yyvsp[0].expression), EXPRESSION_TYPE_INTEGER, "%"); @@ -5128,11 +5138,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(ERROR_DIVISION_BY_ZERO); } } -#line 5132 "libyara/grammar.c" +#line 5142 "libyara/grammar.c" break; - case 162: /* primary_expression: primary_expression '^' primary_expression */ -#line 2940 "libyara/grammar.y" + case 163: /* primary_expression: primary_expression '^' primary_expression */ +#line 2944 "libyara/grammar.y" { check_type((yyvsp[-2].expression), EXPRESSION_TYPE_INTEGER, "^"); check_type((yyvsp[0].expression), EXPRESSION_TYPE_INTEGER, "^"); @@ -5142,11 +5152,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_INTEGER; (yyval.expression).value.integer = OPERATION(^, (yyvsp[-2].expression).value.integer, (yyvsp[0].expression).value.integer); } -#line 5146 "libyara/grammar.c" +#line 5156 "libyara/grammar.c" break; - case 163: /* primary_expression: primary_expression '&' primary_expression */ -#line 2950 "libyara/grammar.y" + case 164: /* primary_expression: primary_expression '&' primary_expression */ +#line 2954 "libyara/grammar.y" { check_type((yyvsp[-2].expression), EXPRESSION_TYPE_INTEGER, "^"); check_type((yyvsp[0].expression), EXPRESSION_TYPE_INTEGER, "^"); @@ -5156,11 +5166,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_INTEGER; (yyval.expression).value.integer = OPERATION(&, (yyvsp[-2].expression).value.integer, (yyvsp[0].expression).value.integer); } -#line 5160 "libyara/grammar.c" +#line 5170 "libyara/grammar.c" break; - case 164: /* primary_expression: primary_expression '|' primary_expression */ -#line 2960 "libyara/grammar.y" + case 165: /* primary_expression: primary_expression '|' primary_expression */ +#line 2964 "libyara/grammar.y" { check_type((yyvsp[-2].expression), EXPRESSION_TYPE_INTEGER, "|"); check_type((yyvsp[0].expression), EXPRESSION_TYPE_INTEGER, "|"); @@ -5170,11 +5180,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).type = EXPRESSION_TYPE_INTEGER; (yyval.expression).value.integer = OPERATION(|, (yyvsp[-2].expression).value.integer, (yyvsp[0].expression).value.integer); } -#line 5174 "libyara/grammar.c" +#line 5184 "libyara/grammar.c" break; - case 165: /* primary_expression: '~' primary_expression */ -#line 2970 "libyara/grammar.y" + case 166: /* primary_expression: '~' primary_expression */ +#line 2974 "libyara/grammar.y" { check_type((yyvsp[0].expression), EXPRESSION_TYPE_INTEGER, "~"); @@ -5184,11 +5194,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.expression).value.integer = ((yyvsp[0].expression).value.integer == YR_UNDEFINED) ? YR_UNDEFINED : ~((yyvsp[0].expression).value.integer); } -#line 5188 "libyara/grammar.c" +#line 5198 "libyara/grammar.c" break; - case 166: /* primary_expression: primary_expression "<<" primary_expression */ -#line 2980 "libyara/grammar.y" + case 167: /* primary_expression: primary_expression "<<" primary_expression */ +#line 2984 "libyara/grammar.y" { int result; @@ -5208,11 +5218,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(result); } -#line 5212 "libyara/grammar.c" +#line 5222 "libyara/grammar.c" break; - case 167: /* primary_expression: primary_expression ">>" primary_expression */ -#line 3000 "libyara/grammar.y" + case 168: /* primary_expression: primary_expression ">>" primary_expression */ +#line 3004 "libyara/grammar.y" { int result; @@ -5232,19 +5242,19 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); fail_if_error(result); } -#line 5236 "libyara/grammar.c" +#line 5246 "libyara/grammar.c" break; - case 168: /* primary_expression: regexp */ -#line 3020 "libyara/grammar.y" + case 169: /* primary_expression: regexp */ +#line 3024 "libyara/grammar.y" { (yyval.expression) = (yyvsp[0].expression); } -#line 5244 "libyara/grammar.c" +#line 5254 "libyara/grammar.c" break; -#line 5248 "libyara/grammar.c" +#line 5258 "libyara/grammar.c" default: break; } @@ -5468,5 +5478,5 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); return yyresult; } -#line 3025 "libyara/grammar.y" +#line 3029 "libyara/grammar.y" diff --git a/libyara/grammar.y b/libyara/grammar.y index 642d79e20c..16f5abc6c8 100644 --- a/libyara/grammar.y +++ b/libyara/grammar.y @@ -369,6 +369,10 @@ rules { _yr_compiler_pop_file_name(compiler); } + | rules error _END_OF_INCLUDED_FILE_ + { + _yr_compiler_pop_file_name(compiler); + } ;