[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