[Forensics-changes] [yara] 14/368: Re-format re_grammar.y
Hilko Bengen
bengen at moszumanska.debian.org
Sat Jul 1 10:30:05 UTC 2017
This is an automated email from the git hooks/post-receive script.
bengen pushed a commit to annotated tag v3.5.0
in repository yara.
commit d81277b56a8bbb0ae416cd73abe2d7ed007b2eba
Author: Victor M. Alvarez <plusvic at gmail.com>
Date: Wed Jul 1 14:59:52 2015 +0200
Re-format re_grammar.y
---
libyara/re_grammar.c | 288 +++++++++++++++++-----------------
libyara/re_grammar.y | 436 ++++++++++++++++++++++++++-------------------------
2 files changed, 363 insertions(+), 361 deletions(-)
diff --git a/libyara/re_grammar.c b/libyara/re_grammar.c
index 3fffc07..a44d708 100644
--- a/libyara/re_grammar.c
+++ b/libyara/re_grammar.c
@@ -470,10 +470,10 @@ static const yytype_int8 yyrhs[] =
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 88, 88, 93, 96, 100, 109, 124, 128, 138,
- 145, 154, 161, 170, 180, 191, 201, 212, 216, 222,
- 228, 234, 242, 246, 252, 260, 266, 272, 278, 284,
- 290, 296
+ 0, 88, 88, 93, 97, 101, 110, 126, 130, 141,
+ 148, 157, 164, 173, 183, 194, 204, 215, 219, 225,
+ 231, 237, 246, 250, 256, 264, 270, 276, 282, 288,
+ 294, 300
};
#endif
@@ -1440,293 +1440,293 @@ yyreduce:
{
RE* re = yyget_extra(yyscanner);
re->root_node = (yyvsp[(1) - (1)].re_node);
- }
+ }
break;
case 4:
-#line 97 "re_grammar.y"
+#line 98 "re_grammar.y"
{
- (yyval.re_node) = (yyvsp[(1) - (1)].re_node);
- }
+ (yyval.re_node) = (yyvsp[(1) - (1)].re_node);
+ }
break;
case 5:
-#line 101 "re_grammar.y"
+#line 102 "re_grammar.y"
{
- (yyval.re_node) = yr_re_node_create(RE_NODE_ALT, (yyvsp[(1) - (3)].re_node), (yyvsp[(3) - (3)].re_node));
+ (yyval.re_node) = yr_re_node_create(RE_NODE_ALT, (yyvsp[(1) - (3)].re_node), (yyvsp[(3) - (3)].re_node));
- DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(1) - (3)].re_node));
- DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(3) - (3)].re_node));
+ DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(1) - (3)].re_node));
+ DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(3) - (3)].re_node));
- ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
- }
+ ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
break;
case 6:
-#line 110 "re_grammar.y"
+#line 111 "re_grammar.y"
{
- RE_NODE* node;
+ RE_NODE* node;
- node = yr_re_node_create(RE_NODE_EMPTY, NULL, NULL);
+ node = yr_re_node_create(RE_NODE_EMPTY, NULL, NULL);
- DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(1) - (2)].re_node));
- ERROR_IF(node == NULL, ERROR_INSUFICIENT_MEMORY);
+ DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(1) - (2)].re_node));
+ ERROR_IF(node == NULL, ERROR_INSUFICIENT_MEMORY);
- (yyval.re_node) = yr_re_node_create(RE_NODE_ALT, (yyvsp[(1) - (2)].re_node), node);
+ (yyval.re_node) = yr_re_node_create(RE_NODE_ALT, (yyvsp[(1) - (2)].re_node), node);
- ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
- }
+ ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
break;
case 7:
-#line 125 "re_grammar.y"
+#line 127 "re_grammar.y"
{
- (yyval.re_node) = (yyvsp[(1) - (1)].re_node);
- }
+ (yyval.re_node) = (yyvsp[(1) - (1)].re_node);
+ }
break;
case 8:
-#line 129 "re_grammar.y"
+#line 131 "re_grammar.y"
{
- (yyval.re_node) = yr_re_node_create(RE_NODE_CONCAT, (yyvsp[(1) - (2)].re_node), (yyvsp[(2) - (2)].re_node));
+ (yyval.re_node) = yr_re_node_create(RE_NODE_CONCAT, (yyvsp[(1) - (2)].re_node), (yyvsp[(2) - (2)].re_node));
- DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(1) - (2)].re_node));
- DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(2) - (2)].re_node));
- ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
- }
+ DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(1) - (2)].re_node));
+ DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(2) - (2)].re_node));
+ ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
break;
case 9:
-#line 139 "re_grammar.y"
+#line 142 "re_grammar.y"
{
- (yyval.re_node) = yr_re_node_create(RE_NODE_STAR, (yyvsp[(1) - (2)].re_node), NULL);
+ (yyval.re_node) = yr_re_node_create(RE_NODE_STAR, (yyvsp[(1) - (2)].re_node), NULL);
- DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(1) - (2)].re_node));
- ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
- }
+ DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(1) - (2)].re_node));
+ ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
break;
case 10:
-#line 146 "re_grammar.y"
+#line 149 "re_grammar.y"
{
- (yyval.re_node) = yr_re_node_create(RE_NODE_STAR, (yyvsp[(1) - (3)].re_node), NULL);
+ (yyval.re_node) = yr_re_node_create(RE_NODE_STAR, (yyvsp[(1) - (3)].re_node), NULL);
- DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(1) - (3)].re_node));
- ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
+ DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(1) - (3)].re_node));
+ ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
- (yyval.re_node)->greedy = FALSE;
- }
+ (yyval.re_node)->greedy = FALSE;
+ }
break;
case 11:
-#line 155 "re_grammar.y"
+#line 158 "re_grammar.y"
{
- (yyval.re_node) = yr_re_node_create(RE_NODE_PLUS, (yyvsp[(1) - (2)].re_node), NULL);
+ (yyval.re_node) = yr_re_node_create(RE_NODE_PLUS, (yyvsp[(1) - (2)].re_node), NULL);
- DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(1) - (2)].re_node));
- ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
- }
+ DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(1) - (2)].re_node));
+ ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
break;
case 12:
-#line 162 "re_grammar.y"
+#line 165 "re_grammar.y"
{
- (yyval.re_node) = yr_re_node_create(RE_NODE_PLUS, (yyvsp[(1) - (3)].re_node), NULL);
+ (yyval.re_node) = yr_re_node_create(RE_NODE_PLUS, (yyvsp[(1) - (3)].re_node), NULL);
- DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(1) - (3)].re_node));
- ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
+ DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(1) - (3)].re_node));
+ ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
- (yyval.re_node)->greedy = FALSE;
- }
+ (yyval.re_node)->greedy = FALSE;
+ }
break;
case 13:
-#line 171 "re_grammar.y"
+#line 174 "re_grammar.y"
{
- (yyval.re_node) = yr_re_node_create(RE_NODE_RANGE, (yyvsp[(1) - (2)].re_node), NULL);
+ (yyval.re_node) = yr_re_node_create(RE_NODE_RANGE, (yyvsp[(1) - (2)].re_node), NULL);
- DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(1) - (2)].re_node));
- ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
+ DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(1) - (2)].re_node));
+ ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
- (yyval.re_node)->start = 0;
- (yyval.re_node)->end = 1;
- }
+ (yyval.re_node)->start = 0;
+ (yyval.re_node)->end = 1;
+ }
break;
case 14:
-#line 181 "re_grammar.y"
+#line 184 "re_grammar.y"
{
- (yyval.re_node) = yr_re_node_create(RE_NODE_RANGE, (yyvsp[(1) - (3)].re_node), NULL);
+ (yyval.re_node) = yr_re_node_create(RE_NODE_RANGE, (yyvsp[(1) - (3)].re_node), NULL);
- DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(1) - (3)].re_node));
- ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
+ DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(1) - (3)].re_node));
+ ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
- (yyval.re_node)->start = 0;
- (yyval.re_node)->end = 1;
- (yyval.re_node)->greedy = FALSE;
- }
+ (yyval.re_node)->start = 0;
+ (yyval.re_node)->end = 1;
+ (yyval.re_node)->greedy = FALSE;
+ }
break;
case 15:
-#line 192 "re_grammar.y"
+#line 195 "re_grammar.y"
{
- (yyval.re_node) = yr_re_node_create(RE_NODE_RANGE, (yyvsp[(1) - (2)].re_node), NULL);
+ (yyval.re_node) = yr_re_node_create(RE_NODE_RANGE, (yyvsp[(1) - (2)].re_node), NULL);
- DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(1) - (2)].re_node));
- ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
+ DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(1) - (2)].re_node));
+ ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
- (yyval.re_node)->start = (yyvsp[(2) - (2)].range) & 0xFFFF;;
- (yyval.re_node)->end = (yyvsp[(2) - (2)].range) >> 16;;
- }
+ (yyval.re_node)->start = (yyvsp[(2) - (2)].range) & 0xFFFF;;
+ (yyval.re_node)->end = (yyvsp[(2) - (2)].range) >> 16;;
+ }
break;
case 16:
-#line 202 "re_grammar.y"
+#line 205 "re_grammar.y"
{
- (yyval.re_node) = yr_re_node_create(RE_NODE_RANGE, (yyvsp[(1) - (3)].re_node), NULL);
+ (yyval.re_node) = yr_re_node_create(RE_NODE_RANGE, (yyvsp[(1) - (3)].re_node), NULL);
- DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(1) - (3)].re_node));
- ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
+ DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[(1) - (3)].re_node));
+ ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
- (yyval.re_node)->start = (yyvsp[(2) - (3)].range) & 0xFFFF;;
- (yyval.re_node)->end = (yyvsp[(2) - (3)].range) >> 16;;
- (yyval.re_node)->greedy = FALSE;
- }
+ (yyval.re_node)->start = (yyvsp[(2) - (3)].range) & 0xFFFF;;
+ (yyval.re_node)->end = (yyvsp[(2) - (3)].range) >> 16;;
+ (yyval.re_node)->greedy = FALSE;
+ }
break;
case 17:
-#line 213 "re_grammar.y"
+#line 216 "re_grammar.y"
{
- (yyval.re_node) = (yyvsp[(1) - (1)].re_node);
- }
+ (yyval.re_node) = (yyvsp[(1) - (1)].re_node);
+ }
break;
case 18:
-#line 217 "re_grammar.y"
+#line 220 "re_grammar.y"
{
- (yyval.re_node) = yr_re_node_create(RE_NODE_WORD_BOUNDARY, NULL, NULL);
+ (yyval.re_node) = yr_re_node_create(RE_NODE_WORD_BOUNDARY, NULL, NULL);
- ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
- }
+ ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
break;
case 19:
-#line 223 "re_grammar.y"
+#line 226 "re_grammar.y"
{
- (yyval.re_node) = yr_re_node_create(RE_NODE_NON_WORD_BOUNDARY, NULL, NULL);
+ (yyval.re_node) = yr_re_node_create(RE_NODE_NON_WORD_BOUNDARY, NULL, NULL);
- ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
- }
+ ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
break;
case 20:
-#line 229 "re_grammar.y"
+#line 232 "re_grammar.y"
{
- (yyval.re_node) = yr_re_node_create(RE_NODE_ANCHOR_START, NULL, NULL);
+ (yyval.re_node) = yr_re_node_create(RE_NODE_ANCHOR_START, NULL, NULL);
- ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
- }
+ ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
break;
case 21:
-#line 235 "re_grammar.y"
+#line 238 "re_grammar.y"
{
- (yyval.re_node) = yr_re_node_create(RE_NODE_ANCHOR_END, NULL, NULL);
+ (yyval.re_node) = yr_re_node_create(RE_NODE_ANCHOR_END, NULL, NULL);
- ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
- }
+ ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
break;
case 22:
-#line 243 "re_grammar.y"
+#line 247 "re_grammar.y"
{
- (yyval.re_node) = (yyvsp[(2) - (3)].re_node);
- }
+ (yyval.re_node) = (yyvsp[(2) - (3)].re_node);
+ }
break;
case 23:
-#line 247 "re_grammar.y"
+#line 251 "re_grammar.y"
{
- (yyval.re_node) = yr_re_node_create(RE_NODE_ANY, NULL, NULL);
+ (yyval.re_node) = yr_re_node_create(RE_NODE_ANY, NULL, NULL);
- ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
- }
+ ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
break;
case 24:
-#line 253 "re_grammar.y"
+#line 257 "re_grammar.y"
{
- (yyval.re_node) = yr_re_node_create(RE_NODE_LITERAL, NULL, NULL);
+ (yyval.re_node) = yr_re_node_create(RE_NODE_LITERAL, NULL, NULL);
- ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
+ ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
- (yyval.re_node)->value = (yyvsp[(1) - (1)].integer);
- }
+ (yyval.re_node)->value = (yyvsp[(1) - (1)].integer);
+ }
break;
case 25:
-#line 261 "re_grammar.y"
+#line 265 "re_grammar.y"
{
- (yyval.re_node) = yr_re_node_create(RE_NODE_WORD_CHAR, NULL, NULL);
+ (yyval.re_node) = yr_re_node_create(RE_NODE_WORD_CHAR, NULL, NULL);
- ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
- }
+ ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
break;
case 26:
-#line 267 "re_grammar.y"
+#line 271 "re_grammar.y"
{
- (yyval.re_node) = yr_re_node_create(RE_NODE_NON_WORD_CHAR, NULL, NULL);
+ (yyval.re_node) = yr_re_node_create(RE_NODE_NON_WORD_CHAR, NULL, NULL);
- ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
- }
+ ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
break;
case 27:
-#line 273 "re_grammar.y"
+#line 277 "re_grammar.y"
{
- (yyval.re_node) = yr_re_node_create(RE_NODE_SPACE, NULL, NULL);
+ (yyval.re_node) = yr_re_node_create(RE_NODE_SPACE, NULL, NULL);
- ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
- }
+ ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
break;
case 28:
-#line 279 "re_grammar.y"
+#line 283 "re_grammar.y"
{
- (yyval.re_node) = yr_re_node_create(RE_NODE_NON_SPACE, NULL, NULL);
+ (yyval.re_node) = yr_re_node_create(RE_NODE_NON_SPACE, NULL, NULL);
- ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
- }
+ ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
break;
case 29:
-#line 285 "re_grammar.y"
+#line 289 "re_grammar.y"
{
- (yyval.re_node) = yr_re_node_create(RE_NODE_DIGIT, NULL, NULL);
+ (yyval.re_node) = yr_re_node_create(RE_NODE_DIGIT, NULL, NULL);
- ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
- }
+ ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
break;
case 30:
-#line 291 "re_grammar.y"
+#line 295 "re_grammar.y"
{
- (yyval.re_node) = yr_re_node_create(RE_NODE_NON_DIGIT, NULL, NULL);
+ (yyval.re_node) = yr_re_node_create(RE_NODE_NON_DIGIT, NULL, NULL);
- ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
- }
+ ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
break;
case 31:
-#line 297 "re_grammar.y"
+#line 301 "re_grammar.y"
{
- (yyval.re_node) = yr_re_node_create(RE_NODE_CLASS, NULL, NULL);
+ (yyval.re_node) = yr_re_node_create(RE_NODE_CLASS, NULL, NULL);
- ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
+ ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFICIENT_MEMORY);
- (yyval.re_node)->class_vector = (yyvsp[(1) - (1)].class_vector);
- }
+ (yyval.re_node)->class_vector = (yyvsp[(1) - (1)].class_vector);
+ }
break;
@@ -1945,6 +1945,6 @@ yyreturn:
}
-#line 307 "re_grammar.y"
+#line 309 "re_grammar.y"
diff --git a/libyara/re_grammar.y b/libyara/re_grammar.y
index 1b03595..1f6b7df 100644
--- a/libyara/re_grammar.y
+++ b/libyara/re_grammar.y
@@ -85,223 +85,225 @@ limitations under the License.
%%
-re : alternative
- {
+re : alternative
+ {
RE* re = yyget_extra(yyscanner);
re->root_node = $1;
- }
- | error
- ;
-
-alternative : concatenation
- {
- $$ = $1;
- }
- | alternative '|' concatenation
- {
- $$ = yr_re_node_create(RE_NODE_ALT, $1, $3);
-
- DESTROY_NODE_IF($$ == NULL, $1);
- DESTROY_NODE_IF($$ == NULL, $3);
-
- ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
- }
- | alternative '|'
- {
- RE_NODE* node;
-
- node = yr_re_node_create(RE_NODE_EMPTY, NULL, NULL);
-
- DESTROY_NODE_IF($$ == NULL, $1);
- ERROR_IF(node == NULL, ERROR_INSUFICIENT_MEMORY);
-
- $$ = yr_re_node_create(RE_NODE_ALT, $1, node);
-
- ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
- }
- ;
-
-concatenation : repeat
- {
- $$ = $1;
- }
- | concatenation repeat
- {
- $$ = yr_re_node_create(RE_NODE_CONCAT, $1, $2);
-
- DESTROY_NODE_IF($$ == NULL, $1);
- DESTROY_NODE_IF($$ == NULL, $2);
- ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
- }
- ;
-
-repeat : single '*'
- {
- $$ = yr_re_node_create(RE_NODE_STAR, $1, NULL);
-
- DESTROY_NODE_IF($$ == NULL, $1);
- ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
- }
- | single '*' '?'
- {
- $$ = yr_re_node_create(RE_NODE_STAR, $1, NULL);
-
- DESTROY_NODE_IF($$ == NULL, $1);
- ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
-
- $$->greedy = FALSE;
- }
- | single '+'
- {
- $$ = yr_re_node_create(RE_NODE_PLUS, $1, NULL);
-
- DESTROY_NODE_IF($$ == NULL, $1);
- ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
- }
- | single '+' '?'
- {
- $$ = yr_re_node_create(RE_NODE_PLUS, $1, NULL);
-
- DESTROY_NODE_IF($$ == NULL, $1);
- ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
-
- $$->greedy = FALSE;
- }
- | single '?'
- {
- $$ = yr_re_node_create(RE_NODE_RANGE, $1, NULL);
-
- DESTROY_NODE_IF($$ == NULL, $1);
- ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
-
- $$->start = 0;
- $$->end = 1;
- }
- | single '?' '?'
- {
- $$ = yr_re_node_create(RE_NODE_RANGE, $1, NULL);
-
- DESTROY_NODE_IF($$ == NULL, $1);
- ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
-
- $$->start = 0;
- $$->end = 1;
- $$->greedy = FALSE;
- }
- | single _RANGE_
- {
- $$ = yr_re_node_create(RE_NODE_RANGE, $1, NULL);
-
- DESTROY_NODE_IF($$ == NULL, $1);
- ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
-
- $$->start = $2 & 0xFFFF;;
- $$->end = $2 >> 16;;
- }
- | single _RANGE_ '?'
- {
- $$ = yr_re_node_create(RE_NODE_RANGE, $1, NULL);
-
- DESTROY_NODE_IF($$ == NULL, $1);
- ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
-
- $$->start = $2 & 0xFFFF;;
- $$->end = $2 >> 16;;
- $$->greedy = FALSE;
- }
- | single
- {
- $$ = $1;
- }
- | _WORD_BOUNDARY_
- {
- $$ = yr_re_node_create(RE_NODE_WORD_BOUNDARY, NULL, NULL);
-
- ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
- }
- | _NON_WORD_BOUNDARY_
- {
- $$ = yr_re_node_create(RE_NODE_NON_WORD_BOUNDARY, NULL, NULL);
-
- ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
- }
- | '^'
- {
- $$ = yr_re_node_create(RE_NODE_ANCHOR_START, NULL, NULL);
-
- ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
- }
- | '$'
- {
- $$ = yr_re_node_create(RE_NODE_ANCHOR_END, NULL, NULL);
-
- ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
- }
- ;
-
-single : '(' alternative ')'
- {
- $$ = $2;
- }
- | '.'
- {
- $$ = yr_re_node_create(RE_NODE_ANY, NULL, NULL);
-
- ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
- }
- | _CHAR_
- {
- $$ = yr_re_node_create(RE_NODE_LITERAL, NULL, NULL);
-
- ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
-
- $$->value = $1;
- }
- | _WORD_CHAR_
- {
- $$ = yr_re_node_create(RE_NODE_WORD_CHAR, NULL, NULL);
-
- ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
- }
- | _NON_WORD_CHAR_
- {
- $$ = yr_re_node_create(RE_NODE_NON_WORD_CHAR, NULL, NULL);
-
- ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
- }
- | _SPACE_
- {
- $$ = yr_re_node_create(RE_NODE_SPACE, NULL, NULL);
-
- ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
- }
- | _NON_SPACE_
- {
- $$ = yr_re_node_create(RE_NODE_NON_SPACE, NULL, NULL);
-
- ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
- }
- | _DIGIT_
- {
- $$ = yr_re_node_create(RE_NODE_DIGIT, NULL, NULL);
-
- ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
- }
- | _NON_DIGIT_
- {
- $$ = yr_re_node_create(RE_NODE_NON_DIGIT, NULL, NULL);
-
- ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
- }
- | _CLASS_
- {
- $$ = yr_re_node_create(RE_NODE_CLASS, NULL, NULL);
-
- ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
-
- $$->class_vector = $1;
- }
- ;
-
-
+ }
+ | error
+ ;
+
+alternative
+ : concatenation
+ {
+ $$ = $1;
+ }
+ | alternative '|' concatenation
+ {
+ $$ = yr_re_node_create(RE_NODE_ALT, $1, $3);
+
+ DESTROY_NODE_IF($$ == NULL, $1);
+ DESTROY_NODE_IF($$ == NULL, $3);
+
+ ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
+ | alternative '|'
+ {
+ RE_NODE* node;
+
+ node = yr_re_node_create(RE_NODE_EMPTY, NULL, NULL);
+
+ DESTROY_NODE_IF($$ == NULL, $1);
+ ERROR_IF(node == NULL, ERROR_INSUFICIENT_MEMORY);
+
+ $$ = yr_re_node_create(RE_NODE_ALT, $1, node);
+
+ ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
+ ;
+
+concatenation
+ : repeat
+ {
+ $$ = $1;
+ }
+ | concatenation repeat
+ {
+ $$ = yr_re_node_create(RE_NODE_CONCAT, $1, $2);
+
+ DESTROY_NODE_IF($$ == NULL, $1);
+ DESTROY_NODE_IF($$ == NULL, $2);
+ ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
+ ;
+
+repeat
+ : single '*'
+ {
+ $$ = yr_re_node_create(RE_NODE_STAR, $1, NULL);
+
+ DESTROY_NODE_IF($$ == NULL, $1);
+ ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
+ | single '*' '?'
+ {
+ $$ = yr_re_node_create(RE_NODE_STAR, $1, NULL);
+
+ DESTROY_NODE_IF($$ == NULL, $1);
+ ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
+
+ $$->greedy = FALSE;
+ }
+ | single '+'
+ {
+ $$ = yr_re_node_create(RE_NODE_PLUS, $1, NULL);
+
+ DESTROY_NODE_IF($$ == NULL, $1);
+ ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
+ | single '+' '?'
+ {
+ $$ = yr_re_node_create(RE_NODE_PLUS, $1, NULL);
+
+ DESTROY_NODE_IF($$ == NULL, $1);
+ ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
+
+ $$->greedy = FALSE;
+ }
+ | single '?'
+ {
+ $$ = yr_re_node_create(RE_NODE_RANGE, $1, NULL);
+
+ DESTROY_NODE_IF($$ == NULL, $1);
+ ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
+
+ $$->start = 0;
+ $$->end = 1;
+ }
+ | single '?' '?'
+ {
+ $$ = yr_re_node_create(RE_NODE_RANGE, $1, NULL);
+
+ DESTROY_NODE_IF($$ == NULL, $1);
+ ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
+
+ $$->start = 0;
+ $$->end = 1;
+ $$->greedy = FALSE;
+ }
+ | single _RANGE_
+ {
+ $$ = yr_re_node_create(RE_NODE_RANGE, $1, NULL);
+
+ DESTROY_NODE_IF($$ == NULL, $1);
+ ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
+
+ $$->start = $2 & 0xFFFF;;
+ $$->end = $2 >> 16;;
+ }
+ | single _RANGE_ '?'
+ {
+ $$ = yr_re_node_create(RE_NODE_RANGE, $1, NULL);
+
+ DESTROY_NODE_IF($$ == NULL, $1);
+ ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
+
+ $$->start = $2 & 0xFFFF;;
+ $$->end = $2 >> 16;;
+ $$->greedy = FALSE;
+ }
+ | single
+ {
+ $$ = $1;
+ }
+ | _WORD_BOUNDARY_
+ {
+ $$ = yr_re_node_create(RE_NODE_WORD_BOUNDARY, NULL, NULL);
+
+ ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
+ | _NON_WORD_BOUNDARY_
+ {
+ $$ = yr_re_node_create(RE_NODE_NON_WORD_BOUNDARY, NULL, NULL);
+
+ ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
+ | '^'
+ {
+ $$ = yr_re_node_create(RE_NODE_ANCHOR_START, NULL, NULL);
+
+ ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
+ | '$'
+ {
+ $$ = yr_re_node_create(RE_NODE_ANCHOR_END, NULL, NULL);
+
+ ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
+ ;
+
+single
+ : '(' alternative ')'
+ {
+ $$ = $2;
+ }
+ | '.'
+ {
+ $$ = yr_re_node_create(RE_NODE_ANY, NULL, NULL);
+
+ ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
+ | _CHAR_
+ {
+ $$ = yr_re_node_create(RE_NODE_LITERAL, NULL, NULL);
+
+ ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
+
+ $$->value = $1;
+ }
+ | _WORD_CHAR_
+ {
+ $$ = yr_re_node_create(RE_NODE_WORD_CHAR, NULL, NULL);
+
+ ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
+ | _NON_WORD_CHAR_
+ {
+ $$ = yr_re_node_create(RE_NODE_NON_WORD_CHAR, NULL, NULL);
+
+ ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
+ | _SPACE_
+ {
+ $$ = yr_re_node_create(RE_NODE_SPACE, NULL, NULL);
+
+ ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
+ | _NON_SPACE_
+ {
+ $$ = yr_re_node_create(RE_NODE_NON_SPACE, NULL, NULL);
+
+ ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
+ | _DIGIT_
+ {
+ $$ = yr_re_node_create(RE_NODE_DIGIT, NULL, NULL);
+
+ ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
+ | _NON_DIGIT_
+ {
+ $$ = yr_re_node_create(RE_NODE_NON_DIGIT, NULL, NULL);
+
+ ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
+ }
+ | _CLASS_
+ {
+ $$ = yr_re_node_create(RE_NODE_CLASS, NULL, NULL);
+
+ ERROR_IF($$ == NULL, ERROR_INSUFICIENT_MEMORY);
+
+ $$->class_vector = $1;
+ }
+ ;
%%
--
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