-/* Generated by re2c 0.16 on Tue May 10 13:05:36 2016 */
+/* Generated by re2c 0.16 on Wed May 11 15:38:08 2016 */
#line 1 "../src/parse/lex.re"
#include "src/util/c99_stdint.h"
#include <stddef.h>
++YYCURSOR;
#line 153 "../src/parse/lex.re"
{
- if (opts->target == opt_t::CODE) {
- out.wraw(tok, start);
- }
if (cur == eof) {
+ if (opts->target == opt_t::CODE) {
+ out.wraw(tok, start);
+ }
return Stop;
}
+ goto echo;
}
-#line 127 "src/parse/lex.cc"
+#line 128 "src/parse/lex.cc"
yy4:
++YYCURSOR;
yy5:
-#line 173 "../src/parse/lex.re"
+#line 174 "../src/parse/lex.re"
{ goto echo; }
-#line 133 "src/parse/lex.cc"
+#line 134 "src/parse/lex.cc"
yy6:
yyaccept = 0;
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
}
if (yych == '#') goto yy14;
yy7:
-#line 167 "../src/parse/lex.re"
+#line 168 "../src/parse/lex.re"
{
cline++;
pos = cur;
goto echo;
}
-#line 148 "src/parse/lex.cc"
+#line 149 "src/parse/lex.cc"
yy8:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy6;
}
return Parse;
}
-#line 201 "src/parse/lex.cc"
+#line 202 "src/parse/lex.cc"
yy18:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '!') goto yy20;
yy66:
++YYCURSOR;
YYCURSOR = YYCTXMARKER;
-#line 162 "../src/parse/lex.re"
+#line 163 "../src/parse/lex.re"
{
set_sourceline();
goto echo;
}
-#line 434 "src/parse/lex.cc"
+#line 435 "src/parse/lex.cc"
yy68:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy66;
lex_end_of_comment();
goto echo;
}
-#line 535 "src/parse/lex.cc"
+#line 536 "src/parse/lex.cc"
yy91:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '2') goto yy98;
reuse();
return Reuse;
}
-#line 561 "src/parse/lex.cc"
+#line 562 "src/parse/lex.cc"
yy96:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == 'r') goto yy102;
lex_tags();
goto echo;
}
-#line 584 "src/parse/lex.cc"
+#line 585 "src/parse/lex.cc"
yy101:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == 'c') goto yy106;
opts.reset_mapCodeName ();
return Rules;
}
-#line 610 "src/parse/lex.cc"
+#line 611 "src/parse/lex.cc"
yy106:
++YYCURSOR;
#line 134 "../src/parse/lex.re"
lex_end_of_comment();
goto echo;
}
-#line 624 "src/parse/lex.cc"
+#line 625 "src/parse/lex.cc"
yy108:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '2') goto yy111;
lex_end_of_comment();
goto echo;
}
-#line 639 "src/parse/lex.cc"
+#line 640 "src/parse/lex.cc"
yy111:
yych = (YYCTYPE)*++YYCURSOR;
if (yych != 'c') goto yy13;
lex_end_of_comment();
goto echo;
}
-#line 653 "src/parse/lex.cc"
+#line 654 "src/parse/lex.cc"
}
-#line 174 "../src/parse/lex.re"
+#line 175 "../src/parse/lex.re"
}
{
uint32_t ignored = 0;
for (;;) {
-#line 663 "src/parse/lex.cc"
+#line 664 "src/parse/lex.cc"
{
YYCTYPE yych;
if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
}
yy116:
++YYCURSOR;
-#line 181 "../src/parse/lex.re"
+#line 182 "../src/parse/lex.re"
{ fatal("expected end of block"); }
-#line 681 "src/parse/lex.cc"
+#line 682 "src/parse/lex.cc"
yy118:
++YYCURSOR;
yy119:
-#line 183 "../src/parse/lex.re"
+#line 184 "../src/parse/lex.re"
{ continue; }
-#line 687 "src/parse/lex.cc"
+#line 688 "src/parse/lex.cc"
yy120:
++YYCURSOR;
-#line 184 "../src/parse/lex.re"
+#line 185 "../src/parse/lex.re"
{ ++ignored; continue; }
-#line 692 "src/parse/lex.cc"
+#line 693 "src/parse/lex.cc"
yy122:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy120;
yych = (YYCTYPE)*++YYCURSOR;
if (yych != '/') goto yy119;
++YYCURSOR;
-#line 185 "../src/parse/lex.re"
+#line 186 "../src/parse/lex.re"
{
if (ignored > 0) {
cline += ignored;
tok = pos = cur;
return;
}
-#line 710 "src/parse/lex.cc"
+#line 711 "src/parse/lex.cc"
}
-#line 193 "../src/parse/lex.re"
+#line 194 "../src/parse/lex.re"
}
}
{
ConfTags conf;
for (;;) {
-#line 720 "src/parse/lex.cc"
+#line 721 "src/parse/lex.cc"
{
YYCTYPE yych;
static const unsigned char yybm[] = {
}
++YYCURSOR;
yy129:
-#line 200 "../src/parse/lex.re"
+#line 201 "../src/parse/lex.re"
{ fatal("unrecognized configuration"); }
-#line 780 "src/parse/lex.cc"
+#line 781 "src/parse/lex.cc"
yy130:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
if (yybm[0+yych] & 128) {
goto yy130;
}
-#line 205 "../src/parse/lex.re"
+#line 206 "../src/parse/lex.re"
{ continue; }
-#line 790 "src/parse/lex.cc"
+#line 791 "src/parse/lex.cc"
yy133:
++YYCURSOR;
-#line 206 "../src/parse/lex.re"
+#line 207 "../src/parse/lex.re"
{ ++cline; continue; }
-#line 795 "src/parse/lex.cc"
+#line 796 "src/parse/lex.cc"
yy135:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy133;
goto yy129;
yy139:
++YYCURSOR;
-#line 207 "../src/parse/lex.re"
+#line 208 "../src/parse/lex.re"
{
if (opts->target == opt_t::CODE) {
out.wdelay_tags(opts->topIndent,
tok = pos = cur;
return;
}
-#line 823 "src/parse/lex.cc"
+#line 824 "src/parse/lex.cc"
yy141:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == 'n') goto yy144;
goto yy142;
yy145:
++YYCURSOR;
-#line 203 "../src/parse/lex.re"
+#line 204 "../src/parse/lex.re"
{ conf.sep = lex_conf_string(); continue; }
-#line 842 "src/parse/lex.cc"
+#line 843 "src/parse/lex.cc"
yy147:
++YYCURSOR;
-#line 202 "../src/parse/lex.re"
+#line 203 "../src/parse/lex.re"
{ conf.line = lex_conf_string(); continue; }
-#line 847 "src/parse/lex.cc"
+#line 848 "src/parse/lex.cc"
}
-#line 215 "../src/parse/lex.re"
+#line 216 "../src/parse/lex.re"
}
}
start:
-#line 869 "src/parse/lex.cc"
+#line 870 "src/parse/lex.cc"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
yy151:
++YYCURSOR;
yy152:
-#line 397 "../src/parse/lex.re"
+#line 398 "../src/parse/lex.re"
{
fatalf("unexpected character: '%c'", *tok);
goto scan;
}
-#line 980 "src/parse/lex.cc"
+#line 981 "src/parse/lex.cc"
yy153:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
if (yybm[0+yych] & 16) {
goto yy153;
}
-#line 381 "../src/parse/lex.re"
+#line 382 "../src/parse/lex.re"
{
goto scan;
}
-#line 992 "src/parse/lex.cc"
+#line 993 "src/parse/lex.cc"
yy156:
yyaccept = 0;
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
if (yych == '#') goto yy185;
}
yy157:
-#line 390 "../src/parse/lex.re"
+#line 391 "../src/parse/lex.re"
{
if (cur == eof) return 0;
pos = cur;
cline++;
goto scan;
}
-#line 1010 "src/parse/lex.cc"
+#line 1011 "src/parse/lex.cc"
yy158:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy156;
goto yy152;
yy159:
++YYCURSOR;
-#line 264 "../src/parse/lex.re"
+#line 265 "../src/parse/lex.re"
{ yylval.regexp = lex_str('"', opts->bCaseInsensitive || opts->bCaseInverted); return TOKEN_REGEXP; }
-#line 1019 "src/parse/lex.cc"
+#line 1020 "src/parse/lex.cc"
yy161:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '}') goto yy187;
goto yy152;
yy162:
++YYCURSOR;
-#line 263 "../src/parse/lex.re"
+#line 264 "../src/parse/lex.re"
{ yylval.regexp = lex_str('\'', opts->bCaseInsensitive || !opts->bCaseInverted); return TOKEN_REGEXP; }
-#line 1028 "src/parse/lex.cc"
+#line 1029 "src/parse/lex.cc"
yy164:
++YYCURSOR;
yy165:
-#line 284 "../src/parse/lex.re"
+#line 285 "../src/parse/lex.re"
{
return *tok;
}
-#line 1036 "src/parse/lex.cc"
+#line 1037 "src/parse/lex.cc"
yy166:
++YYCURSOR;
if ((yych = (YYCTYPE)*YYCURSOR) == '/') goto yy187;
-#line 288 "../src/parse/lex.re"
+#line 289 "../src/parse/lex.re"
{
yylval.op = *tok;
return TOKEN_STAR;
}
-#line 1045 "src/parse/lex.cc"
+#line 1046 "src/parse/lex.cc"
yy168:
++YYCURSOR;
-#line 292 "../src/parse/lex.re"
+#line 293 "../src/parse/lex.re"
{
yylval.op = *tok;
return TOKEN_CLOSE;
}
-#line 1053 "src/parse/lex.cc"
+#line 1054 "src/parse/lex.cc"
yy170:
++YYCURSOR;
-#line 376 "../src/parse/lex.re"
+#line 377 "../src/parse/lex.re"
{
yylval.regexp = mkDot();
return TOKEN_REGEXP;
}
-#line 1061 "src/parse/lex.cc"
+#line 1062 "src/parse/lex.cc"
yy172:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '*') goto yy189;
yy177:
++YYCURSOR;
if ((yych = (YYCTYPE)*YYCURSOR) == '^') goto yy208;
-#line 265 "../src/parse/lex.re"
+#line 266 "../src/parse/lex.re"
{ yylval.regexp = lex_cls(false); return TOKEN_REGEXP; }
-#line 1102 "src/parse/lex.cc"
+#line 1103 "src/parse/lex.cc"
yy179:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == 'e') goto yy210;
}
}
yy181:
-#line 234 "../src/parse/lex.re"
+#line 235 "../src/parse/lex.re"
{
depth = 1;
goto code;
}
-#line 1130 "src/parse/lex.cc"
+#line 1131 "src/parse/lex.cc"
yy182:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
}
yy187:
++YYCURSOR;
-#line 258 "../src/parse/lex.re"
+#line 259 "../src/parse/lex.re"
{
tok = cur;
return 0;
}
-#line 1175 "src/parse/lex.cc"
+#line 1176 "src/parse/lex.cc"
yy189:
++YYCURSOR;
-#line 252 "../src/parse/lex.re"
+#line 253 "../src/parse/lex.re"
{
depth = 1;
goto comment;
}
-#line 1183 "src/parse/lex.cc"
+#line 1184 "src/parse/lex.cc"
yy191:
++YYCURSOR;
-#line 249 "../src/parse/lex.re"
+#line 250 "../src/parse/lex.re"
{
goto nextLine;
}
-#line 1190 "src/parse/lex.cc"
+#line 1191 "src/parse/lex.cc"
yy193:
++YYCURSOR;
YYCURSOR -= 1;
-#line 360 "../src/parse/lex.re"
+#line 361 "../src/parse/lex.re"
{
if (!opts->FFlag) {
yylval.str = new std::string (tok, tok_len());
return TOKEN_REGEXP;
}
}
-#line 1210 "src/parse/lex.cc"
+#line 1211 "src/parse/lex.cc"
yy195:
yych = (YYCTYPE)*++YYCURSOR;
goto yy221;
yy196:
++YYCURSOR;
YYCURSOR = YYCTXMARKER;
-#line 355 "../src/parse/lex.re"
+#line 356 "../src/parse/lex.re"
{
yylval.str = new std::string (tok, tok_len ());
return TOKEN_ID;
}
-#line 1222 "src/parse/lex.cc"
+#line 1223 "src/parse/lex.cc"
yy198:
++YYCURSOR;
if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yy200:
++YYCURSOR;
if ((yych = (YYCTYPE)*YYCURSOR) == '>') goto yy222;
-#line 243 "../src/parse/lex.re"
+#line 244 "../src/parse/lex.re"
{
tok += 2; /* skip ":=" */
depth = 0;
goto code;
}
-#line 1262 "src/parse/lex.cc"
+#line 1263 "src/parse/lex.cc"
yy202:
++YYCURSOR;
-#line 271 "../src/parse/lex.re"
+#line 272 "../src/parse/lex.re"
{
return TOKEN_SETUP;
}
-#line 1269 "src/parse/lex.cc"
+#line 1270 "src/parse/lex.cc"
yy204:
yych = (YYCTYPE)*++YYCURSOR;
if (yych <= '9') {
}
}
yy207:
-#line 275 "../src/parse/lex.re"
+#line 276 "../src/parse/lex.re"
{
if (!opts->tags) {
fatal("tags are only allowed with '-T, --tags' option");
yylval.regexp = RegExp::make_tag(name);
return TOKEN_REGEXP;
}
-#line 1327 "src/parse/lex.cc"
+#line 1328 "src/parse/lex.cc"
yy208:
++YYCURSOR;
-#line 266 "../src/parse/lex.re"
+#line 267 "../src/parse/lex.re"
{ yylval.regexp = lex_cls(true); return TOKEN_REGEXP; }
-#line 1332 "src/parse/lex.cc"
+#line 1333 "src/parse/lex.cc"
yy210:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '2') goto yy230;
yy211:
++YYCURSOR;
yy212:
-#line 328 "../src/parse/lex.re"
+#line 329 "../src/parse/lex.re"
{
fatal("illegal closure form, use '{n}', '{n,}', '{n,m}' where n and m are numbers");
}
-#line 1344 "src/parse/lex.cc"
+#line 1345 "src/parse/lex.cc"
yy213:
++YYCURSOR;
if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yy218:
++YYCURSOR;
YYCURSOR = YYCTXMARKER;
-#line 342 "../src/parse/lex.re"
+#line 343 "../src/parse/lex.re"
{
yylval.str = new std::string (tok, tok_len ());
if (opts->FFlag)
return TOKEN_ID;
}
}
-#line 1410 "src/parse/lex.cc"
+#line 1411 "src/parse/lex.cc"
yy220:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yy222:
++YYCURSOR;
YYCURSOR -= 2;
-#line 239 "../src/parse/lex.re"
+#line 240 "../src/parse/lex.re"
{
return *tok;
}
-#line 1437 "src/parse/lex.cc"
+#line 1438 "src/parse/lex.cc"
yy224:
++YYCURSOR;
if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yy228:
++YYCURSOR;
YYCURSOR = YYCTXMARKER;
-#line 268 "../src/parse/lex.re"
+#line 269 "../src/parse/lex.re"
{
return TOKEN_NOCOND;
}
-#line 1474 "src/parse/lex.cc"
+#line 1475 "src/parse/lex.cc"
yy230:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == 'c') goto yy237;
goto yy212;
yy232:
++YYCURSOR;
-#line 297 "../src/parse/lex.re"
+#line 298 "../src/parse/lex.re"
{
if (!s_to_u32_unsafe (tok + 1, cur - 1, yylval.extop.min))
{
yylval.extop.max = yylval.extop.min;
return TOKEN_CLOSESIZE;
}
-#line 1497 "src/parse/lex.cc"
+#line 1498 "src/parse/lex.cc"
yy234:
++YYCURSOR;
-#line 332 "../src/parse/lex.re"
+#line 333 "../src/parse/lex.re"
{
if (!opts->FFlag) {
fatal("curly braces for names only allowed with -F switch");
yylval.str = new std::string (tok + 1, tok_len () - 2); // -2 to omit braces
return TOKEN_ID;
}
-#line 1508 "src/parse/lex.cc"
+#line 1509 "src/parse/lex.cc"
yy236:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == 'n') goto yy242;
goto yy184;
yy240:
++YYCURSOR;
-#line 319 "../src/parse/lex.re"
+#line 320 "../src/parse/lex.re"
{
if (!s_to_u32_unsafe (tok + 1, cur - 2, yylval.extop.min))
{
yylval.extop.max = std::numeric_limits<uint32_t>::max();
return TOKEN_CLOSESIZE;
}
-#line 1536 "src/parse/lex.cc"
+#line 1537 "src/parse/lex.cc"
yy242:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == 'e') goto yy247;
goto yy184;
yy243:
++YYCURSOR;
-#line 340 "../src/parse/lex.re"
+#line 341 "../src/parse/lex.re"
{ lex_conf (); return TOKEN_CONF; }
-#line 1545 "src/parse/lex.cc"
+#line 1546 "src/parse/lex.cc"
yy245:
++YYCURSOR;
-#line 306 "../src/parse/lex.re"
+#line 307 "../src/parse/lex.re"
{
const char * p = strchr (tok, ',');
if (!s_to_u32_unsafe (tok + 1, p, yylval.extop.min))
}
return TOKEN_CLOSESIZE;
}
-#line 1561 "src/parse/lex.cc"
+#line 1562 "src/parse/lex.cc"
yy247:
yych = (YYCTYPE)*++YYCURSOR;
if (yych <= '0') goto yy249;
yy254:
++YYCURSOR;
YYCURSOR = YYCTXMARKER;
-#line 385 "../src/parse/lex.re"
+#line 386 "../src/parse/lex.re"
{
set_sourceline ();
goto scan;
}
-#line 1622 "src/parse/lex.cc"
+#line 1623 "src/parse/lex.cc"
yy256:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy254;
if (yych == '\n') goto yy184;
goto yy257;
}
-#line 401 "../src/parse/lex.re"
+#line 402 "../src/parse/lex.re"
flex_name:
-#line 1652 "src/parse/lex.cc"
+#line 1653 "src/parse/lex.cc"
{
YYCTYPE yych;
if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
if (yych == '\r') goto yy267;
++YYCURSOR;
yy264:
-#line 412 "../src/parse/lex.re"
+#line 413 "../src/parse/lex.re"
{
YYCURSOR = tok;
goto start;
}
-#line 1666 "src/parse/lex.cc"
+#line 1667 "src/parse/lex.cc"
yy265:
++YYCURSOR;
-#line 406 "../src/parse/lex.re"
+#line 407 "../src/parse/lex.re"
{
YYCURSOR = tok;
lexer_state = LEX_NORMAL;
return TOKEN_FID_END;
}
-#line 1675 "src/parse/lex.cc"
+#line 1676 "src/parse/lex.cc"
yy267:
++YYCURSOR;
if ((yych = (YYCTYPE)*YYCURSOR) == '\n') goto yy265;
goto yy264;
}
-#line 416 "../src/parse/lex.re"
+#line 417 "../src/parse/lex.re"
code:
-#line 1686 "src/parse/lex.cc"
+#line 1687 "src/parse/lex.cc"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
}
yy270:
++YYCURSOR;
-#line 479 "../src/parse/lex.re"
+#line 480 "../src/parse/lex.re"
{
if (cur == eof)
{
}
goto code;
}
-#line 1759 "src/parse/lex.cc"
+#line 1760 "src/parse/lex.cc"
yy272:
++YYCURSOR;
yy273:
-#line 493 "../src/parse/lex.re"
+#line 494 "../src/parse/lex.re"
{
goto code;
}
-#line 1767 "src/parse/lex.cc"
+#line 1768 "src/parse/lex.cc"
yy274:
yyaccept = 0;
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
}
}
yy275:
-#line 460 "../src/parse/lex.re"
+#line 461 "../src/parse/lex.re"
{
if (depth == 0)
{
cline++;
goto code;
}
-#line 1806 "src/parse/lex.cc"
+#line 1807 "src/parse/lex.cc"
yy276:
yyaccept = 1;
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
goto yy294;
yy278:
++YYCURSOR;
-#line 432 "../src/parse/lex.re"
+#line 433 "../src/parse/lex.re"
{
if (depth == 0)
{
}
goto code;
}
-#line 1831 "src/parse/lex.cc"
+#line 1832 "src/parse/lex.cc"
yy280:
++YYCURSOR;
-#line 420 "../src/parse/lex.re"
+#line 421 "../src/parse/lex.re"
{
if (depth == 0)
{
}
goto code;
}
-#line 1847 "src/parse/lex.cc"
+#line 1848 "src/parse/lex.cc"
yy282:
yyaccept = 2;
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
}
yy283:
YYCURSOR -= 1;
-#line 447 "../src/parse/lex.re"
+#line 448 "../src/parse/lex.re"
{
if (depth == 0)
{
cline++;
goto code;
}
-#line 1873 "src/parse/lex.cc"
+#line 1874 "src/parse/lex.cc"
yy284:
yych = (YYCTYPE)*++YYCURSOR;
goto yy283;
if (yych >= '#') goto yy292;
yy290:
++YYCURSOR;
-#line 490 "../src/parse/lex.re"
+#line 491 "../src/parse/lex.re"
{
goto code;
}
-#line 1912 "src/parse/lex.cc"
+#line 1913 "src/parse/lex.cc"
yy292:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yy308:
++YYCURSOR;
YYCURSOR = YYCTXMARKER;
-#line 443 "../src/parse/lex.re"
+#line 444 "../src/parse/lex.re"
{
set_sourceline ();
goto code;
}
-#line 2007 "src/parse/lex.cc"
+#line 2008 "src/parse/lex.cc"
yy310:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy308;
if (yych == '\n') goto yy287;
goto yy311;
}
-#line 496 "../src/parse/lex.re"
+#line 497 "../src/parse/lex.re"
comment:
-#line 2041 "src/parse/lex.cc"
+#line 2042 "src/parse/lex.cc"
{
YYCTYPE yych;
static const unsigned char yybm[] = {
}
++YYCURSOR;
yy318:
-#line 528 "../src/parse/lex.re"
+#line 529 "../src/parse/lex.re"
{
if (cur == eof)
{
}
goto comment;
}
-#line 2096 "src/parse/lex.cc"
+#line 2097 "src/parse/lex.cc"
yy319:
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
if (yybm[0+yych] & 32) {
}
if (yych == '#') goto yy326;
yy320:
-#line 519 "../src/parse/lex.re"
+#line 520 "../src/parse/lex.re"
{
if (cur == eof)
{
cline++;
goto comment;
}
-#line 2114 "src/parse/lex.cc"
+#line 2115 "src/parse/lex.cc"
yy321:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '/') goto yy328;
}
yy328:
++YYCURSOR;
-#line 500 "../src/parse/lex.re"
+#line 501 "../src/parse/lex.re"
{
if (--depth == 0)
{
goto comment;
}
}
-#line 2159 "src/parse/lex.cc"
+#line 2160 "src/parse/lex.cc"
yy330:
++YYCURSOR;
-#line 510 "../src/parse/lex.re"
+#line 511 "../src/parse/lex.re"
{
++depth;
fatal("ambiguous /* found");
goto comment;
}
-#line 2168 "src/parse/lex.cc"
+#line 2169 "src/parse/lex.cc"
yy332:
yych = (YYCTYPE)*++YYCURSOR;
if (yych != 'i') goto yy325;
yy342:
++YYCURSOR;
YYCURSOR = YYCTXMARKER;
-#line 515 "../src/parse/lex.re"
+#line 516 "../src/parse/lex.re"
{
set_sourceline ();
goto comment;
}
-#line 2230 "src/parse/lex.cc"
+#line 2231 "src/parse/lex.cc"
yy344:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy342;
if (yych == '\n') goto yy325;
goto yy345;
}
-#line 535 "../src/parse/lex.re"
+#line 536 "../src/parse/lex.re"
nextLine:
-#line 2260 "src/parse/lex.cc"
+#line 2261 "src/parse/lex.cc"
{
YYCTYPE yych;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = (YYCTYPE)*YYCURSOR;
if (yych == '\n') goto yy353;
++YYCURSOR;
-#line 546 "../src/parse/lex.re"
+#line 547 "../src/parse/lex.re"
{ if(cur == eof) {
return 0;
}
goto nextLine;
}
-#line 2273 "src/parse/lex.cc"
+#line 2274 "src/parse/lex.cc"
yy353:
++YYCURSOR;
-#line 539 "../src/parse/lex.re"
+#line 540 "../src/parse/lex.re"
{ if(cur == eof) {
return 0;
}
cline++;
goto scan;
}
-#line 2284 "src/parse/lex.cc"
+#line 2285 "src/parse/lex.cc"
}
-#line 551 "../src/parse/lex.re"
+#line 552 "../src/parse/lex.re"
}
uint32_t u, l;
fst:
-#line 2310 "src/parse/lex.cc"
+#line 2311 "src/parse/lex.cc"
{
YYCTYPE yych;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = (YYCTYPE)*YYCURSOR;
if (yych == ']') goto yy358;
-#line 575 "../src/parse/lex.re"
+#line 576 "../src/parse/lex.re"
{ l = lex_cls_chr(); goto snd; }
-#line 2318 "src/parse/lex.cc"
+#line 2319 "src/parse/lex.cc"
yy358:
++YYCURSOR;
-#line 574 "../src/parse/lex.re"
+#line 575 "../src/parse/lex.re"
{ goto end; }
-#line 2323 "src/parse/lex.cc"
+#line 2324 "src/parse/lex.cc"
}
-#line 576 "../src/parse/lex.re"
+#line 577 "../src/parse/lex.re"
snd:
-#line 2329 "src/parse/lex.cc"
+#line 2330 "src/parse/lex.cc"
{
YYCTYPE yych;
if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = (YYCTYPE)*(YYMARKER = YYCURSOR);
if (yych == '-') goto yy363;
yy362:
-#line 579 "../src/parse/lex.re"
+#line 580 "../src/parse/lex.re"
{ u = l; goto add; }
-#line 2338 "src/parse/lex.cc"
+#line 2339 "src/parse/lex.cc"
yy363:
yych = (YYCTYPE)*++YYCURSOR;
if (yych != ']') goto yy365;
yy365:
++YYCURSOR;
YYCURSOR -= 1;
-#line 580 "../src/parse/lex.re"
+#line 581 "../src/parse/lex.re"
{
u = lex_cls_chr();
if (l > u) {
}
goto add;
}
-#line 2356 "src/parse/lex.cc"
+#line 2357 "src/parse/lex.cc"
}
-#line 588 "../src/parse/lex.re"
+#line 589 "../src/parse/lex.re"
add:
if (!(s = opts->encoding.encodeRange(l, u))) {
{
tok = cur;
-#line 2377 "src/parse/lex.cc"
+#line 2378 "src/parse/lex.cc"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
if (yych == '\n') goto yy371;
if (yych == '\\') goto yy373;
++YYCURSOR;
-#line 611 "../src/parse/lex.re"
+#line 612 "../src/parse/lex.re"
{ return static_cast<uint8_t>(tok[0]); }
-#line 2388 "src/parse/lex.cc"
+#line 2389 "src/parse/lex.cc"
yy371:
++YYCURSOR;
-#line 606 "../src/parse/lex.re"
+#line 607 "../src/parse/lex.re"
{ fatal ((tok - pos) - tchar, "syntax error"); }
-#line 2393 "src/parse/lex.cc"
+#line 2394 "src/parse/lex.cc"
yy373:
++YYCURSOR;
if ((yych = (YYCTYPE)*YYCURSOR) <= '`') {
}
}
}
-#line 609 "../src/parse/lex.re"
+#line 610 "../src/parse/lex.re"
{ fatal ((tok - pos) - tchar, "syntax error in escape sequence"); }
-#line 2444 "src/parse/lex.cc"
+#line 2445 "src/parse/lex.cc"
yy375:
++YYCURSOR;
-#line 624 "../src/parse/lex.re"
+#line 625 "../src/parse/lex.re"
{
warn.useless_escape(tline, tok - pos, tok[1]);
return static_cast<uint8_t>(tok[1]);
}
-#line 2452 "src/parse/lex.cc"
+#line 2453 "src/parse/lex.cc"
yy377:
++YYCURSOR;
-#line 622 "../src/parse/lex.re"
+#line 623 "../src/parse/lex.re"
{ return static_cast<uint8_t>('-'); }
-#line 2457 "src/parse/lex.cc"
+#line 2458 "src/parse/lex.cc"
yy379:
yyaccept = 0;
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
if (yych <= '/') goto yy380;
if (yych <= '7') goto yy404;
yy380:
-#line 608 "../src/parse/lex.re"
+#line 609 "../src/parse/lex.re"
{ fatal ((tok - pos) - tchar, "syntax error in octal escape sequence"); }
-#line 2466 "src/parse/lex.cc"
+#line 2467 "src/parse/lex.cc"
yy381:
yych = (YYCTYPE)*++YYCURSOR;
goto yy380;
if (yych <= 'f') goto yy406;
}
yy383:
-#line 607 "../src/parse/lex.re"
+#line 608 "../src/parse/lex.re"
{ fatal ((tok - pos) - tchar, "syntax error in hexadecimal escape sequence"); }
-#line 2484 "src/parse/lex.cc"
+#line 2485 "src/parse/lex.cc"
yy384:
yyaccept = 1;
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
}
yy385:
++YYCURSOR;
-#line 621 "../src/parse/lex.re"
+#line 622 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\\'); }
-#line 2502 "src/parse/lex.cc"
+#line 2503 "src/parse/lex.cc"
yy387:
++YYCURSOR;
-#line 623 "../src/parse/lex.re"
+#line 624 "../src/parse/lex.re"
{ return static_cast<uint8_t>(']'); }
-#line 2507 "src/parse/lex.cc"
+#line 2508 "src/parse/lex.cc"
yy389:
++YYCURSOR;
-#line 614 "../src/parse/lex.re"
+#line 615 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\a'); }
-#line 2512 "src/parse/lex.cc"
+#line 2513 "src/parse/lex.cc"
yy391:
++YYCURSOR;
-#line 615 "../src/parse/lex.re"
+#line 616 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\b'); }
-#line 2517 "src/parse/lex.cc"
+#line 2518 "src/parse/lex.cc"
yy393:
++YYCURSOR;
-#line 616 "../src/parse/lex.re"
+#line 617 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\f'); }
-#line 2522 "src/parse/lex.cc"
+#line 2523 "src/parse/lex.cc"
yy395:
++YYCURSOR;
-#line 617 "../src/parse/lex.re"
+#line 618 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\n'); }
-#line 2527 "src/parse/lex.cc"
+#line 2528 "src/parse/lex.cc"
yy397:
++YYCURSOR;
-#line 618 "../src/parse/lex.re"
+#line 619 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\r'); }
-#line 2532 "src/parse/lex.cc"
+#line 2533 "src/parse/lex.cc"
yy399:
++YYCURSOR;
-#line 619 "../src/parse/lex.re"
+#line 620 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\t'); }
-#line 2537 "src/parse/lex.cc"
+#line 2538 "src/parse/lex.cc"
yy401:
++YYCURSOR;
-#line 620 "../src/parse/lex.re"
+#line 621 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\v'); }
-#line 2542 "src/parse/lex.cc"
+#line 2543 "src/parse/lex.cc"
yy403:
yyaccept = 1;
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
}
yy409:
++YYCURSOR;
-#line 613 "../src/parse/lex.re"
+#line 614 "../src/parse/lex.re"
{ return unesc_oct(tok, cur); }
-#line 2607 "src/parse/lex.cc"
+#line 2608 "src/parse/lex.cc"
yy411:
yych = (YYCTYPE)*++YYCURSOR;
if (yych <= '@') {
}
yy413:
++YYCURSOR;
-#line 612 "../src/parse/lex.re"
+#line 613 "../src/parse/lex.re"
{ return unesc_hex(tok, cur); }
-#line 2636 "src/parse/lex.cc"
+#line 2637 "src/parse/lex.cc"
yy415:
yych = (YYCTYPE)*++YYCURSOR;
if (yych <= '@') {
goto yy405;
}
}
-#line 628 "../src/parse/lex.re"
+#line 629 "../src/parse/lex.re"
}
end = false;
tok = cur;
-#line 2669 "src/parse/lex.cc"
+#line 2670 "src/parse/lex.cc"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
if (yych == '\n') goto yy421;
if (yych == '\\') goto yy423;
++YYCURSOR;
-#line 641 "../src/parse/lex.re"
+#line 642 "../src/parse/lex.re"
{
end = tok[0] == quote;
return static_cast<uint8_t>(tok[0]);
}
-#line 2683 "src/parse/lex.cc"
+#line 2684 "src/parse/lex.cc"
yy421:
++YYCURSOR;
-#line 636 "../src/parse/lex.re"
+#line 637 "../src/parse/lex.re"
{ fatal ((tok - pos) - tchar, "syntax error"); }
-#line 2688 "src/parse/lex.cc"
+#line 2689 "src/parse/lex.cc"
yy423:
++YYCURSOR;
if ((yych = (YYCTYPE)*YYCURSOR) <= 'a') {
}
}
}
-#line 639 "../src/parse/lex.re"
+#line 640 "../src/parse/lex.re"
{ fatal ((tok - pos) - tchar, "syntax error in escape sequence"); }
-#line 2736 "src/parse/lex.cc"
+#line 2737 "src/parse/lex.cc"
yy425:
++YYCURSOR;
-#line 655 "../src/parse/lex.re"
+#line 656 "../src/parse/lex.re"
{
if (tok[1] != quote) {
warn.useless_escape(tline, tok - pos, tok[1]);
}
return static_cast<uint8_t>(tok[1]);
}
-#line 2746 "src/parse/lex.cc"
+#line 2747 "src/parse/lex.cc"
yy427:
yyaccept = 0;
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
if (yych <= '/') goto yy428;
if (yych <= '7') goto yy450;
yy428:
-#line 638 "../src/parse/lex.re"
+#line 639 "../src/parse/lex.re"
{ fatal ((tok - pos) - tchar, "syntax error in octal escape sequence"); }
-#line 2755 "src/parse/lex.cc"
+#line 2756 "src/parse/lex.cc"
yy429:
yych = (YYCTYPE)*++YYCURSOR;
goto yy428;
if (yych <= 'f') goto yy452;
}
yy431:
-#line 637 "../src/parse/lex.re"
+#line 638 "../src/parse/lex.re"
{ fatal ((tok - pos) - tchar, "syntax error in hexadecimal escape sequence"); }
-#line 2773 "src/parse/lex.cc"
+#line 2774 "src/parse/lex.cc"
yy432:
yyaccept = 1;
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
}
yy433:
++YYCURSOR;
-#line 654 "../src/parse/lex.re"
+#line 655 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\\'); }
-#line 2791 "src/parse/lex.cc"
+#line 2792 "src/parse/lex.cc"
yy435:
++YYCURSOR;
-#line 647 "../src/parse/lex.re"
+#line 648 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\a'); }
-#line 2796 "src/parse/lex.cc"
+#line 2797 "src/parse/lex.cc"
yy437:
++YYCURSOR;
-#line 648 "../src/parse/lex.re"
+#line 649 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\b'); }
-#line 2801 "src/parse/lex.cc"
+#line 2802 "src/parse/lex.cc"
yy439:
++YYCURSOR;
-#line 649 "../src/parse/lex.re"
+#line 650 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\f'); }
-#line 2806 "src/parse/lex.cc"
+#line 2807 "src/parse/lex.cc"
yy441:
++YYCURSOR;
-#line 650 "../src/parse/lex.re"
+#line 651 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\n'); }
-#line 2811 "src/parse/lex.cc"
+#line 2812 "src/parse/lex.cc"
yy443:
++YYCURSOR;
-#line 651 "../src/parse/lex.re"
+#line 652 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\r'); }
-#line 2816 "src/parse/lex.cc"
+#line 2817 "src/parse/lex.cc"
yy445:
++YYCURSOR;
-#line 652 "../src/parse/lex.re"
+#line 653 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\t'); }
-#line 2821 "src/parse/lex.cc"
+#line 2822 "src/parse/lex.cc"
yy447:
++YYCURSOR;
-#line 653 "../src/parse/lex.re"
+#line 654 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\v'); }
-#line 2826 "src/parse/lex.cc"
+#line 2827 "src/parse/lex.cc"
yy449:
yyaccept = 1;
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
}
yy455:
++YYCURSOR;
-#line 646 "../src/parse/lex.re"
+#line 647 "../src/parse/lex.re"
{ return unesc_oct(tok, cur); }
-#line 2891 "src/parse/lex.cc"
+#line 2892 "src/parse/lex.cc"
yy457:
yych = (YYCTYPE)*++YYCURSOR;
if (yych <= '@') {
}
yy459:
++YYCURSOR;
-#line 645 "../src/parse/lex.re"
+#line 646 "../src/parse/lex.re"
{ return unesc_hex(tok, cur); }
-#line 2920 "src/parse/lex.cc"
+#line 2921 "src/parse/lex.cc"
yy461:
yych = (YYCTYPE)*++YYCURSOR;
if (yych <= '@') {
goto yy451;
}
}
-#line 661 "../src/parse/lex.re"
+#line 662 "../src/parse/lex.re"
}
sourceline:
tok = cur;
-#line 2965 "src/parse/lex.cc"
+#line 2966 "src/parse/lex.cc"
{
YYCTYPE yych;
static const unsigned char yybm[] = {
yy465:
++YYCURSOR;
yy466:
-#line 704 "../src/parse/lex.re"
+#line 705 "../src/parse/lex.re"
{
goto sourceline;
}
-#line 3018 "src/parse/lex.cc"
+#line 3019 "src/parse/lex.cc"
yy467:
++YYCURSOR;
-#line 692 "../src/parse/lex.re"
+#line 693 "../src/parse/lex.re"
{
if (cur == eof)
{
tok = cur;
return;
}
-#line 3034 "src/parse/lex.cc"
+#line 3035 "src/parse/lex.cc"
yy469:
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
if (yych == '\n') goto yy466;
if (yybm[0+yych] & 64) {
goto yy470;
}
-#line 681 "../src/parse/lex.re"
+#line 682 "../src/parse/lex.re"
{
if (!s_to_u32_unsafe (tok, cur, cline))
{
}
goto sourceline;
}
-#line 3054 "src/parse/lex.cc"
+#line 3055 "src/parse/lex.cc"
yy473:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
goto yy466;
yy476:
++YYCURSOR;
-#line 688 "../src/parse/lex.re"
+#line 689 "../src/parse/lex.re"
{
escape (in.file_name, std::string (tok + 1, tok_len () - 2)); // -2 to omit quotes
goto sourceline;
}
-#line 3076 "src/parse/lex.cc"
+#line 3077 "src/parse/lex.cc"
yy478:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
if (yych == '\n') goto yy475;
goto yy473;
}
-#line 707 "../src/parse/lex.re"
+#line 708 "../src/parse/lex.re"
}