[Forensics-changes] [yara] 269/407: Forgot to commit this in previous one.
Hilko Bengen
bengen at moszumanska.debian.org
Sat Jul 1 10:28:34 UTC 2017
This is an automated email from the git hooks/post-receive script.
bengen pushed a commit to annotated tag v3.3.0
in repository yara.
commit efa92a60498e685060c56f9d0d52217bb1decb4a
Author: Wesley Shields <wxs at atarininja.org>
Date: Mon Dec 29 14:54:38 2014 -0500
Forgot to commit this in previous one.
---
libyara/grammar.c | 394 ++++++++++++++----------------------------------------
1 file changed, 97 insertions(+), 297 deletions(-)
diff --git a/libyara/grammar.c b/libyara/grammar.c
index 9cf7a13..f7f2510 100644
--- a/libyara/grammar.c
+++ b/libyara/grammar.c
@@ -651,12 +651,12 @@ static const yytype_uint16 yyrline[] =
499, 504, 518, 517, 536, 553, 554, 559, 560, 561,
562, 567, 655, 703, 763, 810, 813, 838, 874, 919,
936, 945, 954, 969, 983, 997, 1013, 1028, 1063, 1027,
- 1177, 1176, 1255, 1261, 1267, 1273, 1281, 1305, 1328, 1382,
- 1436, 1494, 1521, 1579, 1583, 1591, 1592, 1597, 1619, 1631,
- 1647, 1646, 1652, 1661, 1662, 1667, 1672, 1681, 1682, 1686,
- 1694, 1698, 1708, 1722, 1738, 1748, 1758, 1781, 1796, 1811,
- 1833, 1878, 1924, 1970, 2016, 2062, 2072, 2082, 2092, 2102,
- 2112, 2122, 2132
+ 1177, 1176, 1255, 1261, 1267, 1273, 1281, 1305, 1328, 1352,
+ 1376, 1404, 1431, 1459, 1463, 1471, 1472, 1477, 1499, 1511,
+ 1527, 1526, 1532, 1541, 1542, 1547, 1552, 1561, 1562, 1566,
+ 1574, 1578, 1588, 1602, 1618, 1628, 1638, 1661, 1676, 1691,
+ 1713, 1758, 1784, 1810, 1836, 1862, 1872, 1882, 1892, 1902,
+ 1912, 1922, 1932
};
#endif
@@ -2908,37 +2908,7 @@ yyreduce:
{
if ((yyvsp[-2].expression).type != (yyvsp[0].expression).type)
{
- if ((yyvsp[-2].expression).type == EXPRESSION_TYPE_INTEGER &&
- (yyvsp[0].expression).type == EXPRESSION_TYPE_DOUBLE)
- {
- // Cast left side to double.
- compiler->last_result = yr_parser_emit_with_arg(
- yyscanner,
- OP_ITD,
- 2,
- NULL);
- ERROR_IF(compiler->last_result != ERROR_SUCCESS);
- }
- else if ((yyvsp[-2].expression).type == EXPRESSION_TYPE_DOUBLE &&
- (yyvsp[0].expression).type == EXPRESSION_TYPE_INTEGER)
- {
- // Cast right side to double.
- compiler->last_result = yr_parser_emit_with_arg(
- yyscanner,
- OP_ITD,
- 1,
- NULL);
- ERROR_IF(compiler->last_result != ERROR_SUCCESS);
- }
- else
- {
- yr_compiler_set_error_extra_info(
- compiler, "mismatching types for <= operator");
- compiler->last_result = ERROR_WRONG_TYPE;
- yyerror(yyscanner, compiler, NULL);
- YYERROR;
- }
-
+ DO_CASTS((yyvsp[-2].expression), (yyvsp[0].expression), "<=");
compiler->last_result = yr_parser_emit(yyscanner, OP_LED, NULL);
}
else if ((yyvsp[-2].expression).type == EXPRESSION_TYPE_INTEGER)
@@ -2958,45 +2928,15 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_BOOLEAN;
}
-#line 2962 "grammar.c" /* yacc.c:1661 */
+#line 2932 "grammar.c" /* yacc.c:1661 */
break;
case 69:
-#line 1383 "grammar.y" /* yacc.c:1661 */
+#line 1353 "grammar.y" /* yacc.c:1661 */
{
if ((yyvsp[-2].expression).type != (yyvsp[0].expression).type)
{
- if ((yyvsp[-2].expression).type == EXPRESSION_TYPE_INTEGER &&
- (yyvsp[0].expression).type == EXPRESSION_TYPE_DOUBLE)
- {
- // Cast left side to double.
- compiler->last_result = yr_parser_emit_with_arg(
- yyscanner,
- OP_ITD,
- 2,
- NULL);
- ERROR_IF(compiler->last_result != ERROR_SUCCESS);
- }
- else if ((yyvsp[-2].expression).type == EXPRESSION_TYPE_DOUBLE &&
- (yyvsp[0].expression).type == EXPRESSION_TYPE_INTEGER)
- {
- // Cast right side to double.
- compiler->last_result = yr_parser_emit_with_arg(
- yyscanner,
- OP_ITD,
- 1,
- NULL);
- ERROR_IF(compiler->last_result != ERROR_SUCCESS);
- }
- else
- {
- yr_compiler_set_error_extra_info(
- compiler, "mismatching types for >= operator");
- compiler->last_result = ERROR_WRONG_TYPE;
- yyerror(yyscanner, compiler, NULL);
- YYERROR;
- }
-
+ DO_CASTS((yyvsp[-2].expression), (yyvsp[0].expression), ">=");
compiler->last_result = yr_parser_emit(yyscanner, OP_GED, NULL);
}
else if ((yyvsp[-2].expression).type == EXPRESSION_TYPE_INTEGER)
@@ -3016,45 +2956,15 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_BOOLEAN;
}
-#line 3020 "grammar.c" /* yacc.c:1661 */
+#line 2960 "grammar.c" /* yacc.c:1661 */
break;
case 70:
-#line 1437 "grammar.y" /* yacc.c:1661 */
+#line 1377 "grammar.y" /* yacc.c:1661 */
{
if ((yyvsp[-2].expression).type != (yyvsp[0].expression).type)
{
- if ((yyvsp[-2].expression).type == EXPRESSION_TYPE_INTEGER &&
- (yyvsp[0].expression).type == EXPRESSION_TYPE_DOUBLE)
- {
- // Cast left side to double.
- compiler->last_result = yr_parser_emit_with_arg(
- yyscanner,
- OP_ITD,
- 2,
- NULL);
- ERROR_IF(compiler->last_result != ERROR_SUCCESS);
- }
- else if ((yyvsp[-2].expression).type == EXPRESSION_TYPE_DOUBLE &&
- (yyvsp[0].expression).type == EXPRESSION_TYPE_INTEGER)
- {
- // Cast right side to double.
- compiler->last_result = yr_parser_emit_with_arg(
- yyscanner,
- OP_ITD,
- 1,
- NULL);
- ERROR_IF(compiler->last_result != ERROR_SUCCESS);
- }
- else
- {
- yr_compiler_set_error_extra_info(
- compiler, "mismatching types for == operator");
- compiler->last_result = ERROR_WRONG_TYPE;
- yyerror(yyscanner, compiler, NULL);
- YYERROR;
- }
-
+ DO_CASTS((yyvsp[-2].expression), (yyvsp[0].expression), "==");
compiler->last_result = yr_parser_emit(yyscanner, OP_EQD, NULL);
}
else if ((yyvsp[-2].expression).type == EXPRESSION_TYPE_STRING)
@@ -3078,11 +2988,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_BOOLEAN;
}
-#line 3082 "grammar.c" /* yacc.c:1661 */
+#line 2992 "grammar.c" /* yacc.c:1661 */
break;
case 71:
-#line 1495 "grammar.y" /* yacc.c:1661 */
+#line 1405 "grammar.y" /* yacc.c:1661 */
{
if ((yyvsp[-2].expression).type != (yyvsp[0].expression).type)
{
@@ -3109,45 +3019,15 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_BOOLEAN;
}
-#line 3113 "grammar.c" /* yacc.c:1661 */
+#line 3023 "grammar.c" /* yacc.c:1661 */
break;
case 72:
-#line 1522 "grammar.y" /* yacc.c:1661 */
+#line 1432 "grammar.y" /* yacc.c:1661 */
{
if ((yyvsp[-2].expression).type != (yyvsp[0].expression).type)
{
- if ((yyvsp[-2].expression).type == EXPRESSION_TYPE_INTEGER &&
- (yyvsp[0].expression).type == EXPRESSION_TYPE_DOUBLE)
- {
- // Cast left side to double.
- compiler->last_result = yr_parser_emit_with_arg(
- yyscanner,
- OP_ITD,
- 2,
- NULL);
- ERROR_IF(compiler->last_result != ERROR_SUCCESS);
- }
- else if ((yyvsp[-2].expression).type == EXPRESSION_TYPE_DOUBLE &&
- (yyvsp[0].expression).type == EXPRESSION_TYPE_INTEGER)
- {
- // Cast right side to double.
- compiler->last_result = yr_parser_emit_with_arg(
- yyscanner,
- OP_ITD,
- 1,
- NULL);
- ERROR_IF(compiler->last_result != ERROR_SUCCESS);
- }
- else
- {
- yr_compiler_set_error_extra_info(
- compiler, "mismatching types for != operator");
- compiler->last_result = ERROR_WRONG_TYPE;
- yyerror(yyscanner, compiler, NULL);
- YYERROR;
- }
-
+ DO_CASTS((yyvsp[-2].expression), (yyvsp[0].expression), "!=");
compiler->last_result = yr_parser_emit(yyscanner, OP_NEQD, NULL);
}
else if ((yyvsp[-2].expression).type == EXPRESSION_TYPE_STRING)
@@ -3171,39 +3051,39 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_BOOLEAN;
}
-#line 3175 "grammar.c" /* yacc.c:1661 */
+#line 3055 "grammar.c" /* yacc.c:1661 */
break;
case 73:
-#line 1580 "grammar.y" /* yacc.c:1661 */
+#line 1460 "grammar.y" /* yacc.c:1661 */
{
(yyval.expression) = (yyvsp[0].expression);
}
-#line 3183 "grammar.c" /* yacc.c:1661 */
+#line 3063 "grammar.c" /* yacc.c:1661 */
break;
case 74:
-#line 1584 "grammar.y" /* yacc.c:1661 */
+#line 1464 "grammar.y" /* yacc.c:1661 */
{
(yyval.expression) = (yyvsp[-1].expression);
}
-#line 3191 "grammar.c" /* yacc.c:1661 */
+#line 3071 "grammar.c" /* yacc.c:1661 */
break;
case 75:
-#line 1591 "grammar.y" /* yacc.c:1661 */
+#line 1471 "grammar.y" /* yacc.c:1661 */
{ (yyval.integer) = INTEGER_SET_ENUMERATION; }
-#line 3197 "grammar.c" /* yacc.c:1661 */
+#line 3077 "grammar.c" /* yacc.c:1661 */
break;
case 76:
-#line 1592 "grammar.y" /* yacc.c:1661 */
+#line 1472 "grammar.y" /* yacc.c:1661 */
{ (yyval.integer) = INTEGER_SET_RANGE; }
-#line 3203 "grammar.c" /* yacc.c:1661 */
+#line 3083 "grammar.c" /* yacc.c:1661 */
break;
case 77:
-#line 1598 "grammar.y" /* yacc.c:1661 */
+#line 1478 "grammar.y" /* yacc.c:1661 */
{
if ((yyvsp[-4].expression).type != EXPRESSION_TYPE_INTEGER)
{
@@ -3221,11 +3101,11 @@ yyreduce:
ERROR_IF(compiler->last_result != ERROR_SUCCESS);
}
-#line 3225 "grammar.c" /* yacc.c:1661 */
+#line 3105 "grammar.c" /* yacc.c:1661 */
break;
case 78:
-#line 1620 "grammar.y" /* yacc.c:1661 */
+#line 1500 "grammar.y" /* yacc.c:1661 */
{
if ((yyvsp[0].expression).type != EXPRESSION_TYPE_INTEGER)
{
@@ -3237,11 +3117,11 @@ yyreduce:
ERROR_IF(compiler->last_result != ERROR_SUCCESS);
}
-#line 3241 "grammar.c" /* yacc.c:1661 */
+#line 3121 "grammar.c" /* yacc.c:1661 */
break;
case 79:
-#line 1632 "grammar.y" /* yacc.c:1661 */
+#line 1512 "grammar.y" /* yacc.c:1661 */
{
if ((yyvsp[0].expression).type != EXPRESSION_TYPE_INTEGER)
{
@@ -3252,71 +3132,71 @@ yyreduce:
ERROR_IF(compiler->last_result != ERROR_SUCCESS);
}
-#line 3256 "grammar.c" /* yacc.c:1661 */
+#line 3136 "grammar.c" /* yacc.c:1661 */
break;
case 80:
-#line 1647 "grammar.y" /* yacc.c:1661 */
+#line 1527 "grammar.y" /* yacc.c:1661 */
{
// Push end-of-list marker
yr_parser_emit_with_arg(yyscanner, OP_PUSH, UNDEFINED, NULL);
}
-#line 3265 "grammar.c" /* yacc.c:1661 */
+#line 3145 "grammar.c" /* yacc.c:1661 */
break;
case 82:
-#line 1653 "grammar.y" /* yacc.c:1661 */
+#line 1533 "grammar.y" /* yacc.c:1661 */
{
yr_parser_emit_with_arg(yyscanner, OP_PUSH, UNDEFINED, NULL);
yr_parser_emit_pushes_for_strings(yyscanner, "$*");
}
-#line 3274 "grammar.c" /* yacc.c:1661 */
+#line 3154 "grammar.c" /* yacc.c:1661 */
break;
case 85:
-#line 1668 "grammar.y" /* yacc.c:1661 */
+#line 1548 "grammar.y" /* yacc.c:1661 */
{
yr_parser_emit_pushes_for_strings(yyscanner, (yyvsp[0].c_string));
yr_free((yyvsp[0].c_string));
}
-#line 3283 "grammar.c" /* yacc.c:1661 */
+#line 3163 "grammar.c" /* yacc.c:1661 */
break;
case 86:
-#line 1673 "grammar.y" /* yacc.c:1661 */
+#line 1553 "grammar.y" /* yacc.c:1661 */
{
yr_parser_emit_pushes_for_strings(yyscanner, (yyvsp[0].c_string));
yr_free((yyvsp[0].c_string));
}
-#line 3292 "grammar.c" /* yacc.c:1661 */
+#line 3172 "grammar.c" /* yacc.c:1661 */
break;
case 88:
-#line 1683 "grammar.y" /* yacc.c:1661 */
+#line 1563 "grammar.y" /* yacc.c:1661 */
{
yr_parser_emit_with_arg(yyscanner, OP_PUSH, UNDEFINED, NULL);
}
-#line 3300 "grammar.c" /* yacc.c:1661 */
+#line 3180 "grammar.c" /* yacc.c:1661 */
break;
case 89:
-#line 1687 "grammar.y" /* yacc.c:1661 */
+#line 1567 "grammar.y" /* yacc.c:1661 */
{
yr_parser_emit_with_arg(yyscanner, OP_PUSH, 1, NULL);
}
-#line 3308 "grammar.c" /* yacc.c:1661 */
+#line 3188 "grammar.c" /* yacc.c:1661 */
break;
case 90:
-#line 1695 "grammar.y" /* yacc.c:1661 */
+#line 1575 "grammar.y" /* yacc.c:1661 */
{
(yyval.expression) = (yyvsp[-1].expression);
}
-#line 3316 "grammar.c" /* yacc.c:1661 */
+#line 3196 "grammar.c" /* yacc.c:1661 */
break;
case 91:
-#line 1699 "grammar.y" /* yacc.c:1661 */
+#line 1579 "grammar.y" /* yacc.c:1661 */
{
compiler->last_result = yr_parser_emit(
yyscanner, OP_FILESIZE, NULL);
@@ -3326,11 +3206,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = UNDEFINED;
}
-#line 3330 "grammar.c" /* yacc.c:1661 */
+#line 3210 "grammar.c" /* yacc.c:1661 */
break;
case 92:
-#line 1709 "grammar.y" /* yacc.c:1661 */
+#line 1589 "grammar.y" /* yacc.c:1661 */
{
yywarning(yyscanner,
"Using deprecated \"entrypoint\" keyword. Use the \"entry_point\" "
@@ -3344,11 +3224,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = UNDEFINED;
}
-#line 3348 "grammar.c" /* yacc.c:1661 */
+#line 3228 "grammar.c" /* yacc.c:1661 */
break;
case 93:
-#line 1723 "grammar.y" /* yacc.c:1661 */
+#line 1603 "grammar.y" /* yacc.c:1661 */
{
CHECK_TYPE((yyvsp[-1].expression), EXPRESSION_TYPE_INTEGER, "intXXXX or uintXXXX");
@@ -3364,11 +3244,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = UNDEFINED;
}
-#line 3368 "grammar.c" /* yacc.c:1661 */
+#line 3248 "grammar.c" /* yacc.c:1661 */
break;
case 94:
-#line 1739 "grammar.y" /* yacc.c:1661 */
+#line 1619 "grammar.y" /* yacc.c:1661 */
{
compiler->last_result = yr_parser_emit_with_arg(
yyscanner, OP_PUSH, (yyvsp[0].integer), NULL);
@@ -3378,11 +3258,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = (yyvsp[0].integer);
}
-#line 3382 "grammar.c" /* yacc.c:1661 */
+#line 3262 "grammar.c" /* yacc.c:1661 */
break;
case 95:
-#line 1749 "grammar.y" /* yacc.c:1661 */
+#line 1629 "grammar.y" /* yacc.c:1661 */
{
compiler->last_result = yr_parser_emit_with_arg_double(
yyscanner, OP_PUSH, (yyvsp[0].double_), NULL);
@@ -3392,11 +3272,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_DOUBLE;
(yyval.expression).value.double_ = (yyvsp[0].double_);
}
-#line 3396 "grammar.c" /* yacc.c:1661 */
+#line 3276 "grammar.c" /* yacc.c:1661 */
break;
case 96:
-#line 1759 "grammar.y" /* yacc.c:1661 */
+#line 1639 "grammar.y" /* yacc.c:1661 */
{
SIZED_STRING* sized_string;
@@ -3419,11 +3299,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_STRING;
}
-#line 3423 "grammar.c" /* yacc.c:1661 */
+#line 3303 "grammar.c" /* yacc.c:1661 */
break;
case 97:
-#line 1782 "grammar.y" /* yacc.c:1661 */
+#line 1662 "grammar.y" /* yacc.c:1661 */
{
compiler->last_result = yr_parser_reduce_string_identifier(
yyscanner,
@@ -3438,11 +3318,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = UNDEFINED;
}
-#line 3442 "grammar.c" /* yacc.c:1661 */
+#line 3322 "grammar.c" /* yacc.c:1661 */
break;
case 98:
-#line 1797 "grammar.y" /* yacc.c:1661 */
+#line 1677 "grammar.y" /* yacc.c:1661 */
{
compiler->last_result = yr_parser_reduce_string_identifier(
yyscanner,
@@ -3457,11 +3337,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = UNDEFINED;
}
-#line 3461 "grammar.c" /* yacc.c:1661 */
+#line 3341 "grammar.c" /* yacc.c:1661 */
break;
case 99:
-#line 1812 "grammar.y" /* yacc.c:1661 */
+#line 1692 "grammar.y" /* yacc.c:1661 */
{
compiler->last_result = yr_parser_emit_with_arg(
yyscanner,
@@ -3483,11 +3363,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = UNDEFINED;
}
-#line 3487 "grammar.c" /* yacc.c:1661 */
+#line 3367 "grammar.c" /* yacc.c:1661 */
break;
case 100:
-#line 1834 "grammar.y" /* yacc.c:1661 */
+#line 1714 "grammar.y" /* yacc.c:1661 */
{
if ((yyvsp[0].expression).type == EXPRESSION_TYPE_INTEGER) // loop identifier
{
@@ -3532,35 +3412,15 @@ yyreduce:
ERROR_IF(compiler->last_result != ERROR_SUCCESS);
}
-#line 3536 "grammar.c" /* yacc.c:1661 */
+#line 3416 "grammar.c" /* yacc.c:1661 */
break;
case 101:
-#line 1879 "grammar.y" /* yacc.c:1661 */
+#line 1759 "grammar.y" /* yacc.c:1661 */
{
if ((yyvsp[-2].expression).type != (yyvsp[0].expression).type)
{
- if ((yyvsp[-2].expression).type == EXPRESSION_TYPE_INTEGER &&
- (yyvsp[0].expression).type == EXPRESSION_TYPE_DOUBLE)
- {
- // Cast left side to double.
- yr_parser_emit_with_arg(yyscanner, OP_ITD, 2, NULL);
- }
- else if ((yyvsp[-2].expression).type == EXPRESSION_TYPE_DOUBLE &&
- (yyvsp[0].expression).type == EXPRESSION_TYPE_INTEGER)
- {
- // Cast right side to double.
- yr_parser_emit_with_arg(yyscanner, OP_ITD, 1, NULL);
- }
- else
- {
- yr_compiler_set_error_extra_info(
- compiler, "mismatching types for + operator");
- compiler->last_result = ERROR_WRONG_TYPE;
- yyerror(yyscanner, compiler, NULL);
- YYERROR;
- }
-
+ DO_CASTS((yyvsp[-2].expression), (yyvsp[0].expression), "+");
yr_parser_emit(yyscanner, OP_ADD_DBL, NULL);
(yyval.expression).type = EXPRESSION_TYPE_DOUBLE;
(yyval.expression).value.double_ = OPERATION(+, (yyvsp[-2].expression).value.double_, (yyvsp[0].expression).value.double_);
@@ -3582,35 +3442,15 @@ yyreduce:
CLEANUP("+", (yyvsp[-2].expression));
}
}
-#line 3586 "grammar.c" /* yacc.c:1661 */
+#line 3446 "grammar.c" /* yacc.c:1661 */
break;
case 102:
-#line 1925 "grammar.y" /* yacc.c:1661 */
+#line 1785 "grammar.y" /* yacc.c:1661 */
{
if ((yyvsp[-2].expression).type != (yyvsp[0].expression).type)
{
- if ((yyvsp[-2].expression).type == EXPRESSION_TYPE_INTEGER &&
- (yyvsp[0].expression).type == EXPRESSION_TYPE_DOUBLE)
- {
- // Cast left side to double.
- yr_parser_emit_with_arg(yyscanner, OP_ITD, 2, NULL);
- }
- else if ((yyvsp[-2].expression).type == EXPRESSION_TYPE_DOUBLE &&
- (yyvsp[0].expression).type == EXPRESSION_TYPE_INTEGER)
- {
- // Cast right side to double.
- yr_parser_emit_with_arg(yyscanner, OP_ITD, 1, NULL);
- }
- else
- {
- yr_compiler_set_error_extra_info(
- compiler, "mismatching types for - operator");
- compiler->last_result = ERROR_WRONG_TYPE;
- yyerror(yyscanner, compiler, NULL);
- YYERROR;
- }
-
+ DO_CASTS((yyvsp[-2].expression), (yyvsp[0].expression), "-");
yr_parser_emit(yyscanner, OP_SUB_DBL, NULL);
(yyval.expression).type = EXPRESSION_TYPE_DOUBLE;
(yyval.expression).value.double_ = OPERATION(-, (yyvsp[-2].expression).value.double_, (yyvsp[0].expression).value.double_);
@@ -3632,35 +3472,15 @@ yyreduce:
CLEANUP("-", (yyvsp[-2].expression));
}
}
-#line 3636 "grammar.c" /* yacc.c:1661 */
+#line 3476 "grammar.c" /* yacc.c:1661 */
break;
case 103:
-#line 1971 "grammar.y" /* yacc.c:1661 */
+#line 1811 "grammar.y" /* yacc.c:1661 */
{
if ((yyvsp[-2].expression).type != (yyvsp[0].expression).type)
{
- if ((yyvsp[-2].expression).type == EXPRESSION_TYPE_INTEGER &&
- (yyvsp[0].expression).type == EXPRESSION_TYPE_DOUBLE)
- {
- // Cast left side to double.
- yr_parser_emit_with_arg(yyscanner, OP_ITD, 2, NULL);
- }
- else if ((yyvsp[-2].expression).type == EXPRESSION_TYPE_DOUBLE &&
- (yyvsp[0].expression).type == EXPRESSION_TYPE_INTEGER)
- {
- // Cast right side to double.
- yr_parser_emit_with_arg(yyscanner, OP_ITD, 1, NULL);
- }
- else
- {
- yr_compiler_set_error_extra_info(
- compiler, "mismatching types for * operator");
- compiler->last_result = ERROR_WRONG_TYPE;
- yyerror(yyscanner, compiler, NULL);
- YYERROR;
- }
-
+ DO_CASTS((yyvsp[-2].expression), (yyvsp[0].expression), "*");
yr_parser_emit(yyscanner, OP_MUL_DBL, NULL);
(yyval.expression).type = EXPRESSION_TYPE_DOUBLE;
(yyval.expression).value.double_ = OPERATION(*, (yyvsp[-2].expression).value.double_, (yyvsp[0].expression).value.double_);
@@ -3682,35 +3502,15 @@ yyreduce:
CLEANUP("*", (yyvsp[-2].expression));
}
}
-#line 3686 "grammar.c" /* yacc.c:1661 */
+#line 3506 "grammar.c" /* yacc.c:1661 */
break;
case 104:
-#line 2017 "grammar.y" /* yacc.c:1661 */
+#line 1837 "grammar.y" /* yacc.c:1661 */
{
if ((yyvsp[-2].expression).type != (yyvsp[0].expression).type)
{
- if ((yyvsp[-2].expression).type == EXPRESSION_TYPE_INTEGER &&
- (yyvsp[0].expression).type == EXPRESSION_TYPE_DOUBLE)
- {
- // Cast left side to double.
- yr_parser_emit_with_arg(yyscanner, OP_ITD, 2, NULL);
- }
- else if ((yyvsp[-2].expression).type == EXPRESSION_TYPE_DOUBLE &&
- (yyvsp[0].expression).type == EXPRESSION_TYPE_INTEGER)
- {
- // Cast right side to double.
- yr_parser_emit_with_arg(yyscanner, OP_ITD, 1, NULL);
- }
- else
- {
- yr_compiler_set_error_extra_info(
- compiler, "mismatching types for \\ operator");
- compiler->last_result = ERROR_WRONG_TYPE;
- yyerror(yyscanner, compiler, NULL);
- YYERROR;
- }
-
+ DO_CASTS((yyvsp[-2].expression), (yyvsp[0].expression), "\\");
yr_parser_emit(yyscanner, OP_DIV_DBL, NULL);
(yyval.expression).type = EXPRESSION_TYPE_DOUBLE;
(yyval.expression).value.double_ = OPERATION(/, (yyvsp[-2].expression).value.double_, (yyvsp[0].expression).value.double_);
@@ -3732,11 +3532,11 @@ yyreduce:
CLEANUP("\\", (yyvsp[-2].expression));
}
}
-#line 3736 "grammar.c" /* yacc.c:1661 */
+#line 3536 "grammar.c" /* yacc.c:1661 */
break;
case 105:
-#line 2063 "grammar.y" /* yacc.c:1661 */
+#line 1863 "grammar.y" /* yacc.c:1661 */
{
CHECK_TYPE((yyvsp[-2].expression), EXPRESSION_TYPE_INTEGER, "%");
CHECK_TYPE((yyvsp[0].expression), EXPRESSION_TYPE_INTEGER, "%");
@@ -3746,11 +3546,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = OPERATION(%, (yyvsp[-2].expression).value.integer, (yyvsp[0].expression).value.integer);
}
-#line 3750 "grammar.c" /* yacc.c:1661 */
+#line 3550 "grammar.c" /* yacc.c:1661 */
break;
case 106:
-#line 2073 "grammar.y" /* yacc.c:1661 */
+#line 1873 "grammar.y" /* yacc.c:1661 */
{
CHECK_TYPE((yyvsp[-2].expression), EXPRESSION_TYPE_INTEGER, "^");
CHECK_TYPE((yyvsp[0].expression), EXPRESSION_TYPE_INTEGER, "^");
@@ -3760,11 +3560,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = OPERATION(^, (yyvsp[-2].expression).value.integer, (yyvsp[0].expression).value.integer);
}
-#line 3764 "grammar.c" /* yacc.c:1661 */
+#line 3564 "grammar.c" /* yacc.c:1661 */
break;
case 107:
-#line 2083 "grammar.y" /* yacc.c:1661 */
+#line 1883 "grammar.y" /* yacc.c:1661 */
{
CHECK_TYPE((yyvsp[-2].expression), EXPRESSION_TYPE_INTEGER, "^");
CHECK_TYPE((yyvsp[0].expression), EXPRESSION_TYPE_INTEGER, "^");
@@ -3774,11 +3574,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = OPERATION(&, (yyvsp[-2].expression).value.integer, (yyvsp[0].expression).value.integer);
}
-#line 3778 "grammar.c" /* yacc.c:1661 */
+#line 3578 "grammar.c" /* yacc.c:1661 */
break;
case 108:
-#line 2093 "grammar.y" /* yacc.c:1661 */
+#line 1893 "grammar.y" /* yacc.c:1661 */
{
CHECK_TYPE((yyvsp[-2].expression), EXPRESSION_TYPE_INTEGER, "|");
CHECK_TYPE((yyvsp[0].expression), EXPRESSION_TYPE_INTEGER, "|");
@@ -3788,11 +3588,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = OPERATION(|, (yyvsp[-2].expression).value.integer, (yyvsp[0].expression).value.integer);
}
-#line 3792 "grammar.c" /* yacc.c:1661 */
+#line 3592 "grammar.c" /* yacc.c:1661 */
break;
case 109:
-#line 2103 "grammar.y" /* yacc.c:1661 */
+#line 1903 "grammar.y" /* yacc.c:1661 */
{
CHECK_TYPE((yyvsp[0].expression), EXPRESSION_TYPE_INTEGER, "~");
@@ -3802,11 +3602,11 @@ yyreduce:
(yyval.expression).value.integer = ((yyvsp[0].expression).value.integer == UNDEFINED) ?
UNDEFINED : (yyvsp[0].expression).value.integer;
}
-#line 3806 "grammar.c" /* yacc.c:1661 */
+#line 3606 "grammar.c" /* yacc.c:1661 */
break;
case 110:
-#line 2113 "grammar.y" /* yacc.c:1661 */
+#line 1913 "grammar.y" /* yacc.c:1661 */
{
CHECK_TYPE((yyvsp[-2].expression), EXPRESSION_TYPE_INTEGER, "<<");
CHECK_TYPE((yyvsp[0].expression), EXPRESSION_TYPE_INTEGER, "<<");
@@ -3816,11 +3616,11 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = OPERATION(<<, (yyvsp[-2].expression).value.integer, (yyvsp[0].expression).value.integer);
}
-#line 3820 "grammar.c" /* yacc.c:1661 */
+#line 3620 "grammar.c" /* yacc.c:1661 */
break;
case 111:
-#line 2123 "grammar.y" /* yacc.c:1661 */
+#line 1923 "grammar.y" /* yacc.c:1661 */
{
CHECK_TYPE((yyvsp[-2].expression), EXPRESSION_TYPE_INTEGER, ">>");
CHECK_TYPE((yyvsp[0].expression), EXPRESSION_TYPE_INTEGER, ">>");
@@ -3830,19 +3630,19 @@ yyreduce:
(yyval.expression).type = EXPRESSION_TYPE_INTEGER;
(yyval.expression).value.integer = OPERATION(>>, (yyvsp[-2].expression).value.integer, (yyvsp[0].expression).value.integer);
}
-#line 3834 "grammar.c" /* yacc.c:1661 */
+#line 3634 "grammar.c" /* yacc.c:1661 */
break;
case 112:
-#line 2133 "grammar.y" /* yacc.c:1661 */
+#line 1933 "grammar.y" /* yacc.c:1661 */
{
(yyval.expression) = (yyvsp[0].expression);
}
-#line 3842 "grammar.c" /* yacc.c:1661 */
+#line 3642 "grammar.c" /* yacc.c:1661 */
break;
-#line 3846 "grammar.c" /* yacc.c:1661 */
+#line 3646 "grammar.c" /* yacc.c:1661 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@@ -4070,5 +3870,5 @@ yyreturn:
#endif
return yyresult;
}
-#line 2138 "grammar.y" /* yacc.c:1906 */
+#line 1938 "grammar.y" /* yacc.c:1906 */
--
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