From 0cd96fdbea400dfbcdfbf7df974192590ed074a7 Mon Sep 17 00:00:00 2001 From: helly Date: Mon, 1 May 2006 17:50:38 +0000 Subject: [PATCH] - Fixed #1479044 incorrect code generated when using -b. --- CHANGELOG | 1 + code.cc | 29 +- htdocs/index.html | 1 + test/bug1479044.b.c | 1241 +++++++++++++++++++++++++++++++++++ test/bug1479044.b.re | 60 ++ test/bug1479044.c | 1479 ++++++++++++++++++++++++++++++++++++++++++ test/bug1479044.re | 60 ++ test/bug1479044.s.c | 1209 ++++++++++++++++++++++++++++++++++ test/bug1479044.s.re | 60 ++ 9 files changed, 4134 insertions(+), 6 deletions(-) create mode 100755 test/bug1479044.b.c create mode 100755 test/bug1479044.b.re create mode 100755 test/bug1479044.c create mode 100755 test/bug1479044.re create mode 100755 test/bug1479044.s.c create mode 100755 test/bug1479044.s.re diff --git a/CHANGELOG b/CHANGELOG index 9cc9e410..b7ac8fee 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -14,6 +14,7 @@ Version 0.10.2 (2006-??-??) - Changed to not generate yyaccept code unless needed. - Changed to use if- instead of switch-expression when yyaccpt has only one case. - Added docu, examples and tests to .src.zip package (0.10.1 zip was repackaged). +- Fixed #1479044 incorrect code generated when using -b. - Fixed #1454253 Piece of code saving a backtracking point not generated. - Fixed #1463639 Missing forward declaration. - Implemented #1187127 savable state support for multiple re2c blocks. diff --git a/code.cc b/code.cc index 25ea82e2..2ca271a3 100644 --- a/code.cc +++ b/code.cc @@ -208,20 +208,34 @@ void BitMap::gen(std::ostream &o, uint ind, uint lb, uint ub) { BitMap *b = first; - if (b) + if (b && bLastPass) { o << indent(ind) << "static unsigned char yybm[] = {"; - uint n = ub - lb; - uint *bm = new uint[n]; - memset(bm, 0, n*sizeof(uint)); - for (uint i = 0; b; i += n) + uint c = 1, n = ub - lb; + + while((b = const_cast(b->next)) != NULL) { + ++c; + } + b = first; + + uint *bm = new uint[n]; + + for (uint i = 0, t = 0; b; i += n) { - for (uint m = 0x80; b && m; b = const_cast(b->next), m >>= 1) + memset(bm, 0, n * sizeof(uint)); + + for (uint m = 0x80; b && m; m >>= 1) { b->i = i; b->m = m; doGen(b->go, b->on, bm, lb, m); + b = const_cast(b->next); + } + + if (c > 8) + { + o << "\n" << indent(ind+1) << "/* table " << ++t << ": " << i << " */"; } for (uint j = 0; j < n; ++j) @@ -244,6 +258,9 @@ void BitMap::gen(std::ostream &o, uint ind, uint lb, uint ub) } o << "\n" << indent(ind) << "};\n"; + /* stats(); */ + + delete[] bm; } } diff --git a/htdocs/index.html b/htdocs/index.html index 8fb8c03f..c1c38f95 100755 --- a/htdocs/index.html +++ b/htdocs/index.html @@ -92,6 +92,7 @@ provide re2c packages.
  • Changed to not generate yyaccept code unless needed.
  • Changed to use if- instead of switch-expression when yyaccpt has only one case.
  • Added docu, examples and tests to .src.zip package (0.10.1 zip was repackaged).
  • +
  • Fixed #1479044 incorrect code generated when using -b.
  • Fixed #1454253 Piece of code saving a backtracking point not generated.
  • Fixed #1463639 Missing forward declaration.
  • Implemented #1187127 savable state support for multiple re2c blocks.
  • diff --git a/test/bug1479044.b.c b/test/bug1479044.b.c new file mode 100755 index 00000000..bf825fe8 --- /dev/null +++ b/test/bug1479044.b.c @@ -0,0 +1,1241 @@ +/* Generated by re2c */ +#line 1 "bug1479044.b.re" +#define NULL ((char*) 0) +#define YYCTYPE char +#define YYCURSOR p +#define YYLIMIT p +#define YYMARKER q +#define YYFILL(n) + +#include + +char *scan281(char *p) +{ + char *q; +start: +{ + static unsigned char yybm[] = { + /* table 1: 0 */ + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 0, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 210, 12, 170, + 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 170, 169, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, + /* table 2: 256 */ + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 0, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 0, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + }; + +#line 87 "" + { + YYCTYPE yych; + unsigned int yyaccept = 0; + + if((YYLIMIT - YYCURSOR) < 11) YYFILL(11); + yych = *YYCURSOR; + if(yych <= 'f') { + if(yych <= 'a') { + if(yych <= '/') { + if(yych <= 0x00) goto yy16; + goto yy15; + } else { + if(yych <= '9') goto yy14; + if(yych <= '`') goto yy15; + } + } else { + if(yych <= 'c') { + if(yych <= 'b') goto yy4; + goto yy5; + } else { + if(yych <= 'd') goto yy6; + if(yych <= 'e') goto yy7; + goto yy8; + } + } + } else { + if(yych <= 'q') { + if(yych <= 'l') { + if(yych <= 'k') goto yy15; + goto yy9; + } else { + if(yych == 'p') goto yy10; + goto yy15; + } + } else { + if(yych <= 'v') { + if(yych <= 'r') goto yy13; + if(yych <= 'u') goto yy15; + goto yy11; + } else { + if(yych == 'x') goto yy12; + goto yy15; + } + } + } + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 'd') goto yy172; +yy3: +#line 32 "bug1479044.b.re" + { + goto start; + } +#line 141 "" +yy4: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 'd') goto yy170; + goto yy3; +yy5: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 'd') goto yy168; + goto yy3; +yy6: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych <= 'n') { + if(yych == 'h') goto yy154; + goto yy3; + } else { + if(yych <= 'o') goto yy153; + if(yych == 's') goto yy155; + goto yy3; + } +yy7: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 'd') goto yy151; + goto yy3; +yy8: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 'd') goto yy149; + goto yy3; +yy9: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 'd') goto yy147; + goto yy3; +yy10: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych <= 'p') { + if(yych <= 'n') goto yy3; + if(yych <= 'o') goto yy137; + goto yy136; + } else { + if(yych == 'r') goto yy135; + goto yy3; + } +yy11: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 'd') goto yy133; + goto yy3; +yy12: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 's') goto yy108; + goto yy3; +yy13: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 'h') goto yy71; + goto yy3; +yy14: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yybm[256+yych] & 64) { + goto yy20; + } + if(yych == '-') goto yy18; + goto yy3; +yy15: + yych = *++YYCURSOR; + goto yy3; +yy16: + ++YYCURSOR; +#line 37 "bug1479044.b.re" + { + return NULL; + } +#line 221 "" +yy18: + yych = *++YYCURSOR; + if(yych <= '/') goto yy19; + if(yych <= '9') goto yy22; +yy19: + YYCURSOR = YYMARKER; + switch(yyaccept) { + case 3: goto yy132; + case 2: goto yy107; + case 1: goto yy63; + case 0: goto yy3; + } +yy20: + ++YYCURSOR; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + if(yybm[256+yych] & 64) { + goto yy20; + } + if(yych == '-') goto yy18; + goto yy19; +yy22: + ++YYCURSOR; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + if(yych == '-') goto yy24; + if(yych <= '/') goto yy19; + if(yych <= '9') goto yy22; + goto yy19; +yy24: + yych = *++YYCURSOR; + if(yych <= '/') goto yy19; + if(yych >= ':') goto yy19; +yy25: + ++YYCURSOR; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + if(yych == '-') goto yy27; + if(yych <= '/') goto yy19; + if(yych <= '9') goto yy25; + goto yy19; +yy27: + yych = *++YYCURSOR; + if(yych <= '/') goto yy19; + if(yych >= ':') goto yy19; +yy28: + ++YYCURSOR; + if((YYLIMIT - YYCURSOR) < 8) YYFILL(8); + yych = *YYCURSOR; + if(yych == '.') goto yy30; + if(yych <= '/') goto yy19; + if(yych <= '9') goto yy28; + goto yy19; +yy30: + yych = *++YYCURSOR; + if(yych == 'b') goto yy34; + if(yych != 'd') goto yy33; + yych = *++YYCURSOR; + if(yych == 'h') goto yy69; + goto yy33; +yy32: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; +yy33: + if(yybm[256+yych] & 128) { + goto yy32; + } + if(yych <= 'l') goto yy19; + goto yy35; +yy34: + yych = *++YYCURSOR; + if(yych == 'o') goto yy64; + goto yy33; +yy35: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 1) { + goto yy35; + } + if(yych == 0x0A) goto yy19; + if(yych != 'o') goto yy32; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 1) { + goto yy35; + } + if(yych == 0x0A) goto yy19; + if(yych != 'd') goto yy32; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 1) { + goto yy35; + } + if(yych == 0x0A) goto yy19; + if(yych != 'e') goto yy32; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[256+yych] & 128) { + goto yy32; + } + if(yych <= 'l') goto yy19; +yy40: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 4) { + goto yy44; + } + if(yych <= 'l') { + if(yych == 0x0A) goto yy19; + } else { + if(yych <= 'm') goto yy40; + if(yych == 'o') goto yy46; + } +yy42: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 2) { + goto yy42; + } + if(yych <= '-') goto yy19; + if(yych >= '/') goto yy40; +yy44: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 4) { + goto yy44; + } + if(yych <= 'l') { + if(yych == 0x0A) goto yy19; + goto yy42; + } else { + if(yych <= 'm') goto yy40; + if(yych == 'w') goto yy49; + goto yy42; + } +yy46: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 4) { + goto yy44; + } + if(yych <= 'c') { + if(yych == 0x0A) goto yy19; + goto yy42; + } else { + if(yych <= 'd') goto yy47; + if(yych == 'm') goto yy40; + goto yy42; + } +yy47: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 4) { + goto yy44; + } + if(yych <= 'd') { + if(yych == 0x0A) goto yy19; + goto yy42; + } else { + if(yych <= 'e') goto yy48; + if(yych == 'm') goto yy40; + goto yy42; + } +yy48: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 2) { + goto yy42; + } + if(yych <= '-') goto yy19; + if(yych <= '.') goto yy44; + goto yy40; +yy49: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 4) { + goto yy44; + } + if(yych <= '`') { + if(yych == 0x0A) goto yy19; + goto yy42; + } else { + if(yych <= 'a') goto yy50; + if(yych == 'm') goto yy40; + goto yy42; + } +yy50: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 4) { + goto yy44; + } + if(yych <= 'l') { + if(yych == 0x0A) goto yy19; + goto yy42; + } else { + if(yych <= 'm') goto yy40; + if(yych != 's') goto yy42; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 4) { + goto yy44; + } + if(yych <= 'g') { + if(yych == 0x0A) goto yy19; + goto yy42; + } else { + if(yych <= 'h') goto yy52; + if(yych == 'm') goto yy40; + goto yy42; + } +yy52: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 4) { + goto yy44; + } + if(yych <= 'h') { + if(yych == 0x0A) goto yy19; + goto yy42; + } else { + if(yych <= 'i') goto yy53; + if(yych == 'm') goto yy40; + goto yy42; + } +yy53: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 4) { + goto yy44; + } + if(yych <= 'l') { + if(yych == 0x0A) goto yy19; + goto yy42; + } else { + if(yych <= 'm') goto yy40; + if(yych >= 'o') goto yy42; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 4) { + goto yy44; + } + if(yych <= 'f') { + if(yych == 0x0A) goto yy19; + goto yy42; + } else { + if(yych <= 'g') goto yy55; + if(yych == 'm') goto yy40; + goto yy42; + } +yy55: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 4) { + goto yy44; + } + if(yych <= 'l') { + if(yych == 0x0A) goto yy19; + goto yy42; + } else { + if(yych <= 'm') goto yy40; + if(yych != 't') goto yy42; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 4) { + goto yy44; + } + if(yych <= 'l') { + if(yych == 0x0A) goto yy19; + goto yy42; + } else { + if(yych <= 'm') goto yy40; + if(yych != 'o') goto yy42; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 4) { + goto yy44; + } + if(yych <= 'l') { + if(yych == 0x0A) goto yy19; + goto yy42; + } else { + if(yych <= 'm') goto yy40; + if(yych >= 'o') goto yy42; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 2) { + goto yy42; + } + if(yych <= '-') goto yy19; + if(yych >= '/') goto yy40; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 4) { + goto yy44; + } + if(yych <= 'e') { + if(yych == 0x0A) goto yy19; + if(yych <= 'd') goto yy42; + } else { + if(yych <= 'm') { + if(yych <= 'l') goto yy42; + goto yy40; + } else { + if(yych == 'w') goto yy49; + goto yy42; + } + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 4) { + goto yy44; + } + if(yych <= 'c') { + if(yych == 0x0A) goto yy19; + goto yy42; + } else { + if(yych <= 'd') goto yy61; + if(yych == 'm') goto yy40; + goto yy42; + } +yy61: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 4) { + goto yy44; + } + if(yych <= 'l') { + if(yych == 0x0A) goto yy19; + goto yy42; + } else { + if(yych <= 'm') goto yy40; + if(yych != 'u') goto yy42; + } + yyaccept = 1; + YYMARKER = ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 2) { + goto yy42; + } + if(yych <= '-') goto yy63; + if(yych <= '.') goto yy44; + goto yy40; +yy63: +#line 27 "bug1479044.b.re" + { + return "edu"; + } +#line 600 "" +yy64: + yych = *++YYCURSOR; + if(yych != 't') goto yy33; + yych = *++YYCURSOR; + if(yych != 'h') goto yy33; + yych = *++YYCURSOR; + if(yych != 'e') goto yy33; + yych = *++YYCURSOR; + if(yych != 'l') goto yy33; + yych = *++YYCURSOR; + if(yych == 'l') goto yy42; + goto yy33; +yy69: + yych = *++YYCURSOR; + if(yych != 'c') goto yy33; + yych = *++YYCURSOR; + if(yych == 'p') goto yy42; + goto yy33; +yy71: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 8) { + goto yy71; + } + if(yych <= ',') goto yy19; +yy73: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 16) { + goto yy73; + } + if(yych == 0x0A) goto yy19; + if(yych <= '/') goto yy71; + if(yych >= ':') goto yy71; +yy75: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= ',') { + if(yych == 0x0A) goto yy19; + goto yy71; + } else { + if(yych <= '-') goto yy77; + if(yych <= '/') goto yy71; + if(yych <= '9') goto yy75; + goto yy71; + } +yy77: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 16) { + goto yy73; + } + if(yych == 0x0A) goto yy19; + if(yych <= '/') goto yy71; + if(yych >= ':') goto yy71; +yy78: + ++YYCURSOR; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy71; + goto yy77; + } else { + if(yych <= '.') goto yy80; + if(yych <= '/') goto yy71; + if(yych <= '9') goto yy78; + goto yy71; + } +yy80: + yych = *++YYCURSOR; + if(yych != '.') goto yy82; +yy81: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; +yy82: + if(yybm[0+yych] & 32) { + goto yy81; + } + if(yych <= ',') goto yy19; + if(yych >= '.') goto yy85; +yy83: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych <= '/') goto yy81; + if(yych <= '9') goto yy87; + goto yy81; + } +yy85: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych == 'r') goto yy92; + goto yy81; + } +yy87: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + } else { + if(yych <= '.') goto yy85; + if(yych <= '/') goto yy81; + if(yych <= '9') goto yy87; + goto yy81; + } +yy89: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych <= '/') goto yy81; + if(yych >= ':') goto yy81; + } +yy90: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy89; + } else { + if(yych <= '.') goto yy85; + if(yych <= '/') goto yy81; + if(yych <= '9') goto yy90; + goto yy81; + } +yy92: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych != 'e') goto yy81; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych != 's') goto yy81; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych != 'n') goto yy81; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych != 'e') goto yy81; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych != 't') goto yy81; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 32) { + goto yy81; + } + if(yych <= ',') goto yy19; + if(yych <= '-') goto yy83; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '.') { + if(yych <= 0x0A) { + if(yych <= 0x09) goto yy81; + goto yy19; + } else { + if(yych <= ',') goto yy81; + if(yych <= '-') goto yy83; + goto yy85; + } + } else { + if(yych <= 'p') { + if(yych <= 'o') goto yy81; + } else { + if(yych == 'r') goto yy92; + goto yy81; + } + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych != 'i') goto yy81; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych != 't') goto yy81; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych != 't') goto yy81; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 32) { + goto yy81; + } + if(yych <= ',') goto yy19; + if(yych <= '-') goto yy83; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '.') { + if(yych <= 0x0A) { + if(yych <= 0x09) goto yy81; + goto yy19; + } else { + if(yych <= ',') goto yy81; + if(yych <= '-') goto yy83; + goto yy85; + } + } else { + if(yych <= 'e') { + if(yych <= 'd') goto yy81; + } else { + if(yych == 'r') goto yy92; + goto yy81; + } + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych != 'd') goto yy81; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych != 'u') goto yy81; + } + yyaccept = 2; + YYMARKER = ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 32) { + goto yy81; + } + if(yych <= ',') goto yy107; + if(yych <= '-') goto yy83; + goto yy85; +yy107: +#line 22 "bug1479044.b.re" + { + return "resnet"; + } +#line 936 "" +yy108: + yych = *++YYCURSOR; + if(yych != 't') goto yy19; + yych = *++YYCURSOR; + if(yych != 't') goto yy19; + yych = *++YYCURSOR; + if(yych != 'l') goto yy19; + yych = *++YYCURSOR; + if(yych != 'd') goto yy19; + yych = *++YYCURSOR; + if(yych != 's') goto yy19; + yych = *++YYCURSOR; + if(yych != 'l') goto yy19; +yy114: + yych = *++YYCURSOR; + if(yych == '.') goto yy19; + goto yy116; +yy115: + ++YYCURSOR; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; +yy116: + if(yybm[0+yych] & 64) { + goto yy115; + } + if(yych != '.') goto yy19; + yych = *++YYCURSOR; + if(yych == 0x0A) goto yy19; +yy118: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 128) { + goto yy118; + } + if(yych <= '-') goto yy19; +yy120: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + goto yy118; + } else { + if(yych <= '.') goto yy120; + if(yych != 'u') goto yy118; + } +yy122: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + goto yy118; + } else { + if(yych <= '.') goto yy120; + if(yych != 's') goto yy118; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + goto yy118; + } else { + if(yych <= '.') goto yy120; + if(yych != 'w') goto yy118; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + goto yy118; + } else { + if(yych <= '.') goto yy120; + if(yych != 'e') goto yy118; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + goto yy118; + } else { + if(yych <= '.') goto yy120; + if(yych != 's') goto yy118; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + goto yy118; + } else { + if(yych <= '.') goto yy120; + if(yych != 't') goto yy118; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 128) { + goto yy118; + } + if(yych <= '-') goto yy19; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '.') { + if(yych == 0x0A) goto yy19; + if(yych <= '-') goto yy118; + goto yy120; + } else { + if(yych <= 'n') { + if(yych <= 'm') goto yy118; + } else { + if(yych == 'u') goto yy122; + goto yy118; + } + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + goto yy118; + } else { + if(yych <= '.') goto yy120; + if(yych != 'e') goto yy118; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + goto yy118; + } else { + if(yych <= '.') goto yy120; + if(yych != 't') goto yy118; + } + yyaccept = 3; + YYMARKER = ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 128) { + goto yy118; + } + if(yych >= '.') goto yy120; +yy132: +#line 17 "bug1479044.b.re" + { + return "dsl"; + } +#line 1090 "" +yy133: + yych = *++YYCURSOR; + if(yych != 's') goto yy19; + yych = *++YYCURSOR; + if(yych == 'l') goto yy114; + goto yy19; +yy135: + yych = *++YYCURSOR; + if(yych == 'e') goto yy142; + goto yy19; +yy136: + yych = *++YYCURSOR; + if(yych == 'p') goto yy139; + goto yy19; +yy137: + yych = *++YYCURSOR; + if(yych != 'o') goto yy19; + yych = *++YYCURSOR; + if(yych == 'l') goto yy114; + goto yy19; +yy139: + yych = *++YYCURSOR; + if(yych != 'd') goto yy19; + yych = *++YYCURSOR; + if(yych != 's') goto yy19; + yych = *++YYCURSOR; + if(yych == 'l') goto yy114; + goto yy19; +yy142: + yych = *++YYCURSOR; + if(yych != 'm') goto yy19; + yych = *++YYCURSOR; + if(yych != 'i') goto yy19; + yych = *++YYCURSOR; + if(yych != 'u') goto yy19; + yych = *++YYCURSOR; + if(yych != 'm') goto yy19; + yych = *++YYCURSOR; + if(yych == 'C') goto yy114; + goto yy19; +yy147: + yych = *++YYCURSOR; + if(yych != 's') goto yy19; + yych = *++YYCURSOR; + if(yych == 'l') goto yy114; + goto yy19; +yy149: + yych = *++YYCURSOR; + if(yych != 's') goto yy19; + yych = *++YYCURSOR; + if(yych == 'l') goto yy114; + goto yy19; +yy151: + yych = *++YYCURSOR; + if(yych != 's') goto yy19; + yych = *++YYCURSOR; + if(yych == 'l') goto yy114; + goto yy19; +yy153: + yych = *++YYCURSOR; + if(yych == 'r') goto yy166; + goto yy19; +yy154: + yych = *++YYCURSOR; + if(yych == 'c') goto yy165; + goto yy19; +yy155: + yych = *++YYCURSOR; + if(yych != 'l') goto yy19; + yych = *++YYCURSOR; + if(yych == 'g') goto yy158; + if(yych != 'p') goto yy19; + yych = *++YYCURSOR; + if(yych == 'p') goto yy164; + goto yy19; +yy158: + yych = *++YYCURSOR; + if(yych != 'w') goto yy19; + yych = *++YYCURSOR; + if(yych != '4') goto yy19; + yych = *++YYCURSOR; + if(yych != 'p') goto yy19; + yych = *++YYCURSOR; + if(yych != 'o') goto yy19; + yych = *++YYCURSOR; + if(yych != 'o') goto yy19; + yych = *++YYCURSOR; + if(yych == 'l') goto yy114; + goto yy19; +yy164: + yych = *++YYCURSOR; + if(yych == 'p') goto yy114; + goto yy19; +yy165: + yych = *++YYCURSOR; + if(yych == 'p') goto yy71; + goto yy19; +yy166: + yych = *++YYCURSOR; + if(yych != 'm') goto yy19; + yych = *++YYCURSOR; + if(yych == 's') goto yy71; + goto yy19; +yy168: + yych = *++YYCURSOR; + if(yych != 's') goto yy19; + yych = *++YYCURSOR; + if(yych == 'l') goto yy114; + goto yy19; +yy170: + yych = *++YYCURSOR; + if(yych != 's') goto yy19; + yych = *++YYCURSOR; + if(yych == 'l') goto yy114; + goto yy19; +yy172: + yych = *++YYCURSOR; + if(yych != 's') goto yy19; + yych = *++YYCURSOR; + if(yych != 'l') goto yy19; + yych = *++YYCURSOR; + if(yych == '.') goto yy19; + if(yych != 'p') goto yy116; + yych = *++YYCURSOR; + if(yych != 'p') goto yy19; + ++YYCURSOR; + if((yych = *YYCURSOR) == 'p') goto yy114; + goto yy19; + } +} +#line 40 "bug1479044.b.re" + +} + +int main(int argc, char **argv) +{ + int n = 0; + char *largv[2]; + + if (argc < 2) + { + argc = 2; + argv = largv; + argv[1] = "D-128-208-46-51.dhcp4.washington.edu"; + } + while(++n < argc) + { + char *res = scan281(argv[n]); + printf("%s\n", res ? res : ""); + } + return 0; +} diff --git a/test/bug1479044.b.re b/test/bug1479044.b.re new file mode 100755 index 00000000..6ac5de7e --- /dev/null +++ b/test/bug1479044.b.re @@ -0,0 +1,60 @@ +#define NULL ((char*) 0) +#define YYCTYPE char +#define YYCURSOR p +#define YYLIMIT p +#define YYMARKER q +#define YYFILL(n) + +#include + +char *scan281(char *p) +{ + char *q; +start: +/*!re2c + + ( "adsl" | "adslppp" | "bdsl" | "cdsl" | "dslgw4pool" | "dslppp" | "edsl" | "fdsl" | "ldsl" | "pool" | "pppdsl" | "premiumC" | "vdsl" | "xsttldsl") [0-9a-k\-]+ ".".+ ".uswest.net" + { + return "dsl"; + } + + ( "dhcp" | "dorms" | "rh" ).* "-" [0-9]+ "-" [0-9]+ "." .+ ".resnet.pitt.edu" + { + return "resnet"; + } + + [0-9]+ "-" [0-9]+ "-" [0-9]+ "-" [0-9]+ "." ("dhcp" | .* "modem" | "bothell") .* ".washington.edu" + { + return "edu"; + } + + [\001-\377] + { + goto start; + } + + [\000] + { + return NULL; + } +*/ +} + +int main(int argc, char **argv) +{ + int n = 0; + char *largv[2]; + + if (argc < 2) + { + argc = 2; + argv = largv; + argv[1] = "D-128-208-46-51.dhcp4.washington.edu"; + } + while(++n < argc) + { + char *res = scan281(argv[n]); + printf("%s\n", res ? res : ""); + } + return 0; +} diff --git a/test/bug1479044.c b/test/bug1479044.c new file mode 100755 index 00000000..64b351d7 --- /dev/null +++ b/test/bug1479044.c @@ -0,0 +1,1479 @@ +/* Generated by re2c */ +#line 1 "bug1479044.re" +#define NULL ((char*) 0) +#define YYCTYPE char +#define YYCURSOR p +#define YYLIMIT p +#define YYMARKER q +#define YYFILL(n) + +#include + +char *scan281(char *p) +{ + char *q; +start: + +#line 18 "" +{ + YYCTYPE yych; + unsigned int yyaccept = 0; + + if((YYLIMIT - YYCURSOR) < 11) YYFILL(11); + yych = *YYCURSOR; + switch(yych){ + case 0x00: goto yy16; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy14; + case 'a': goto yy2; + case 'b': goto yy4; + case 'c': goto yy5; + case 'd': goto yy6; + case 'e': goto yy7; + case 'f': goto yy8; + case 'l': goto yy9; + case 'p': goto yy10; + case 'r': goto yy13; + case 'v': goto yy11; + case 'x': goto yy12; + default: goto yy15; + } +yy2: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + switch(yych){ + case 'd': goto yy172; + default: goto yy3; + } +yy3: +#line 32 "bug1479044.re" + { + goto start; + } +#line 62 "" +yy4: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + switch(yych){ + case 'd': goto yy170; + default: goto yy3; + } +yy5: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + switch(yych){ + case 'd': goto yy168; + default: goto yy3; + } +yy6: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + switch(yych){ + case 'h': goto yy154; + case 'o': goto yy153; + case 's': goto yy155; + default: goto yy3; + } +yy7: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + switch(yych){ + case 'd': goto yy151; + default: goto yy3; + } +yy8: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + switch(yych){ + case 'd': goto yy149; + default: goto yy3; + } +yy9: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + switch(yych){ + case 'd': goto yy147; + default: goto yy3; + } +yy10: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + switch(yych){ + case 'o': goto yy137; + case 'p': goto yy136; + case 'r': goto yy135; + default: goto yy3; + } +yy11: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + switch(yych){ + case 'd': goto yy133; + default: goto yy3; + } +yy12: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + switch(yych){ + case 's': goto yy108; + default: goto yy3; + } +yy13: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + switch(yych){ + case 'h': goto yy71; + default: goto yy3; + } +yy14: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + switch(yych){ + case '-': goto yy18; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy20; + default: goto yy3; + } +yy15: + yych = *++YYCURSOR; + goto yy3; +yy16: + ++YYCURSOR; +#line 37 "bug1479044.re" + { + return NULL; + } +#line 163 "" +yy18: + yych = *++YYCURSOR; + switch(yych){ + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy22; + default: goto yy19; + } +yy19: + YYCURSOR = YYMARKER; + switch(yyaccept) { + case 3: goto yy132; + case 2: goto yy107; + case 1: goto yy63; + case 0: goto yy3; + } +yy20: + ++YYCURSOR; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + switch(yych){ + case '-': goto yy18; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy20; + default: goto yy19; + } +yy22: + ++YYCURSOR; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + switch(yych){ + case '-': goto yy24; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy22; + default: goto yy19; + } +yy24: + yych = *++YYCURSOR; + switch(yych){ + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy25; + default: goto yy19; + } +yy25: + ++YYCURSOR; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + switch(yych){ + case '-': goto yy27; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy25; + default: goto yy19; + } +yy27: + yych = *++YYCURSOR; + switch(yych){ + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy28; + default: goto yy19; + } +yy28: + ++YYCURSOR; + if((YYLIMIT - YYCURSOR) < 8) YYFILL(8); + yych = *YYCURSOR; + switch(yych){ + case '.': goto yy30; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy28; + default: goto yy19; + } +yy30: + yych = *++YYCURSOR; + switch(yych){ + case 'b': goto yy34; + case 'd': goto yy31; + default: goto yy33; + } +yy31: + yych = *++YYCURSOR; + switch(yych){ + case 'h': goto yy69; + default: goto yy33; + } +yy32: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; +yy33: + switch(yych){ + case 0x0A: goto yy19; + case 'm': goto yy35; + default: goto yy32; + } +yy34: + yych = *++YYCURSOR; + switch(yych){ + case 'o': goto yy64; + default: goto yy33; + } +yy35: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case 'm': goto yy35; + case 'o': goto yy37; + default: goto yy32; + } +yy37: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case 'd': goto yy38; + case 'm': goto yy35; + default: goto yy32; + } +yy38: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case 'e': goto yy39; + case 'm': goto yy35; + default: goto yy32; + } +yy39: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case 'm': goto yy40; + default: goto yy32; + } +yy40: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy44; + case 'm': goto yy40; + case 'o': goto yy46; + default: goto yy42; + } +yy42: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy44; + case 'm': goto yy40; + default: goto yy42; + } +yy44: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy44; + case 'm': goto yy40; + case 'w': goto yy49; + default: goto yy42; + } +yy46: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy44; + case 'd': goto yy47; + case 'm': goto yy40; + default: goto yy42; + } +yy47: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy44; + case 'e': goto yy48; + case 'm': goto yy40; + default: goto yy42; + } +yy48: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy44; + case 'm': goto yy40; + default: goto yy42; + } +yy49: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy44; + case 'a': goto yy50; + case 'm': goto yy40; + default: goto yy42; + } +yy50: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy44; + case 'm': goto yy40; + case 's': goto yy51; + default: goto yy42; + } +yy51: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy44; + case 'h': goto yy52; + case 'm': goto yy40; + default: goto yy42; + } +yy52: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy44; + case 'i': goto yy53; + case 'm': goto yy40; + default: goto yy42; + } +yy53: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy44; + case 'm': goto yy40; + case 'n': goto yy54; + default: goto yy42; + } +yy54: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy44; + case 'g': goto yy55; + case 'm': goto yy40; + default: goto yy42; + } +yy55: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy44; + case 'm': goto yy40; + case 't': goto yy56; + default: goto yy42; + } +yy56: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy44; + case 'm': goto yy40; + case 'o': goto yy57; + default: goto yy42; + } +yy57: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy44; + case 'm': goto yy40; + case 'n': goto yy58; + default: goto yy42; + } +yy58: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy59; + case 'm': goto yy40; + default: goto yy42; + } +yy59: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy44; + case 'e': goto yy60; + case 'm': goto yy40; + case 'w': goto yy49; + default: goto yy42; + } +yy60: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy44; + case 'd': goto yy61; + case 'm': goto yy40; + default: goto yy42; + } +yy61: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy44; + case 'm': goto yy40; + case 'u': goto yy62; + default: goto yy42; + } +yy62: + yyaccept = 1; + YYMARKER = ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy63; + case '.': goto yy44; + case 'm': goto yy40; + default: goto yy42; + } +yy63: +#line 27 "bug1479044.re" + { + return "edu"; + } +#line 580 "" +yy64: + yych = *++YYCURSOR; + switch(yych){ + case 't': goto yy65; + default: goto yy33; + } +yy65: + yych = *++YYCURSOR; + switch(yych){ + case 'h': goto yy66; + default: goto yy33; + } +yy66: + yych = *++YYCURSOR; + switch(yych){ + case 'e': goto yy67; + default: goto yy33; + } +yy67: + yych = *++YYCURSOR; + switch(yych){ + case 'l': goto yy68; + default: goto yy33; + } +yy68: + yych = *++YYCURSOR; + switch(yych){ + case 'l': goto yy42; + default: goto yy33; + } +yy69: + yych = *++YYCURSOR; + switch(yych){ + case 'c': goto yy70; + default: goto yy33; + } +yy70: + yych = *++YYCURSOR; + switch(yych){ + case 'p': goto yy42; + default: goto yy33; + } +yy71: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '-': goto yy73; + default: goto yy71; + } +yy73: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '-': goto yy73; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy75; + default: goto yy71; + } +yy75: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '-': goto yy77; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy75; + default: goto yy71; + } +yy77: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '-': goto yy73; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy78; + default: goto yy71; + } +yy78: + ++YYCURSOR; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '-': goto yy77; + case '.': goto yy80; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy78; + default: goto yy71; + } +yy80: + yych = *++YYCURSOR; + switch(yych){ + case '.': goto yy81; + default: goto yy82; + } +yy81: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; +yy82: + switch(yych){ + case 0x0A: goto yy19; + case '-': goto yy83; + case '.': goto yy85; + default: goto yy81; + } +yy83: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '-': goto yy83; + case '.': goto yy85; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy87; + default: goto yy81; + } +yy85: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '-': goto yy83; + case '.': goto yy85; + case 'r': goto yy92; + default: goto yy81; + } +yy87: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '-': goto yy89; + case '.': goto yy85; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy87; + default: goto yy81; + } +yy89: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '-': goto yy83; + case '.': goto yy85; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy90; + default: goto yy81; + } +yy90: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '-': goto yy89; + case '.': goto yy85; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy90; + default: goto yy81; + } +yy92: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '-': goto yy83; + case '.': goto yy85; + case 'e': goto yy93; + default: goto yy81; + } +yy93: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '-': goto yy83; + case '.': goto yy85; + case 's': goto yy94; + default: goto yy81; + } +yy94: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '-': goto yy83; + case '.': goto yy85; + case 'n': goto yy95; + default: goto yy81; + } +yy95: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '-': goto yy83; + case '.': goto yy85; + case 'e': goto yy96; + default: goto yy81; + } +yy96: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '-': goto yy83; + case '.': goto yy85; + case 't': goto yy97; + default: goto yy81; + } +yy97: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '-': goto yy83; + case '.': goto yy98; + default: goto yy81; + } +yy98: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '-': goto yy83; + case '.': goto yy85; + case 'p': goto yy99; + case 'r': goto yy92; + default: goto yy81; + } +yy99: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '-': goto yy83; + case '.': goto yy85; + case 'i': goto yy100; + default: goto yy81; + } +yy100: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '-': goto yy83; + case '.': goto yy85; + case 't': goto yy101; + default: goto yy81; + } +yy101: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '-': goto yy83; + case '.': goto yy85; + case 't': goto yy102; + default: goto yy81; + } +yy102: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '-': goto yy83; + case '.': goto yy103; + default: goto yy81; + } +yy103: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '-': goto yy83; + case '.': goto yy85; + case 'e': goto yy104; + case 'r': goto yy92; + default: goto yy81; + } +yy104: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '-': goto yy83; + case '.': goto yy85; + case 'd': goto yy105; + default: goto yy81; + } +yy105: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '-': goto yy83; + case '.': goto yy85; + case 'u': goto yy106; + default: goto yy81; + } +yy106: + yyaccept = 2; + YYMARKER = ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy107; + case '-': goto yy83; + case '.': goto yy85; + default: goto yy81; + } +yy107: +#line 22 "bug1479044.re" + { + return "resnet"; + } +#line 987 "" +yy108: + yych = *++YYCURSOR; + switch(yych){ + case 't': goto yy109; + default: goto yy19; + } +yy109: + yych = *++YYCURSOR; + switch(yych){ + case 't': goto yy110; + default: goto yy19; + } +yy110: + yych = *++YYCURSOR; + switch(yych){ + case 'l': goto yy111; + default: goto yy19; + } +yy111: + yych = *++YYCURSOR; + switch(yych){ + case 'd': goto yy112; + default: goto yy19; + } +yy112: + yych = *++YYCURSOR; + switch(yych){ + case 's': goto yy113; + default: goto yy19; + } +yy113: + yych = *++YYCURSOR; + switch(yych){ + case 'l': goto yy114; + default: goto yy19; + } +yy114: + yych = *++YYCURSOR; + switch(yych){ + case '.': goto yy19; + default: goto yy116; + } +yy115: + ++YYCURSOR; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; +yy116: + switch(yych){ + case '-': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': goto yy115; + case '.': goto yy117; + default: goto yy19; + } +yy117: + yych = *++YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + default: goto yy118; + } +yy118: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy120; + default: goto yy118; + } +yy120: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy120; + case 'u': goto yy122; + default: goto yy118; + } +yy122: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy120; + case 's': goto yy123; + default: goto yy118; + } +yy123: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy120; + case 'w': goto yy124; + default: goto yy118; + } +yy124: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy120; + case 'e': goto yy125; + default: goto yy118; + } +yy125: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy120; + case 's': goto yy126; + default: goto yy118; + } +yy126: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy120; + case 't': goto yy127; + default: goto yy118; + } +yy127: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy128; + default: goto yy118; + } +yy128: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy120; + case 'n': goto yy129; + case 'u': goto yy122; + default: goto yy118; + } +yy129: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy120; + case 'e': goto yy130; + default: goto yy118; + } +yy130: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy19; + case '.': goto yy120; + case 't': goto yy131; + default: goto yy118; + } +yy131: + yyaccept = 3; + YYMARKER = ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case 0x0A: goto yy132; + case '.': goto yy120; + default: goto yy118; + } +yy132: +#line 17 "bug1479044.re" + { + return "dsl"; + } +#line 1191 "" +yy133: + yych = *++YYCURSOR; + switch(yych){ + case 's': goto yy134; + default: goto yy19; + } +yy134: + yych = *++YYCURSOR; + switch(yych){ + case 'l': goto yy114; + default: goto yy19; + } +yy135: + yych = *++YYCURSOR; + switch(yych){ + case 'e': goto yy142; + default: goto yy19; + } +yy136: + yych = *++YYCURSOR; + switch(yych){ + case 'p': goto yy139; + default: goto yy19; + } +yy137: + yych = *++YYCURSOR; + switch(yych){ + case 'o': goto yy138; + default: goto yy19; + } +yy138: + yych = *++YYCURSOR; + switch(yych){ + case 'l': goto yy114; + default: goto yy19; + } +yy139: + yych = *++YYCURSOR; + switch(yych){ + case 'd': goto yy140; + default: goto yy19; + } +yy140: + yych = *++YYCURSOR; + switch(yych){ + case 's': goto yy141; + default: goto yy19; + } +yy141: + yych = *++YYCURSOR; + switch(yych){ + case 'l': goto yy114; + default: goto yy19; + } +yy142: + yych = *++YYCURSOR; + switch(yych){ + case 'm': goto yy143; + default: goto yy19; + } +yy143: + yych = *++YYCURSOR; + switch(yych){ + case 'i': goto yy144; + default: goto yy19; + } +yy144: + yych = *++YYCURSOR; + switch(yych){ + case 'u': goto yy145; + default: goto yy19; + } +yy145: + yych = *++YYCURSOR; + switch(yych){ + case 'm': goto yy146; + default: goto yy19; + } +yy146: + yych = *++YYCURSOR; + switch(yych){ + case 'C': goto yy114; + default: goto yy19; + } +yy147: + yych = *++YYCURSOR; + switch(yych){ + case 's': goto yy148; + default: goto yy19; + } +yy148: + yych = *++YYCURSOR; + switch(yych){ + case 'l': goto yy114; + default: goto yy19; + } +yy149: + yych = *++YYCURSOR; + switch(yych){ + case 's': goto yy150; + default: goto yy19; + } +yy150: + yych = *++YYCURSOR; + switch(yych){ + case 'l': goto yy114; + default: goto yy19; + } +yy151: + yych = *++YYCURSOR; + switch(yych){ + case 's': goto yy152; + default: goto yy19; + } +yy152: + yych = *++YYCURSOR; + switch(yych){ + case 'l': goto yy114; + default: goto yy19; + } +yy153: + yych = *++YYCURSOR; + switch(yych){ + case 'r': goto yy166; + default: goto yy19; + } +yy154: + yych = *++YYCURSOR; + switch(yych){ + case 'c': goto yy165; + default: goto yy19; + } +yy155: + yych = *++YYCURSOR; + switch(yych){ + case 'l': goto yy156; + default: goto yy19; + } +yy156: + yych = *++YYCURSOR; + switch(yych){ + case 'g': goto yy158; + case 'p': goto yy157; + default: goto yy19; + } +yy157: + yych = *++YYCURSOR; + switch(yych){ + case 'p': goto yy164; + default: goto yy19; + } +yy158: + yych = *++YYCURSOR; + switch(yych){ + case 'w': goto yy159; + default: goto yy19; + } +yy159: + yych = *++YYCURSOR; + switch(yych){ + case '4': goto yy160; + default: goto yy19; + } +yy160: + yych = *++YYCURSOR; + switch(yych){ + case 'p': goto yy161; + default: goto yy19; + } +yy161: + yych = *++YYCURSOR; + switch(yych){ + case 'o': goto yy162; + default: goto yy19; + } +yy162: + yych = *++YYCURSOR; + switch(yych){ + case 'o': goto yy163; + default: goto yy19; + } +yy163: + yych = *++YYCURSOR; + switch(yych){ + case 'l': goto yy114; + default: goto yy19; + } +yy164: + yych = *++YYCURSOR; + switch(yych){ + case 'p': goto yy114; + default: goto yy19; + } +yy165: + yych = *++YYCURSOR; + switch(yych){ + case 'p': goto yy71; + default: goto yy19; + } +yy166: + yych = *++YYCURSOR; + switch(yych){ + case 'm': goto yy167; + default: goto yy19; + } +yy167: + yych = *++YYCURSOR; + switch(yych){ + case 's': goto yy71; + default: goto yy19; + } +yy168: + yych = *++YYCURSOR; + switch(yych){ + case 's': goto yy169; + default: goto yy19; + } +yy169: + yych = *++YYCURSOR; + switch(yych){ + case 'l': goto yy114; + default: goto yy19; + } +yy170: + yych = *++YYCURSOR; + switch(yych){ + case 's': goto yy171; + default: goto yy19; + } +yy171: + yych = *++YYCURSOR; + switch(yych){ + case 'l': goto yy114; + default: goto yy19; + } +yy172: + yych = *++YYCURSOR; + switch(yych){ + case 's': goto yy173; + default: goto yy19; + } +yy173: + yych = *++YYCURSOR; + switch(yych){ + case 'l': goto yy174; + default: goto yy19; + } +yy174: + yych = *++YYCURSOR; + switch(yych){ + case '.': goto yy19; + case 'p': goto yy175; + default: goto yy116; + } +yy175: + yych = *++YYCURSOR; + switch(yych){ + case 'p': goto yy176; + default: goto yy19; + } +yy176: + ++YYCURSOR; + switch((yych = *YYCURSOR)) { + case 'p': goto yy114; + default: goto yy19; + } +} +#line 40 "bug1479044.re" + +} + +int main(int argc, char **argv) +{ + int n = 0; + char *largv[2]; + + if (argc < 2) + { + argc = 2; + argv = largv; + argv[1] = "D-128-208-46-51.dhcp4.washington.edu"; + } + while(++n < argc) + { + char *res = scan281(argv[n]); + printf("%s\n", res ? res : ""); + } + return 0; +} diff --git a/test/bug1479044.re b/test/bug1479044.re new file mode 100755 index 00000000..6ac5de7e --- /dev/null +++ b/test/bug1479044.re @@ -0,0 +1,60 @@ +#define NULL ((char*) 0) +#define YYCTYPE char +#define YYCURSOR p +#define YYLIMIT p +#define YYMARKER q +#define YYFILL(n) + +#include + +char *scan281(char *p) +{ + char *q; +start: +/*!re2c + + ( "adsl" | "adslppp" | "bdsl" | "cdsl" | "dslgw4pool" | "dslppp" | "edsl" | "fdsl" | "ldsl" | "pool" | "pppdsl" | "premiumC" | "vdsl" | "xsttldsl") [0-9a-k\-]+ ".".+ ".uswest.net" + { + return "dsl"; + } + + ( "dhcp" | "dorms" | "rh" ).* "-" [0-9]+ "-" [0-9]+ "." .+ ".resnet.pitt.edu" + { + return "resnet"; + } + + [0-9]+ "-" [0-9]+ "-" [0-9]+ "-" [0-9]+ "." ("dhcp" | .* "modem" | "bothell") .* ".washington.edu" + { + return "edu"; + } + + [\001-\377] + { + goto start; + } + + [\000] + { + return NULL; + } +*/ +} + +int main(int argc, char **argv) +{ + int n = 0; + char *largv[2]; + + if (argc < 2) + { + argc = 2; + argv = largv; + argv[1] = "D-128-208-46-51.dhcp4.washington.edu"; + } + while(++n < argc) + { + char *res = scan281(argv[n]); + printf("%s\n", res ? res : ""); + } + return 0; +} diff --git a/test/bug1479044.s.c b/test/bug1479044.s.c new file mode 100755 index 00000000..ead37aba --- /dev/null +++ b/test/bug1479044.s.c @@ -0,0 +1,1209 @@ +/* Generated by re2c */ +#line 1 "bug1479044.s.re" +#define NULL ((char*) 0) +#define YYCTYPE char +#define YYCURSOR p +#define YYLIMIT p +#define YYMARKER q +#define YYFILL(n) + +#include + +char *scan281(char *p) +{ + char *q; +start: + +#line 18 "" +{ + YYCTYPE yych; + unsigned int yyaccept = 0; + + if((YYLIMIT - YYCURSOR) < 11) YYFILL(11); + yych = *YYCURSOR; + if(yych <= 'f') { + if(yych <= 'a') { + if(yych <= '/') { + if(yych <= 0x00) goto yy16; + goto yy15; + } else { + if(yych <= '9') goto yy14; + if(yych <= '`') goto yy15; + } + } else { + if(yych <= 'c') { + if(yych <= 'b') goto yy4; + goto yy5; + } else { + if(yych <= 'd') goto yy6; + if(yych <= 'e') goto yy7; + goto yy8; + } + } + } else { + if(yych <= 'q') { + if(yych <= 'l') { + if(yych <= 'k') goto yy15; + goto yy9; + } else { + if(yych == 'p') goto yy10; + goto yy15; + } + } else { + if(yych <= 'v') { + if(yych <= 'r') goto yy13; + if(yych <= 'u') goto yy15; + goto yy11; + } else { + if(yych == 'x') goto yy12; + goto yy15; + } + } + } + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 'd') goto yy172; +yy3: +#line 32 "bug1479044.s.re" + { + goto start; + } +#line 72 "" +yy4: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 'd') goto yy170; + goto yy3; +yy5: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 'd') goto yy168; + goto yy3; +yy6: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych <= 'n') { + if(yych == 'h') goto yy154; + goto yy3; + } else { + if(yych <= 'o') goto yy153; + if(yych == 's') goto yy155; + goto yy3; + } +yy7: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 'd') goto yy151; + goto yy3; +yy8: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 'd') goto yy149; + goto yy3; +yy9: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 'd') goto yy147; + goto yy3; +yy10: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych <= 'p') { + if(yych <= 'n') goto yy3; + if(yych <= 'o') goto yy137; + goto yy136; + } else { + if(yych == 'r') goto yy135; + goto yy3; + } +yy11: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 'd') goto yy133; + goto yy3; +yy12: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 's') goto yy108; + goto yy3; +yy13: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 'h') goto yy71; + goto yy3; +yy14: + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == '-') goto yy18; + if(yych <= '/') goto yy3; + if(yych <= '9') goto yy20; + goto yy3; +yy15: + yych = *++YYCURSOR; + goto yy3; +yy16: + ++YYCURSOR; +#line 37 "bug1479044.s.re" + { + return NULL; + } +#line 151 "" +yy18: + yych = *++YYCURSOR; + if(yych <= '/') goto yy19; + if(yych <= '9') goto yy22; +yy19: + YYCURSOR = YYMARKER; + switch(yyaccept) { + case 3: goto yy132; + case 2: goto yy107; + case 1: goto yy63; + case 0: goto yy3; + } +yy20: + ++YYCURSOR; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + if(yych == '-') goto yy18; + if(yych <= '/') goto yy19; + if(yych <= '9') goto yy20; + goto yy19; +yy22: + ++YYCURSOR; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + if(yych == '-') goto yy24; + if(yych <= '/') goto yy19; + if(yych <= '9') goto yy22; + goto yy19; +yy24: + yych = *++YYCURSOR; + if(yych <= '/') goto yy19; + if(yych >= ':') goto yy19; +yy25: + ++YYCURSOR; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + if(yych == '-') goto yy27; + if(yych <= '/') goto yy19; + if(yych <= '9') goto yy25; + goto yy19; +yy27: + yych = *++YYCURSOR; + if(yych <= '/') goto yy19; + if(yych >= ':') goto yy19; +yy28: + ++YYCURSOR; + if((YYLIMIT - YYCURSOR) < 8) YYFILL(8); + yych = *YYCURSOR; + if(yych == '.') goto yy30; + if(yych <= '/') goto yy19; + if(yych <= '9') goto yy28; + goto yy19; +yy30: + yych = *++YYCURSOR; + if(yych == 'b') goto yy34; + if(yych != 'd') goto yy33; + yych = *++YYCURSOR; + if(yych == 'h') goto yy69; + goto yy33; +yy32: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; +yy33: + if(yych == 0x0A) goto yy19; + if(yych == 'm') goto yy35; + goto yy32; +yy34: + yych = *++YYCURSOR; + if(yych == 'o') goto yy64; + goto yy33; +yy35: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= 'l') { + if(yych == 0x0A) goto yy19; + goto yy32; + } else { + if(yych <= 'm') goto yy35; + if(yych != 'o') goto yy32; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= 'c') { + if(yych == 0x0A) goto yy19; + goto yy32; + } else { + if(yych <= 'd') goto yy38; + if(yych == 'm') goto yy35; + goto yy32; + } +yy38: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= 'd') { + if(yych == 0x0A) goto yy19; + goto yy32; + } else { + if(yych <= 'e') goto yy39; + if(yych == 'm') goto yy35; + goto yy32; + } +yy39: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych == 0x0A) goto yy19; + if(yych != 'm') goto yy32; +yy40: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '.') { + if(yych == 0x0A) goto yy19; + if(yych >= '.') goto yy44; + } else { + if(yych <= 'm') { + if(yych >= 'm') goto yy40; + } else { + if(yych == 'o') goto yy46; + } + } +yy42: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + goto yy42; + } else { + if(yych <= '.') goto yy44; + if(yych == 'm') goto yy40; + goto yy42; + } +yy44: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '.') { + if(yych == 0x0A) goto yy19; + if(yych <= '-') goto yy42; + goto yy44; + } else { + if(yych <= 'm') { + if(yych <= 'l') goto yy42; + goto yy40; + } else { + if(yych == 'w') goto yy49; + goto yy42; + } + } +yy46: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '.') { + if(yych == 0x0A) goto yy19; + if(yych <= '-') goto yy42; + goto yy44; + } else { + if(yych <= 'd') { + if(yych <= 'c') goto yy42; + } else { + if(yych == 'm') goto yy40; + goto yy42; + } + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '.') { + if(yych == 0x0A) goto yy19; + if(yych <= '-') goto yy42; + goto yy44; + } else { + if(yych <= 'e') { + if(yych <= 'd') goto yy42; + } else { + if(yych == 'm') goto yy40; + goto yy42; + } + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + goto yy42; + } else { + if(yych <= '.') goto yy44; + if(yych == 'm') goto yy40; + goto yy42; + } +yy49: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '.') { + if(yych == 0x0A) goto yy19; + if(yych <= '-') goto yy42; + goto yy44; + } else { + if(yych <= 'a') { + if(yych <= '`') goto yy42; + } else { + if(yych == 'm') goto yy40; + goto yy42; + } + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '.') { + if(yych == 0x0A) goto yy19; + if(yych <= '-') goto yy42; + goto yy44; + } else { + if(yych <= 'm') { + if(yych <= 'l') goto yy42; + goto yy40; + } else { + if(yych != 's') goto yy42; + } + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '.') { + if(yych == 0x0A) goto yy19; + if(yych <= '-') goto yy42; + goto yy44; + } else { + if(yych <= 'h') { + if(yych <= 'g') goto yy42; + } else { + if(yych == 'm') goto yy40; + goto yy42; + } + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '.') { + if(yych == 0x0A) goto yy19; + if(yych <= '-') goto yy42; + goto yy44; + } else { + if(yych <= 'i') { + if(yych <= 'h') goto yy42; + } else { + if(yych == 'm') goto yy40; + goto yy42; + } + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '.') { + if(yych == 0x0A) goto yy19; + if(yych <= '-') goto yy42; + goto yy44; + } else { + if(yych <= 'l') goto yy42; + if(yych <= 'm') goto yy40; + if(yych >= 'o') goto yy42; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '.') { + if(yych == 0x0A) goto yy19; + if(yych <= '-') goto yy42; + goto yy44; + } else { + if(yych <= 'g') { + if(yych <= 'f') goto yy42; + } else { + if(yych == 'm') goto yy40; + goto yy42; + } + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '.') { + if(yych == 0x0A) goto yy19; + if(yych <= '-') goto yy42; + goto yy44; + } else { + if(yych <= 'm') { + if(yych <= 'l') goto yy42; + goto yy40; + } else { + if(yych != 't') goto yy42; + } + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '.') { + if(yych == 0x0A) goto yy19; + if(yych <= '-') goto yy42; + goto yy44; + } else { + if(yych <= 'm') { + if(yych <= 'l') goto yy42; + goto yy40; + } else { + if(yych != 'o') goto yy42; + } + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '.') { + if(yych == 0x0A) goto yy19; + if(yych <= '-') goto yy42; + goto yy44; + } else { + if(yych <= 'l') goto yy42; + if(yych <= 'm') goto yy40; + if(yych >= 'o') goto yy42; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + goto yy42; + } else { + if(yych <= '.') goto yy59; + if(yych == 'm') goto yy40; + goto yy42; + } +yy59: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= 'd') { + if(yych <= 0x0A) { + if(yych <= 0x09) goto yy42; + goto yy19; + } else { + if(yych == '.') goto yy44; + goto yy42; + } + } else { + if(yych <= 'm') { + if(yych <= 'e') goto yy60; + if(yych <= 'l') goto yy42; + goto yy40; + } else { + if(yych == 'w') goto yy49; + goto yy42; + } + } +yy60: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '.') { + if(yych == 0x0A) goto yy19; + if(yych <= '-') goto yy42; + goto yy44; + } else { + if(yych <= 'd') { + if(yych <= 'c') goto yy42; + } else { + if(yych == 'm') goto yy40; + goto yy42; + } + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '.') { + if(yych == 0x0A) goto yy19; + if(yych <= '-') goto yy42; + goto yy44; + } else { + if(yych <= 'm') { + if(yych <= 'l') goto yy42; + goto yy40; + } else { + if(yych != 'u') goto yy42; + } + } + yyaccept = 1; + YYMARKER = ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych != 0x0A) goto yy42; + } else { + if(yych <= '.') goto yy44; + if(yych == 'm') goto yy40; + goto yy42; + } +yy63: +#line 27 "bug1479044.s.re" + { + return "edu"; + } +#line 558 "" +yy64: + yych = *++YYCURSOR; + if(yych != 't') goto yy33; + yych = *++YYCURSOR; + if(yych != 'h') goto yy33; + yych = *++YYCURSOR; + if(yych != 'e') goto yy33; + yych = *++YYCURSOR; + if(yych != 'l') goto yy33; + yych = *++YYCURSOR; + if(yych == 'l') goto yy42; + goto yy33; +yy69: + yych = *++YYCURSOR; + if(yych != 'c') goto yy33; + yych = *++YYCURSOR; + if(yych == 'p') goto yy42; + goto yy33; +yy71: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych == 0x0A) goto yy19; + if(yych != '-') goto yy71; +yy73: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= ',') { + if(yych == 0x0A) goto yy19; + goto yy71; + } else { + if(yych <= '-') goto yy73; + if(yych <= '/') goto yy71; + if(yych >= ':') goto yy71; + } +yy75: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= ',') { + if(yych == 0x0A) goto yy19; + goto yy71; + } else { + if(yych <= '-') goto yy77; + if(yych <= '/') goto yy71; + if(yych <= '9') goto yy75; + goto yy71; + } +yy77: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= ',') { + if(yych == 0x0A) goto yy19; + goto yy71; + } else { + if(yych <= '-') goto yy73; + if(yych <= '/') goto yy71; + if(yych >= ':') goto yy71; + } +yy78: + ++YYCURSOR; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy71; + goto yy77; + } else { + if(yych <= '.') goto yy80; + if(yych <= '/') goto yy71; + if(yych <= '9') goto yy78; + goto yy71; + } +yy80: + yych = *++YYCURSOR; + if(yych != '.') goto yy82; +yy81: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; +yy82: + if(yych <= ',') { + if(yych == 0x0A) goto yy19; + goto yy81; + } else { + if(yych <= '-') goto yy83; + if(yych <= '.') goto yy85; + goto yy81; + } +yy83: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych <= '/') goto yy81; + if(yych <= '9') goto yy87; + goto yy81; + } +yy85: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych == 'r') goto yy92; + goto yy81; + } +yy87: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + } else { + if(yych <= '.') goto yy85; + if(yych <= '/') goto yy81; + if(yych <= '9') goto yy87; + goto yy81; + } +yy89: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych <= '/') goto yy81; + if(yych >= ':') goto yy81; + } +yy90: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy89; + } else { + if(yych <= '.') goto yy85; + if(yych <= '/') goto yy81; + if(yych <= '9') goto yy90; + goto yy81; + } +yy92: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych != 'e') goto yy81; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych != 's') goto yy81; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych != 'n') goto yy81; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych != 'e') goto yy81; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych != 't') goto yy81; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= ',') { + if(yych == 0x0A) goto yy19; + goto yy81; + } else { + if(yych <= '-') goto yy83; + if(yych >= '/') goto yy81; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '.') { + if(yych <= 0x0A) { + if(yych <= 0x09) goto yy81; + goto yy19; + } else { + if(yych <= ',') goto yy81; + if(yych <= '-') goto yy83; + goto yy85; + } + } else { + if(yych <= 'p') { + if(yych <= 'o') goto yy81; + } else { + if(yych == 'r') goto yy92; + goto yy81; + } + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych != 'i') goto yy81; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych != 't') goto yy81; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych != 't') goto yy81; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= ',') { + if(yych == 0x0A) goto yy19; + goto yy81; + } else { + if(yych <= '-') goto yy83; + if(yych >= '/') goto yy81; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '.') { + if(yych <= 0x0A) { + if(yych <= 0x09) goto yy81; + goto yy19; + } else { + if(yych <= ',') goto yy81; + if(yych <= '-') goto yy83; + goto yy85; + } + } else { + if(yych <= 'e') { + if(yych <= 'd') goto yy81; + } else { + if(yych == 'r') goto yy92; + goto yy81; + } + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych != 'd') goto yy81; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + if(yych <= ',') goto yy81; + goto yy83; + } else { + if(yych <= '.') goto yy85; + if(yych != 'u') goto yy81; + } + yyaccept = 2; + YYMARKER = ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= ',') { + if(yych != 0x0A) goto yy81; + } else { + if(yych <= '-') goto yy83; + if(yych <= '.') goto yy85; + goto yy81; + } +yy107: +#line 22 "bug1479044.s.re" + { + return "resnet"; + } +#line 904 "" +yy108: + yych = *++YYCURSOR; + if(yych != 't') goto yy19; + yych = *++YYCURSOR; + if(yych != 't') goto yy19; + yych = *++YYCURSOR; + if(yych != 'l') goto yy19; + yych = *++YYCURSOR; + if(yych != 'd') goto yy19; + yych = *++YYCURSOR; + if(yych != 's') goto yy19; + yych = *++YYCURSOR; + if(yych != 'l') goto yy19; +yy114: + yych = *++YYCURSOR; + if(yych == '.') goto yy19; + goto yy116; +yy115: + ++YYCURSOR; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; +yy116: + if(yych <= '/') { + if(yych <= ',') goto yy19; + if(yych <= '-') goto yy115; + if(yych >= '/') goto yy19; + } else { + if(yych <= '9') goto yy115; + if(yych <= '`') goto yy19; + if(yych <= 'k') goto yy115; + goto yy19; + } + yych = *++YYCURSOR; + if(yych == 0x0A) goto yy19; +yy118: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych == 0x0A) goto yy19; + if(yych != '.') goto yy118; +yy120: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + goto yy118; + } else { + if(yych <= '.') goto yy120; + if(yych != 'u') goto yy118; + } +yy122: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + goto yy118; + } else { + if(yych <= '.') goto yy120; + if(yych != 's') goto yy118; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + goto yy118; + } else { + if(yych <= '.') goto yy120; + if(yych != 'w') goto yy118; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + goto yy118; + } else { + if(yych <= '.') goto yy120; + if(yych != 'e') goto yy118; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + goto yy118; + } else { + if(yych <= '.') goto yy120; + if(yych != 's') goto yy118; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + goto yy118; + } else { + if(yych <= '.') goto yy120; + if(yych != 't') goto yy118; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych == 0x0A) goto yy19; + if(yych != '.') goto yy118; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '.') { + if(yych == 0x0A) goto yy19; + if(yych <= '-') goto yy118; + goto yy120; + } else { + if(yych <= 'n') { + if(yych <= 'm') goto yy118; + } else { + if(yych == 'u') goto yy122; + goto yy118; + } + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + goto yy118; + } else { + if(yych <= '.') goto yy120; + if(yych != 'e') goto yy118; + } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '-') { + if(yych == 0x0A) goto yy19; + goto yy118; + } else { + if(yych <= '.') goto yy120; + if(yych != 't') goto yy118; + } + yyaccept = 3; + YYMARKER = ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych == 0x0A) goto yy132; + if(yych == '.') goto yy120; + goto yy118; +yy132: +#line 17 "bug1479044.s.re" + { + return "dsl"; + } +#line 1059 "" +yy133: + yych = *++YYCURSOR; + if(yych != 's') goto yy19; + yych = *++YYCURSOR; + if(yych == 'l') goto yy114; + goto yy19; +yy135: + yych = *++YYCURSOR; + if(yych == 'e') goto yy142; + goto yy19; +yy136: + yych = *++YYCURSOR; + if(yych == 'p') goto yy139; + goto yy19; +yy137: + yych = *++YYCURSOR; + if(yych != 'o') goto yy19; + yych = *++YYCURSOR; + if(yych == 'l') goto yy114; + goto yy19; +yy139: + yych = *++YYCURSOR; + if(yych != 'd') goto yy19; + yych = *++YYCURSOR; + if(yych != 's') goto yy19; + yych = *++YYCURSOR; + if(yych == 'l') goto yy114; + goto yy19; +yy142: + yych = *++YYCURSOR; + if(yych != 'm') goto yy19; + yych = *++YYCURSOR; + if(yych != 'i') goto yy19; + yych = *++YYCURSOR; + if(yych != 'u') goto yy19; + yych = *++YYCURSOR; + if(yych != 'm') goto yy19; + yych = *++YYCURSOR; + if(yych == 'C') goto yy114; + goto yy19; +yy147: + yych = *++YYCURSOR; + if(yych != 's') goto yy19; + yych = *++YYCURSOR; + if(yych == 'l') goto yy114; + goto yy19; +yy149: + yych = *++YYCURSOR; + if(yych != 's') goto yy19; + yych = *++YYCURSOR; + if(yych == 'l') goto yy114; + goto yy19; +yy151: + yych = *++YYCURSOR; + if(yych != 's') goto yy19; + yych = *++YYCURSOR; + if(yych == 'l') goto yy114; + goto yy19; +yy153: + yych = *++YYCURSOR; + if(yych == 'r') goto yy166; + goto yy19; +yy154: + yych = *++YYCURSOR; + if(yych == 'c') goto yy165; + goto yy19; +yy155: + yych = *++YYCURSOR; + if(yych != 'l') goto yy19; + yych = *++YYCURSOR; + if(yych == 'g') goto yy158; + if(yych != 'p') goto yy19; + yych = *++YYCURSOR; + if(yych == 'p') goto yy164; + goto yy19; +yy158: + yych = *++YYCURSOR; + if(yych != 'w') goto yy19; + yych = *++YYCURSOR; + if(yych != '4') goto yy19; + yych = *++YYCURSOR; + if(yych != 'p') goto yy19; + yych = *++YYCURSOR; + if(yych != 'o') goto yy19; + yych = *++YYCURSOR; + if(yych != 'o') goto yy19; + yych = *++YYCURSOR; + if(yych == 'l') goto yy114; + goto yy19; +yy164: + yych = *++YYCURSOR; + if(yych == 'p') goto yy114; + goto yy19; +yy165: + yych = *++YYCURSOR; + if(yych == 'p') goto yy71; + goto yy19; +yy166: + yych = *++YYCURSOR; + if(yych != 'm') goto yy19; + yych = *++YYCURSOR; + if(yych == 's') goto yy71; + goto yy19; +yy168: + yych = *++YYCURSOR; + if(yych != 's') goto yy19; + yych = *++YYCURSOR; + if(yych == 'l') goto yy114; + goto yy19; +yy170: + yych = *++YYCURSOR; + if(yych != 's') goto yy19; + yych = *++YYCURSOR; + if(yych == 'l') goto yy114; + goto yy19; +yy172: + yych = *++YYCURSOR; + if(yych != 's') goto yy19; + yych = *++YYCURSOR; + if(yych != 'l') goto yy19; + yych = *++YYCURSOR; + if(yych == '.') goto yy19; + if(yych != 'p') goto yy116; + yych = *++YYCURSOR; + if(yych != 'p') goto yy19; + ++YYCURSOR; + if((yych = *YYCURSOR) == 'p') goto yy114; + goto yy19; +} +#line 40 "bug1479044.s.re" + +} + +int main(int argc, char **argv) +{ + int n = 0; + char *largv[2]; + + if (argc < 2) + { + argc = 2; + argv = largv; + argv[1] = "D-128-208-46-51.dhcp4.washington.edu"; + } + while(++n < argc) + { + char *res = scan281(argv[n]); + printf("%s\n", res ? res : ""); + } + return 0; +} diff --git a/test/bug1479044.s.re b/test/bug1479044.s.re new file mode 100755 index 00000000..6ac5de7e --- /dev/null +++ b/test/bug1479044.s.re @@ -0,0 +1,60 @@ +#define NULL ((char*) 0) +#define YYCTYPE char +#define YYCURSOR p +#define YYLIMIT p +#define YYMARKER q +#define YYFILL(n) + +#include + +char *scan281(char *p) +{ + char *q; +start: +/*!re2c + + ( "adsl" | "adslppp" | "bdsl" | "cdsl" | "dslgw4pool" | "dslppp" | "edsl" | "fdsl" | "ldsl" | "pool" | "pppdsl" | "premiumC" | "vdsl" | "xsttldsl") [0-9a-k\-]+ ".".+ ".uswest.net" + { + return "dsl"; + } + + ( "dhcp" | "dorms" | "rh" ).* "-" [0-9]+ "-" [0-9]+ "." .+ ".resnet.pitt.edu" + { + return "resnet"; + } + + [0-9]+ "-" [0-9]+ "-" [0-9]+ "-" [0-9]+ "." ("dhcp" | .* "modem" | "bothell") .* ".washington.edu" + { + return "edu"; + } + + [\001-\377] + { + goto start; + } + + [\000] + { + return NULL; + } +*/ +} + +int main(int argc, char **argv) +{ + int n = 0; + char *largv[2]; + + if (argc < 2) + { + argc = 2; + argv = largv; + argv[1] = "D-128-208-46-51.dhcp4.washington.edu"; + } + while(++n < argc) + { + char *res = scan281(argv[n]); + printf("%s\n", res ? res : ""); + } + return 0; +} -- 2.50.1