From: helly Date: Sat, 9 Jul 2005 18:51:47 +0000 (+0000) Subject: - Also implement '.' as shortcut for [\000-\377] X-Git-Tag: 0.13.6~622 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bce9c8a8f9d7c55d966811b56b92521aab8c16f1;p=re2c - Also implement '.' as shortcut for [\000-\377] --- diff --git a/CHANGELOG b/CHANGELOG index 7a42f286..79926d43 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,6 @@ Version 0.9.9 (????-??-??) -------------------------- -- Implemented #1232777 negated char classes. +- Implemented #1232777 negated char classes and '.'. Version 0.9.8 (2005-06-26) -------------------------- diff --git a/bootstrap/scanner.cc b/bootstrap/scanner.cc index cbdbde0b..32ae6fa5 100644 --- a/bootstrap/scanner.cc +++ b/bootstrap/scanner.cc @@ -1,4 +1,4 @@ -/* Generated by re2c 0.9.9.dev on Sat Jul 9 12:50:01 2005 */ +/* Generated by re2c 0.9.9.dev on Sat Jul 9 20:41:37 2005 */ #line 1 "scanner.re" /* $Id$ */ #include @@ -238,22 +238,23 @@ yy29: if(yych <= '/'){ if(yych <= '"'){ if(yych <= 0x0A){ - if(yych <= 0x08) goto yy51; + if(yych <= 0x08) goto yy53; if(yych <= 0x09) goto yy47; goto yy49; } else { if(yych == ' ') goto yy47; - if(yych <= '!') goto yy51; + if(yych <= '!') goto yy53; goto yy37; } } else { - if(yych <= ')'){ - if(yych <= '&') goto yy51; + if(yych <= '*'){ + if(yych <= '&') goto yy53; if(yych <= '\'') goto yy39; - goto yy43; + if(yych <= ')') goto yy43; + goto yy35; } else { - if(yych <= '*') goto yy35; if(yych <= '+') goto yy44; + if(yych <= '-') goto yy53; if(yych <= '.') goto yy51; goto yy33; } @@ -262,97 +263,97 @@ yy29: if(yych <= '@'){ if(yych <= '<'){ if(yych == ';') goto yy43; - goto yy51; + goto yy53; } else { if(yych <= '=') goto yy43; if(yych == '?') goto yy44; - goto yy51; + goto yy53; } } else { if(yych <= '`'){ if(yych <= 'Z') goto yy45; if(yych <= '[') goto yy41; if(yych <= '\\') goto yy43; - goto yy51; + goto yy53; } else { if(yych <= 'z') goto yy45; if(yych <= '{') goto yy31; if(yych <= '|') goto yy43; - goto yy51; + goto yy53; } } } yy31: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych <= '/') goto yy32; - if(yych <= '9') goto yy82; + if(yych <= '9') goto yy84; goto yy32; yy32: #line 139 "scanner.re" { depth = 1; goto code; } -#line 296 "scanner.cc" +#line 297 "scanner.cc" yy33: ++YYCURSOR; - if((yych = *YYCURSOR) == '*') goto yy80; + if((yych = *YYCURSOR) == '*') goto yy82; goto yy34; yy34: #line 169 "scanner.re" { RETURN(*tok); } -#line 303 "scanner.cc" +#line 304 "scanner.cc" yy35: ++YYCURSOR; - if((yych = *YYCURSOR) == '/') goto yy78; + if((yych = *YYCURSOR) == '/') goto yy80; goto yy36; yy36: #line 171 "scanner.re" { yylval.op = *tok; RETURN(CLOSE); } -#line 311 "scanner.cc" +#line 312 "scanner.cc" yy37: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 0x0A) goto yy74; + if(yych != 0x0A) goto yy76; goto yy38; yy38: #line 156 "scanner.re" { fatal("unterminated string constant (missing \")"); } -#line 319 "scanner.cc" +#line 320 "scanner.cc" yy39: yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 0x0A) goto yy69; + if(yych != 0x0A) goto yy71; goto yy40; yy40: #line 157 "scanner.re" { fatal("unterminated string constant (missing ')"); } -#line 327 "scanner.cc" +#line 328 "scanner.cc" yy41: yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if(yych == 0x0A) goto yy42; - if(yych == '^') goto yy60; - goto yy58; + if(yych == '^') goto yy62; + goto yy60; yy42: #line 167 "scanner.re" { fatal("unterminated range (missing ])"); } -#line 336 "scanner.cc" +#line 337 "scanner.cc" yy43: yych = *++YYCURSOR; goto yy34; yy44: yych = *++YYCURSOR; goto yy36; yy45: ++YYCURSOR; yych = *YYCURSOR; - goto yy56; + goto yy58; yy46: #line 186 "scanner.re" { cur = cursor; yylval.symbol = Symbol::find(token()); return ID; } -#line 349 "scanner.cc" +#line 350 "scanner.cc" yy47: ++YYCURSOR; yych = *YYCURSOR; - goto yy54; + goto yy56; yy48: #line 190 "scanner.re" { goto scan; } -#line 356 "scanner.cc" +#line 357 "scanner.cc" yy49: ++YYCURSOR; goto yy50; yy50: @@ -361,377 +362,386 @@ yy50: pos = cursor; cline++; goto scan; } -#line 365 "scanner.cc" +#line 366 "scanner.cc" yy51: ++YYCURSOR; goto yy52; yy52: #line 197 "scanner.re" +{ cur = cursor; + yylval.regexp = ranToRE("[\\000-\\377]"); + return RANGE; + } +#line 375 "scanner.cc" +yy53: ++YYCURSOR; + goto yy54; +yy54: +#line 202 "scanner.re" { std::cerr << "unexpected character: " << *tok << std::endl; goto scan; } -#line 373 "scanner.cc" -yy53: ++YYCURSOR; +#line 383 "scanner.cc" +yy55: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - goto yy54; -yy54: if(yych == 0x09) goto yy53; - if(yych == ' ') goto yy53; + goto yy56; +yy56: if(yych == 0x09) goto yy55; + if(yych == ' ') goto yy55; goto yy48; -yy55: ++YYCURSOR; +yy57: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - goto yy56; -yy56: if(yych <= '@'){ + goto yy58; +yy58: if(yych <= '@'){ if(yych <= '/') goto yy46; - if(yych <= '9') goto yy55; + if(yych <= '9') goto yy57; goto yy46; } else { - if(yych <= 'Z') goto yy55; + if(yych <= 'Z') goto yy57; if(yych <= '`') goto yy46; - if(yych <= 'z') goto yy55; + if(yych <= 'z') goto yy57; goto yy46; } -yy57: ++YYCURSOR; +yy59: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - goto yy58; -yy58: if(yych <= '['){ - if(yych != 0x0A) goto yy57; - goto yy59; + goto yy60; +yy60: if(yych <= '['){ + if(yych != 0x0A) goto yy59; + goto yy61; } else { - if(yych <= '\\') goto yy62; - if(yych <= ']') goto yy63; - goto yy57; + if(yych <= '\\') goto yy64; + if(yych <= ']') goto yy65; + goto yy59; } -yy59: YYCURSOR = YYMARKER; +yy61: YYCURSOR = YYMARKER; switch(yyaccept){ case 0: goto yy32; case 1: goto yy38; case 2: goto yy40; case 3: goto yy42; } -yy60: ++YYCURSOR; +yy62: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - goto yy61; -yy61: if(yych <= '['){ - if(yych == 0x0A) goto yy59; - goto yy60; + goto yy63; +yy63: if(yych <= '['){ + if(yych == 0x0A) goto yy61; + goto yy62; } else { - if(yych <= '\\') goto yy65; - if(yych <= ']') goto yy66; - goto yy60; + if(yych <= '\\') goto yy67; + if(yych <= ']') goto yy68; + goto yy62; } -yy62: ++YYCURSOR; +yy64: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if(yych == 0x0A) goto yy59; - goto yy57; -yy63: ++YYCURSOR; - goto yy64; -yy64: + if(yych == 0x0A) goto yy61; + goto yy59; +yy65: ++YYCURSOR; + goto yy66; +yy66: #line 163 "scanner.re" { cur = cursor; yylval.regexp = ranToRE(token()); return RANGE; } -#line 438 "scanner.cc" -yy65: ++YYCURSOR; +#line 448 "scanner.cc" +yy67: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if(yych == 0x0A) goto yy59; - goto yy60; -yy66: ++YYCURSOR; - goto yy67; -yy67: + if(yych == 0x0A) goto yy61; + goto yy62; +yy68: ++YYCURSOR; + goto yy69; +yy69: #line 159 "scanner.re" { cur = cursor; yylval.regexp = invToRE(token()); return RANGE; } -#line 451 "scanner.cc" -yy68: ++YYCURSOR; +#line 461 "scanner.cc" +yy70: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - goto yy69; -yy69: if(yych <= '&'){ - if(yych == 0x0A) goto yy59; - goto yy68; - } else { - if(yych <= '\'') goto yy71; - if(yych != '\\') goto yy68; + goto yy71; +yy71: if(yych <= '&'){ + if(yych == 0x0A) goto yy61; goto yy70; + } else { + if(yych <= '\'') goto yy73; + if(yych != '\\') goto yy70; + goto yy72; } -yy70: ++YYCURSOR; +yy72: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if(yych == 0x0A) goto yy59; - goto yy68; -yy71: ++YYCURSOR; - goto yy72; -yy72: + if(yych == 0x0A) goto yy61; + goto yy70; +yy73: ++YYCURSOR; + goto yy74; +yy74: #line 152 "scanner.re" { cur = cursor; yylval.regexp = strToCaseInsensitiveRE(token()); return STRING; } -#line 476 "scanner.cc" -yy73: ++YYCURSOR; +#line 486 "scanner.cc" +yy75: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - goto yy74; -yy74: if(yych <= '!'){ - if(yych == 0x0A) goto yy59; - goto yy73; - } else { - if(yych <= '"') goto yy76; - if(yych != '\\') goto yy73; + goto yy76; +yy76: if(yych <= '!'){ + if(yych == 0x0A) goto yy61; goto yy75; + } else { + if(yych <= '"') goto yy78; + if(yych != '\\') goto yy75; + goto yy77; } -yy75: ++YYCURSOR; +yy77: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if(yych == 0x0A) goto yy59; - goto yy73; -yy76: ++YYCURSOR; - goto yy77; -yy77: + if(yych == 0x0A) goto yy61; + goto yy75; +yy78: ++YYCURSOR; + goto yy79; +yy79: #line 148 "scanner.re" { cur = cursor; yylval.regexp = strToRE(token()); return STRING; } -#line 501 "scanner.cc" -yy78: ++YYCURSOR; - goto yy79; -yy79: -#line 145 "scanner.re" -{ tok = cursor; - RETURN(0); } -#line 508 "scanner.cc" +#line 511 "scanner.cc" yy80: ++YYCURSOR; goto yy81; yy81: +#line 145 "scanner.re" +{ tok = cursor; + RETURN(0); } +#line 518 "scanner.cc" +yy82: ++YYCURSOR; + goto yy83; +yy83: #line 142 "scanner.re" { depth = 1; goto comment; } -#line 515 "scanner.cc" -yy82: ++YYCURSOR; +#line 525 "scanner.cc" +yy84: ++YYCURSOR; if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; - goto yy83; -yy83: if(yych <= '/'){ - if(yych == ',') goto yy86; - goto yy59; + goto yy85; +yy85: if(yych <= '/'){ + if(yych == ',') goto yy88; + goto yy61; } else { - if(yych <= '9') goto yy82; - if(yych != '}') goto yy59; - goto yy84; + if(yych <= '9') goto yy84; + if(yych != '}') goto yy61; + goto yy86; } -yy84: ++YYCURSOR; - goto yy85; -yy85: +yy86: ++YYCURSOR; + goto yy87; +yy87: #line 174 "scanner.re" { yylval.extop.minsize = atoi((char *)tok+1); yylval.extop.maxsize = atoi((char *)tok+1); RETURN(CLOSESIZE); } -#line 535 "scanner.cc" -yy86: yych = *++YYCURSOR; - if(yych != '}') goto yy90; - goto yy87; -yy87: ++YYCURSOR; - goto yy88; -yy88: +#line 545 "scanner.cc" +yy88: yych = *++YYCURSOR; + if(yych != '}') goto yy92; + goto yy89; +yy89: ++YYCURSOR; + goto yy90; +yy90: #line 182 "scanner.re" { yylval.extop.minsize = atoi((char *)tok+1); yylval.extop.maxsize = -1; RETURN(CLOSESIZE); } -#line 546 "scanner.cc" -yy89: ++YYCURSOR; +#line 556 "scanner.cc" +yy91: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - goto yy90; -yy90: if(yych <= '/') goto yy59; - if(yych <= '9') goto yy89; - if(yych != '}') goto yy59; - goto yy91; -yy91: ++YYCURSOR; goto yy92; -yy92: +yy92: if(yych <= '/') goto yy61; + if(yych <= '9') goto yy91; + if(yych != '}') goto yy61; + goto yy93; +yy93: ++YYCURSOR; + goto yy94; +yy94: #line 178 "scanner.re" { yylval.extop.minsize = atoi((char *)tok+1); yylval.extop.maxsize = MAX(yylval.extop.minsize,atoi(strchr((char *)tok, ',')+1)); RETURN(CLOSESIZE); } -#line 562 "scanner.cc" +#line 572 "scanner.cc" } -#line 200 "scanner.re" +#line 205 "scanner.re" code: -#line 569 "scanner.cc" +#line 579 "scanner.cc" { YYCTYPE yych; unsigned int yyaccept; - goto yy93; + goto yy95; ++YYCURSOR; -yy93: +yy95: if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if(yych <= '&'){ if(yych <= 0x0A){ - if(yych <= 0x09) goto yy101; - goto yy99; - } else { - if(yych == '"') goto yy103; + if(yych <= 0x09) goto yy103; goto yy101; + } else { + if(yych == '"') goto yy105; + goto yy103; } } else { if(yych <= '{'){ - if(yych <= '\'') goto yy104; - if(yych <= 'z') goto yy101; - goto yy97; + if(yych <= '\'') goto yy106; + if(yych <= 'z') goto yy103; + goto yy99; } else { - if(yych != '}') goto yy101; - goto yy95; + if(yych != '}') goto yy103; + goto yy97; } } -yy95: ++YYCURSOR; - goto yy96; -yy96: -#line 204 "scanner.re" +yy97: ++YYCURSOR; + goto yy98; +yy98: +#line 209 "scanner.re" { if(--depth == 0){ cur = cursor; yylval.token = new Token(token(), tline); return CODE; } goto code; } -#line 606 "scanner.cc" -yy97: ++YYCURSOR; - goto yy98; -yy98: -#line 210 "scanner.re" -{ ++depth; - goto code; } -#line 613 "scanner.cc" +#line 616 "scanner.cc" yy99: ++YYCURSOR; goto yy100; yy100: -#line 212 "scanner.re" +#line 215 "scanner.re" +{ ++depth; + goto code; } +#line 623 "scanner.cc" +yy101: ++YYCURSOR; + goto yy102; +yy102: +#line 217 "scanner.re" { if(cursor == eof) fatal("missing '}'"); pos = cursor; cline++; goto code; } -#line 622 "scanner.cc" -yy101: ++YYCURSOR; - goto yy102; -yy102: -#line 216 "scanner.re" +#line 632 "scanner.cc" +yy103: ++YYCURSOR; + goto yy104; +yy104: +#line 221 "scanner.re" { goto code; } -#line 628 "scanner.cc" -yy103: yyaccept = 0; +#line 638 "scanner.cc" +yy105: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 0x0A) goto yy102; - goto yy110; -yy104: yyaccept = 0; + if(yych == 0x0A) goto yy104; + goto yy112; +yy106: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 0x0A) goto yy102; - goto yy106; -yy105: ++YYCURSOR; + if(yych == 0x0A) goto yy104; + goto yy108; +yy107: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - goto yy106; -yy106: if(yych <= '&'){ - if(yych != 0x0A) goto yy105; - goto yy107; + goto yy108; +yy108: if(yych <= '&'){ + if(yych != 0x0A) goto yy107; + goto yy109; } else { - if(yych <= '\'') goto yy101; - if(yych == '\\') goto yy108; - goto yy105; + if(yych <= '\'') goto yy103; + if(yych == '\\') goto yy110; + goto yy107; } -yy107: YYCURSOR = YYMARKER; +yy109: YYCURSOR = YYMARKER; switch(yyaccept){ - case 0: goto yy102; + case 0: goto yy104; } -yy108: ++YYCURSOR; +yy110: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if(yych == 0x0A) goto yy107; - goto yy105; -yy109: ++YYCURSOR; + if(yych == 0x0A) goto yy109; + goto yy107; +yy111: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - goto yy110; -yy110: if(yych <= '!'){ - if(yych == 0x0A) goto yy107; - goto yy109; - } else { - if(yych <= '"') goto yy101; - if(yych != '\\') goto yy109; + goto yy112; +yy112: if(yych <= '!'){ + if(yych == 0x0A) goto yy109; goto yy111; + } else { + if(yych <= '"') goto yy103; + if(yych != '\\') goto yy111; + goto yy113; } -yy111: ++YYCURSOR; +yy113: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if(yych == 0x0A) goto yy107; - goto yy109; + if(yych == 0x0A) goto yy109; + goto yy111; } -#line 217 "scanner.re" +#line 222 "scanner.re" comment: -#line 681 "scanner.cc" +#line 691 "scanner.cc" { YYCTYPE yych; - goto yy112; + goto yy114; ++YYCURSOR; -yy112: +yy114: if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if(yych <= ')'){ - if(yych == 0x0A) goto yy117; - goto yy119; + if(yych == 0x0A) goto yy119; + goto yy121; } else { - if(yych <= '*') goto yy114; - if(yych == '/') goto yy116; - goto yy119; + if(yych <= '*') goto yy116; + if(yych == '/') goto yy118; + goto yy121; } -yy114: ++YYCURSOR; - if((yych = *YYCURSOR) == '/') goto yy122; - goto yy115; -yy115: -#line 231 "scanner.re" +yy116: ++YYCURSOR; + if((yych = *YYCURSOR) == '/') goto yy124; + goto yy117; +yy117: +#line 236 "scanner.re" { goto comment; } -#line 703 "scanner.cc" -yy116: yych = *++YYCURSOR; - if(yych == '*') goto yy120; - goto yy115; -yy117: ++YYCURSOR; - goto yy118; -yy118: -#line 227 "scanner.re" +#line 713 "scanner.cc" +yy118: yych = *++YYCURSOR; + if(yych == '*') goto yy122; + goto yy117; +yy119: ++YYCURSOR; + goto yy120; +yy120: +#line 232 "scanner.re" { if(cursor == eof) RETURN(0); tok = pos = cursor; cline++; goto comment; } -#line 715 "scanner.cc" -yy119: yych = *++YYCURSOR; - goto yy115; -yy120: ++YYCURSOR; - goto yy121; -yy121: -#line 225 "scanner.re" -{ ++depth; - goto comment; } -#line 724 "scanner.cc" +#line 725 "scanner.cc" +yy121: yych = *++YYCURSOR; + goto yy117; yy122: ++YYCURSOR; goto yy123; yy123: -#line 221 "scanner.re" +#line 230 "scanner.re" +{ ++depth; + goto comment; } +#line 734 "scanner.cc" +yy124: ++YYCURSOR; + goto yy125; +yy125: +#line 226 "scanner.re" { if(--depth == 0) goto scan; else goto comment; } -#line 733 "scanner.cc" +#line 743 "scanner.cc" } -#line 232 "scanner.re" +#line 237 "scanner.re" } diff --git a/scanner.re b/scanner.re index d270df79..1086e206 100644 --- a/scanner.re +++ b/scanner.re @@ -194,6 +194,11 @@ scan: goto scan; } + "." { cur = cursor; + yylval.regexp = ranToRE("[\\000-\\377]"); + return RANGE; + } + any { std::cerr << "unexpected character: " << *tok << std::endl; goto scan; } diff --git a/test/input7.c b/test/input7.c new file mode 100755 index 00000000..300284c3 --- /dev/null +++ b/test/input7.c @@ -0,0 +1,21 @@ +/* Generated by re2c */ +#line 1 "input7.re" + +#line 5 "" +{ + YYCTYPE yych; + goto yy0; + ++YYCURSOR; +yy0: + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + goto yy2; +yy2: ++YYCURSOR; + goto yy3; +yy3: +#line 3 "input7.re" +{ return 0; } +#line 19 "" +} +#line 5 "input7.re" + diff --git a/test/input7.re b/test/input7.re new file mode 100755 index 00000000..4af565db --- /dev/null +++ b/test/input7.re @@ -0,0 +1,5 @@ +/*!re2c + +. { return 0; } + +*/ diff --git a/test/input8.c b/test/input8.c new file mode 100755 index 00000000..a3296dcc --- /dev/null +++ b/test/input8.c @@ -0,0 +1,49 @@ +/* Generated by re2c */ +#line 1 "input8.re" + +#line 5 "" +{ + YYCTYPE yych; + unsigned int yyaccept; + goto yy0; + ++YYCURSOR; +yy0: + if((YYLIMIT - YYCURSOR) < 4) YYFILL(4); + yych = *YYCURSOR; + goto yy2; +yy2: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych <= 0x00) goto yy4; + goto yy6; +yy3: +#line 4 "input8.re" +{ return 1; } +#line 22 "" +yy4: yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if(yych <= 0x00) goto yy7; + goto yy8; +yy5: +#line 3 "input8.re" +{ return 0; } +#line 30 "" +yy6: yych = *++YYCURSOR; + if(yych >= 0x01) goto yy8; + goto yy7; +yy7: yych = *++YYCURSOR; + if(yych <= 0x00) goto yy10; + goto yy5; +yy8: yych = *++YYCURSOR; + if(yych <= 0x00) goto yy10; + goto yy9; +yy9: YYCURSOR = YYMARKER; + switch(yyaccept){ + case 1: goto yy5; + case 0: goto yy3; + } +yy10: ++YYCURSOR; + yych = *YYCURSOR; + goto yy5; +} +#line 6 "input8.re" + diff --git a/test/input8.re b/test/input8.re new file mode 100755 index 00000000..9d62783e --- /dev/null +++ b/test/input8.re @@ -0,0 +1,6 @@ +/*!re2c + +.{1,3}"\000" { return 0; } +. { return 1; } + +*/