-/* Generated by re2c 0.9.4 on Sun Oct 31 23:17:13 2004 */
+/* Generated by re2c 0.9.5.dev on Fri Apr 8 20:22:23 2005 */
#line 1 "scanner.re"
/* $Id$ */
#include <stdlib.h>
#include "scanner.h"
#include "parser.h"
#include "y.tab.h"
+#include "globals.h"
extern YYSTYPE yylval;
return cursor;
}
-#line 75 "scanner.re"
+#line 76 "scanner.re"
int Scanner::echo(std::ostream &out){
char *cursor = cur;
+ bool ignore_eoc = false;
// Catch EOF
if (eof && cursor == eof)
YYCTYPE yych;
unsigned int yyaccept;
goto yy0;
-yy1: ++YYCURSOR;
+ ++YYCURSOR;
yy0:
- if((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
+ if((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
yych = *YYCURSOR;
- if(yych <= 0x0A){
- if(yych <= 0x00) goto yy6;
- if(yych <= 0x09) goto yy8;
- goto yy4;
+ if(yych <= ')'){
+ if(yych <= 0x00) goto yy7;
+ if(yych == 0x0A) goto yy5;
+ goto yy9;
} else {
- if(yych != '/') goto yy8;
+ if(yych <= '*') goto yy4;
+ if(yych != '/') goto yy9;
goto yy2;
}
yy2: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '*') goto yy9;
+ if(yych == '*') goto yy12;
goto yy3;
yy3:
-#line 97 "scanner.re"
-{ goto echo; }
-#line 31 "scanner.cc"
-yy4: ++YYCURSOR;
- goto yy5;
-yy5:
-#line 92 "scanner.re"
-{ out.write((const char*)(tok), (const char*)(cursor) - (const char*)(tok));
- tok = pos = cursor; cline++;
- goto echo; }
-#line 39 "scanner.cc"
-yy6: ++YYCURSOR;
- goto yy7;
-yy7:
-#line 95 "scanner.re"
-{ out.write((const char*)(tok), (const char*)(cursor) - (const char*)(tok) - 1); // -1 so we don't write out the \0
- if(cursor == eof) { RETURN(0); } }
-#line 46 "scanner.cc"
-yy8: yych = *++YYCURSOR;
+#line 122 "scanner.re"
+{
+ goto echo;
+ }
+#line 34 "scanner.cc"
+yy4: yych = *++YYCURSOR;
+ if(yych == '/') goto yy10;
goto yy3;
+yy5: ++YYCURSOR;
+ goto yy6;
+yy6:
+#line 111 "scanner.re"
+{
+ out.write((const char*)(tok), (const char*)(cursor) - (const char*)(tok));
+ tok = pos = cursor; cline++;
+ goto echo;
+ }
+#line 47 "scanner.cc"
+yy7: ++YYCURSOR;
+ goto yy8;
+yy8:
+#line 116 "scanner.re"
+{
+ out.write((const char*)(tok), (const char*)(cursor) - (const char*)(tok) - 1); // -1 so we don't write out the \0
+ if(cursor == eof) {
+ RETURN(0);
+ }
+ }
+#line 58 "scanner.cc"
yy9: yych = *++YYCURSOR;
- if(yych == '!') goto yy11;
- goto yy10;
-yy10: YYCURSOR = YYMARKER;
+ goto yy3;
+yy10: ++YYCURSOR;
+ goto yy11;
+yy11:
+#line 102 "scanner.re"
+{
+ if (ignore_eoc) {
+ ignore_eoc = false;
+ } else {
+ out.write((const char*)(tok), (const char*)(cursor) - (const char*)(tok));
+ }
+ tok = pos = cursor;
+ goto echo;
+ }
+#line 74 "scanner.cc"
+yy12: yych = *++YYCURSOR;
+ if(yych == '!') goto yy14;
+ goto yy13;
+yy13: YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy3;
}
-yy11: yych = *++YYCURSOR;
- if(yych != 'r') goto yy10;
- goto yy12;
-yy12: yych = *++YYCURSOR;
- if(yych != 'e') goto yy10;
- goto yy13;
-yy13: yych = *++YYCURSOR;
- if(yych != '2') goto yy10;
- goto yy14;
yy14: yych = *++YYCURSOR;
- if(yych != 'c') goto yy10;
- goto yy15;
-yy15: ++YYCURSOR;
- goto yy16;
-yy16:
-#line 89 "scanner.re"
-{ out.write((const char*)(tok), (const char*)(&cursor[-7]) - (const char*)(tok));
- tok = cursor;
- RETURN(1); }
-#line 75 "scanner.cc"
+ if(yych == 'm') goto yy15;
+ if(yych == 'r') goto yy16;
+ goto yy13;
+yy15: yych = *++YYCURSOR;
+ if(yych == 'a') goto yy21;
+ goto yy13;
+yy16: yych = *++YYCURSOR;
+ if(yych != 'e') goto yy13;
+ goto yy17;
+yy17: yych = *++YYCURSOR;
+ if(yych != '2') goto yy13;
+ goto yy18;
+yy18: yych = *++YYCURSOR;
+ if(yych != 'c') goto yy13;
+ goto yy19;
+yy19: ++YYCURSOR;
+ goto yy20;
+yy20:
+#line 91 "scanner.re"
+{
+ out.write((const char*)(tok), (const char*)(&cursor[-7]) - (const char*)(tok));
+ tok = cursor;
+ RETURN(1);
+ }
+#line 107 "scanner.cc"
+yy21: yych = *++YYCURSOR;
+ if(yych != 'x') goto yy13;
+ goto yy22;
+yy22: yych = *++YYCURSOR;
+ if(yych != ':') goto yy13;
+ goto yy23;
+yy23: yych = *++YYCURSOR;
+ if(yych != 'r') goto yy13;
+ goto yy24;
+yy24: yych = *++YYCURSOR;
+ if(yych != 'e') goto yy13;
+ goto yy25;
+yy25: yych = *++YYCURSOR;
+ if(yych != '2') goto yy13;
+ goto yy26;
+yy26: yych = *++YYCURSOR;
+ if(yych != 'c') goto yy13;
+ goto yy27;
+yy27: ++YYCURSOR;
+ goto yy28;
+yy28:
+#line 96 "scanner.re"
+{
+ out << "#define YYMAXFILL " << maxFill << std::endl;
+ tok = pos = cursor;
+ ignore_eoc = true;
+ goto echo;
+ }
+#line 136 "scanner.cc"
}
-#line 98 "scanner.re"
+#line 125 "scanner.re"
}
tline = cline;
tok = cursor;
-#line 79 "scanner.cc"
+#line 140 "scanner.cc"
{
YYCTYPE yych;
unsigned int yyaccept;
- goto yy17;
-yy18: ++YYCURSOR;
-yy17:
+ goto yy29;
+ ++YYCURSOR;
+yy29:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
if(yych <= '/'){
if(yych <= '"'){
if(yych <= 0x0A){
- if(yych <= 0x08) goto yy39;
- if(yych <= 0x09) goto yy35;
- goto yy37;
+ if(yych <= 0x08) goto yy51;
+ if(yych <= 0x09) goto yy47;
+ goto yy49;
} else {
- if(yych == ' ') goto yy35;
- if(yych <= '!') goto yy39;
- goto yy25;
+ if(yych == ' ') goto yy47;
+ if(yych <= '!') goto yy51;
+ goto yy37;
}
} else {
if(yych <= ')'){
- if(yych <= '&') goto yy39;
- if(yych <= '\'') goto yy27;
- goto yy31;
+ if(yych <= '&') goto yy51;
+ if(yych <= '\'') goto yy39;
+ goto yy43;
} else {
- if(yych <= '*') goto yy23;
- if(yych <= '+') goto yy32;
- if(yych <= '.') goto yy39;
- goto yy21;
+ if(yych <= '*') goto yy35;
+ if(yych <= '+') goto yy44;
+ if(yych <= '.') goto yy51;
+ goto yy33;
}
}
} else {
if(yych <= '@'){
if(yych <= '<'){
- if(yych == ';') goto yy31;
- goto yy39;
+ if(yych == ';') goto yy43;
+ goto yy51;
} else {
- if(yych <= '=') goto yy31;
- if(yych == '?') goto yy32;
- goto yy39;
+ if(yych <= '=') goto yy43;
+ if(yych == '?') goto yy44;
+ goto yy51;
}
} else {
if(yych <= '`'){
- if(yych <= 'Z') goto yy33;
- if(yych <= '[') goto yy29;
- if(yych <= '\\') goto yy31;
- goto yy39;
+ if(yych <= 'Z') goto yy45;
+ if(yych <= '[') goto yy41;
+ if(yych <= '\\') goto yy43;
+ goto yy51;
} else {
- if(yych <= 'z') goto yy33;
- if(yych <= '{') goto yy19;
- if(yych <= '|') goto yy31;
- goto yy39;
+ if(yych <= 'z') goto yy45;
+ if(yych <= '{') goto yy31;
+ if(yych <= '|') goto yy43;
+ goto yy51;
}
}
}
-yy19: yyaccept = 0;
+yy31: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/') goto yy20;
- if(yych <= '9') goto yy65;
- goto yy20;
-yy20:
-#line 111 "scanner.re"
+ if(yych <= '/') goto yy32;
+ if(yych <= '9') goto yy77;
+ goto yy32;
+yy32:
+#line 138 "scanner.re"
{ depth = 1;
goto code;
}
-#line 145 "scanner.cc"
-yy21: ++YYCURSOR;
- if((yych = *YYCURSOR) == '*') goto yy63;
- goto yy22;
-yy22:
-#line 137 "scanner.re"
+#line 206 "scanner.cc"
+yy33: ++YYCURSOR;
+ if((yych = *YYCURSOR) == '*') goto yy75;
+ goto yy34;
+yy34:
+#line 164 "scanner.re"
{ RETURN(*tok); }
-#line 152 "scanner.cc"
-yy23: ++YYCURSOR;
- if((yych = *YYCURSOR) == '/') goto yy61;
- goto yy24;
-yy24:
-#line 139 "scanner.re"
+#line 213 "scanner.cc"
+yy35: ++YYCURSOR;
+ if((yych = *YYCURSOR) == '/') goto yy73;
+ goto yy36;
+yy36:
+#line 166 "scanner.re"
{ yylval.op = *tok;
RETURN(CLOSE); }
-#line 160 "scanner.cc"
-yy25: yyaccept = 1;
+#line 221 "scanner.cc"
+yy37: yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 0x0A) goto yy57;
- goto yy26;
-yy26:
-#line 128 "scanner.re"
+ if(yych != 0x0A) goto yy69;
+ goto yy38;
+yy38:
+#line 155 "scanner.re"
{ fatal("unterminated string constant (missing \")"); }
-#line 168 "scanner.cc"
-yy27: yyaccept = 2;
+#line 229 "scanner.cc"
+yy39: yyaccept = 2;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 0x0A) goto yy52;
- goto yy28;
-yy28:
-#line 129 "scanner.re"
+ if(yych != 0x0A) goto yy64;
+ goto yy40;
+yy40:
+#line 156 "scanner.re"
{ fatal("unterminated string constant (missing ')"); }
-#line 176 "scanner.cc"
-yy29: yyaccept = 3;
+#line 237 "scanner.cc"
+yy41: yyaccept = 3;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 0x0A) goto yy46;
- goto yy30;
-yy30:
-#line 135 "scanner.re"
+ if(yych != 0x0A) goto yy58;
+ goto yy42;
+yy42:
+#line 162 "scanner.re"
{ fatal("unterminated range (missing ])"); }
-#line 184 "scanner.cc"
-yy31: yych = *++YYCURSOR;
- goto yy22;
-yy32: yych = *++YYCURSOR;
- goto yy24;
-yy33: ++YYCURSOR;
+#line 245 "scanner.cc"
+yy43: yych = *++YYCURSOR;
+ goto yy34;
+yy44: yych = *++YYCURSOR;
+ goto yy36;
+yy45: ++YYCURSOR;
yych = *YYCURSOR;
- goto yy44;
-yy34:
-#line 154 "scanner.re"
+ goto yy56;
+yy46:
+#line 181 "scanner.re"
{ cur = cursor;
yylval.symbol = Symbol::find(token());
return ID; }
-#line 196 "scanner.cc"
-yy35: ++YYCURSOR;
+#line 257 "scanner.cc"
+yy47: ++YYCURSOR;
yych = *YYCURSOR;
- goto yy42;
-yy36:
-#line 158 "scanner.re"
+ goto yy54;
+yy48:
+#line 185 "scanner.re"
{ goto scan; }
-#line 202 "scanner.cc"
-yy37: ++YYCURSOR;
- goto yy38;
-yy38:
-#line 160 "scanner.re"
+#line 263 "scanner.cc"
+yy49: ++YYCURSOR;
+ goto yy50;
+yy50:
+#line 187 "scanner.re"
{ if(cursor == eof) RETURN(0);
pos = cursor; cline++;
goto scan;
}
-#line 211 "scanner.cc"
-yy39: ++YYCURSOR;
- goto yy40;
-yy40:
-#line 165 "scanner.re"
+#line 272 "scanner.cc"
+yy51: ++YYCURSOR;
+ goto yy52;
+yy52:
+#line 192 "scanner.re"
{ std::cerr << "unexpected character: " << *tok << std::endl;
goto scan;
}
-#line 219 "scanner.cc"
-yy41: ++YYCURSOR;
+#line 280 "scanner.cc"
+yy53: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy42;
-yy42: if(yych == 0x09) goto yy41;
- if(yych == ' ') goto yy41;
- goto yy36;
-yy43: ++YYCURSOR;
+ goto yy54;
+yy54: if(yych == 0x09) goto yy53;
+ if(yych == ' ') goto yy53;
+ goto yy48;
+yy55: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy44;
-yy44: if(yych <= '@'){
- if(yych <= '/') goto yy34;
- if(yych <= '9') goto yy43;
- goto yy34;
+ goto yy56;
+yy56: if(yych <= '@'){
+ if(yych <= '/') goto yy46;
+ if(yych <= '9') goto yy55;
+ goto yy46;
} else {
- if(yych <= 'Z') goto yy43;
- if(yych <= '`') goto yy34;
- if(yych <= 'z') goto yy43;
- goto yy34;
+ if(yych <= 'Z') goto yy55;
+ if(yych <= '`') goto yy46;
+ if(yych <= 'z') goto yy55;
+ goto yy46;
}
-yy45: ++YYCURSOR;
+yy57: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy46;
-yy46: if(yych <= '['){
- if(yych != 0x0A) goto yy45;
- goto yy47;
+ goto yy58;
+yy58: if(yych <= '['){
+ if(yych != 0x0A) goto yy57;
+ goto yy59;
} else {
- if(yych <= '\\') goto yy48;
- if(yych <= ']') goto yy49;
- goto yy45;
+ if(yych <= '\\') goto yy60;
+ if(yych <= ']') goto yy61;
+ goto yy57;
}
-yy47: YYCURSOR = YYMARKER;
+yy59: YYCURSOR = YYMARKER;
switch(yyaccept){
- case 0: goto yy20;
- case 1: goto yy26;
- case 2: goto yy28;
- case 3: goto yy30;
+ case 0: goto yy32;
+ case 1: goto yy38;
+ case 2: goto yy40;
+ case 3: goto yy42;
}
-yy48: ++YYCURSOR;
+yy60: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == 0x0A) goto yy47;
- goto yy45;
-yy49: ++YYCURSOR;
- goto yy50;
-yy50:
-#line 131 "scanner.re"
+ if(yych == 0x0A) goto yy59;
+ goto yy57;
+yy61: ++YYCURSOR;
+ goto yy62;
+yy62:
+#line 158 "scanner.re"
{ cur = cursor;
yylval.regexp = ranToRE(token());
return RANGE; }
-#line 276 "scanner.cc"
-yy51: ++YYCURSOR;
+#line 337 "scanner.cc"
+yy63: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy52;
-yy52: if(yych <= '&'){
- if(yych == 0x0A) goto yy47;
- goto yy51;
+ goto yy64;
+yy64: if(yych <= '&'){
+ if(yych == 0x0A) goto yy59;
+ goto yy63;
} else {
- if(yych <= '\'') goto yy54;
- if(yych != '\\') goto yy51;
- goto yy53;
+ if(yych <= '\'') goto yy66;
+ if(yych != '\\') goto yy63;
+ goto yy65;
}
-yy53: ++YYCURSOR;
+yy65: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == 0x0A) goto yy47;
- goto yy51;
-yy54: ++YYCURSOR;
- goto yy55;
-yy55:
-#line 124 "scanner.re"
+ if(yych == 0x0A) goto yy59;
+ goto yy63;
+yy66: ++YYCURSOR;
+ goto yy67;
+yy67:
+#line 151 "scanner.re"
{ cur = cursor;
yylval.regexp = strToCaseInsensitiveRE(token());
return STRING; }
-#line 303 "scanner.cc"
-yy56: ++YYCURSOR;
+#line 364 "scanner.cc"
+yy68: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy57;
-yy57: if(yych <= '!'){
- if(yych == 0x0A) goto yy47;
- goto yy56;
+ goto yy69;
+yy69: if(yych <= '!'){
+ if(yych == 0x0A) goto yy59;
+ goto yy68;
} else {
- if(yych <= '"') goto yy59;
- if(yych != '\\') goto yy56;
- goto yy58;
+ if(yych <= '"') goto yy71;
+ if(yych != '\\') goto yy68;
+ goto yy70;
}
-yy58: ++YYCURSOR;
+yy70: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == 0x0A) goto yy47;
- goto yy56;
-yy59: ++YYCURSOR;
- goto yy60;
-yy60:
-#line 120 "scanner.re"
+ if(yych == 0x0A) goto yy59;
+ goto yy68;
+yy71: ++YYCURSOR;
+ goto yy72;
+yy72:
+#line 147 "scanner.re"
{ cur = cursor;
yylval.regexp = strToRE(token());
return STRING; }
-#line 330 "scanner.cc"
-yy61: ++YYCURSOR;
- goto yy62;
-yy62:
-#line 117 "scanner.re"
+#line 391 "scanner.cc"
+yy73: ++YYCURSOR;
+ goto yy74;
+yy74:
+#line 144 "scanner.re"
{ tok = cursor;
RETURN(0); }
-#line 337 "scanner.cc"
-yy63: ++YYCURSOR;
- goto yy64;
-yy64:
-#line 114 "scanner.re"
+#line 398 "scanner.cc"
+yy75: ++YYCURSOR;
+ goto yy76;
+yy76:
+#line 141 "scanner.re"
{ depth = 1;
goto comment; }
-#line 344 "scanner.cc"
-yy65: ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
+#line 405 "scanner.cc"
+yy77: ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
- goto yy66;
-yy66: if(yych <= '/'){
- if(yych == ',') goto yy69;
- goto yy47;
+ goto yy78;
+yy78: if(yych <= '/'){
+ if(yych == ',') goto yy81;
+ goto yy59;
} else {
- if(yych <= '9') goto yy65;
- if(yych != '}') goto yy47;
- goto yy67;
+ if(yych <= '9') goto yy77;
+ if(yych != '}') goto yy59;
+ goto yy79;
}
-yy67: ++YYCURSOR;
- goto yy68;
-yy68:
-#line 142 "scanner.re"
+yy79: ++YYCURSOR;
+ goto yy80;
+yy80:
+#line 169 "scanner.re"
{ yylval.extop.minsize = atoi((char *)tok+1);
yylval.extop.maxsize = atoi((char *)tok+1);
RETURN(CLOSESIZE); }
-#line 365 "scanner.cc"
-yy69: yych = *++YYCURSOR;
- if(yych != '}') goto yy73;
- goto yy70;
-yy70: ++YYCURSOR;
- goto yy71;
-yy71:
-#line 150 "scanner.re"
+#line 426 "scanner.cc"
+yy81: yych = *++YYCURSOR;
+ if(yych != '}') goto yy85;
+ goto yy82;
+yy82: ++YYCURSOR;
+ goto yy83;
+yy83:
+#line 177 "scanner.re"
{ yylval.extop.minsize = atoi((char *)tok+1);
yylval.extop.maxsize = -1;
RETURN(CLOSESIZE); }
-#line 376 "scanner.cc"
-yy72: ++YYCURSOR;
+#line 437 "scanner.cc"
+yy84: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy73;
-yy73: if(yych <= '/') goto yy47;
- if(yych <= '9') goto yy72;
- if(yych != '}') goto yy47;
- goto yy74;
-yy74: ++YYCURSOR;
- goto yy75;
-yy75:
-#line 146 "scanner.re"
+ goto yy85;
+yy85: if(yych <= '/') goto yy59;
+ if(yych <= '9') goto yy84;
+ if(yych != '}') goto yy59;
+ goto yy86;
+yy86: ++YYCURSOR;
+ goto yy87;
+yy87:
+#line 173 "scanner.re"
{ yylval.extop.minsize = atoi((char *)tok+1);
yylval.extop.maxsize = MAX(yylval.extop.minsize,atoi(strchr((char *)tok, ',')+1));
RETURN(CLOSESIZE); }
-#line 393 "scanner.cc"
+#line 454 "scanner.cc"
}
-#line 168 "scanner.re"
+#line 195 "scanner.re"
code:
-#line 397 "scanner.cc"
+#line 458 "scanner.cc"
{
YYCTYPE yych;
unsigned int yyaccept;
- goto yy76;
-yy77: ++YYCURSOR;
-yy76:
+ goto yy88;
+ ++YYCURSOR;
+yy88:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
if(yych <= '&'){
if(yych <= 0x0A){
- if(yych <= 0x09) goto yy84;
- goto yy82;
+ if(yych <= 0x09) goto yy96;
+ goto yy94;
} else {
- if(yych == '"') goto yy86;
- goto yy84;
+ if(yych == '"') goto yy98;
+ goto yy96;
}
} else {
if(yych <= '{'){
- if(yych <= '\'') goto yy87;
- if(yych <= 'z') goto yy84;
- goto yy80;
+ if(yych <= '\'') goto yy99;
+ if(yych <= 'z') goto yy96;
+ goto yy92;
} else {
- if(yych != '}') goto yy84;
- goto yy78;
+ if(yych != '}') goto yy96;
+ goto yy90;
}
}
-yy78: ++YYCURSOR;
- goto yy79;
-yy79:
-#line 172 "scanner.re"
+yy90: ++YYCURSOR;
+ goto yy91;
+yy91:
+#line 199 "scanner.re"
{ if(--depth == 0){
cur = cursor;
yylval.token = new Token(token(), tline);
return CODE;
}
goto code; }
-#line 434 "scanner.cc"
-yy80: ++YYCURSOR;
- goto yy81;
-yy81:
-#line 178 "scanner.re"
+#line 495 "scanner.cc"
+yy92: ++YYCURSOR;
+ goto yy93;
+yy93:
+#line 205 "scanner.re"
{ ++depth;
goto code; }
-#line 441 "scanner.cc"
-yy82: ++YYCURSOR;
- goto yy83;
-yy83:
-#line 180 "scanner.re"
+#line 502 "scanner.cc"
+yy94: ++YYCURSOR;
+ goto yy95;
+yy95:
+#line 207 "scanner.re"
{ if(cursor == eof) fatal("missing '}'");
pos = cursor; cline++;
goto code;
}
-#line 450 "scanner.cc"
-yy84: ++YYCURSOR;
- goto yy85;
-yy85:
-#line 184 "scanner.re"
+#line 511 "scanner.cc"
+yy96: ++YYCURSOR;
+ goto yy97;
+yy97:
+#line 211 "scanner.re"
{ goto code; }
-#line 456 "scanner.cc"
-yy86: yyaccept = 0;
+#line 517 "scanner.cc"
+yy98: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 0x0A) goto yy85;
- goto yy93;
-yy87: yyaccept = 0;
+ if(yych == 0x0A) goto yy97;
+ goto yy105;
+yy99: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 0x0A) goto yy85;
- goto yy89;
-yy88: ++YYCURSOR;
+ if(yych == 0x0A) goto yy97;
+ goto yy101;
+yy100: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy89;
-yy89: if(yych <= '&'){
- if(yych != 0x0A) goto yy88;
- goto yy90;
+ goto yy101;
+yy101: if(yych <= '&'){
+ if(yych != 0x0A) goto yy100;
+ goto yy102;
} else {
- if(yych <= '\'') goto yy84;
- if(yych == '\\') goto yy91;
- goto yy88;
+ if(yych <= '\'') goto yy96;
+ if(yych == '\\') goto yy103;
+ goto yy100;
}
-yy90: YYCURSOR = YYMARKER;
+yy102: YYCURSOR = YYMARKER;
switch(yyaccept){
- case 0: goto yy85;
+ case 0: goto yy97;
}
-yy91: ++YYCURSOR;
+yy103: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == 0x0A) goto yy90;
- goto yy88;
-yy92: ++YYCURSOR;
+ if(yych == 0x0A) goto yy102;
+ goto yy100;
+yy104: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy93;
-yy93: if(yych <= '!'){
- if(yych == 0x0A) goto yy90;
- goto yy92;
+ goto yy105;
+yy105: if(yych <= '!'){
+ if(yych == 0x0A) goto yy102;
+ goto yy104;
} else {
- if(yych <= '"') goto yy84;
- if(yych != '\\') goto yy92;
- goto yy94;
+ if(yych <= '"') goto yy96;
+ if(yych != '\\') goto yy104;
+ goto yy106;
}
-yy94: ++YYCURSOR;
+yy106: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == 0x0A) goto yy90;
- goto yy92;
+ if(yych == 0x0A) goto yy102;
+ goto yy104;
}
-#line 185 "scanner.re"
+#line 212 "scanner.re"
comment:
-#line 510 "scanner.cc"
+#line 571 "scanner.cc"
{
YYCTYPE yych;
unsigned int yyaccept;
- goto yy95;
-yy96: ++YYCURSOR;
-yy95:
+ goto yy107;
+ ++YYCURSOR;
+yy107:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
if(yych <= ')'){
- if(yych == 0x0A) goto yy100;
- goto yy102;
+ if(yych == 0x0A) goto yy112;
+ goto yy114;
} else {
- if(yych <= '*') goto yy97;
- if(yych == '/') goto yy99;
- goto yy102;
+ if(yych <= '*') goto yy109;
+ if(yych == '/') goto yy111;
+ goto yy114;
}
-yy97: ++YYCURSOR;
- if((yych = *YYCURSOR) == '/') goto yy105;
- goto yy98;
-yy98:
-#line 199 "scanner.re"
+yy109: ++YYCURSOR;
+ if((yych = *YYCURSOR) == '/') goto yy117;
+ goto yy110;
+yy110:
+#line 226 "scanner.re"
{ goto comment; }
-#line 533 "scanner.cc"
-yy99: yych = *++YYCURSOR;
- if(yych == '*') goto yy103;
- goto yy98;
-yy100: ++YYCURSOR;
- goto yy101;
-yy101:
-#line 195 "scanner.re"
+#line 594 "scanner.cc"
+yy111: yych = *++YYCURSOR;
+ if(yych == '*') goto yy115;
+ goto yy110;
+yy112: ++YYCURSOR;
+ goto yy113;
+yy113:
+#line 222 "scanner.re"
{ if(cursor == eof) RETURN(0);
tok = pos = cursor; cline++;
goto comment;
}
-#line 545 "scanner.cc"
-yy102: yych = *++YYCURSOR;
- goto yy98;
-yy103: ++YYCURSOR;
- goto yy104;
-yy104:
-#line 193 "scanner.re"
+#line 606 "scanner.cc"
+yy114: yych = *++YYCURSOR;
+ goto yy110;
+yy115: ++YYCURSOR;
+ goto yy116;
+yy116:
+#line 220 "scanner.re"
{ ++depth;
goto comment; }
-#line 554 "scanner.cc"
-yy105: ++YYCURSOR;
- goto yy106;
-yy106:
-#line 189 "scanner.re"
+#line 615 "scanner.cc"
+yy117: ++YYCURSOR;
+ goto yy118;
+yy118:
+#line 216 "scanner.re"
{ if(--depth == 0)
goto scan;
else
goto comment; }
-#line 563 "scanner.cc"
+#line 624 "scanner.cc"
}
-#line 200 "scanner.re"
+#line 227 "scanner.re"
}