[Forensics-changes] [yara] 30/192: Update lexer.c
Hilko Bengen
bengen at moszumanska.debian.org
Sat Jul 1 10:31:43 UTC 2017
This is an automated email from the git hooks/post-receive script.
bengen pushed a commit to annotated tag v3.6.0
in repository yara.
commit 4d47719fa8706a0e5bd33f860e9153d9667d847e
Author: plusvic <plusvic at gmail.com>
Date: Wed Sep 21 09:03:51 2016 +0200
Update lexer.c
---
libyara/lexer.c | 172 ++++++++++++++++++++++++++++++--------------------------
1 file changed, 91 insertions(+), 81 deletions(-)
diff --git a/libyara/lexer.c b/libyara/lexer.c
index 5f3999b..b070003 100644
--- a/libyara/lexer.c
+++ b/libyara/lexer.c
@@ -756,7 +756,12 @@ with noyywrap then we can remove this pragma.
#include <stdio.h>
#include <string.h>
#include <setjmp.h>
+
+#if defined(_WIN32) || defined(__CYGWIN__)
+#include <fileapi.h>
+#else
#include <unistd.h>
+#endif
#include <yara/integers.h>
#include <yara/lexer.h>
@@ -810,7 +815,7 @@ with noyywrap then we can remove this pragma.
-#line 814 "lexer.c"
+#line 819 "lexer.c"
#define INITIAL 0
#define str 1
@@ -1087,10 +1092,10 @@ YY_DECL
}
{
-#line 124 "lexer.l"
+#line 129 "lexer.l"
-#line 1094 "lexer.c"
+#line 1099 "lexer.c"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -1157,208 +1162,208 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 126 "lexer.l"
+#line 131 "lexer.l"
{ return _DOT_DOT_; }
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 127 "lexer.l"
+#line 132 "lexer.l"
{ return _LT_; }
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 128 "lexer.l"
+#line 133 "lexer.l"
{ return _GT_; }
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 129 "lexer.l"
+#line 134 "lexer.l"
{ return _LE_; }
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 130 "lexer.l"
+#line 135 "lexer.l"
{ return _GE_; }
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 131 "lexer.l"
+#line 136 "lexer.l"
{ return _EQ_; }
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 132 "lexer.l"
+#line 137 "lexer.l"
{ return _NEQ_; }
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 133 "lexer.l"
+#line 138 "lexer.l"
{ return _SHIFT_LEFT_; }
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 134 "lexer.l"
+#line 139 "lexer.l"
{ return _SHIFT_RIGHT_; }
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 135 "lexer.l"
+#line 140 "lexer.l"
{ return _PRIVATE_; }
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 136 "lexer.l"
+#line 141 "lexer.l"
{ return _GLOBAL_; }
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 137 "lexer.l"
+#line 142 "lexer.l"
{ return _RULE_; }
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 138 "lexer.l"
+#line 143 "lexer.l"
{ return _META_; }
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 139 "lexer.l"
+#line 144 "lexer.l"
{ return _STRINGS_; }
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 140 "lexer.l"
+#line 145 "lexer.l"
{ return _ASCII_; }
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 141 "lexer.l"
+#line 146 "lexer.l"
{ return _WIDE_; }
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 142 "lexer.l"
+#line 147 "lexer.l"
{ return _FULLWORD_; }
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 143 "lexer.l"
+#line 148 "lexer.l"
{ return _NOCASE_; }
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 144 "lexer.l"
+#line 149 "lexer.l"
{ return _CONDITION_; }
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 145 "lexer.l"
+#line 150 "lexer.l"
{ return _TRUE_; }
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 146 "lexer.l"
+#line 151 "lexer.l"
{ return _FALSE_; }
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 147 "lexer.l"
+#line 152 "lexer.l"
{ return _NOT_; }
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 148 "lexer.l"
+#line 153 "lexer.l"
{ return _AND_; }
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 149 "lexer.l"
+#line 154 "lexer.l"
{ return _OR_; }
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 150 "lexer.l"
+#line 155 "lexer.l"
{ return _AT_; }
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 151 "lexer.l"
+#line 156 "lexer.l"
{ return _IN_; }
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 152 "lexer.l"
+#line 157 "lexer.l"
{ return _OF_; }
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 153 "lexer.l"
+#line 158 "lexer.l"
{ return _THEM_; }
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 154 "lexer.l"
+#line 159 "lexer.l"
{ return _FOR_; }
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 155 "lexer.l"
+#line 160 "lexer.l"
{ return _ALL_; }
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 156 "lexer.l"
+#line 161 "lexer.l"
{ return _ANY_; }
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 157 "lexer.l"
+#line 162 "lexer.l"
{ return _ENTRYPOINT_; }
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 158 "lexer.l"
+#line 163 "lexer.l"
{ return _FILESIZE_; }
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 159 "lexer.l"
+#line 164 "lexer.l"
{ return _MATCHES_; }
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 160 "lexer.l"
+#line 165 "lexer.l"
{ return _CONTAINS_; }
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 161 "lexer.l"
+#line 166 "lexer.l"
{ return _IMPORT_; }
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 164 "lexer.l"
+#line 169 "lexer.l"
{ BEGIN(comment); }
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 165 "lexer.l"
+#line 170 "lexer.l"
{ BEGIN(INITIAL); }
YY_BREAK
case 39:
/* rule 39 can match eol */
YY_RULE_SETUP
-#line 166 "lexer.l"
+#line 171 "lexer.l"
{ /* skip comments */ }
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 169 "lexer.l"
+#line 174 "lexer.l"
{ /* skip single-line comments */ }
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 172 "lexer.l"
+#line 177 "lexer.l"
{
yyextra->lex_buf_ptr = yyextra->lex_buf;
yyextra->lex_buf_len = 0;
@@ -1368,12 +1373,12 @@ YY_RULE_SETUP
case 42:
/* rule 42 can match eol */
YY_RULE_SETUP
-#line 179 "lexer.l"
+#line 184 "lexer.l"
{ YYTEXT_TO_BUFFER; }
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 182 "lexer.l"
+#line 187 "lexer.l"
{
char buffer[1024];
@@ -1489,7 +1494,7 @@ case YY_STATE_EOF(str):
case YY_STATE_EOF(regexp):
case YY_STATE_EOF(include):
case YY_STATE_EOF(comment):
-#line 294 "lexer.l"
+#line 299 "lexer.l"
{
YR_COMPILER* compiler = yara_yyget_extra(yyscanner);
@@ -1511,7 +1516,7 @@ case YY_STATE_EOF(comment):
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 314 "lexer.l"
+#line 319 "lexer.l"
{
yylval->c_string = yr_strdup(yytext);
@@ -1527,7 +1532,7 @@ YY_RULE_SETUP
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 328 "lexer.l"
+#line 333 "lexer.l"
{
yylval->c_string = yr_strdup(yytext);
@@ -1543,7 +1548,7 @@ YY_RULE_SETUP
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 342 "lexer.l"
+#line 347 "lexer.l"
{
yylval->c_string = yr_strdup(yytext);
@@ -1560,7 +1565,7 @@ YY_RULE_SETUP
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 357 "lexer.l"
+#line 362 "lexer.l"
{
yylval->c_string = yr_strdup(yytext);
@@ -1577,7 +1582,7 @@ YY_RULE_SETUP
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 372 "lexer.l"
+#line 377 "lexer.l"
{
yylval->c_string = yr_strdup(yytext);
@@ -1594,7 +1599,7 @@ YY_RULE_SETUP
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 387 "lexer.l"
+#line 392 "lexer.l"
{
char* text = yytext;
@@ -1635,7 +1640,7 @@ YY_RULE_SETUP
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 426 "lexer.l"
+#line 431 "lexer.l"
{
if (strlen(yytext) > 128)
@@ -1656,7 +1661,7 @@ YY_RULE_SETUP
YY_BREAK
case 51:
YY_RULE_SETUP
-#line 445 "lexer.l"
+#line 450 "lexer.l"
{
#ifdef _MSC_VER
@@ -1678,7 +1683,7 @@ YY_RULE_SETUP
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 464 "lexer.l"
+#line 469 "lexer.l"
{
yylval->double_ = atof(yytext);
return _DOUBLE_;
@@ -1686,7 +1691,7 @@ YY_RULE_SETUP
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 469 "lexer.l"
+#line 474 "lexer.l"
{
yylval->integer = xtoi(yytext + 2);
@@ -1695,7 +1700,7 @@ YY_RULE_SETUP
YY_BREAK
case 54:
YY_RULE_SETUP
-#line 476 "lexer.l"
+#line 481 "lexer.l"
{ /* saw closing quote - all done */
ALLOC_SIZED_STRING(s, yyextra->lex_buf_len);
@@ -1711,7 +1716,7 @@ YY_RULE_SETUP
YY_BREAK
case 55:
YY_RULE_SETUP
-#line 490 "lexer.l"
+#line 495 "lexer.l"
{
LEX_CHECK_SPACE_OK("\t", yyextra->lex_buf_len, LEX_BUF_SIZE);
@@ -1721,7 +1726,7 @@ YY_RULE_SETUP
YY_BREAK
case 56:
YY_RULE_SETUP
-#line 498 "lexer.l"
+#line 503 "lexer.l"
{
LEX_CHECK_SPACE_OK("\n", yyextra->lex_buf_len, LEX_BUF_SIZE);
@@ -1731,7 +1736,7 @@ YY_RULE_SETUP
YY_BREAK
case 57:
YY_RULE_SETUP
-#line 506 "lexer.l"
+#line 511 "lexer.l"
{
LEX_CHECK_SPACE_OK("\"", yyextra->lex_buf_len, LEX_BUF_SIZE);
@@ -1741,7 +1746,7 @@ YY_RULE_SETUP
YY_BREAK
case 58:
YY_RULE_SETUP
-#line 514 "lexer.l"
+#line 519 "lexer.l"
{
LEX_CHECK_SPACE_OK("\\", yyextra->lex_buf_len, LEX_BUF_SIZE);
@@ -1751,7 +1756,7 @@ YY_RULE_SETUP
YY_BREAK
case 59:
YY_RULE_SETUP
-#line 522 "lexer.l"
+#line 527 "lexer.l"
{
int result;
@@ -1764,13 +1769,13 @@ YY_RULE_SETUP
YY_BREAK
case 60:
YY_RULE_SETUP
-#line 533 "lexer.l"
+#line 538 "lexer.l"
{ YYTEXT_TO_BUFFER; }
YY_BREAK
case 61:
/* rule 61 can match eol */
YY_RULE_SETUP
-#line 536 "lexer.l"
+#line 541 "lexer.l"
{
yyerror(yyscanner, compiler, "unterminated string");
@@ -1780,7 +1785,7 @@ YY_RULE_SETUP
case 62:
/* rule 62 can match eol */
YY_RULE_SETUP
-#line 542 "lexer.l"
+#line 547 "lexer.l"
{
yyerror(yyscanner, compiler, "illegal escape sequence");
@@ -1789,7 +1794,7 @@ YY_RULE_SETUP
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 549 "lexer.l"
+#line 554 "lexer.l"
{
if (yyextra->lex_buf_len > 0)
@@ -1818,7 +1823,7 @@ YY_RULE_SETUP
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 576 "lexer.l"
+#line 581 "lexer.l"
{
LEX_CHECK_SPACE_OK("/", yyextra->lex_buf_len, LEX_BUF_SIZE);
@@ -1828,7 +1833,7 @@ YY_RULE_SETUP
YY_BREAK
case 65:
YY_RULE_SETUP
-#line 584 "lexer.l"
+#line 589 "lexer.l"
{
LEX_CHECK_SPACE_OK("\\.", yyextra->lex_buf_len, LEX_BUF_SIZE);
@@ -1839,13 +1844,13 @@ YY_RULE_SETUP
YY_BREAK
case 66:
YY_RULE_SETUP
-#line 593 "lexer.l"
+#line 598 "lexer.l"
{ YYTEXT_TO_BUFFER; }
YY_BREAK
case 67:
/* rule 67 can match eol */
YY_RULE_SETUP
-#line 596 "lexer.l"
+#line 601 "lexer.l"
{
yyerror(yyscanner, compiler, "unterminated regular expression");
@@ -1854,7 +1859,7 @@ YY_RULE_SETUP
YY_BREAK
case 68:
YY_RULE_SETUP
-#line 603 "lexer.l"
+#line 608 "lexer.l"
{
yyextra->lex_buf_ptr = yyextra->lex_buf;
@@ -1864,7 +1869,7 @@ YY_RULE_SETUP
YY_BREAK
case 69:
YY_RULE_SETUP
-#line 611 "lexer.l"
+#line 616 "lexer.l"
{
yyextra->lex_buf_ptr = yyextra->lex_buf;
@@ -1875,7 +1880,7 @@ YY_RULE_SETUP
case 70:
/* rule 70 can match eol */
YY_RULE_SETUP
-#line 619 "lexer.l"
+#line 624 "lexer.l"
{
// Match hex-digits with whitespace or comments. The latter are stripped
// out by hex_lexer.l
@@ -1891,12 +1896,12 @@ YY_RULE_SETUP
case 71:
/* rule 71 can match eol */
YY_RULE_SETUP
-#line 632 "lexer.l"
+#line 637 "lexer.l"
/* skip whitespace */
YY_BREAK
case 72:
YY_RULE_SETUP
-#line 634 "lexer.l"
+#line 639 "lexer.l"
{
if (yytext[0] >= 32 && yytext[0] < 127)
@@ -1912,10 +1917,10 @@ YY_RULE_SETUP
YY_BREAK
case 73:
YY_RULE_SETUP
-#line 647 "lexer.l"
+#line 652 "lexer.l"
ECHO;
YY_BREAK
-#line 1919 "lexer.c"
+#line 1924 "lexer.c"
case YY_END_OF_BUFFER:
{
@@ -3064,7 +3069,7 @@ void yara_yyfree (void * ptr , yyscan_t yyscanner)
#define YYTABLES_NAME "yytables"
-#line 647 "lexer.l"
+#line 652 "lexer.l"
@@ -3253,12 +3258,16 @@ int yr_lex_parse_rules_fd(
#endif
char buf[1024];
- int len;
yara_yyset_extra(compiler,yyscanner);
while (1)
{
- len = read(rules_fd, buf, sizeof(buf));
+#if defined(_WIN32) || defined(__CYGWIN__)
+ DWORD len;
+ if (!ReadFile(rules_fd, buf, sizeof(buf), &len, NULL))
+ break;
+#else
+ int len = read(rules_fd, buf, sizeof(buf));
if (len < 0)
{
if (errno == EINTR)
@@ -3266,6 +3275,7 @@ int yr_lex_parse_rules_fd(
else
break;
}
+#endif
if (len == 0)
break;
yara_yy_scan_bytes(buf,len,yyscanner);
--
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