-/* Generated by re2c 0.13.0.dev on Sun Apr 22 14:24:30 2007 */
+/* Generated by re2c 0.13.0.dev on Sat Apr 28 15:49:28 2007 */
#line 1 "scanner.re"
/* $Id$ */
#include <stdlib.h>
yych = *(YYMARKER = ++YYCURSOR);
if(yych == '*') goto yy16;
yy3:
-#line 204 "scanner.re"
+#line 221 "scanner.re"
{
goto echo;
}
goto yy3;
yy5:
++YYCURSOR;
-#line 180 "scanner.re"
+#line 197 "scanner.re"
{
if (ignore_eoc)
{
#line 143 "scanner.cc"
yy7:
++YYCURSOR;
-#line 193 "scanner.re"
+#line 210 "scanner.re"
{
if (!ignore_eoc)
{
if(yych == 0x0A) goto yy14;
if(yych == 0x0D) goto yy12;
yy11:
-#line 163 "scanner.re"
+#line 180 "scanner.re"
{
if (ignore_eoc)
{
}
yy14:
++YYCURSOR;
-#line 145 "scanner.re"
+#line 162 "scanner.re"
{
cline++;
if (ignore_eoc)
if(yych != '!') goto yy13;
yych = *++YYCURSOR;
switch(yych) {
- case 'g': goto yy19;
- case 'i': goto yy18;
- case 'm': goto yy20;
- case 'r': goto yy21;
+ case 'g': goto yy20;
+ case 'i': goto yy19;
+ case 'm': goto yy21;
+ case 'r': goto yy22;
+ case 't': goto yy18;
default: goto yy13;
}
yy18:
yych = *++YYCURSOR;
- if(yych == 'g') goto yy47;
+ if(yych == 'y') goto yy59;
goto yy13;
yy19:
yych = *++YYCURSOR;
- if(yych == 'e') goto yy34;
+ if(yych == 'g') goto yy48;
goto yy13;
yy20:
yych = *++YYCURSOR;
- if(yych == 'a') goto yy26;
+ if(yych == 'e') goto yy35;
goto yy13;
yy21:
+ yych = *++YYCURSOR;
+ if(yych == 'a') goto yy27;
+ goto yy13;
+yy22:
yych = *++YYCURSOR;
if(yych != 'e') goto yy13;
yych = *++YYCURSOR;
tok = cursor;
RETURN(1);
}
-#line 260 "scanner.cc"
-yy26:
+#line 265 "scanner.cc"
+yy27:
yych = *++YYCURSOR;
if(yych != 'x') goto yy13;
yych = *++YYCURSOR;
bUsedYYMaxFill = true;
goto echo;
}
-#line 287 "scanner.cc"
-yy34:
+#line 292 "scanner.cc"
+yy35:
yych = *++YYCURSOR;
if(yych != 't') goto yy13;
yych = *++YYCURSOR;
ignore_eoc = true;
goto echo;
}
-#line 319 "scanner.cc"
-yy47:
+#line 324 "scanner.cc"
+yy48:
yych = *++YYCURSOR;
if(yych != 'n') goto yy13;
yych = *++YYCURSOR;
ignore_eoc = true;
goto echo;
}
-#line 346 "scanner.cc"
+#line 351 "scanner.cc"
+yy59:
+ yych = *++YYCURSOR;
+ if(yych != 'p') goto yy13;
+ yych = *++YYCURSOR;
+ if(yych != 'e') goto yy13;
+ yych = *++YYCURSOR;
+ if(yych != 's') goto yy13;
+ yych = *++YYCURSOR;
+ if(yych != ':') goto yy13;
+ yych = *++YYCURSOR;
+ if(yych != 'r') goto yy13;
+ yych = *++YYCURSOR;
+ if(yych != 'e') goto yy13;
+ yych = *++YYCURSOR;
+ if(yych != '2') goto yy13;
+ yych = *++YYCURSOR;
+ if(yych != 'c') goto yy13;
+ ++YYCURSOR;
+#line 145 "scanner.re"
+ {
+ if (bSinglePass)
+ {
+ fatal("cannot generate types inline in single pass mode");
+ }
+ tok = pos = cursor;
+ ignore_eoc = true;
+ if (bLastPass)
+ {
+ out << outputFileInfo;
+ out << "\n";
+ out << typesInline;
+ out << "\n";
+ out << sourceFileInfo;
+ }
+ goto echo;
+ }
+#line 388 "scanner.cc"
}
-#line 207 "scanner.re"
+#line 224 "scanner.re"
}
goto value;
}
-#line 371 "scanner.cc"
+#line 413 "scanner.cc"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
if(yych <= '/') {
if(yych <= '"') {
if(yych <= 0x0C) {
- if(yych <= 0x08) goto yy87;
- if(yych <= 0x09) goto yy81;
- if(yych <= 0x0A) goto yy83;
- goto yy87;
+ if(yych <= 0x08) goto yy98;
+ if(yych <= 0x09) goto yy92;
+ if(yych <= 0x0A) goto yy94;
+ goto yy98;
} else {
if(yych <= 0x1F) {
- if(yych <= 0x0D) goto yy85;
- goto yy87;
+ if(yych <= 0x0D) goto yy96;
+ goto yy98;
} else {
- if(yych <= ' ') goto yy81;
- if(yych <= '!') goto yy87;
- goto yy66;
+ if(yych <= ' ') goto yy92;
+ if(yych <= '!') goto yy98;
+ goto yy77;
}
}
} else {
if(yych <= '*') {
- if(yych <= '&') goto yy87;
- if(yych <= '\'') goto yy68;
- if(yych <= ')') goto yy73;
- goto yy64;
+ if(yych <= '&') goto yy98;
+ if(yych <= '\'') goto yy79;
+ if(yych <= ')') goto yy84;
+ goto yy75;
} else {
if(yych <= ',') {
- if(yych <= '+') goto yy74;
- goto yy73;
+ if(yych <= '+') goto yy85;
+ goto yy84;
} else {
- if(yych <= '-') goto yy87;
- if(yych <= '.') goto yy79;
- goto yy62;
+ if(yych <= '-') goto yy98;
+ if(yych <= '.') goto yy90;
+ goto yy73;
}
}
}
} else {
if(yych <= '\\') {
if(yych <= '>') {
- if(yych <= ':') goto yy87;
- if(yych == '<') goto yy72;
- goto yy73;
+ if(yych <= ':') goto yy98;
+ if(yych == '<') goto yy83;
+ goto yy84;
} else {
if(yych <= '@') {
- if(yych <= '?') goto yy74;
- goto yy87;
+ if(yych <= '?') goto yy85;
+ goto yy98;
} else {
- if(yych <= 'Z') goto yy78;
- if(yych <= '[') goto yy70;
- goto yy73;
+ if(yych <= 'Z') goto yy89;
+ if(yych <= '[') goto yy81;
+ goto yy84;
}
}
} else {
if(yych <= 'q') {
- if(yych == '_') goto yy78;
- if(yych <= '`') goto yy87;
- goto yy78;
+ if(yych == '_') goto yy89;
+ if(yych <= '`') goto yy98;
+ goto yy89;
} else {
if(yych <= 'z') {
- if(yych <= 'r') goto yy76;
- goto yy78;
+ if(yych <= 'r') goto yy87;
+ goto yy89;
} else {
- if(yych <= '{') goto yy60;
- if(yych <= '|') goto yy73;
- goto yy87;
+ if(yych <= '{') goto yy71;
+ if(yych <= '|') goto yy84;
+ goto yy98;
}
}
}
}
-yy60:
+yy71:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/') {
- if(yych == ',') goto yy133;
+ if(yych == ',') goto yy144;
} else {
- if(yych <= '0') goto yy130;
- if(yych <= '9') goto yy131;
+ if(yych <= '0') goto yy141;
+ if(yych <= '9') goto yy142;
}
-yy61:
-#line 229 "scanner.re"
+yy72:
+#line 246 "scanner.re"
{
depth = 1;
goto code;
}
-#line 493 "scanner.cc"
-yy62:
+#line 535 "scanner.cc"
+yy73:
++YYCURSOR;
- if((yych = *YYCURSOR) == '*') goto yy128;
-yy63:
-#line 282 "scanner.re"
+ if((yych = *YYCURSOR) == '*') goto yy139;
+yy74:
+#line 299 "scanner.re"
{
RETURN(*tok);
}
-#line 502 "scanner.cc"
-yy64:
+#line 544 "scanner.cc"
+yy75:
++YYCURSOR;
- if((yych = *YYCURSOR) == '/') goto yy126;
-#line 286 "scanner.re"
+ if((yych = *YYCURSOR) == '/') goto yy137;
+#line 303 "scanner.re"
{
yylval.op = *tok;
RETURN(STAR);
}
-#line 511 "scanner.cc"
-yy66:
+#line 553 "scanner.cc"
+yy77:
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 0x0A) goto yy122;
-yy67:
-#line 256 "scanner.re"
+ if(yych != 0x0A) goto yy133;
+yy78:
+#line 273 "scanner.re"
{
fatal("unterminated string constant (missing \")");
}
-#line 521 "scanner.cc"
-yy68:
+#line 563 "scanner.cc"
+yy79:
yyaccept = 2;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 0x0A) goto yy117;
-yy69:
-#line 259 "scanner.re"
+ if(yych != 0x0A) goto yy128;
+yy80:
+#line 276 "scanner.re"
{
fatal("unterminated string constant (missing ')");
}
-#line 531 "scanner.cc"
-yy70:
+#line 573 "scanner.cc"
+yy81:
yyaccept = 3;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 0x0A) goto yy71;
- if(yych == '^') goto yy108;
- goto yy107;
-yy71:
-#line 275 "scanner.re"
+ if(yych == 0x0A) goto yy82;
+ if(yych == '^') goto yy119;
+ goto yy118;
+yy82:
+#line 292 "scanner.re"
{
fatal("unterminated range (missing ])");
}
-#line 543 "scanner.cc"
-yy72:
+#line 585 "scanner.cc"
+yy83:
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '>') goto yy101;
- goto yy63;
-yy73:
+ if(yych == '>') goto yy112;
+ goto yy74;
+yy84:
yych = *++YYCURSOR;
- goto yy63;
-yy74:
+ goto yy74;
+yy85:
++YYCURSOR;
-#line 290 "scanner.re"
+#line 307 "scanner.re"
{
yylval.op = *tok;
RETURN(CLOSE);
}
-#line 559 "scanner.cc"
-yy76:
+#line 601 "scanner.cc"
+yy87:
++YYCURSOR;
- if((yych = *YYCURSOR) == 'e') goto yy93;
- goto yy92;
-yy77:
-#line 330 "scanner.re"
+ if((yych = *YYCURSOR) == 'e') goto yy104;
+ goto yy103;
+yy88:
+#line 347 "scanner.re"
{
cur = cursor;
yylval.symbol = Symbol::find(token());
return ID;
}
-#line 571 "scanner.cc"
-yy78:
+#line 613 "scanner.cc"
+yy89:
yych = *++YYCURSOR;
- goto yy92;
-yy79:
+ goto yy103;
+yy90:
++YYCURSOR;
-#line 336 "scanner.re"
+#line 353 "scanner.re"
{
cur = cursor;
yylval.regexp = mkDot();
return RANGE;
}
-#line 583 "scanner.cc"
-yy81:
+#line 625 "scanner.cc"
+yy92:
++YYCURSOR;
yych = *YYCURSOR;
- goto yy90;
-yy82:
-#line 342 "scanner.re"
+ goto yy101;
+yy93:
+#line 359 "scanner.re"
{
goto scan;
}
-#line 593 "scanner.cc"
-yy83:
+#line 635 "scanner.cc"
+yy94:
++YYCURSOR;
-yy84:
-#line 346 "scanner.re"
+yy95:
+#line 363 "scanner.re"
{
if(cursor == eof) RETURN(0);
pos = cursor;
cline++;
goto scan;
}
-#line 604 "scanner.cc"
-yy85:
+#line 646 "scanner.cc"
+yy96:
++YYCURSOR;
- if((yych = *YYCURSOR) == 0x0A) goto yy88;
-yy86:
-#line 353 "scanner.re"
+ if((yych = *YYCURSOR) == 0x0A) goto yy99;
+yy97:
+#line 370 "scanner.re"
{
std::ostringstream msg;
msg << "unexpected character: ";
fatal(msg.str().c_str());
goto scan;
}
-#line 617 "scanner.cc"
-yy87:
+#line 659 "scanner.cc"
+yy98:
yych = *++YYCURSOR;
- goto yy86;
-yy88:
+ goto yy97;
+yy99:
yych = *++YYCURSOR;
- goto yy84;
-yy89:
+ goto yy95;
+yy100:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy90:
+yy101:
if(yybm[0+yych] & 2) {
- goto yy89;
+ goto yy100;
}
- goto yy82;
-yy91:
+ goto yy93;
+yy102:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy92:
+yy103:
if(yybm[0+yych] & 4) {
- goto yy91;
+ goto yy102;
}
- goto yy77;
-yy93:
+ goto yy88;
+yy104:
yych = *++YYCURSOR;
- if(yych != '2') goto yy92;
+ if(yych != '2') goto yy103;
yych = *++YYCURSOR;
- if(yych != 'c') goto yy92;
+ if(yych != 'c') goto yy103;
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych != ':') goto yy92;
-yy96:
+ if(yych != ':') goto yy103;
+yy107:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yych <= '^') {
- if(yych <= '@') goto yy97;
- if(yych <= 'Z') goto yy98;
+ if(yych <= '@') goto yy108;
+ if(yych <= 'Z') goto yy109;
} else {
- if(yych == '`') goto yy97;
- if(yych <= 'z') goto yy98;
+ if(yych == '`') goto yy108;
+ if(yych <= 'z') goto yy109;
}
-yy97:
+yy108:
YYCURSOR = YYMARKER;
if(yyaccept <= 3) {
if(yyaccept <= 1) {
if(yyaccept <= 0) {
- goto yy61;
+ goto yy72;
} else {
- goto yy67;
+ goto yy78;
}
} else {
if(yyaccept <= 2) {
- goto yy69;
+ goto yy80;
} else {
- goto yy71;
+ goto yy82;
}
}
} else {
if(yyaccept <= 5) {
if(yyaccept <= 4) {
- goto yy63;
+ goto yy74;
} else {
- goto yy77;
+ goto yy88;
}
} else {
if(yyaccept <= 6) {
- goto yy100;
+ goto yy111;
} else {
- goto yy134;
+ goto yy145;
}
}
}
-yy98:
+yy109:
yyaccept = 6;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yych <= 'Z') {
if(yych <= '9') {
- if(yych >= '0') goto yy98;
+ if(yych >= '0') goto yy109;
} else {
- if(yych <= ':') goto yy96;
- if(yych >= 'A') goto yy98;
+ if(yych <= ':') goto yy107;
+ if(yych >= 'A') goto yy109;
}
} else {
if(yych <= '_') {
- if(yych >= '_') goto yy98;
+ if(yych >= '_') goto yy109;
} else {
- if(yych <= '`') goto yy100;
- if(yych <= 'z') goto yy98;
+ if(yych <= '`') goto yy111;
+ if(yych <= 'z') goto yy109;
}
}
-yy100:
-#line 322 "scanner.re"
+yy111:
+#line 339 "scanner.re"
{
cur = cursor;
tok+= 5; /* skip "re2c:" */
yylval.str = new Str(token());
return CONFIG;
}
-#line 721 "scanner.cc"
-yy101:
+#line 763 "scanner.cc"
+yy112:
YYCTXMARKER = YYCURSOR + 1;
yych = *++YYCURSOR;
- goto yy103;
-yy102:
+ goto yy114;
+yy113:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy103:
+yy114:
if(yybm[0+yych] & 8) {
- goto yy102;
+ goto yy113;
}
- if(yych != '{') goto yy97;
+ if(yych != '{') goto yy108;
++YYCURSOR;
YYCURSOR = YYCTXMARKER;
-#line 279 "scanner.re"
+#line 296 "scanner.re"
{
RETURN(NOCOND);
}
-#line 741 "scanner.cc"
-yy106:
+#line 783 "scanner.cc"
+yy117:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy107:
+yy118:
if(yybm[0+yych] & 16) {
- goto yy106;
+ goto yy117;
}
- if(yych <= '[') goto yy97;
- if(yych <= '\\') goto yy110;
- goto yy111;
-yy108:
+ if(yych <= '[') goto yy108;
+ if(yych <= '\\') goto yy121;
+ goto yy122;
+yy119:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yych <= '[') {
- if(yych == 0x0A) goto yy97;
- goto yy108;
+ if(yych == 0x0A) goto yy108;
+ goto yy119;
} else {
- if(yych <= '\\') goto yy113;
- if(yych <= ']') goto yy114;
- goto yy108;
+ if(yych <= '\\') goto yy124;
+ if(yych <= ']') goto yy125;
+ goto yy119;
}
-yy110:
+yy121:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == 0x0A) goto yy97;
- goto yy106;
-yy111:
+ if(yych == 0x0A) goto yy108;
+ goto yy117;
+yy122:
++YYCURSOR;
-#line 269 "scanner.re"
+#line 286 "scanner.re"
{
cur = cursor;
yylval.regexp = ranToRE(token());
return RANGE;
}
-#line 779 "scanner.cc"
-yy113:
+#line 821 "scanner.cc"
+yy124:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == 0x0A) goto yy97;
- goto yy108;
-yy114:
+ if(yych == 0x0A) goto yy108;
+ goto yy119;
+yy125:
++YYCURSOR;
-#line 263 "scanner.re"
+#line 280 "scanner.re"
{
cur = cursor;
yylval.regexp = invToRE(token());
return RANGE;
}
-#line 794 "scanner.cc"
-yy116:
+#line 836 "scanner.cc"
+yy127:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy117:
+yy128:
if(yybm[0+yych] & 32) {
- goto yy116;
+ goto yy127;
}
- if(yych <= '&') goto yy97;
- if(yych <= '\'') goto yy119;
+ if(yych <= '&') goto yy108;
+ if(yych <= '\'') goto yy130;
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == 0x0A) goto yy97;
- goto yy116;
-yy119:
+ if(yych == 0x0A) goto yy108;
+ goto yy127;
+yy130:
++YYCURSOR;
-#line 250 "scanner.re"
+#line 267 "scanner.re"
{
cur = cursor;
yylval.regexp = strToCaseInsensitiveRE(token());
return STRING;
}
-#line 818 "scanner.cc"
-yy121:
+#line 860 "scanner.cc"
+yy132:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy122:
+yy133:
if(yybm[0+yych] & 64) {
- goto yy121;
+ goto yy132;
}
- if(yych <= '!') goto yy97;
- if(yych <= '"') goto yy124;
+ if(yych <= '!') goto yy108;
+ if(yych <= '"') goto yy135;
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == 0x0A) goto yy97;
- goto yy121;
-yy124:
+ if(yych == 0x0A) goto yy108;
+ goto yy132;
+yy135:
++YYCURSOR;
-#line 244 "scanner.re"
+#line 261 "scanner.re"
{
cur = cursor;
yylval.regexp = strToRE(token());
return STRING;
}
-#line 842 "scanner.cc"
-yy126:
+#line 884 "scanner.cc"
+yy137:
++YYCURSOR;
-#line 239 "scanner.re"
+#line 256 "scanner.re"
{
tok = cursor;
RETURN(0);
}
-#line 850 "scanner.cc"
-yy128:
+#line 892 "scanner.cc"
+yy139:
++YYCURSOR;
-#line 234 "scanner.re"
+#line 251 "scanner.re"
{
depth = 1;
goto comment;
}
-#line 858 "scanner.cc"
-yy130:
+#line 900 "scanner.cc"
+yy141:
yych = *++YYCURSOR;
- if(yych == ',') goto yy144;
- goto yy132;
-yy131:
+ if(yych == ',') goto yy155;
+ goto yy143;
+yy142:
++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
-yy132:
+yy143:
if(yybm[0+yych] & 128) {
- goto yy131;
+ goto yy142;
}
- if(yych == ',') goto yy137;
- if(yych == '}') goto yy135;
- goto yy97;
-yy133:
+ if(yych == ',') goto yy148;
+ if(yych == '}') goto yy146;
+ goto yy108;
+yy144:
++YYCURSOR;
-yy134:
-#line 318 "scanner.re"
+yy145:
+#line 335 "scanner.re"
{
fatal("illegal closure form, use '{n}', '{n,}', '{n,m}' where n and m are numbers");
}
-#line 881 "scanner.cc"
-yy135:
+#line 923 "scanner.cc"
+yy146:
++YYCURSOR;
-#line 300 "scanner.re"
+#line 317 "scanner.re"
{
yylval.extop.minsize = atoi((char *)tok+1);
yylval.extop.maxsize = atoi((char *)tok+1);
RETURN(CLOSESIZE);
}
-#line 890 "scanner.cc"
-yy137:
+#line 932 "scanner.cc"
+yy148:
yyaccept = 7;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/') goto yy134;
- if(yych <= '9') goto yy140;
- if(yych != '}') goto yy134;
+ if(yych <= '/') goto yy145;
+ if(yych <= '9') goto yy151;
+ if(yych != '}') goto yy145;
++YYCURSOR;
-#line 312 "scanner.re"
+#line 329 "scanner.re"
{
yylval.extop.minsize = atoi((char *)tok+1);
yylval.extop.maxsize = -1;
RETURN(CLOSESIZE);
}
-#line 904 "scanner.cc"
-yy140:
+#line 946 "scanner.cc"
+yy151:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych <= '/') goto yy97;
- if(yych <= '9') goto yy140;
- if(yych != '}') goto yy97;
+ if(yych <= '/') goto yy108;
+ if(yych <= '9') goto yy151;
+ if(yych != '}') goto yy108;
++YYCURSOR;
-#line 306 "scanner.re"
+#line 323 "scanner.re"
{
yylval.extop.minsize = atoi((char *)tok+1);
yylval.extop.maxsize = MAX(yylval.extop.minsize,atoi(strchr((char *)tok, ',')+1));
RETURN(CLOSESIZE);
}
-#line 919 "scanner.cc"
-yy144:
+#line 961 "scanner.cc"
+yy155:
yyaccept = 7;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/') goto yy134;
- if(yych <= '9') goto yy140;
- if(yych != '}') goto yy134;
+ if(yych <= '/') goto yy145;
+ if(yych <= '9') goto yy151;
+ if(yych != '}') goto yy145;
++YYCURSOR;
-#line 295 "scanner.re"
+#line 312 "scanner.re"
{
yylval.op = '*';
RETURN(CLOSE);
}
-#line 932 "scanner.cc"
+#line 974 "scanner.cc"
}
-#line 360 "scanner.re"
+#line 377 "scanner.re"
code:
-#line 939 "scanner.cc"
+#line 981 "scanner.cc"
{
YYCTYPE yych;
static const unsigned char yybm[] = {
yych = *YYCURSOR;
if(yych <= '&') {
if(yych <= 0x0A) {
- if(yych <= 0x00) goto yy155;
- if(yych <= 0x09) goto yy157;
- goto yy153;
+ if(yych <= 0x00) goto yy166;
+ if(yych <= 0x09) goto yy168;
+ goto yy164;
} else {
- if(yych == '"') goto yy159;
- goto yy157;
+ if(yych == '"') goto yy170;
+ goto yy168;
}
} else {
if(yych <= '{') {
- if(yych <= '\'') goto yy160;
- if(yych <= 'z') goto yy157;
- goto yy151;
+ if(yych <= '\'') goto yy171;
+ if(yych <= 'z') goto yy168;
+ goto yy162;
} else {
- if(yych != '}') goto yy157;
+ if(yych != '}') goto yy168;
}
}
++YYCURSOR;
-#line 364 "scanner.re"
+#line 381 "scanner.re"
{
if(--depth == 0)
{
}
goto code;
}
-#line 1007 "scanner.cc"
-yy151:
+#line 1049 "scanner.cc"
+yy162:
++YYCURSOR;
-#line 373 "scanner.re"
+#line 390 "scanner.re"
{
++depth;
goto code;
}
-#line 1015 "scanner.cc"
-yy153:
+#line 1057 "scanner.cc"
+yy164:
++YYCURSOR;
-#line 377 "scanner.re"
+#line 394 "scanner.re"
{
if(cursor == eof)
{
cline++;
goto code;
}
-#line 1028 "scanner.cc"
-yy155:
+#line 1070 "scanner.cc"
+yy166:
++YYCURSOR;
-#line 386 "scanner.re"
+#line 403 "scanner.re"
{
if(cursor == eof)
{
}
goto code;
}
-#line 1043 "scanner.cc"
-yy157:
+#line 1085 "scanner.cc"
+yy168:
++YYCURSOR;
-yy158:
-#line 397 "scanner.re"
+yy169:
+#line 414 "scanner.re"
{
goto code;
}
-#line 1051 "scanner.cc"
-yy159:
+#line 1093 "scanner.cc"
+yy170:
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 0x0A) goto yy158;
- goto yy166;
-yy160:
+ if(yych == 0x0A) goto yy169;
+ goto yy177;
+yy171:
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 0x0A) goto yy158;
- goto yy162;
-yy161:
+ if(yych == 0x0A) goto yy169;
+ goto yy173;
+yy172:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy162:
+yy173:
if(yybm[0+yych] & 64) {
- goto yy161;
+ goto yy172;
}
- if(yych <= '&') goto yy163;
- if(yych <= '\'') goto yy157;
- goto yy164;
-yy163:
+ if(yych <= '&') goto yy174;
+ if(yych <= '\'') goto yy168;
+ goto yy175;
+yy174:
YYCURSOR = YYMARKER;
- goto yy158;
-yy164:
+ goto yy169;
+yy175:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == 0x0A) goto yy163;
- goto yy161;
-yy165:
+ if(yych == 0x0A) goto yy174;
+ goto yy172;
+yy176:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy166:
+yy177:
if(yybm[0+yych] & 128) {
- goto yy165;
+ goto yy176;
}
- if(yych <= '!') goto yy163;
- if(yych <= '"') goto yy157;
+ if(yych <= '!') goto yy174;
+ if(yych <= '"') goto yy168;
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == 0x0A) goto yy163;
- goto yy165;
+ if(yych == 0x0A) goto yy174;
+ goto yy176;
}
-#line 400 "scanner.re"
+#line 417 "scanner.re"
comment:
-#line 1101 "scanner.cc"
+#line 1143 "scanner.cc"
{
YYCTYPE yych;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
if(yych <= ')') {
- if(yych == 0x0A) goto yy173;
- goto yy175;
+ if(yych == 0x0A) goto yy184;
+ goto yy186;
} else {
- if(yych <= '*') goto yy170;
- if(yych == '/') goto yy172;
- goto yy175;
+ if(yych <= '*') goto yy181;
+ if(yych == '/') goto yy183;
+ goto yy186;
}
-yy170:
+yy181:
++YYCURSOR;
- if((yych = *YYCURSOR) == '/') goto yy178;
-yy171:
-#line 428 "scanner.re"
+ if((yych = *YYCURSOR) == '/') goto yy189;
+yy182:
+#line 445 "scanner.re"
{
if(cursor == eof)
{
}
goto comment;
}
-#line 1126 "scanner.cc"
-yy172:
+#line 1168 "scanner.cc"
+yy183:
yych = *++YYCURSOR;
- if(yych == '*') goto yy176;
- goto yy171;
-yy173:
+ if(yych == '*') goto yy187;
+ goto yy182;
+yy184:
++YYCURSOR;
-#line 419 "scanner.re"
+#line 436 "scanner.re"
{
if(cursor == eof)
{
cline++;
goto comment;
}
-#line 1143 "scanner.cc"
-yy175:
+#line 1185 "scanner.cc"
+yy186:
yych = *++YYCURSOR;
- goto yy171;
-yy176:
+ goto yy182;
+yy187:
++YYCURSOR;
-#line 414 "scanner.re"
+#line 431 "scanner.re"
{
++depth;
fatal("ambiguous /* found");
goto comment;
}
-#line 1155 "scanner.cc"
-yy178:
+#line 1197 "scanner.cc"
+yy189:
++YYCURSOR;
-#line 404 "scanner.re"
+#line 421 "scanner.re"
{
if(--depth == 0)
{
goto comment;
}
}
-#line 1169 "scanner.cc"
+#line 1211 "scanner.cc"
}
-#line 435 "scanner.re"
+#line 452 "scanner.re"
config:
-#line 1176 "scanner.cc"
+#line 1218 "scanner.cc"
{
YYCTYPE yych;
static const unsigned char yybm[] = {
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
if(yych <= 0x1F) {
- if(yych != 0x09) goto yy186;
+ if(yych != 0x09) goto yy197;
} else {
- if(yych <= ' ') goto yy182;
- if(yych == '=') goto yy184;
- goto yy186;
+ if(yych <= ' ') goto yy193;
+ if(yych == '=') goto yy195;
+ goto yy197;
}
-yy182:
+yy193:
++YYCURSOR;
yych = *YYCURSOR;
- goto yy191;
-yy183:
-#line 439 "scanner.re"
+ goto yy202;
+yy194:
+#line 456 "scanner.re"
{
goto config;
}
-#line 1231 "scanner.cc"
-yy184:
+#line 1273 "scanner.cc"
+yy195:
++YYCURSOR;
yych = *YYCURSOR;
- goto yy189;
-yy185:
-#line 442 "scanner.re"
+ goto yy200;
+yy196:
+#line 459 "scanner.re"
{
iscfg = 2;
cur = cursor;
RETURN('=');
}
-#line 1243 "scanner.cc"
-yy186:
+#line 1285 "scanner.cc"
+yy197:
++YYCURSOR;
-#line 447 "scanner.re"
+#line 464 "scanner.re"
{
fatal("missing '='");
}
-#line 1250 "scanner.cc"
-yy188:
+#line 1292 "scanner.cc"
+yy199:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy189:
+yy200:
if(yybm[0+yych] & 128) {
- goto yy188;
+ goto yy199;
}
- goto yy185;
-yy190:
+ goto yy196;
+yy201:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy191:
- if(yych == 0x09) goto yy190;
- if(yych == ' ') goto yy190;
- goto yy183;
+yy202:
+ if(yych == 0x09) goto yy201;
+ if(yych == ' ') goto yy201;
+ goto yy194;
}
-#line 450 "scanner.re"
+#line 467 "scanner.re"
value:
-#line 1274 "scanner.cc"
+#line 1316 "scanner.cc"
{
YYCTYPE yych;
static const unsigned char yybm[] = {
yych = *YYCURSOR;
if(yych <= '&') {
if(yych <= 0x0D) {
- if(yych <= 0x08) goto yy200;
- if(yych <= 0x0A) goto yy194;
- if(yych <= 0x0C) goto yy200;
+ if(yych <= 0x08) goto yy211;
+ if(yych <= 0x0A) goto yy205;
+ if(yych <= 0x0C) goto yy211;
} else {
if(yych <= ' ') {
- if(yych <= 0x1F) goto yy200;
+ if(yych <= 0x1F) goto yy211;
} else {
- if(yych == '"') goto yy202;
- goto yy200;
+ if(yych == '"') goto yy213;
+ goto yy211;
}
}
} else {
if(yych <= '/') {
- if(yych <= '\'') goto yy204;
- if(yych == '-') goto yy197;
- goto yy200;
+ if(yych <= '\'') goto yy215;
+ if(yych == '-') goto yy208;
+ goto yy211;
} else {
if(yych <= '9') {
- if(yych <= '0') goto yy195;
- goto yy198;
+ if(yych <= '0') goto yy206;
+ goto yy209;
} else {
- if(yych != ';') goto yy200;
+ if(yych != ';') goto yy211;
}
}
}
-yy194:
-#line 460 "scanner.re"
+yy205:
+#line 477 "scanner.re"
{
cur = cursor;
yylval.str = new Str(token());
iscfg = 0;
return VALUE;
}
-#line 1348 "scanner.cc"
-yy195:
+#line 1390 "scanner.cc"
+yy206:
++YYCURSOR;
if(yybm[0+(yych = *YYCURSOR)] & 8) {
- goto yy200;
+ goto yy211;
}
-yy196:
-#line 454 "scanner.re"
+yy207:
+#line 471 "scanner.re"
{
cur = cursor;
yylval.number = atoi(token().to_string().c_str());
iscfg = 0;
return NUMBER;
}
-#line 1362 "scanner.cc"
-yy197:
+#line 1404 "scanner.cc"
+yy208:
yych = *++YYCURSOR;
- if(yych <= '0') goto yy201;
- if(yych >= ':') goto yy201;
-yy198:
+ if(yych <= '0') goto yy212;
+ if(yych >= ':') goto yy212;
+yy209:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yybm[0+yych] & 4) {
- goto yy198;
+ goto yy209;
}
if(yych <= 0x0D) {
- if(yych <= 0x08) goto yy200;
- if(yych <= 0x0A) goto yy196;
- if(yych >= 0x0D) goto yy196;
+ if(yych <= 0x08) goto yy211;
+ if(yych <= 0x0A) goto yy207;
+ if(yych >= 0x0D) goto yy207;
} else {
if(yych <= ' ') {
- if(yych >= ' ') goto yy196;
+ if(yych >= ' ') goto yy207;
} else {
- if(yych == ';') goto yy196;
+ if(yych == ';') goto yy207;
}
}
-yy200:
+yy211:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy201:
+yy212:
if(yybm[0+yych] & 8) {
- goto yy200;
+ goto yy211;
}
- goto yy194;
-yy202:
+ goto yy205;
+yy213:
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yybm[0+yych] & 16) {
- goto yy202;
+ goto yy213;
}
if(yych <= '!') {
- if(yych == 0x0A) goto yy194;
- goto yy212;
+ if(yych == 0x0A) goto yy205;
+ goto yy223;
} else {
- if(yych <= '"') goto yy200;
- if(yych <= '[') goto yy212;
- goto yy214;
+ if(yych <= '"') goto yy211;
+ if(yych <= '[') goto yy223;
+ goto yy225;
}
-yy204:
+yy215:
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yybm[0+yych] & 32) {
- goto yy204;
+ goto yy215;
}
if(yych <= '&') {
- if(yych == 0x0A) goto yy194;
+ if(yych == 0x0A) goto yy205;
} else {
- if(yych <= '\'') goto yy200;
- if(yych >= '\\') goto yy209;
+ if(yych <= '\'') goto yy211;
+ if(yych >= '\\') goto yy220;
}
-yy206:
+yy217:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yybm[0+yych] & 64) {
- goto yy206;
+ goto yy217;
}
- if(yych <= '&') goto yy208;
- if(yych <= '\'') goto yy210;
- goto yy211;
-yy208:
+ if(yych <= '&') goto yy219;
+ if(yych <= '\'') goto yy221;
+ goto yy222;
+yy219:
YYCURSOR = YYMARKER;
- goto yy194;
-yy209:
+ goto yy205;
+yy220:
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yych <= 0x0D) {
if(yych <= 0x09) {
- if(yych <= 0x08) goto yy204;
- goto yy206;
+ if(yych <= 0x08) goto yy215;
+ goto yy217;
} else {
- if(yych <= 0x0A) goto yy194;
- if(yych <= 0x0C) goto yy204;
- goto yy206;
+ if(yych <= 0x0A) goto yy205;
+ if(yych <= 0x0C) goto yy215;
+ goto yy217;
}
} else {
if(yych <= ' ') {
- if(yych <= 0x1F) goto yy204;
- goto yy206;
+ if(yych <= 0x1F) goto yy215;
+ goto yy217;
} else {
- if(yych == ';') goto yy206;
- goto yy204;
+ if(yych == ';') goto yy217;
+ goto yy215;
}
}
-yy210:
+yy221:
yych = *++YYCURSOR;
- goto yy194;
-yy211:
+ goto yy205;
+yy222:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == 0x0A) goto yy208;
- goto yy206;
-yy212:
+ if(yych == 0x0A) goto yy219;
+ goto yy217;
+yy223:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yybm[0+yych] & 128) {
- goto yy212;
+ goto yy223;
}
- if(yych <= '!') goto yy208;
- if(yych <= '"') goto yy210;
- goto yy215;
-yy214:
+ if(yych <= '!') goto yy219;
+ if(yych <= '"') goto yy221;
+ goto yy226;
+yy225:
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yych <= 0x0D) {
if(yych <= 0x09) {
- if(yych <= 0x08) goto yy202;
- goto yy212;
+ if(yych <= 0x08) goto yy213;
+ goto yy223;
} else {
- if(yych <= 0x0A) goto yy194;
- if(yych <= 0x0C) goto yy202;
- goto yy212;
+ if(yych <= 0x0A) goto yy205;
+ if(yych <= 0x0C) goto yy213;
+ goto yy223;
}
} else {
if(yych <= ' ') {
- if(yych <= 0x1F) goto yy202;
- goto yy212;
+ if(yych <= 0x1F) goto yy213;
+ goto yy223;
} else {
- if(yych == ';') goto yy212;
- goto yy202;
+ if(yych == ';') goto yy223;
+ goto yy213;
}
}
-yy215:
+yy226:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == 0x0A) goto yy208;
- goto yy212;
+ if(yych == 0x0A) goto yy219;
+ goto yy223;
}
-#line 466 "scanner.re"
+#line 483 "scanner.re"
}
--- /dev/null
+/* Generated by re2c */
+#line 1 "condition_06.cs.re"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define BSIZE 8192
+
+typedef struct Scanner
+{
+ FILE *fp;
+ unsigned char *cur, *tok, *lim, *eof;
+ unsigned char buffer[BSIZE];
+} Scanner;
+
+int fill(Scanner *s, int len)
+{
+ if (!len)
+ {
+ s->cur = s->tok = s->lim = s->buffer;
+ s->eof = 0;
+ }
+ if (!s->eof)
+ {
+ int got, cnt = s->tok - s->buffer;
+
+ if (cnt > 0)
+ {
+ memcpy(s->buffer, s->tok, s->lim - s->tok);
+ s->tok -= cnt;
+ s->cur -= cnt;
+ s->lim -= cnt;
+ }
+ cnt = BSIZE - cnt;
+ if ((got = fread(s->lim, 1, cnt, s->fp)) != cnt)
+ {
+ s->eof = &s->lim[got];
+ }
+ s->lim += got;
+ }
+ else if (s->cur + len > s->eof)
+ {
+ return 0; /* not enough input data */
+ }
+ return -1;
+}
+
+void fputl(const char *s, size_t len, FILE *stream)
+{
+ while(len-- > 0)
+ {
+ fputc(*s++, stream);
+ }
+}
+
+#line 57 "<stdout>"
+
+enum YYCONDTYPE {
+ EStateComment,
+ EStateNormal,
+ EStateSkiptoeol,
+ EStateString,
+};
+
+#line 54 "condition_06.cs.re"
+
+void scan(Scanner *s)
+{
+ int state = EStateNormal;
+
+ fill(s, 0);
+
+ for(;;)
+ {
+ s->tok = s->cur;
+
+#line 78 "<stdout>"
+ {
+ unsigned char yych;
+ if (state < 2) {
+ if (state < 1) {
+ goto yyc_Comment;
+ } else {
+ goto yyc_Normal;
+ }
+ } else {
+ if (state < 3) {
+ goto yyc_Skiptoeol;
+ } else {
+ goto yyc_String;
+ }
+ }
+/* *********************************** */
+yyc_Comment:
+
+ if((s->lim - s->cur) < 2) { if(fill(s, 2) >= 0) break; };
+ yych = *s->cur;
+ if(yych != '*') goto yy4;
+ ++s->cur;
+ if((yych = *s->cur) == '/') goto yy5;
+yy3:
+#line 147 "condition_06.cs.re"
+ {
+ goto yyc_Comment;
+ }
+#line 107 "<stdout>"
+yy4:
+ yych = *++s->cur;
+ goto yy3;
+yy5:
+ ++s->cur;
+#line 143 "condition_06.cs.re"
+ {
+ continue;
+ }
+#line 117 "<stdout>"
+/* *********************************** */
+yyc_Normal:
+ if((s->lim - s->cur) < 3) { if(fill(s, 3) >= 0) break; };
+ yych = *s->cur;
+ if(yych <= '.') {
+ if(yych == '"') goto yy12;
+ goto yy14;
+ } else {
+ if(yych <= '/') goto yy11;
+ if(yych != '?') goto yy14;
+ }
+ yych = *(s->tok = ++s->cur);
+ if(yych == '?') goto yy19;
+yy10:
+#line 138 "condition_06.cs.re"
+ {
+ fputc(*s->tok, stdout);
+ continue;
+ }
+#line 137 "<stdout>"
+yy11:
+ yych = *++s->cur;
+ if(yych == '*') goto yy17;
+ if(yych == '/') goto yy15;
+ goto yy10;
+yy12:
+ ++s->cur;
+#line 132 "condition_06.cs.re"
+ {
+ fputc(*s->tok, stdout);
+ state = EStateString;
+ continue;
+ }
+#line 151 "<stdout>"
+yy14:
+ yych = *++s->cur;
+ goto yy10;
+yy15:
+ ++s->cur;
+#line 128 "condition_06.cs.re"
+ {
+ goto yyc_Skiptoeol;
+ }
+#line 161 "<stdout>"
+yy17:
+ ++s->cur;
+#line 124 "condition_06.cs.re"
+ {
+ goto yyc_Comment;
+ }
+#line 168 "<stdout>"
+yy19:
+ yych = *++s->cur;
+ switch(yych) {
+ case '!': goto yy35;
+ case '\'': goto yy33;
+ case '(': goto yy21;
+ case ')': goto yy23;
+ case '-': goto yy37;
+ case '/': goto yy31;
+ case '<': goto yy25;
+ case '=': goto yy29;
+ case '>': goto yy27;
+ default: goto yy20;
+ }
+yy20:
+ s->cur = s->tok;
+ goto yy10;
+yy21:
+ ++s->cur;
+#line 79 "condition_06.cs.re"
+ {
+ fputc('[', stdout);
+ continue;
+ }
+#line 193 "<stdout>"
+yy23:
+ ++s->cur;
+#line 84 "condition_06.cs.re"
+ {
+ fputc(']', stdout);
+ continue;
+ }
+#line 201 "<stdout>"
+yy25:
+ ++s->cur;
+#line 89 "condition_06.cs.re"
+ {
+ fputc('{', stdout);
+ continue;
+ }
+#line 209 "<stdout>"
+yy27:
+ ++s->cur;
+#line 94 "condition_06.cs.re"
+ {
+ fputc('}', stdout);
+ continue;
+ }
+#line 217 "<stdout>"
+yy29:
+ ++s->cur;
+#line 99 "condition_06.cs.re"
+ {
+ fputc('#', stdout);
+ continue;
+ }
+#line 225 "<stdout>"
+yy31:
+ ++s->cur;
+#line 104 "condition_06.cs.re"
+ {
+ fputc('\\', stdout);
+ continue;
+ }
+#line 233 "<stdout>"
+yy33:
+ ++s->cur;
+#line 109 "condition_06.cs.re"
+ {
+ fputc('^', stdout);
+ continue;
+ }
+#line 241 "<stdout>"
+yy35:
+ ++s->cur;
+#line 114 "condition_06.cs.re"
+ {
+ fputc('|', stdout);
+ continue;
+ }
+#line 249 "<stdout>"
+yy37:
+ ++s->cur;
+#line 119 "condition_06.cs.re"
+ {
+ fputc('~', stdout);
+ continue;
+ }
+#line 257 "<stdout>"
+/* *********************************** */
+yyc_Skiptoeol:
+ if((s->lim - s->cur) < 5) { if(fill(s, 5) >= 0) break; };
+ yych = *s->cur;
+ if(yych <= '>') {
+ if(yych == 0x0A) goto yy44;
+ goto yy46;
+ } else {
+ if(yych <= '?') goto yy41;
+ if(yych == '\\') goto yy43;
+ goto yy46;
+ }
+yy41:
+ yych = *(s->tok = ++s->cur);
+ if(yych == '?') goto yy51;
+yy42:
+#line 163 "condition_06.cs.re"
+ {
+ goto yyc_Skiptoeol;
+ }
+#line 278 "<stdout>"
+yy43:
+ yych = *(s->tok = ++s->cur);
+ if(yych == 0x0A) goto yy49;
+ if(yych == 0x0D) goto yy47;
+ goto yy42;
+yy44:
+ ++s->cur;
+#line 159 "condition_06.cs.re"
+ {
+ continue;
+ }
+#line 290 "<stdout>"
+yy46:
+ yych = *++s->cur;
+ goto yy42;
+yy47:
+ yych = *++s->cur;
+ if(yych == 0x0A) goto yy49;
+yy48:
+ s->cur = s->tok;
+ goto yy42;
+yy49:
+ ++s->cur;
+#line 155 "condition_06.cs.re"
+ {
+ goto yyc_Skiptoeol;
+ }
+#line 306 "<stdout>"
+yy51:
+ yych = *++s->cur;
+ if(yych != '/') goto yy48;
+ yych = *++s->cur;
+ if(yych == 0x0A) goto yy54;
+ if(yych != 0x0D) goto yy48;
+ yych = *++s->cur;
+ if(yych != 0x0A) goto yy48;
+yy54:
+ ++s->cur;
+#line 151 "condition_06.cs.re"
+ {
+ goto yyc_Skiptoeol;
+ }
+#line 321 "<stdout>"
+/* *********************************** */
+yyc_String:
+ if((s->lim - s->cur) < 2) { if(fill(s, 2) >= 0) break; };
+ yych = *s->cur;
+ if(yych == '"') goto yy60;
+ if(yych != '\\') goto yy62;
+ ++s->cur;
+ if((yych = *s->cur) != 0x0A) goto yy63;
+yy59:
+#line 177 "condition_06.cs.re"
+ {
+ fputc(*s->tok, stdout);
+ continue;
+ }
+#line 336 "<stdout>"
+yy60:
+ ++s->cur;
+#line 172 "condition_06.cs.re"
+ {
+ fputc(*s->tok, stdout);
+ continue;
+ }
+#line 344 "<stdout>"
+yy62:
+ yych = *++s->cur;
+ goto yy59;
+yy63:
+ ++s->cur;
+#line 167 "condition_06.cs.re"
+ {
+ fputl((const char*)s->tok, 2, stdout);
+ continue;
+ }
+#line 355 "<stdout>"
+ }
+#line 181 "condition_06.cs.re"
+
+ }
+}
+
+int main(int argc, char **argv)
+{
+ Scanner in;
+ char c;
+
+ if (argc != 2)
+ {
+ fprintf(stderr, "%s <file>\n", argv[0]);
+ return 1;;
+ }
+
+ memset((char*) &in, 0, sizeof(in));
+
+ if (!strcmp(argv[1], "-"))
+ {
+ in.fp = stdin;
+ }
+ else if ((in.fp = fopen(argv[1], "r")) == NULL)
+ {
+ fprintf(stderr, "Cannot open file '%s'\n", argv[1]);
+ return 1;
+ }
+
+ scan(&in);
+
+ if (in.fp != stdin)
+ {
+ fclose(in.fp);
+ }
+ return 0;
+}