[Forensics-changes] [yara] 138/415: Set correct precedence for modulus and bitwise xor operators
Hilko Bengen
bengen at moszumanska.debian.org
Thu Apr 3 05:42:55 UTC 2014
This is an automated email from the git hooks/post-receive script.
bengen pushed a commit to branch debian
in repository yara.
commit 86657a96c44bb2879dd5540df2a56de7e1bb2168
Author: Victor M. Alvarez <plusvic at gmail.com>
Date: Wed Jul 4 08:57:32 2012 +0000
Set correct precedence for modulus and bitwise xor operators
---
libyara/grammar.c | 364 ++++++++++++++++++++++++---------------------------
libyara/grammar.y | 4 +-
yara-python/tests.py | 5 +-
3 files changed, 178 insertions(+), 195 deletions(-)
diff --git a/libyara/grammar.c b/libyara/grammar.c
index 0999168..bafd647 100644
--- a/libyara/grammar.c
+++ b/libyara/grammar.c
@@ -577,7 +577,7 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 500
+#define YYLAST 429
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 84
@@ -601,16 +601,16 @@ static const yytype_uint8 yytranslate[] =
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 82, 54, 2,
- 76, 77, 67, 65, 78, 66, 79, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 74, 2,
- 2, 75, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 70, 54, 2,
+ 78, 79, 68, 66, 80, 67, 81, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 76, 2,
+ 2, 77, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 80, 68, 81, 83, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 71, 2, 2, 2, 2,
+ 2, 82, 69, 83, 56, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 73, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 72, 55, 73, 70, 2, 2, 2,
+ 2, 2, 2, 74, 55, 75, 72, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -628,8 +628,8 @@ static const yytype_uint8 yytranslate[] =
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, 49, 50, 51, 52, 53, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 69
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 71
};
#if YYDEBUG
@@ -654,40 +654,40 @@ static const yytype_uint16 yyprhs[] =
static const yytype_int8 yyrhs[] =
{
85, 0, -1, -1, 85, 86, -1, 85, 1, 86,
- -1, 85, 1, 71, -1, 90, 3, 10, 92, 72,
- 87, 88, 89, 73, -1, -1, 6, 74, 94, -1,
- -1, 7, 74, 96, -1, 8, 74, 100, -1, -1,
- 90, 91, -1, 4, -1, 5, -1, -1, 74, 93,
+ -1, 85, 1, 73, -1, 90, 3, 10, 92, 74,
+ 87, 88, 89, 75, -1, -1, 6, 76, 94, -1,
+ -1, 7, 76, 96, -1, 8, 76, 100, -1, -1,
+ 90, 91, -1, 4, -1, 5, -1, -1, 76, 93,
-1, 10, -1, 93, 10, -1, 95, -1, 94, 95,
- -1, 10, 75, 18, -1, 10, 75, 16, -1, 10,
- 75, 50, -1, 10, 75, 51, -1, 97, -1, 96,
- 97, -1, 11, 75, 18, 98, -1, 11, 75, 20,
- 98, -1, 11, 75, 19, -1, -1, 98, 99, -1,
+ -1, 10, 77, 18, -1, 10, 77, 16, -1, 10,
+ 77, 50, -1, 10, 77, 51, -1, 97, -1, 96,
+ 97, -1, 11, 77, 18, 98, -1, 11, 77, 20,
+ 98, -1, 11, 77, 19, -1, -1, 98, 99, -1,
22, -1, 21, -1, 23, -1, 24, -1, 50, -1,
51, -1, 10, -1, 10, 44, 20, -1, 10, 45,
18, -1, 11, -1, 11, 25, 110, -1, 11, 25,
30, 110, -1, 11, 33, 108, -1, 11, 33, 37,
- 76, 18, 77, -1, -1, 35, 109, 10, 33, 103,
- 74, 101, 76, 100, 77, -1, -1, 35, 109, 34,
- 105, 74, 102, 76, 100, 77, -1, 109, 34, 105,
- -1, 32, 56, 112, -1, 76, 100, 77, -1, 69,
+ 78, 18, 79, -1, -1, 35, 109, 10, 33, 103,
+ 76, 101, 78, 100, 79, -1, -1, 35, 109, 34,
+ 105, 76, 102, 78, 100, 79, -1, 109, 34, 105,
+ -1, 32, 57, 112, -1, 78, 100, 79, -1, 71,
100, -1, 100, 53, 100, -1, 100, 52, 100, -1,
- 110, 62, 110, -1, 110, 60, 110, -1, 110, 61,
- 110, -1, 110, 59, 110, -1, 110, 58, 110, -1,
- 110, 56, 110, -1, 110, 57, 110, -1, 76, 104,
- 77, -1, 108, -1, 110, -1, 104, 78, 110, -1,
- 76, 106, 77, -1, 36, -1, 107, -1, 106, 78,
- 107, -1, 11, -1, 14, -1, 76, 110, 79, 79,
- 110, 77, -1, 110, -1, 28, -1, 29, -1, 26,
- -1, 27, -1, 38, 76, 110, 77, -1, 39, 76,
- 110, 77, -1, 40, 76, 110, 77, -1, 41, 76,
- 110, 77, -1, 42, 76, 110, 77, -1, 43, 76,
- 110, 77, -1, 12, -1, 13, 80, 110, 81, -1,
- 10, -1, 76, 110, 77, -1, 110, 65, 110, -1,
- 110, 66, 110, -1, 110, 67, 110, -1, 110, 68,
- 110, -1, 110, 82, 110, -1, 110, 83, 110, -1,
- 110, 54, 110, -1, 110, 55, 110, -1, 70, 110,
- -1, 110, 64, 110, -1, 110, 63, 110, -1, 111,
+ 110, 63, 110, -1, 110, 61, 110, -1, 110, 62,
+ 110, -1, 110, 60, 110, -1, 110, 59, 110, -1,
+ 110, 57, 110, -1, 110, 58, 110, -1, 78, 104,
+ 79, -1, 108, -1, 110, -1, 104, 80, 110, -1,
+ 78, 106, 79, -1, 36, -1, 107, -1, 106, 80,
+ 107, -1, 11, -1, 14, -1, 78, 110, 81, 81,
+ 110, 79, -1, 110, -1, 28, -1, 29, -1, 26,
+ -1, 27, -1, 38, 78, 110, 79, -1, 39, 78,
+ 110, 79, -1, 40, 78, 110, 79, -1, 41, 78,
+ 110, 79, -1, 42, 78, 110, 79, -1, 43, 78,
+ 110, 79, -1, 12, -1, 13, 82, 110, 83, -1,
+ 10, -1, 78, 110, 79, -1, 110, 66, 110, -1,
+ 110, 67, 110, -1, 110, 68, 110, -1, 110, 69,
+ 110, -1, 110, 70, 110, -1, 110, 56, 110, -1,
+ 110, 54, 110, -1, 110, 55, 110, -1, 72, 110,
+ -1, 110, 65, 110, -1, 110, 64, 110, -1, 111,
-1, 16, -1, 47, -1, 48, -1, 49, -1
};
@@ -723,10 +723,10 @@ static const char *const yytname[] =
"_THEM_", "_SECTION_", "_INT8_", "_INT16_", "_INT32_", "_UINT8_",
"_UINT16_", "_UINT32_", "_MATCHES_", "_CONTAINS_", "_INDEX_", "_MZ_",
"_PE_", "_DLL_", "_TRUE_", "_FALSE_", "_OR_", "_AND_", "'&'", "'|'",
- "_IS_", "_NEQ_", "_EQ_", "_GE_", "_GT_", "_LE_", "_LT_", "_SHIFT_RIGHT_",
- "_SHIFT_LEFT_", "'+'", "'-'", "'*'", "'\\\\'", "_NOT_", "'~'",
- "'include'", "'{'", "'}'", "':'", "'='", "'('", "')'", "','", "'.'",
- "'['", "']'", "'%'", "'^'", "$accept", "rules", "rule", "meta",
+ "'^'", "_IS_", "_NEQ_", "_EQ_", "_GE_", "_GT_", "_LE_", "_LT_",
+ "_SHIFT_RIGHT_", "_SHIFT_LEFT_", "'+'", "'-'", "'*'", "'\\\\'", "'%'",
+ "_NOT_", "'~'", "'include'", "'{'", "'}'", "':'", "'='", "'('", "')'",
+ "','", "'.'", "'['", "']'", "$accept", "rules", "rule", "meta",
"strings", "condition", "rule_modifiers", "rule_modifier", "tags",
"tag_list", "meta_declarations", "meta_declaration",
"string_declarations", "string_declaration", "string_modifiers",
@@ -747,10 +747,10 @@ static const yytype_uint16 yytoknum[] =
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
- 305, 306, 307, 308, 38, 124, 309, 310, 311, 312,
- 313, 314, 315, 316, 317, 43, 45, 42, 92, 318,
- 126, 105, 123, 125, 58, 61, 40, 41, 44, 46,
- 91, 93, 37, 94
+ 305, 306, 307, 308, 38, 124, 94, 309, 310, 311,
+ 312, 313, 314, 315, 316, 317, 43, 45, 42, 92,
+ 37, 318, 126, 105, 123, 125, 58, 61, 40, 41,
+ 44, 46, 91, 93
};
# endif
@@ -805,8 +805,8 @@ static const yytype_uint8 yydefact[] =
0, 0, 28, 29, 40, 41, 0, 43, 0, 0,
45, 0, 103, 104, 105, 52, 0, 0, 0, 0,
0, 0, 0, 0, 0, 53, 89, 56, 55, 69,
- 0, 51, 96, 97, 62, 63, 61, 60, 58, 59,
- 57, 100, 99, 90, 91, 92, 93, 94, 95, 34,
+ 0, 51, 96, 97, 95, 62, 63, 61, 60, 58,
+ 59, 57, 100, 99, 90, 91, 92, 93, 94, 34,
33, 35, 36, 32, 44, 0, 0, 87, 0, 0,
80, 81, 82, 83, 84, 85, 72, 73, 0, 70,
0, 0, 0, 0, 65, 49, 68, 0, 46, 0,
@@ -824,38 +824,38 @@ static const yytype_int16 yydefgoto[] =
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -66
+#define YYPACT_NINF -71
static const yytype_int16 yypact[] =
{
- -66, 112, -66, -65, -66, 104, -66, -66, -2, -66,
- -66, -66, -62, 10, -54, -66, 14, 79, -66, 12,
- 107, 110, 48, 120, 66, 110, -66, 132, 81, 83,
- 21, -66, 82, 132, -66, 49, -66, -66, -66, -66,
- -66, 113, -66, 53, -16, -66, 78, -66, -66, -66,
- -66, -66, 103, 111, 85, 88, 89, 92, 95, 96,
- -66, -66, 49, 157, 49, 17, 140, 180, -66, -66,
- -66, -66, 155, 160, 150, -12, 157, 99, -66, 157,
- -6, 411, 157, 157, 157, 157, 157, 157, -66, -9,
- -50, 147, 49, 49, -35, 157, 157, 157, 157, 157,
- 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
- 157, 157, 80, 80, -66, -66, 157, 411, 106, 157,
- -66, 201, -66, -66, -66, -66, 222, 146, -35, 243,
- 264, 285, 306, 327, 348, -66, -66, 133, -66, -66,
- 8, -66, 417, 417, 411, 411, 411, 411, 411, 411,
- 411, 28, 28, 0, 0, -9, -9, 411, 411, -66,
- -66, -66, -66, -66, 411, 167, 369, -66, 118, 142,
- -66, -66, -66, -66, -66, -66, -66, -66, 2, -66,
- 141, 138, 157, 145, -66, -66, -66, 8, -66, 157,
- 57, 369, -66, 149, -66, 390, -66, 157, 152, 49,
- -66, 411, 49, -39, -37, -66, -66
+ -71, 156, -71, -70, -71, 15, -71, -71, 5, -71,
+ -71, -71, -9, 27, 11, -71, 76, 91, -71, 22,
+ 94, 93, 30, 108, 40, 93, -71, 96, 47, 51,
+ -12, -71, 60, 96, -71, 49, -71, -71, -71, -71,
+ -71, 75, -71, 123, -17, -71, 61, -71, -71, -71,
+ -71, -71, 101, 112, 71, 84, 100, 104, 125, 126,
+ -71, -71, 49, 92, 49, -28, 140, 342, -71, -71,
+ -71, -71, 157, 163, 153, -10, 92, 99, -71, 92,
+ 7, 359, 92, 92, 92, 92, 92, 92, -71, -71,
+ -51, 180, 49, 49, -14, 92, 92, 92, 92, 92,
+ 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
+ 92, 92, 50, 50, -71, -71, 92, 359, 127, 92,
+ -71, 145, -71, -71, -71, -71, 197, 164, -14, 214,
+ 231, 248, 265, 282, 299, -71, -71, 170, -71, -71,
+ -2, -71, 45, 45, 45, 359, 359, 359, 359, 359,
+ 359, 359, 119, 119, 103, 103, -71, -71, -71, -71,
+ -71, -71, -71, -71, 359, 206, 152, -71, 148, 151,
+ -71, -71, -71, -71, -71, -71, -71, -71, 0, -71,
+ 150, 149, 92, 178, -71, -71, -71, -2, -71, 92,
+ 3, 152, -71, 154, -71, 316, -71, 92, 177, 49,
+ -71, 359, 49, -39, 17, -71, -71
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -66, -66, 218, -66, -66, -66, -66, -66, -66, -66,
- -66, 197, -66, 190, 161, -66, -57, -66, -66, -66,
- -66, 121, -66, 44, 84, 198, -53, -66, -66
+ -71, -71, 253, -71, -71, -71, -71, -71, -71, -71,
+ -71, 232, -71, 225, 189, -71, -57, -71, -71, -71,
+ -71, 143, -71, 85, 105, 221, -53, -71, -71
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
@@ -865,139 +865,123 @@ static const yytype_int16 yypgoto[] =
#define YYTABLE_NINF -40
static const yytype_int16 yytable[] =
{
- 81, 139, 92, 93, 127, 88, 6, 90, 12, 74,
- 89, 91, 13, 92, 93, 92, 93, 75, 17, 176,
- 15, 117, 177, 121, 18, 118, 126, 135, 128, 129,
- 130, 131, 132, 133, 134, 137, 138, 37, 205, 38,
- 206, 140, 142, 143, 144, 145, 146, 147, 148, 149,
+ 81, 92, 93, 6, 37, 88, 38, 90, 74, 176,
+ 89, 91, 177, 92, 93, 12, 75, 127, 8, 9,
+ 10, 117, 139, 121, 92, 93, 126, 118, 135, 129,
+ 130, 131, 132, 133, 134, 137, 138, 15, 39, 40,
+ 205, 128, 142, 143, 144, 145, 146, 147, 148, 149,
150, 151, 152, 153, 154, 155, 156, 157, 158, 43,
- 44, 45, 46, 164, 119, 47, 166, 108, 109, 92,
- 93, 39, 40, 110, 111, 48, 49, 50, 51, 186,
- 187, 52, 110, 111, 53, 19, 21, 54, 55, 56,
- 57, 58, 59, 106, 107, 108, 109, 72, 73, 60,
- 61, 159, 160, 161, 162, -39, -39, 8, 9, 10,
- 110, 111, 2, 3, 22, -12, -12, -12, 62, 63,
- 24, 78, 27, 45, 46, 64, -39, 47, 28, 191,
- -39, 69, 70, 71, 196, 197, 195, 48, 49, 50,
- 51, 30, 203, 32, 201, 204, 122, 123, 124, 54,
- 55, 56, 57, 58, 59, 35, 36, 41, 76, 77,
- 78, 82, 45, 46, 83, 84, 47, 78, 85, 45,
- 46, 86, 87, 47, 94, 114, 48, 49, 115, 168,
- 116, 63, 165, 48, 49, 180, 93, 79, 54, 55,
- 56, 57, 58, 59, 182, 54, 55, 56, 57, 58,
- 59, 95, 96, 97, 98, 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 108, 109, 185, 189, 188, 192,
- 63, 7, 31, 42, 136, 199, 79, 63, 202, 110,
- 111, 194, 113, 79, 95, 96, 97, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 108, 109, 169,
- 0, 80, 184, 0, 0, 95, 96, 0, 0, 0,
- 0, 0, 110, 111, 104, 105, 106, 107, 108, 109,
- 0, 0, 0, 0, 0, 0, 95, 96, 0, 0,
- 0, 0, 167, 110, 111, 104, 105, 106, 107, 108,
- 109, 0, 0, 0, 0, 0, 0, 95, 96, 136,
- 0, 0, 0, 0, 110, 111, 104, 105, 106, 107,
- 108, 109, 0, 0, 0, 0, 0, 0, 95, 96,
- 170, 0, 0, 0, 0, 110, 111, 104, 105, 106,
- 107, 108, 109, 0, 0, 0, 0, 0, 0, 95,
- 96, 171, 0, 0, 0, 0, 110, 111, 104, 105,
- 106, 107, 108, 109, 0, 0, 0, 0, 0, 0,
- 95, 96, 172, 0, 0, 0, 0, 110, 111, 104,
- 105, 106, 107, 108, 109, 0, 0, 0, 0, 0,
- 0, 95, 96, 173, 0, 0, 0, 0, 110, 111,
- 104, 105, 106, 107, 108, 109, 0, 0, 0, 0,
- 0, 0, 95, 96, 174, 0, 0, 0, 0, 110,
- 111, 104, 105, 106, 107, 108, 109, 0, 0, 0,
- 0, 0, 0, 95, 96, 175, 0, 0, 0, 0,
- 110, 111, 104, 105, 106, 107, 108, 109, 0, 0,
- 0, 0, 0, 0, 95, 96, 0, 0, 181, 0,
- 0, 110, 111, 104, 105, 106, 107, 108, 109, 0,
- 0, 0, 0, 0, 0, 95, 96, 200, 0, 0,
- 0, 0, 110, 111, 104, 105, 106, 107, 108, 109,
- 104, 105, 106, 107, 108, 109, 0, 0, 0, 0,
- 0, 0, 0, 110, 111, 0, 0, 0, 0, 110,
- 111
+ 44, 45, 46, 164, 140, 47, 166, 13, 119, 92,
+ 93, 159, 160, 161, 162, 48, 49, 50, 51, 186,
+ 187, 52, 196, 197, 53, 17, 18, 54, 55, 56,
+ 57, 58, 59, 69, 70, 71, 206, 19, 21, 60,
+ 61, 22, 78, 24, 45, 46, 27, 32, 47, 105,
+ 106, 107, 108, 109, 110, 111, 28, 30, 48, 49,
+ 62, 63, 78, 35, 45, 46, 36, 64, 47, 191,
+ 54, 55, 56, 57, 58, 59, 195, 41, 48, 49,
+ 50, 51, 203, 76, 201, 204, 122, 123, 124, 82,
+ 54, 55, 56, 57, 58, 59, 2, 3, 77, -12,
+ -12, -12, 83, 78, 63, 45, 46, 72, 73, 47,
+ 79, 109, 110, 111, 94, -39, -39, 114, 84, 48,
+ 49, 115, 85, 116, 63, 107, 108, 109, 110, 111,
+ 79, 54, 55, 56, 57, 58, 59, 168, -39, 95,
+ 96, 97, -39, 86, 87, 165, 95, 96, 97, 105,
+ 106, 107, 108, 109, 110, 111, 105, 106, 107, 108,
+ 109, 110, 111, 93, 180, 63, 182, 185, 167, 188,
+ 189, 79, 199, 181, 95, 96, 97, 98, 99, 100,
+ 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
+ 111, 95, 96, 97, 192, 202, 7, 31, 42, 136,
+ 113, 105, 106, 107, 108, 109, 110, 111, 95, 96,
+ 97, 169, 194, 184, 80, 0, 136, 0, 105, 106,
+ 107, 108, 109, 110, 111, 95, 96, 97, 0, 0,
+ 0, 0, 0, 170, 0, 105, 106, 107, 108, 109,
+ 110, 111, 95, 96, 97, 0, 0, 0, 0, 0,
+ 171, 0, 105, 106, 107, 108, 109, 110, 111, 95,
+ 96, 97, 0, 0, 0, 0, 0, 172, 0, 105,
+ 106, 107, 108, 109, 110, 111, 95, 96, 97, 0,
+ 0, 0, 0, 0, 173, 0, 105, 106, 107, 108,
+ 109, 110, 111, 95, 96, 97, 0, 0, 0, 0,
+ 0, 174, 0, 105, 106, 107, 108, 109, 110, 111,
+ 95, 96, 97, 0, 0, 0, 0, 0, 175, 0,
+ 105, 106, 107, 108, 109, 110, 111, 0, 0, 0,
+ 0, 0, 0, 0, 0, 200, 95, 96, 97, 98,
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
+ 109, 110, 111, 95, 96, 97, 0, 0, 0, 0,
+ 0, 0, 0, 105, 106, 107, 108, 109, 110, 111
};
static const yytype_int16 yycheck[] =
{
- 53, 36, 52, 53, 10, 62, 71, 64, 10, 25,
- 63, 64, 74, 52, 53, 52, 53, 33, 72, 11,
- 10, 74, 14, 76, 10, 37, 79, 77, 34, 82,
- 83, 84, 85, 86, 87, 92, 93, 16, 77, 18,
- 77, 76, 95, 96, 97, 98, 99, 100, 101, 102,
+ 53, 52, 53, 73, 16, 62, 18, 64, 25, 11,
+ 63, 64, 14, 52, 53, 10, 33, 10, 3, 4,
+ 5, 74, 36, 76, 52, 53, 79, 37, 79, 82,
+ 83, 84, 85, 86, 87, 92, 93, 10, 50, 51,
+ 79, 34, 95, 96, 97, 98, 99, 100, 101, 102,
103, 104, 105, 106, 107, 108, 109, 110, 111, 10,
- 11, 12, 13, 116, 76, 16, 119, 67, 68, 52,
- 53, 50, 51, 82, 83, 26, 27, 28, 29, 77,
- 78, 32, 82, 83, 35, 6, 74, 38, 39, 40,
- 41, 42, 43, 65, 66, 67, 68, 44, 45, 50,
- 51, 21, 22, 23, 24, 52, 53, 3, 4, 5,
- 82, 83, 0, 1, 7, 3, 4, 5, 69, 70,
- 10, 10, 74, 12, 13, 76, 73, 16, 8, 182,
- 77, 18, 19, 20, 77, 78, 189, 26, 27, 28,
- 29, 75, 199, 11, 197, 202, 47, 48, 49, 38,
- 39, 40, 41, 42, 43, 74, 73, 75, 80, 56,
- 10, 76, 12, 13, 76, 76, 16, 10, 76, 12,
- 13, 76, 76, 16, 34, 20, 26, 27, 18, 33,
- 30, 70, 76, 26, 27, 18, 53, 76, 38, 39,
- 40, 41, 42, 43, 76, 38, 39, 40, 41, 42,
- 43, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, 68, 74, 79, 77, 74,
- 70, 3, 25, 33, 77, 76, 76, 70, 76, 82,
- 83, 187, 71, 76, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, 68, 128,
- -1, 53, 168, -1, -1, 54, 55, -1, -1, -1,
- -1, -1, 82, 83, 63, 64, 65, 66, 67, 68,
- -1, -1, -1, -1, -1, -1, 54, 55, -1, -1,
- -1, -1, 81, 82, 83, 63, 64, 65, 66, 67,
- 68, -1, -1, -1, -1, -1, -1, 54, 55, 77,
- -1, -1, -1, -1, 82, 83, 63, 64, 65, 66,
- 67, 68, -1, -1, -1, -1, -1, -1, 54, 55,
- 77, -1, -1, -1, -1, 82, 83, 63, 64, 65,
- 66, 67, 68, -1, -1, -1, -1, -1, -1, 54,
- 55, 77, -1, -1, -1, -1, 82, 83, 63, 64,
- 65, 66, 67, 68, -1, -1, -1, -1, -1, -1,
- 54, 55, 77, -1, -1, -1, -1, 82, 83, 63,
- 64, 65, 66, 67, 68, -1, -1, -1, -1, -1,
- -1, 54, 55, 77, -1, -1, -1, -1, 82, 83,
- 63, 64, 65, 66, 67, 68, -1, -1, -1, -1,
- -1, -1, 54, 55, 77, -1, -1, -1, -1, 82,
- 83, 63, 64, 65, 66, 67, 68, -1, -1, -1,
- -1, -1, -1, 54, 55, 77, -1, -1, -1, -1,
- 82, 83, 63, 64, 65, 66, 67, 68, -1, -1,
- -1, -1, -1, -1, 54, 55, -1, -1, 79, -1,
- -1, 82, 83, 63, 64, 65, 66, 67, 68, -1,
- -1, -1, -1, -1, -1, 54, 55, 77, -1, -1,
- -1, -1, 82, 83, 63, 64, 65, 66, 67, 68,
- 63, 64, 65, 66, 67, 68, -1, -1, -1, -1,
- -1, -1, -1, 82, 83, -1, -1, -1, -1, 82,
- 83
+ 11, 12, 13, 116, 78, 16, 119, 76, 78, 52,
+ 53, 21, 22, 23, 24, 26, 27, 28, 29, 79,
+ 80, 32, 79, 80, 35, 74, 10, 38, 39, 40,
+ 41, 42, 43, 18, 19, 20, 79, 6, 76, 50,
+ 51, 7, 10, 10, 12, 13, 76, 11, 16, 64,
+ 65, 66, 67, 68, 69, 70, 8, 77, 26, 27,
+ 71, 72, 10, 76, 12, 13, 75, 78, 16, 182,
+ 38, 39, 40, 41, 42, 43, 189, 77, 26, 27,
+ 28, 29, 199, 82, 197, 202, 47, 48, 49, 78,
+ 38, 39, 40, 41, 42, 43, 0, 1, 57, 3,
+ 4, 5, 78, 10, 72, 12, 13, 44, 45, 16,
+ 78, 68, 69, 70, 34, 52, 53, 20, 78, 26,
+ 27, 18, 78, 30, 72, 66, 67, 68, 69, 70,
+ 78, 38, 39, 40, 41, 42, 43, 33, 75, 54,
+ 55, 56, 79, 78, 78, 78, 54, 55, 56, 64,
+ 65, 66, 67, 68, 69, 70, 64, 65, 66, 67,
+ 68, 69, 70, 53, 18, 72, 78, 76, 83, 79,
+ 81, 78, 78, 81, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 54, 55, 56, 76, 78, 3, 25, 33, 79,
+ 71, 64, 65, 66, 67, 68, 69, 70, 54, 55,
+ 56, 128, 187, 168, 53, -1, 79, -1, 64, 65,
+ 66, 67, 68, 69, 70, 54, 55, 56, -1, -1,
+ -1, -1, -1, 79, -1, 64, 65, 66, 67, 68,
+ 69, 70, 54, 55, 56, -1, -1, -1, -1, -1,
+ 79, -1, 64, 65, 66, 67, 68, 69, 70, 54,
+ 55, 56, -1, -1, -1, -1, -1, 79, -1, 64,
+ 65, 66, 67, 68, 69, 70, 54, 55, 56, -1,
+ -1, -1, -1, -1, 79, -1, 64, 65, 66, 67,
+ 68, 69, 70, 54, 55, 56, -1, -1, -1, -1,
+ -1, 79, -1, 64, 65, 66, 67, 68, 69, 70,
+ 54, 55, 56, -1, -1, -1, -1, -1, 79, -1,
+ 64, 65, 66, 67, 68, 69, 70, -1, -1, -1,
+ -1, -1, -1, -1, -1, 79, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, 54, 55, 56, -1, -1, -1, -1,
+ -1, -1, -1, 64, 65, 66, 67, 68, 69, 70
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
- 0, 85, 0, 1, 86, 90, 71, 86, 3, 4,
- 5, 91, 10, 74, 92, 10, 93, 72, 10, 6,
- 87, 74, 7, 88, 10, 94, 95, 74, 8, 89,
- 75, 95, 11, 96, 97, 74, 73, 16, 18, 50,
- 51, 75, 97, 10, 11, 12, 13, 16, 26, 27,
+ 0, 85, 0, 1, 86, 90, 73, 86, 3, 4,
+ 5, 91, 10, 76, 92, 10, 93, 74, 10, 6,
+ 87, 76, 7, 88, 10, 94, 95, 76, 8, 89,
+ 77, 95, 11, 96, 97, 76, 75, 16, 18, 50,
+ 51, 77, 97, 10, 11, 12, 13, 16, 26, 27,
28, 29, 32, 35, 38, 39, 40, 41, 42, 43,
- 50, 51, 69, 70, 76, 100, 109, 110, 111, 18,
- 19, 20, 44, 45, 25, 33, 80, 56, 10, 76,
- 109, 110, 76, 76, 76, 76, 76, 76, 100, 110,
+ 50, 51, 71, 72, 78, 100, 109, 110, 111, 18,
+ 19, 20, 44, 45, 25, 33, 82, 57, 10, 78,
+ 109, 110, 78, 78, 78, 78, 78, 78, 100, 110,
100, 110, 52, 53, 34, 54, 55, 56, 57, 58,
59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
- 82, 83, 98, 98, 20, 18, 30, 110, 37, 76,
+ 69, 70, 98, 98, 20, 18, 30, 110, 37, 78,
108, 110, 47, 48, 49, 112, 110, 10, 34, 110,
- 110, 110, 110, 110, 110, 77, 77, 100, 100, 36,
- 76, 105, 110, 110, 110, 110, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 79, 79, 100, 100, 36,
+ 78, 105, 110, 110, 110, 110, 110, 110, 110, 110,
110, 110, 110, 110, 110, 110, 110, 110, 110, 21,
- 22, 23, 24, 99, 110, 76, 110, 81, 33, 105,
- 77, 77, 77, 77, 77, 77, 11, 14, 106, 107,
- 18, 79, 76, 103, 108, 74, 77, 78, 77, 79,
- 104, 110, 74, 102, 107, 110, 77, 78, 101, 76,
- 77, 110, 76, 100, 100, 77, 77
+ 22, 23, 24, 99, 110, 78, 110, 83, 33, 105,
+ 79, 79, 79, 79, 79, 79, 11, 14, 106, 107,
+ 18, 81, 78, 103, 108, 76, 79, 80, 79, 81,
+ 104, 110, 76, 102, 107, 110, 79, 80, 101, 78,
+ 79, 110, 78, 100, 100, 79, 79
};
#define yyerrok (yyerrstatus = 0)
@@ -2522,7 +2506,7 @@ yyreduce:
/* Line 1267 of yacc.c. */
-#line 2526 "grammar.c"
+#line 2510 "grammar.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
diff --git a/libyara/grammar.y b/libyara/grammar.y
index d33abfa..d94210a 100644
--- a/libyara/grammar.y
+++ b/libyara/grammar.y
@@ -108,11 +108,11 @@ POSSIBILITY OF SUCH DAMAGE.
%left _OR_
%left _AND_
-%left '&' '|'
+%left '&' '|' '^'
%left _LT_ _LE_ _GT_ _GE_ _EQ_ _NEQ_ _IS_
%left _SHIFT_LEFT_ _SHIFT_RIGHT_
%left '+' '-'
-%left '*' '\\'
+%left '*' '\\' '%'
%right _NOT_
%right '~'
diff --git a/yara-python/tests.py b/yara-python/tests.py
index 2cbc1fc..3435898 100644
--- a/yara-python/tests.py
+++ b/yara-python/tests.py
@@ -105,11 +105,10 @@ class TestYara(unittest.TestCase):
self.assertTrueRules([
'rule test { condition: 0x55 | 0xAA == 0xFF }',
- 'rule test { condition: 0x55 ^ 0x5A == 0x0F }',
+ 'rule test { condition: ~0xAA ^ 0x5A & 0xFF == 0x0F }',
'rule test { condition: ~0x55 & 0xFF == 0xAA }',
'rule test { condition: 8 >> 2 == 2 }',
- 'rule test { condition: 1 << 3 == 8 }',
-
+ 'rule test { condition: 1 << 3 == 8 }'
])
def testStrings(self):
--
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