[Forensics-changes] [yara] 87/192: Fix issue #575
Hilko Bengen
bengen at moszumanska.debian.org
Sat Jul 1 10:31:50 UTC 2017
This is an automated email from the git hooks/post-receive script.
bengen pushed a commit to annotated tag v3.6.0
in repository yara.
commit 890c3f850293176c0e996a602ffa88b315f4e98f
Author: plusvic <plusvic at gmail.com>
Date: Wed Jan 4 17:09:35 2017 +0100
Fix issue #575
---
libyara/grammar.c | 645 +++++++++++++++++++++++++++---------------------------
libyara/grammar.y | 5 +
2 files changed, 332 insertions(+), 318 deletions(-)
diff --git a/libyara/grammar.c b/libyara/grammar.c
index 9ab6dfe..6e5c46e 100644
--- a/libyara/grammar.c
+++ b/libyara/grammar.c
@@ -546,16 +546,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 408
+#define YYLAST 406
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 72
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 41
/* YYNRULES -- Number of rules. */
-#define YYNRULES 121
+#define YYNRULES 122
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 209
+#define YYNSTATES 210
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
@@ -612,13 +612,13 @@ static const yytype_uint16 yyrline[] =
472, 485, 502, 503, 509, 508, 524, 523, 539, 553,
554, 559, 560, 561, 562, 567, 652, 698, 756, 801,
802, 806, 831, 867, 913, 935, 944, 953, 968, 980,
- 994, 1007, 1019, 1049, 1018, 1163, 1162, 1241, 1247, 1254,
- 1253, 1316, 1315, 1376, 1385, 1394, 1403, 1412, 1421, 1430,
- 1434, 1442, 1443, 1448, 1470, 1482, 1498, 1497, 1503, 1514,
- 1515, 1520, 1527, 1538, 1539, 1543, 1551, 1555, 1565, 1579,
- 1595, 1605, 1614, 1639, 1651, 1663, 1679, 1691, 1707, 1752,
- 1771, 1789, 1807, 1825, 1851, 1869, 1879, 1889, 1899, 1909,
- 1919, 1929
+ 994, 1007, 1018, 1024, 1054, 1023, 1168, 1167, 1246, 1252,
+ 1259, 1258, 1321, 1320, 1381, 1390, 1399, 1408, 1417, 1426,
+ 1435, 1439, 1447, 1448, 1453, 1475, 1487, 1503, 1502, 1508,
+ 1519, 1520, 1525, 1532, 1543, 1544, 1548, 1556, 1560, 1570,
+ 1584, 1600, 1610, 1619, 1644, 1656, 1668, 1684, 1696, 1712,
+ 1757, 1776, 1794, 1812, 1830, 1856, 1874, 1884, 1894, 1904,
+ 1914, 1924, 1934
};
#endif
@@ -672,7 +672,7 @@ static const yytype_uint16 yytoknum[] =
#define yypact_value_is_default(Yystate) \
(!!((Yystate) == (-73)))
-#define YYTABLE_NINF -94
+#define YYTABLE_NINF -95
#define yytable_value_is_error(Yytable_value) \
0
@@ -681,27 +681,27 @@ static const yytype_uint16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- -73, 79, -73, -32, -4, -73, -73, 94, -73, -73,
- -73, -73, 13, -73, -73, -73, -73, -8, 72, 6,
- -73, 78, 111, -73, 61, 122, 123, 82, -73, 90,
- 123, -73, 147, 150, 16, -73, 96, 147, -73, 101,
- 97, -73, -73, -73, -73, 151, 53, -73, 48, -73,
- -73, -73, 149, 145, -73, -9, -73, 103, 107, -73,
- -73, 106, -73, -73, -73, -73, -73, -73, 110, -73,
- -73, 135, 48, 135, 48, -33, -73, 64, -73, 144,
- 306, -73, -73, 135, 108, 135, 135, 135, 135, -7,
- 322, -73, -73, -73, 64, 117, 163, 168, 135, 48,
- -73, -73, -6, 167, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 86, 86, 322, 135, -73, 243, 261, 183, 203,
- 159, -6, -73, -73, -73, 279, 121, 125, 95, 48,
- 48, -73, -73, -73, -73, 322, 337, 351, -43, 322,
- 322, 322, 322, 322, 322, 40, 40, 58, 58, -73,
- -73, -73, -73, -73, -73, -73, -73, 129, -73, -73,
- -73, -73, 128, -73, -73, 48, 152, -73, 15, 135,
- 131, -73, 95, -73, -73, 71, -73, 223, 135, 133,
- -73, 132, -73, 15, -73, 73, 129, -73, 48, -73,
- -73, 135, 134, 31, 322, 48, -73, 49, -73
+ -73, 90, -73, -32, -10, -73, -73, 93, -73, -73,
+ -73, -73, 1, -73, -73, -73, -73, -49, 7, -36,
+ -73, 20, 26, -73, -28, 92, 46, 4, -73, 40,
+ 46, -73, 100, 119, 16, -73, 72, 100, -73, 77,
+ 83, -73, -73, -73, -73, 134, 59, -73, 48, -73,
+ -73, -73, 133, 136, -73, -18, -73, 88, 95, -73,
+ -73, 91, -73, -73, -73, -73, -73, -73, 102, -73,
+ -73, 126, 48, 126, 48, -44, -73, 85, -73, 127,
+ 297, -73, -73, 126, 110, 126, 126, 126, 126, 2,
+ 313, -73, -73, -73, 85, 111, 154, 172, 126, 48,
+ -73, -73, -6, 162, 126, 126, 126, 126, 126, 126,
+ 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
+ 126, 60, 60, 313, 126, -73, 234, 252, 174, 194,
+ -73, 153, -6, -73, -73, -73, 270, 117, 120, 108,
+ 48, 48, -73, -73, -73, -73, 313, 328, 342, 349,
+ 313, 313, 313, 313, 313, 313, 113, 113, 53, 53,
+ -73, -73, -73, -73, -73, -73, -73, -73, 121, -73,
+ -73, -73, -73, 124, -73, -73, 48, 151, -73, -1,
+ 126, 125, -73, 108, -73, -73, 18, -73, 214, 126,
+ 129, -73, 143, -73, -1, -73, 63, 121, -73, 48,
+ -73, -73, 126, 144, 31, 313, 48, -73, 33, -73
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -714,31 +714,31 @@ static const yytype_uint8 yydefact[] =
23, 22, 12, 24, 0, 14, 0, 0, 10, 0,
13, 25, 0, 0, 0, 26, 0, 15, 32, 0,
0, 28, 27, 30, 31, 0, 34, 33, 0, 11,
- 29, 38, 0, 0, 45, 59, 103, 105, 107, 100,
- 101, 0, 102, 53, 97, 98, 94, 95, 0, 55,
- 56, 0, 0, 0, 0, 108, 121, 16, 54, 0,
- 79, 39, 39, 0, 0, 0, 0, 0, 0, 0,
- 93, 109, 68, 118, 0, 54, 79, 0, 0, 49,
- 71, 69, 0, 0, 0, 0, 0, 0, 0, 0,
+ 29, 38, 0, 0, 45, 59, 104, 106, 108, 101,
+ 102, 0, 103, 53, 98, 99, 95, 96, 0, 55,
+ 56, 0, 0, 0, 0, 109, 122, 16, 54, 0,
+ 80, 39, 39, 0, 0, 0, 0, 0, 0, 0,
+ 94, 110, 69, 119, 0, 54, 80, 0, 0, 49,
+ 72, 70, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 35, 37, 60, 0, 61, 0, 0, 0, 0,
- 0, 0, 80, 96, 46, 0, 0, 50, 51, 0,
- 0, 88, 86, 67, 57, 58, 117, 115, 116, 77,
- 78, 73, 75, 74, 76, 119, 120, 110, 111, 112,
- 113, 114, 42, 41, 43, 44, 40, 0, 104, 106,
- 99, 62, 0, 47, 48, 0, 72, 70, 0, 0,
- 0, 65, 52, 91, 92, 0, 89, 0, 0, 0,
- 82, 0, 87, 0, 83, 0, 84, 63, 0, 90,
- 81, 0, 0, 0, 85, 0, 66, 0, 64
+ 62, 0, 0, 81, 97, 46, 0, 0, 50, 51,
+ 0, 0, 89, 87, 68, 57, 58, 118, 116, 117,
+ 78, 79, 74, 76, 75, 77, 120, 121, 111, 112,
+ 113, 114, 115, 42, 41, 43, 44, 40, 0, 105,
+ 107, 100, 63, 0, 47, 48, 0, 73, 71, 0,
+ 0, 0, 66, 52, 92, 93, 0, 90, 0, 0,
+ 0, 83, 0, 88, 0, 84, 0, 85, 64, 0,
+ 91, 82, 0, 0, 0, 86, 0, 67, 0, 65
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -73, -73, 199, 218, -73, -73, -73, -73, -73, -73,
- -73, -73, -73, -73, 192, -73, 186, -73, -73, 142,
- -73, -73, -73, -73, 126, -48, -72, -73, -73, -73,
- -73, -73, -73, 50, -73, 100, -73, -73, 35, 164,
+ -73, -73, 211, 212, -73, -73, -73, -73, -73, -73,
+ -73, -73, -73, -73, 189, -73, 183, -73, -73, 139,
+ -73, -73, -73, -73, 130, -48, -72, -73, -73, -73,
+ -73, -73, -73, 41, -73, 103, -73, -73, 29, 164,
-67
};
@@ -747,8 +747,8 @@ static const yytype_int16 yydefgoto[] =
{
-1, 1, 5, 6, 17, 33, 25, 28, 40, 7,
15, 19, 21, 30, 31, 37, 38, 52, 53, 121,
- 166, 75, 136, 137, 76, 94, 78, 180, 202, 191,
- 140, 139, 189, 125, 195, 143, 178, 185, 186, 79,
+ 167, 75, 137, 138, 76, 94, 78, 181, 203, 192,
+ 141, 140, 190, 125, 196, 144, 179, 186, 187, 79,
80
};
@@ -757,92 +757,92 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 77, 90, 95, 130, 91, 4, 93, 96, 114, 115,
- 116, 117, 118, 119, 120, 11, 123, 83, 126, 127,
- 128, 129, 84, 16, 92, 131, 183, 138, 141, 8,
- 184, 135, 41, 97, 98, 42, 99, 145, 146, 147,
- 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
- 158, 159, 160, 161, 43, 44, 18, 167, 54, 55,
- 56, 57, 58, 142, 59, 60, 61, 62, 22, 63,
- 45, 100, 101, 51, -36, 64, 65, 66, 67, 2,
- 3, 68, 20, -17, -17, -17, 69, 70, 23, 100,
- 101, 176, 177, 116, 117, 118, 119, 120, 12, 13,
- 14, 206, 71, 182, 100, 101, 72, 73, 162, 163,
- 164, 165, 187, 118, 119, 120, 4, 74, 24, 208,
- 54, 196, 56, 57, 58, 26, 59, 60, 61, 62,
- 27, 63, 179, 29, 204, -54, -54, 64, 65, 66,
- 67, 192, 193, 200, 201, 54, 32, 56, 57, 58,
- 203, 59, 60, 61, 62, 34, 63, 207, 36, 39,
- 49, 46, 64, 65, 71, 48, 82, 50, 81, 73,
- 85, 105, 106, 107, 86, 87, 102, 124, 134, 88,
- 114, 115, 116, 117, 118, 119, 120, 132, 63, 71,
- 171, 174, 181, 101, 73, -93, 175, 197, 103, 104,
- 188, 198, 9, 205, 88, 105, 106, 107, 108, 109,
- 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
- 120, 10, 35, 47, 122, 105, 106, 107, 199, 144,
- 190, 172, 89, 133, 114, 115, 116, 117, 118, 119,
- 120, 0, 0, 0, 0, 105, 106, 107, 0, 0,
- 0, 0, 0, 170, 114, 115, 116, 117, 118, 119,
- 120, 0, 0, 0, 0, 105, 106, 107, 0, 0,
- 0, 0, 0, 133, 114, 115, 116, 117, 118, 119,
- 120, 0, 0, 0, 0, 105, 106, 107, 0, 0,
- 0, 0, 0, 194, 114, 115, 116, 117, 118, 119,
- 120, 0, 0, 105, 106, 107, 0, 0, 0, 0,
- 0, 168, 114, 115, 116, 117, 118, 119, 120, 0,
- 0, 105, 106, 107, 0, 0, 0, 0, 0, 169,
- 114, 115, 116, 117, 118, 119, 120, 0, -93, 0,
- 0, 103, 104, 0, 0, 0, 0, 173, 105, 106,
- 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
- 117, 118, 119, 120, 105, 106, 107, 0, 0, 0,
+ 77, 90, 95, 130, 91, 4, 93, 96, 83, 11,
+ 184, 16, 131, 84, 185, 18, 123, 20, 126, 127,
+ 128, 129, 97, 98, 92, 99, 22, 139, 142, 8,
+ 23, 136, 41, 24, 132, 42, 26, 146, 147, 148,
+ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ 159, 160, 161, 162, 43, 44, 29, 168, 54, 55,
+ 56, 57, 58, 143, 59, 60, 61, 62, 32, 63,
+ 45, 100, 101, 100, 101, 64, 65, 66, 67, 51,
+ -36, 68, 163, 164, 165, 166, 69, 70, 193, 194,
+ 2, 3, 177, 178, -17, -17, -17, 12, 13, 14,
+ 27, 207, 71, 209, 183, 34, 72, 73, 118, 119,
+ 120, 36, 54, 188, 56, 57, 58, 74, 59, 60,
+ 61, 62, 197, 63, 180, 100, 101, 4, 39, 64,
+ 65, 66, 67, 201, 202, 205, 54, 46, 56, 57,
+ 58, 48, 59, 60, 61, 62, 49, 63, -54, -54,
+ 50, 204, 81, 64, 65, 85, 71, 82, 208, 102,
+ 87, 73, 86, 105, 106, 107, 116, 117, 118, 119,
+ 120, 88, 114, 115, 116, 117, 118, 119, 120, 124,
+ 71, 133, 135, 63, 172, 73, -94, 175, 182, 103,
+ 104, 176, 101, 198, 189, 88, 105, 106, 107, 108,
+ 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
+ 119, 120, 199, 206, 9, 10, 105, 106, 107, 35,
+ 47, 122, 191, 200, 134, 114, 115, 116, 117, 118,
+ 119, 120, 89, 145, 0, 173, 105, 106, 107, 0,
+ 0, 0, 0, 0, 171, 114, 115, 116, 117, 118,
+ 119, 120, 0, 0, 0, 0, 105, 106, 107, 0,
+ 0, 0, 0, 0, 134, 114, 115, 116, 117, 118,
+ 119, 120, 0, 0, 0, 0, 105, 106, 107, 0,
+ 0, 0, 0, 0, 195, 114, 115, 116, 117, 118,
+ 119, 120, 0, 0, 105, 106, 107, 0, 0, 0,
+ 0, 0, 169, 114, 115, 116, 117, 118, 119, 120,
+ 0, 0, 105, 106, 107, 0, 0, 0, 0, 0,
+ 170, 114, 115, 116, 117, 118, 119, 120, 0, -94,
+ 0, 0, 103, 104, 0, 0, 0, 0, 174, 105,
+ 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 105, 106, 107, 0, 0,
+ 0, 0, 0, 0, 114, 115, 116, 117, 118, 119,
+ 120, 106, 107, 0, 0, 0, 0, 0, 0, 114,
+ 115, 116, 117, 118, 119, 120, 107, 0, 0, 0,
0, 0, 0, 114, 115, 116, 117, 118, 119, 120,
- 106, 107, 0, 0, 0, 0, 0, 0, 114, 115,
- 116, 117, 118, 119, 120, 107, 0, 0, 0, 0,
- 0, 0, 114, 115, 116, 117, 118, 119, 120
+ 114, 115, 116, 117, 118, 119, 120
};
static const yytype_int16 yycheck[] =
{
- 48, 68, 74, 10, 71, 37, 73, 74, 51, 52,
- 53, 54, 55, 56, 57, 19, 83, 26, 85, 86,
- 87, 88, 31, 10, 72, 32, 11, 99, 34, 61,
- 15, 98, 16, 66, 67, 19, 69, 104, 105, 106,
+ 48, 68, 74, 1, 71, 37, 73, 74, 26, 19,
+ 11, 10, 10, 31, 15, 64, 83, 10, 85, 86,
+ 87, 88, 66, 67, 72, 69, 62, 99, 34, 61,
+ 10, 98, 16, 7, 32, 19, 64, 104, 105, 106,
107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
- 117, 118, 119, 120, 38, 39, 64, 124, 10, 11,
- 12, 13, 14, 69, 16, 17, 18, 19, 62, 21,
- 54, 40, 41, 20, 21, 27, 28, 29, 30, 0,
- 1, 33, 10, 4, 5, 6, 38, 39, 10, 40,
- 41, 139, 140, 53, 54, 55, 56, 57, 4, 5,
- 6, 70, 54, 175, 40, 41, 58, 59, 22, 23,
- 24, 25, 179, 55, 56, 57, 37, 69, 7, 70,
- 10, 188, 12, 13, 14, 64, 16, 17, 18, 19,
- 8, 21, 3, 10, 201, 40, 41, 27, 28, 29,
- 30, 70, 71, 70, 71, 10, 64, 12, 13, 14,
- 198, 16, 17, 18, 19, 65, 21, 205, 11, 9,
- 63, 65, 27, 28, 54, 64, 21, 16, 19, 59,
- 67, 42, 43, 44, 67, 69, 32, 69, 10, 69,
- 51, 52, 53, 54, 55, 56, 57, 70, 21, 54,
- 31, 70, 64, 41, 59, 32, 71, 64, 35, 36,
- 69, 69, 3, 69, 69, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
- 57, 3, 30, 37, 82, 42, 43, 44, 193, 103,
- 180, 131, 68, 70, 51, 52, 53, 54, 55, 56,
- 57, -1, -1, -1, -1, 42, 43, 44, -1, -1,
- -1, -1, -1, 70, 51, 52, 53, 54, 55, 56,
- 57, -1, -1, -1, -1, 42, 43, 44, -1, -1,
- -1, -1, -1, 70, 51, 52, 53, 54, 55, 56,
- 57, -1, -1, -1, -1, 42, 43, 44, -1, -1,
- -1, -1, -1, 70, 51, 52, 53, 54, 55, 56,
- 57, -1, -1, 42, 43, 44, -1, -1, -1, -1,
- -1, 68, 51, 52, 53, 54, 55, 56, 57, -1,
- -1, 42, 43, 44, -1, -1, -1, -1, -1, 68,
- 51, 52, 53, 54, 55, 56, 57, -1, 32, -1,
- -1, 35, 36, -1, -1, -1, -1, 68, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
- 54, 55, 56, 57, 42, 43, 44, -1, -1, -1,
+ 117, 118, 119, 120, 38, 39, 10, 124, 10, 11,
+ 12, 13, 14, 69, 16, 17, 18, 19, 64, 21,
+ 54, 40, 41, 40, 41, 27, 28, 29, 30, 20,
+ 21, 33, 22, 23, 24, 25, 38, 39, 70, 71,
+ 0, 1, 140, 141, 4, 5, 6, 4, 5, 6,
+ 8, 70, 54, 70, 176, 65, 58, 59, 55, 56,
+ 57, 11, 10, 180, 12, 13, 14, 69, 16, 17,
+ 18, 19, 189, 21, 3, 40, 41, 37, 9, 27,
+ 28, 29, 30, 70, 71, 202, 10, 65, 12, 13,
+ 14, 64, 16, 17, 18, 19, 63, 21, 40, 41,
+ 16, 199, 19, 27, 28, 67, 54, 21, 206, 32,
+ 69, 59, 67, 42, 43, 44, 53, 54, 55, 56,
+ 57, 69, 51, 52, 53, 54, 55, 56, 57, 69,
+ 54, 70, 10, 21, 31, 59, 32, 70, 64, 35,
+ 36, 71, 41, 64, 69, 69, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 69, 69, 3, 3, 42, 43, 44, 30,
+ 37, 82, 181, 194, 70, 51, 52, 53, 54, 55,
+ 56, 57, 68, 103, -1, 132, 42, 43, 44, -1,
+ -1, -1, -1, -1, 70, 51, 52, 53, 54, 55,
+ 56, 57, -1, -1, -1, -1, 42, 43, 44, -1,
+ -1, -1, -1, -1, 70, 51, 52, 53, 54, 55,
+ 56, 57, -1, -1, -1, -1, 42, 43, 44, -1,
+ -1, -1, -1, -1, 70, 51, 52, 53, 54, 55,
+ 56, 57, -1, -1, 42, 43, 44, -1, -1, -1,
+ -1, -1, 68, 51, 52, 53, 54, 55, 56, 57,
+ -1, -1, 42, 43, 44, -1, -1, -1, -1, -1,
+ 68, 51, 52, 53, 54, 55, 56, 57, -1, 32,
+ -1, -1, 35, 36, -1, -1, -1, -1, 68, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, 57, 42, 43, 44, -1, -1,
+ -1, -1, -1, -1, 51, 52, 53, 54, 55, 56,
+ 57, 43, 44, -1, -1, -1, -1, -1, -1, 51,
+ 52, 53, 54, 55, 56, 57, 44, -1, -1, -1,
-1, -1, -1, 51, 52, 53, 54, 55, 56, 57,
- 43, 44, -1, -1, -1, -1, -1, -1, 51, 52,
- 53, 54, 55, 56, 57, 44, -1, -1, -1, -1,
- -1, -1, 51, 52, 53, 54, 55, 56, 57
+ 51, 52, 53, 54, 55, 56, 57
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -862,14 +862,14 @@ static const yytype_uint8 yystos[] =
40, 41, 32, 35, 36, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
57, 91, 91, 112, 69, 105, 112, 112, 112, 112,
- 10, 32, 70, 70, 10, 112, 94, 95, 98, 103,
- 102, 34, 69, 107, 96, 112, 112, 112, 112, 112,
+ 1, 10, 32, 70, 70, 10, 112, 94, 95, 98,
+ 103, 102, 34, 69, 107, 96, 112, 112, 112, 112,
112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
- 112, 112, 22, 23, 24, 25, 92, 112, 68, 68,
- 70, 31, 107, 68, 70, 71, 97, 97, 108, 3,
- 99, 64, 98, 11, 15, 109, 110, 112, 69, 104,
- 105, 101, 70, 71, 70, 106, 112, 64, 69, 110,
- 70, 71, 100, 97, 112, 69, 70, 97, 70
+ 112, 112, 112, 22, 23, 24, 25, 92, 112, 68,
+ 68, 70, 31, 107, 68, 70, 71, 97, 97, 108,
+ 3, 99, 64, 98, 11, 15, 109, 110, 112, 69,
+ 104, 105, 101, 70, 71, 70, 106, 112, 64, 69,
+ 110, 70, 71, 100, 97, 112, 69, 70, 97, 70
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -881,13 +881,13 @@ static const yytype_uint8 yyr1[] =
86, 86, 87, 87, 89, 88, 90, 88, 88, 91,
91, 92, 92, 92, 92, 93, 93, 93, 93, 94,
94, 95, 95, 96, 97, 98, 98, 98, 98, 98,
- 98, 98, 99, 100, 98, 101, 98, 98, 98, 102,
- 98, 103, 98, 98, 98, 98, 98, 98, 98, 98,
- 98, 104, 104, 105, 106, 106, 108, 107, 107, 109,
- 109, 110, 110, 111, 111, 111, 112, 112, 112, 112,
+ 98, 98, 98, 99, 100, 98, 101, 98, 98, 98,
+ 102, 98, 103, 98, 98, 98, 98, 98, 98, 98,
+ 98, 98, 104, 104, 105, 106, 106, 108, 107, 107,
+ 109, 109, 110, 110, 111, 111, 111, 112, 112, 112,
112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
- 112, 112
+ 112, 112, 112
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -899,13 +899,13 @@ static const yytype_uint8 yyr2[] =
3, 3, 1, 2, 0, 5, 0, 5, 3, 0,
2, 1, 1, 1, 1, 1, 3, 4, 4, 0,
1, 1, 3, 1, 1, 1, 1, 3, 3, 1,
- 3, 3, 0, 0, 11, 0, 9, 3, 2, 0,
- 4, 0, 4, 3, 3, 3, 3, 3, 3, 1,
- 3, 3, 1, 5, 1, 3, 0, 4, 1, 1,
- 3, 1, 1, 1, 1, 1, 3, 1, 1, 4,
- 1, 1, 1, 1, 4, 1, 4, 1, 1, 2,
- 3, 3, 3, 3, 3, 3, 3, 3, 2, 3,
- 3, 1
+ 3, 3, 3, 0, 0, 11, 0, 9, 3, 2,
+ 0, 4, 0, 4, 3, 3, 3, 3, 3, 3,
+ 1, 3, 3, 1, 5, 1, 3, 0, 4, 1,
+ 1, 3, 1, 1, 1, 1, 1, 3, 1, 1,
+ 4, 1, 1, 1, 1, 4, 1, 4, 1, 1,
+ 2, 3, 3, 3, 3, 3, 3, 3, 3, 2,
+ 3, 3, 1
};
@@ -2587,6 +2587,15 @@ yyreduce:
case 62:
#line 1019 "grammar.y" /* yacc.c:1646 */
{
+ compiler->loop_depth--;
+ compiler->loop_identifier[compiler->loop_depth] = NULL;
+ }
+#line 2594 "grammar.c" /* yacc.c:1646 */
+ break;
+
+ case 63:
+#line 1024 "grammar.y" /* yacc.c:1646 */
+ {
int var_index;
if (compiler->loop_depth == MAX_LOOP_NESTING)
@@ -2615,11 +2624,11 @@ yyreduce:
ERROR_IF(compiler->last_result != ERROR_SUCCESS);
}
-#line 2619 "grammar.c" /* yacc.c:1646 */
+#line 2628 "grammar.c" /* yacc.c:1646 */
break;
- case 63:
-#line 1049 "grammar.y" /* yacc.c:1646 */
+ case 64:
+#line 1054 "grammar.y" /* yacc.c:1646 */
{
int mem_offset = LOOP_LOCAL_VARS * compiler->loop_depth;
uint8_t* addr;
@@ -2654,11 +2663,11 @@ yyreduce:
compiler->loop_identifier[compiler->loop_depth] = (yyvsp[-4].c_string);
compiler->loop_depth++;
}
-#line 2658 "grammar.c" /* yacc.c:1646 */
+#line 2667 "grammar.c" /* yacc.c:1646 */
break;
- case 64:
-#line 1084 "grammar.y" /* yacc.c:1646 */
+ case 65:
+#line 1089 "grammar.y" /* yacc.c:1646 */
{
int mem_offset;
@@ -2737,11 +2746,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_BOOLEAN;
}
-#line 2741 "grammar.c" /* yacc.c:1646 */
+#line 2750 "grammar.c" /* yacc.c:1646 */
break;
- case 65:
-#line 1163 "grammar.y" /* yacc.c:1646 */
+ case 66:
+#line 1168 "grammar.y" /* yacc.c:1646 */
{
int mem_offset = LOOP_LOCAL_VARS * compiler->loop_depth;
uint8_t* addr;
@@ -2771,11 +2780,11 @@ yyreduce:
compiler->loop_identifier[compiler->loop_depth] = NULL;
compiler->loop_depth++;
}
-#line 2775 "grammar.c" /* yacc.c:1646 */
+#line 2784 "grammar.c" /* yacc.c:1646 */
break;
- case 66:
-#line 1193 "grammar.y" /* yacc.c:1646 */
+ case 67:
+#line 1198 "grammar.y" /* yacc.c:1646 */
{
int mem_offset;
@@ -2824,31 +2833,31 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_BOOLEAN;
}
-#line 2828 "grammar.c" /* yacc.c:1646 */
+#line 2837 "grammar.c" /* yacc.c:1646 */
break;
- case 67:
-#line 1242 "grammar.y" /* yacc.c:1646 */
+ case 68:
+#line 1247 "grammar.y" /* yacc.c:1646 */
{
yr_parser_emit(yyscanner, OP_OF, NULL);
(yyval.expression).type = EXPRESSION_TYPE_BOOLEAN;
}
-#line 2838 "grammar.c" /* yacc.c:1646 */
+#line 2847 "grammar.c" /* yacc.c:1646 */
break;
- case 68:
-#line 1248 "grammar.y" /* yacc.c:1646 */
+ case 69:
+#line 1253 "grammar.y" /* yacc.c:1646 */
{
yr_parser_emit(yyscanner, OP_NOT, NULL);
(yyval.expression).type = EXPRESSION_TYPE_BOOLEAN;
}
-#line 2848 "grammar.c" /* yacc.c:1646 */
+#line 2857 "grammar.c" /* yacc.c:1646 */
break;
- case 69:
-#line 1254 "grammar.y" /* yacc.c:1646 */
+ case 70:
+#line 1259 "grammar.y" /* yacc.c:1646 */
{
YR_FIXUP* fixup;
void* jmp_destination_addr;
@@ -2874,11 +2883,11 @@ yyreduce:
fixup->next = compiler->fixup_stack_head;
compiler->fixup_stack_head = fixup;
}
-#line 2878 "grammar.c" /* yacc.c:1646 */
+#line 2887 "grammar.c" /* yacc.c:1646 */
break;
- case 70:
-#line 1280 "grammar.y" /* yacc.c:1646 */
+ case 71:
+#line 1285 "grammar.y" /* yacc.c:1646 */
{
YR_FIXUP* fixup;
uint8_t* and_addr;
@@ -2914,11 +2923,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_BOOLEAN;
}
-#line 2918 "grammar.c" /* yacc.c:1646 */
+#line 2927 "grammar.c" /* yacc.c:1646 */
break;
- case 71:
-#line 1316 "grammar.y" /* yacc.c:1646 */
+ case 72:
+#line 1321 "grammar.y" /* yacc.c:1646 */
{
YR_FIXUP* fixup;
void* jmp_destination_addr;
@@ -2943,11 +2952,11 @@ yyreduce:
fixup->next = compiler->fixup_stack_head;
compiler->fixup_stack_head = fixup;
}
-#line 2947 "grammar.c" /* yacc.c:1646 */
+#line 2956 "grammar.c" /* yacc.c:1646 */
break;
- case 72:
-#line 1341 "grammar.y" /* yacc.c:1646 */
+ case 73:
+#line 1346 "grammar.y" /* yacc.c:1646 */
{
YR_FIXUP* fixup;
uint8_t* or_addr;
@@ -2983,11 +2992,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_BOOLEAN;
}
-#line 2987 "grammar.c" /* yacc.c:1646 */
+#line 2996 "grammar.c" /* yacc.c:1646 */
break;
- case 73:
-#line 1377 "grammar.y" /* yacc.c:1646 */
+ case 74:
+#line 1382 "grammar.y" /* yacc.c:1646 */
{
compiler->last_result = yr_parser_reduce_operation(
yyscanner, "<", (yyvsp[-2].expression), (yyvsp[0].expression));
@@ -2996,11 +3005,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_BOOLEAN;
}
-#line 3000 "grammar.c" /* yacc.c:1646 */
+#line 3009 "grammar.c" /* yacc.c:1646 */
break;
- case 74:
-#line 1386 "grammar.y" /* yacc.c:1646 */
+ case 75:
+#line 1391 "grammar.y" /* yacc.c:1646 */
{
compiler->last_result = yr_parser_reduce_operation(
yyscanner, ">", (yyvsp[-2].expression), (yyvsp[0].expression));
@@ -3009,11 +3018,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_BOOLEAN;
}
-#line 3013 "grammar.c" /* yacc.c:1646 */
+#line 3022 "grammar.c" /* yacc.c:1646 */
break;
- case 75:
-#line 1395 "grammar.y" /* yacc.c:1646 */
+ case 76:
+#line 1400 "grammar.y" /* yacc.c:1646 */
{
compiler->last_result = yr_parser_reduce_operation(
yyscanner, "<=", (yyvsp[-2].expression), (yyvsp[0].expression));
@@ -3022,11 +3031,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_BOOLEAN;
}
-#line 3026 "grammar.c" /* yacc.c:1646 */
+#line 3035 "grammar.c" /* yacc.c:1646 */
break;
- case 76:
-#line 1404 "grammar.y" /* yacc.c:1646 */
+ case 77:
+#line 1409 "grammar.y" /* yacc.c:1646 */
{
compiler->last_result = yr_parser_reduce_operation(
yyscanner, ">=", (yyvsp[-2].expression), (yyvsp[0].expression));
@@ -3035,11 +3044,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_BOOLEAN;
}
-#line 3039 "grammar.c" /* yacc.c:1646 */
+#line 3048 "grammar.c" /* yacc.c:1646 */
break;
- case 77:
-#line 1413 "grammar.y" /* yacc.c:1646 */
+ case 78:
+#line 1418 "grammar.y" /* yacc.c:1646 */
{
compiler->last_result = yr_parser_reduce_operation(
yyscanner, "==", (yyvsp[-2].expression), (yyvsp[0].expression));
@@ -3048,11 +3057,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_BOOLEAN;
}
-#line 3052 "grammar.c" /* yacc.c:1646 */
+#line 3061 "grammar.c" /* yacc.c:1646 */
break;
- case 78:
-#line 1422 "grammar.y" /* yacc.c:1646 */
+ case 79:
+#line 1427 "grammar.y" /* yacc.c:1646 */
{
compiler->last_result = yr_parser_reduce_operation(
yyscanner, "!=", (yyvsp[-2].expression), (yyvsp[0].expression));
@@ -3061,39 +3070,39 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_BOOLEAN;
}
-#line 3065 "grammar.c" /* yacc.c:1646 */
+#line 3074 "grammar.c" /* yacc.c:1646 */
break;
- case 79:
-#line 1431 "grammar.y" /* yacc.c:1646 */
+ case 80:
+#line 1436 "grammar.y" /* yacc.c:1646 */
{
(yyval.expression) = (yyvsp[0].expression);
}
-#line 3073 "grammar.c" /* yacc.c:1646 */
+#line 3082 "grammar.c" /* yacc.c:1646 */
break;
- case 80:
-#line 1435 "grammar.y" /* yacc.c:1646 */
+ case 81:
+#line 1440 "grammar.y" /* yacc.c:1646 */
{
(yyval.expression) = (yyvsp[-1].expression);
}
-#line 3081 "grammar.c" /* yacc.c:1646 */
+#line 3090 "grammar.c" /* yacc.c:1646 */
break;
- case 81:
-#line 1442 "grammar.y" /* yacc.c:1646 */
+ case 82:
+#line 1447 "grammar.y" /* yacc.c:1646 */
{ (yyval.integer) = INTEGER_SET_ENUMERATION; }
-#line 3087 "grammar.c" /* yacc.c:1646 */
+#line 3096 "grammar.c" /* yacc.c:1646 */
break;
- case 82:
-#line 1443 "grammar.y" /* yacc.c:1646 */
+ case 83:
+#line 1448 "grammar.y" /* yacc.c:1646 */
{ (yyval.integer) = INTEGER_SET_RANGE; }
-#line 3093 "grammar.c" /* yacc.c:1646 */
+#line 3102 "grammar.c" /* yacc.c:1646 */
break;
- case 83:
-#line 1449 "grammar.y" /* yacc.c:1646 */
+ case 84:
+#line 1454 "grammar.y" /* yacc.c:1646 */
{
if ((yyvsp[-3].expression).type != EXPRESSION_TYPE_INTEGER)
{
@@ -3111,11 +3120,11 @@ yyreduce:
ERROR_IF(compiler->last_result != ERROR_SUCCESS);
}
-#line 3115 "grammar.c" /* yacc.c:1646 */
+#line 3124 "grammar.c" /* yacc.c:1646 */
break;
- case 84:
-#line 1471 "grammar.y" /* yacc.c:1646 */
+ case 85:
+#line 1476 "grammar.y" /* yacc.c:1646 */
{
if ((yyvsp[0].expression).type != EXPRESSION_TYPE_INTEGER)
{
@@ -3127,11 +3136,11 @@ yyreduce:
ERROR_IF(compiler->last_result != ERROR_SUCCESS);
}
-#line 3131 "grammar.c" /* yacc.c:1646 */
+#line 3140 "grammar.c" /* yacc.c:1646 */
break;
- case 85:
-#line 1483 "grammar.y" /* yacc.c:1646 */
+ case 86:
+#line 1488 "grammar.y" /* yacc.c:1646 */
{
if ((yyvsp[0].expression).type != EXPRESSION_TYPE_INTEGER)
{
@@ -3142,77 +3151,77 @@ yyreduce:
ERROR_IF(compiler->last_result != ERROR_SUCCESS);
}
-#line 3146 "grammar.c" /* yacc.c:1646 */
+#line 3155 "grammar.c" /* yacc.c:1646 */
break;
- case 86:
-#line 1498 "grammar.y" /* yacc.c:1646 */
+ case 87:
+#line 1503 "grammar.y" /* yacc.c:1646 */
{
// Push end-of-list marker
yr_parser_emit_with_arg(yyscanner, OP_PUSH, UNDEFINED, NULL, NULL);
}
-#line 3155 "grammar.c" /* yacc.c:1646 */
+#line 3164 "grammar.c" /* yacc.c:1646 */
break;
- case 88:
-#line 1504 "grammar.y" /* yacc.c:1646 */
+ case 89:
+#line 1509 "grammar.y" /* yacc.c:1646 */
{
yr_parser_emit_with_arg(yyscanner, OP_PUSH, UNDEFINED, NULL, NULL);
yr_parser_emit_pushes_for_strings(yyscanner, "$*");
ERROR_IF(compiler->last_result != ERROR_SUCCESS);
}
-#line 3166 "grammar.c" /* yacc.c:1646 */
+#line 3175 "grammar.c" /* yacc.c:1646 */
break;
- case 91:
-#line 1521 "grammar.y" /* yacc.c:1646 */
+ case 92:
+#line 1526 "grammar.y" /* yacc.c:1646 */
{
yr_parser_emit_pushes_for_strings(yyscanner, (yyvsp[0].c_string));
yr_free((yyvsp[0].c_string));
ERROR_IF(compiler->last_result != ERROR_SUCCESS);
}
-#line 3177 "grammar.c" /* yacc.c:1646 */
+#line 3186 "grammar.c" /* yacc.c:1646 */
break;
- case 92:
-#line 1528 "grammar.y" /* yacc.c:1646 */
+ case 93:
+#line 1533 "grammar.y" /* yacc.c:1646 */
{
yr_parser_emit_pushes_for_strings(yyscanner, (yyvsp[0].c_string));
yr_free((yyvsp[0].c_string));
ERROR_IF(compiler->last_result != ERROR_SUCCESS);
}
-#line 3188 "grammar.c" /* yacc.c:1646 */
+#line 3197 "grammar.c" /* yacc.c:1646 */
break;
- case 94:
-#line 1540 "grammar.y" /* yacc.c:1646 */
+ case 95:
+#line 1545 "grammar.y" /* yacc.c:1646 */
{
yr_parser_emit_with_arg(yyscanner, OP_PUSH, UNDEFINED, NULL, NULL);
}
-#line 3196 "grammar.c" /* yacc.c:1646 */
+#line 3205 "grammar.c" /* yacc.c:1646 */
break;
- case 95:
-#line 1544 "grammar.y" /* yacc.c:1646 */
+ case 96:
+#line 1549 "grammar.y" /* yacc.c:1646 */
{
yr_parser_emit_with_arg(yyscanner, OP_PUSH, 1, NULL, NULL);
}
-#line 3204 "grammar.c" /* yacc.c:1646 */
+#line 3213 "grammar.c" /* yacc.c:1646 */
break;
- case 96:
-#line 1552 "grammar.y" /* yacc.c:1646 */
+ case 97:
+#line 1557 "grammar.y" /* yacc.c:1646 */
{
(yyval.expression) = (yyvsp[-1].expression);
}
-#line 3212 "grammar.c" /* yacc.c:1646 */
+#line 3221 "grammar.c" /* yacc.c:1646 */
break;
- case 97:
-#line 1556 "grammar.y" /* yacc.c:1646 */
+ case 98:
+#line 1561 "grammar.y" /* yacc.c:1646 */
{
compiler->last_result = yr_parser_emit(
yyscanner, OP_FILESIZE, NULL);
@@ -3222,11 +3231,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = UNDEFINED;
}
-#line 3226 "grammar.c" /* yacc.c:1646 */
+#line 3235 "grammar.c" /* yacc.c:1646 */
break;
- case 98:
-#line 1566 "grammar.y" /* yacc.c:1646 */
+ case 99:
+#line 1571 "grammar.y" /* yacc.c:1646 */
{
yywarning(yyscanner,
"Using deprecated \"entrypoint\" keyword. Use the \"entry_point\" "
@@ -3240,11 +3249,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = UNDEFINED;
}
-#line 3244 "grammar.c" /* yacc.c:1646 */
+#line 3253 "grammar.c" /* yacc.c:1646 */
break;
- case 99:
-#line 1580 "grammar.y" /* yacc.c:1646 */
+ case 100:
+#line 1585 "grammar.y" /* yacc.c:1646 */
{
CHECK_TYPE((yyvsp[-1].expression), EXPRESSION_TYPE_INTEGER, "intXXXX or uintXXXX");
@@ -3260,11 +3269,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = UNDEFINED;
}
-#line 3264 "grammar.c" /* yacc.c:1646 */
+#line 3273 "grammar.c" /* yacc.c:1646 */
break;
- case 100:
-#line 1596 "grammar.y" /* yacc.c:1646 */
+ case 101:
+#line 1601 "grammar.y" /* yacc.c:1646 */
{
compiler->last_result = yr_parser_emit_with_arg(
yyscanner, OP_PUSH, (yyvsp[0].integer), NULL, NULL);
@@ -3274,11 +3283,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = (yyvsp[0].integer);
}
-#line 3278 "grammar.c" /* yacc.c:1646 */
+#line 3287 "grammar.c" /* yacc.c:1646 */
break;
- case 101:
-#line 1606 "grammar.y" /* yacc.c:1646 */
+ case 102:
+#line 1611 "grammar.y" /* yacc.c:1646 */
{
compiler->last_result = yr_parser_emit_with_arg_double(
yyscanner, OP_PUSH, (yyvsp[0].double_), NULL, NULL);
@@ -3287,11 +3296,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_FLOAT;
}
-#line 3291 "grammar.c" /* yacc.c:1646 */
+#line 3300 "grammar.c" /* yacc.c:1646 */
break;
- case 102:
-#line 1615 "grammar.y" /* yacc.c:1646 */
+ case 103:
+#line 1620 "grammar.y" /* yacc.c:1646 */
{
SIZED_STRING* sized_string;
@@ -3316,11 +3325,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_STRING;
(yyval.expression).value.sized_string = sized_string;
}
-#line 3320 "grammar.c" /* yacc.c:1646 */
+#line 3329 "grammar.c" /* yacc.c:1646 */
break;
- case 103:
-#line 1640 "grammar.y" /* yacc.c:1646 */
+ case 104:
+#line 1645 "grammar.y" /* yacc.c:1646 */
{
compiler->last_result = yr_parser_reduce_string_identifier(
yyscanner, (yyvsp[0].c_string), OP_COUNT, UNDEFINED);
@@ -3332,11 +3341,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = UNDEFINED;
}
-#line 3336 "grammar.c" /* yacc.c:1646 */
+#line 3345 "grammar.c" /* yacc.c:1646 */
break;
- case 104:
-#line 1652 "grammar.y" /* yacc.c:1646 */
+ case 105:
+#line 1657 "grammar.y" /* yacc.c:1646 */
{
compiler->last_result = yr_parser_reduce_string_identifier(
yyscanner, (yyvsp[-3].c_string), OP_OFFSET, UNDEFINED);
@@ -3348,11 +3357,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = UNDEFINED;
}
-#line 3352 "grammar.c" /* yacc.c:1646 */
+#line 3361 "grammar.c" /* yacc.c:1646 */
break;
- case 105:
-#line 1664 "grammar.y" /* yacc.c:1646 */
+ case 106:
+#line 1669 "grammar.y" /* yacc.c:1646 */
{
compiler->last_result = yr_parser_emit_with_arg(
yyscanner, OP_PUSH, 1, NULL, NULL);
@@ -3368,11 +3377,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = UNDEFINED;
}
-#line 3372 "grammar.c" /* yacc.c:1646 */
+#line 3381 "grammar.c" /* yacc.c:1646 */
break;
- case 106:
-#line 1680 "grammar.y" /* yacc.c:1646 */
+ case 107:
+#line 1685 "grammar.y" /* yacc.c:1646 */
{
compiler->last_result = yr_parser_reduce_string_identifier(
yyscanner, (yyvsp[-3].c_string), OP_LENGTH, UNDEFINED);
@@ -3384,11 +3393,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = UNDEFINED;
}
-#line 3388 "grammar.c" /* yacc.c:1646 */
+#line 3397 "grammar.c" /* yacc.c:1646 */
break;
- case 107:
-#line 1692 "grammar.y" /* yacc.c:1646 */
+ case 108:
+#line 1697 "grammar.y" /* yacc.c:1646 */
{
compiler->last_result = yr_parser_emit_with_arg(
yyscanner, OP_PUSH, 1, NULL, NULL);
@@ -3404,11 +3413,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = UNDEFINED;
}
-#line 3408 "grammar.c" /* yacc.c:1646 */
+#line 3417 "grammar.c" /* yacc.c:1646 */
break;
- case 108:
-#line 1708 "grammar.y" /* yacc.c:1646 */
+ case 109:
+#line 1713 "grammar.y" /* yacc.c:1646 */
{
if ((yyvsp[0].expression).type == EXPRESSION_TYPE_INTEGER) // loop identifier
{
@@ -3453,11 +3462,11 @@ yyreduce:
ERROR_IF(compiler->last_result != ERROR_SUCCESS);
}
-#line 3457 "grammar.c" /* yacc.c:1646 */
+#line 3466 "grammar.c" /* yacc.c:1646 */
break;
- case 109:
-#line 1753 "grammar.y" /* yacc.c:1646 */
+ case 110:
+#line 1758 "grammar.y" /* yacc.c:1646 */
{
CHECK_TYPE((yyvsp[0].expression), EXPRESSION_TYPE_INTEGER | EXPRESSION_TYPE_FLOAT, "-");
@@ -3476,11 +3485,11 @@ yyreduce:
ERROR_IF(compiler->last_result != ERROR_SUCCESS);
}
-#line 3480 "grammar.c" /* yacc.c:1646 */
+#line 3489 "grammar.c" /* yacc.c:1646 */
break;
- case 110:
-#line 1772 "grammar.y" /* yacc.c:1646 */
+ case 111:
+#line 1777 "grammar.y" /* yacc.c:1646 */
{
compiler->last_result = yr_parser_reduce_operation(
yyscanner, "+", (yyvsp[-2].expression), (yyvsp[0].expression));
@@ -3498,11 +3507,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_FLOAT;
}
}
-#line 3502 "grammar.c" /* yacc.c:1646 */
+#line 3511 "grammar.c" /* yacc.c:1646 */
break;
- case 111:
-#line 1790 "grammar.y" /* yacc.c:1646 */
+ case 112:
+#line 1795 "grammar.y" /* yacc.c:1646 */
{
compiler->last_result = yr_parser_reduce_operation(
yyscanner, "-", (yyvsp[-2].expression), (yyvsp[0].expression));
@@ -3520,11 +3529,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_FLOAT;
}
}
-#line 3524 "grammar.c" /* yacc.c:1646 */
+#line 3533 "grammar.c" /* yacc.c:1646 */
break;
- case 112:
-#line 1808 "grammar.y" /* yacc.c:1646 */
+ case 113:
+#line 1813 "grammar.y" /* yacc.c:1646 */
{
compiler->last_result = yr_parser_reduce_operation(
yyscanner, "*", (yyvsp[-2].expression), (yyvsp[0].expression));
@@ -3542,11 +3551,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_FLOAT;
}
}
-#line 3546 "grammar.c" /* yacc.c:1646 */
+#line 3555 "grammar.c" /* yacc.c:1646 */
break;
- case 113:
-#line 1826 "grammar.y" /* yacc.c:1646 */
+ case 114:
+#line 1831 "grammar.y" /* yacc.c:1646 */
{
compiler->last_result = yr_parser_reduce_operation(
yyscanner, "\\", (yyvsp[-2].expression), (yyvsp[0].expression));
@@ -3572,11 +3581,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_FLOAT;
}
}
-#line 3576 "grammar.c" /* yacc.c:1646 */
+#line 3585 "grammar.c" /* yacc.c:1646 */
break;
- case 114:
-#line 1852 "grammar.y" /* yacc.c:1646 */
+ case 115:
+#line 1857 "grammar.y" /* yacc.c:1646 */
{
CHECK_TYPE((yyvsp[-2].expression), EXPRESSION_TYPE_INTEGER, "%");
CHECK_TYPE((yyvsp[0].expression), EXPRESSION_TYPE_INTEGER, "%");
@@ -3594,11 +3603,11 @@ yyreduce:
ERROR_IF(compiler->last_result != ERROR_SUCCESS);
}
}
-#line 3598 "grammar.c" /* yacc.c:1646 */
+#line 3607 "grammar.c" /* yacc.c:1646 */
break;
- case 115:
-#line 1870 "grammar.y" /* yacc.c:1646 */
+ case 116:
+#line 1875 "grammar.y" /* yacc.c:1646 */
{
CHECK_TYPE((yyvsp[-2].expression), EXPRESSION_TYPE_INTEGER, "^");
CHECK_TYPE((yyvsp[0].expression), EXPRESSION_TYPE_INTEGER, "^");
@@ -3608,11 +3617,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = OPERATION(^, (yyvsp[-2].expression).value.integer, (yyvsp[0].expression).value.integer);
}
-#line 3612 "grammar.c" /* yacc.c:1646 */
+#line 3621 "grammar.c" /* yacc.c:1646 */
break;
- case 116:
-#line 1880 "grammar.y" /* yacc.c:1646 */
+ case 117:
+#line 1885 "grammar.y" /* yacc.c:1646 */
{
CHECK_TYPE((yyvsp[-2].expression), EXPRESSION_TYPE_INTEGER, "^");
CHECK_TYPE((yyvsp[0].expression), EXPRESSION_TYPE_INTEGER, "^");
@@ -3622,11 +3631,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = OPERATION(&, (yyvsp[-2].expression).value.integer, (yyvsp[0].expression).value.integer);
}
-#line 3626 "grammar.c" /* yacc.c:1646 */
+#line 3635 "grammar.c" /* yacc.c:1646 */
break;
- case 117:
-#line 1890 "grammar.y" /* yacc.c:1646 */
+ case 118:
+#line 1895 "grammar.y" /* yacc.c:1646 */
{
CHECK_TYPE((yyvsp[-2].expression), EXPRESSION_TYPE_INTEGER, "|");
CHECK_TYPE((yyvsp[0].expression), EXPRESSION_TYPE_INTEGER, "|");
@@ -3636,11 +3645,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = OPERATION(|, (yyvsp[-2].expression).value.integer, (yyvsp[0].expression).value.integer);
}
-#line 3640 "grammar.c" /* yacc.c:1646 */
+#line 3649 "grammar.c" /* yacc.c:1646 */
break;
- case 118:
-#line 1900 "grammar.y" /* yacc.c:1646 */
+ case 119:
+#line 1905 "grammar.y" /* yacc.c:1646 */
{
CHECK_TYPE((yyvsp[0].expression), EXPRESSION_TYPE_INTEGER, "~");
@@ -3650,11 +3659,11 @@ yyreduce:
(yyval.expression).value.integer = ((yyvsp[0].expression).value.integer == UNDEFINED) ?
UNDEFINED : ~((yyvsp[0].expression).value.integer);
}
-#line 3654 "grammar.c" /* yacc.c:1646 */
+#line 3663 "grammar.c" /* yacc.c:1646 */
break;
- case 119:
-#line 1910 "grammar.y" /* yacc.c:1646 */
+ case 120:
+#line 1915 "grammar.y" /* yacc.c:1646 */
{
CHECK_TYPE((yyvsp[-2].expression), EXPRESSION_TYPE_INTEGER, "<<");
CHECK_TYPE((yyvsp[0].expression), EXPRESSION_TYPE_INTEGER, "<<");
@@ -3664,11 +3673,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = OPERATION(<<, (yyvsp[-2].expression).value.integer, (yyvsp[0].expression).value.integer);
}
-#line 3668 "grammar.c" /* yacc.c:1646 */
+#line 3677 "grammar.c" /* yacc.c:1646 */
break;
- case 120:
-#line 1920 "grammar.y" /* yacc.c:1646 */
+ case 121:
+#line 1925 "grammar.y" /* yacc.c:1646 */
{
CHECK_TYPE((yyvsp[-2].expression), EXPRESSION_TYPE_INTEGER, ">>");
CHECK_TYPE((yyvsp[0].expression), EXPRESSION_TYPE_INTEGER, ">>");
@@ -3678,19 +3687,19 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = OPERATION(>>, (yyvsp[-2].expression).value.integer, (yyvsp[0].expression).value.integer);
}
-#line 3682 "grammar.c" /* yacc.c:1646 */
+#line 3691 "grammar.c" /* yacc.c:1646 */
break;
- case 121:
-#line 1930 "grammar.y" /* yacc.c:1646 */
+ case 122:
+#line 1935 "grammar.y" /* yacc.c:1646 */
{
(yyval.expression) = (yyvsp[0].expression);
}
-#line 3690 "grammar.c" /* yacc.c:1646 */
+#line 3699 "grammar.c" /* yacc.c:1646 */
break;
-#line 3694 "grammar.c" /* yacc.c:1646 */
+#line 3703 "grammar.c" /* yacc.c:1646 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@@ -3918,5 +3927,5 @@ yyreturn:
#endif
return yyresult;
}
-#line 1935 "grammar.y" /* yacc.c:1906 */
+#line 1940 "grammar.y" /* yacc.c:1906 */
diff --git a/libyara/grammar.y b/libyara/grammar.y
index 9de84f0..446d374 100644
--- a/libyara/grammar.y
+++ b/libyara/grammar.y
@@ -1015,6 +1015,11 @@ expression
$$.type = EXPRESSION_TYPE_BOOLEAN;
}
+ | _FOR_ for_expression error
+ {
+ compiler->loop_depth--;
+ compiler->loop_identifier[compiler->loop_depth] = NULL;
+ }
| _FOR_ for_expression _IDENTIFIER_ _IN_
{
int var_index;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/forensics/yara.git
More information about the forensics-changes
mailing list