-/* Generated by re2c 1.1.1 on Fri May 24 12:40:10 2019 */
+/* Generated by re2c 1.1.1 on Sat Jul 13 10:46:39 2019 */
#line 1 "../src/parse/lex.re"
+#include <ctype.h>
#include "src/util/c99_stdint.h"
-#include <stddef.h>
-#include <string.h>
#include <algorithm>
#include <limits>
#include <string>
+#include <utility>
+#include <vector>
#include "src/codegen/output.h"
#include "src/encoding/enc.h"
-#include "src/parse/input.h"
+#include "src/msg/location.h"
+#include "src/msg/msg.h"
+#include "src/msg/warn.h"
+#include "src/options/opt.h"
#include "src/parse/ast.h"
+#include "src/parse/input.h"
+#include "src/parse/lex.h"
#include "src/parse/scanner.h"
#include "src/parse/parse.h" // needed by "parser.h"
#include "src/parse/unescape.h"
-#include "src/util/range.h"
+#include "src/regexp/rule.h"
#include "src/util/s_to_n32_unsafe.h"
#include "src/util/string_utils.h"
#include "parser.h"
+
extern YYSTYPE yylval;
namespace re2c {
#define YYCURSOR cur
#define YYLIMIT lim
#define YYMARKER mar
-#define YYFILL(n) { if (!fill (n)) fatal("unexpected end of input"); }
+#define YYFILL(n) do { if (!fill(n)) fatal("unexpected end of input"); } while(0)
-#line 54 "../src/parse/lex.re"
+#line 61 "../src/parse/lex.re"
-#line 107 "../src/parse/lex.re"
+#line 120 "../src/parse/lex.re"
Scanner::ParseMode Scanner::echo(Output &out)
loc = cur_loc();
ptr = cur;
-#line 50 "src/parse/lex.cc"
+#line 57 "src/parse/lex.cc"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
}
}
++YYCURSOR;
-#line 205 "../src/parse/lex.re"
+#line 218 "../src/parse/lex.re"
{
if (is_eof()) {
out.wraw(tok, ptr);
}
goto loop;
}
-#line 116 "src/parse/lex.cc"
+#line 123 "src/parse/lex.cc"
yy4:
++YYCURSOR;
yy5:
-#line 224 "../src/parse/lex.re"
+#line 237 "../src/parse/lex.re"
{ goto loop; }
-#line 122 "src/parse/lex.cc"
+#line 129 "src/parse/lex.cc"
yy6:
yyaccept = 0;
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
}
if (yych == '#') goto yy14;
yy7:
-#line 219 "../src/parse/lex.re"
+#line 232 "../src/parse/lex.re"
{
next_line();
goto loop;
}
-#line 136 "src/parse/lex.cc"
+#line 143 "src/parse/lex.cc"
yy8:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy6;
}
yy16:
++YYCURSOR;
-#line 120 "../src/parse/lex.re"
+#line 133 "../src/parse/lex.re"
{
out.wraw(tok, ptr);
return Parse;
}
-#line 184 "src/parse/lex.cc"
+#line 191 "src/parse/lex.cc"
yy18:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '!') goto yy20;
yy82:
++YYCURSOR;
YYCURSOR = yyt1;
-#line 213 "../src/parse/lex.re"
+#line 226 "../src/parse/lex.re"
{
out.wraw(tok, ptr).ws("\n");
set_sourceline();
goto next;
}
-#line 486 "src/parse/lex.cc"
+#line 493 "src/parse/lex.cc"
yy84:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy82;
goto yy13;
yy115:
++YYCURSOR;
-#line 141 "../src/parse/lex.re"
+#line 154 "../src/parse/lex.re"
{
out.wraw(tok, ptr);
out.wdelay_yymaxfill();
lex_end_of_comment(out);
goto next;
}
-#line 626 "src/parse/lex.cc"
+#line 633 "src/parse/lex.cc"
yy117:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == 'h') goto yy128;
goto yy13;
yy122:
++YYCURSOR;
-#line 130 "../src/parse/lex.re"
+#line 143 "../src/parse/lex.re"
{
out.wraw(tok, ptr);
return Reuse;
}
-#line 654 "src/parse/lex.cc"
+#line 661 "src/parse/lex.cc"
yy124:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == 'r') goto yy133;
goto yy13;
yy138:
++YYCURSOR;
-#line 177 "../src/parse/lex.re"
+#line 190 "../src/parse/lex.re"
{
out.wraw(tok, ptr);
lex_tags(out, true);
goto next;
}
-#line 719 "src/parse/lex.cc"
+#line 726 "src/parse/lex.cc"
yy140:
++YYCURSOR;
-#line 125 "../src/parse/lex.re"
+#line 138 "../src/parse/lex.re"
{
out.wraw(tok, ptr);
return Rules;
}
-#line 727 "src/parse/lex.cc"
+#line 734 "src/parse/lex.cc"
yy142:
++YYCURSOR;
-#line 171 "../src/parse/lex.re"
+#line 184 "../src/parse/lex.re"
{
out.wraw(tok, ptr);
lex_tags(out, false);
goto next;
}
-#line 736 "src/parse/lex.cc"
+#line 743 "src/parse/lex.cc"
yy144:
++YYCURSOR;
-#line 162 "../src/parse/lex.re"
+#line 175 "../src/parse/lex.re"
{
out.wraw(tok, ptr);
out.wdelay_line_info_output();
lex_end_of_comment(out);
goto next;
}
-#line 748 "src/parse/lex.cc"
+#line 755 "src/parse/lex.cc"
yy146:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '2') goto yy152;
goto yy13;
yy148:
++YYCURSOR;
-#line 135 "../src/parse/lex.re"
+#line 148 "../src/parse/lex.re"
{
out.wraw(tok, ptr);
lex_end_of_comment(out);
goto next;
}
-#line 765 "src/parse/lex.cc"
+#line 772 "src/parse/lex.cc"
yy150:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == 'c') goto yy154;
goto yy13;
yy156:
++YYCURSOR;
-#line 155 "../src/parse/lex.re"
+#line 168 "../src/parse/lex.re"
{
out.wraw(tok, ptr);
out.wdelay_state_goto(0);
lex_end_of_comment(out);
goto next;
}
-#line 799 "src/parse/lex.cc"
+#line 806 "src/parse/lex.cc"
yy158:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == 'f') goto yy162;
goto yy13;
yy163:
++YYCURSOR;
-#line 183 "../src/parse/lex.re"
+#line 196 "../src/parse/lex.re"
{
out.wraw(tok, ptr);
out.header_mode(true);
lex_end_of_comment(out);
goto next;
}
-#line 839 "src/parse/lex.cc"
+#line 846 "src/parse/lex.cc"
yy165:
++YYCURSOR;
if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
}
yy167:
++YYCURSOR;
-#line 148 "../src/parse/lex.re"
+#line 161 "../src/parse/lex.re"
{
out.wraw(tok, ptr);
out.wdelay_yymaxnmatch();
lex_end_of_comment(out);
goto next;
}
-#line 862 "src/parse/lex.cc"
+#line 869 "src/parse/lex.cc"
yy169:
++YYCURSOR;
-#line 191 "../src/parse/lex.re"
+#line 204 "../src/parse/lex.re"
{
out.wraw(tok, ptr);
out.header_mode(false);
lex_end_of_comment(out);
goto next;
}
-#line 873 "src/parse/lex.cc"
+#line 880 "src/parse/lex.cc"
yy171:
yych = (YYCTYPE)*++YYCURSOR;
if (yych <= 0x1F) {
++YYCURSOR;
x = yyt1;
y = yyt2;
-#line 199 "../src/parse/lex.re"
+#line 212 "../src/parse/lex.re"
{
out.wraw(tok, ptr);
include(getstr(x + 1, y - 1));
goto next;
}
-#line 923 "src/parse/lex.cc"
+#line 930 "src/parse/lex.cc"
}
-#line 225 "../src/parse/lex.re"
+#line 238 "../src/parse/lex.re"
}
bool multiline = false;
loop:
-#line 934 "src/parse/lex.cc"
+#line 941 "src/parse/lex.cc"
{
YYCTYPE yych;
if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
}
yy180:
++YYCURSOR;
-#line 234 "../src/parse/lex.re"
+#line 247 "../src/parse/lex.re"
{
msg.fatal(cur_loc(), "expected end of block");
}
-#line 954 "src/parse/lex.cc"
+#line 961 "src/parse/lex.cc"
yy182:
++YYCURSOR;
yy183:
-#line 233 "../src/parse/lex.re"
+#line 246 "../src/parse/lex.re"
{ goto loop; }
-#line 960 "src/parse/lex.cc"
+#line 967 "src/parse/lex.cc"
yy184:
++YYCURSOR;
-#line 237 "../src/parse/lex.re"
+#line 250 "../src/parse/lex.re"
{
next_line();
multiline = true;
goto loop;
}
-#line 969 "src/parse/lex.cc"
+#line 976 "src/parse/lex.cc"
yy186:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy184;
yych = (YYCTYPE)*++YYCURSOR;
if (yych != '/') goto yy183;
++YYCURSOR;
-#line 242 "../src/parse/lex.re"
+#line 255 "../src/parse/lex.re"
{
if (multiline) {
out.wdelay_line_info_input(cur_loc());
}
return;
}
-#line 985 "src/parse/lex.cc"
+#line 992 "src/parse/lex.cc"
}
-#line 248 "../src/parse/lex.re"
+#line 261 "../src/parse/lex.re"
}
std::string fmt, sep;
loop:
-#line 996 "src/parse/lex.cc"
+#line 1003 "src/parse/lex.cc"
{
YYCTYPE yych;
static const unsigned char yybm[] = {
}
++YYCURSOR;
yy193:
-#line 256 "../src/parse/lex.re"
+#line 269 "../src/parse/lex.re"
{
msg.fatal(cur_loc(), "unrecognized configuration");
}
-#line 1058 "src/parse/lex.cc"
+#line 1065 "src/parse/lex.cc"
yy194:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
if (yybm[0+yych] & 128) {
goto yy194;
}
-#line 267 "../src/parse/lex.re"
+#line 280 "../src/parse/lex.re"
{
goto loop;
}
-#line 1070 "src/parse/lex.cc"
+#line 1077 "src/parse/lex.cc"
yy197:
++YYCURSOR;
-#line 270 "../src/parse/lex.re"
+#line 283 "../src/parse/lex.re"
{
next_line();
goto loop;
}
-#line 1078 "src/parse/lex.cc"
+#line 1085 "src/parse/lex.cc"
yy199:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy197;
goto yy193;
yy203:
++YYCURSOR;
-#line 274 "../src/parse/lex.re"
+#line 287 "../src/parse/lex.re"
{
out.wdelay_tags(new ConfTags(fmt, sep), mtags);
return;
}
-#line 1102 "src/parse/lex.cc"
+#line 1109 "src/parse/lex.cc"
yy205:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == 'r') goto yy208;
goto yy206;
yy214:
++YYCURSOR;
-#line 259 "../src/parse/lex.re"
+#line 272 "../src/parse/lex.re"
{
fmt = lex_conf_string();
goto loop;
}
-#line 1144 "src/parse/lex.cc"
+#line 1151 "src/parse/lex.cc"
yy216:
yych = (YYCTYPE)*++YYCURSOR;
if (yych != 't') goto yy206;
yych = (YYCTYPE)*++YYCURSOR;
if (yych != 'r') goto yy206;
++YYCURSOR;
-#line 263 "../src/parse/lex.re"
+#line 276 "../src/parse/lex.re"
{
sep = lex_conf_string();
goto loop;
}
-#line 1158 "src/parse/lex.cc"
+#line 1165 "src/parse/lex.cc"
}
-#line 278 "../src/parse/lex.re"
+#line 291 "../src/parse/lex.re"
}
tok = cur;
loc = cur_loc();
-#line 1171 "src/parse/lex.cc"
+#line 1178 "src/parse/lex.cc"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
yy223:
++YYCURSOR;
yy224:
-#line 402 "../src/parse/lex.re"
+#line 415 "../src/parse/lex.re"
{
msg.fatal(tok_loc(), "unexpected character: '%c'", *tok);
goto scan;
}
-#line 1286 "src/parse/lex.cc"
+#line 1293 "src/parse/lex.cc"
yy225:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
if (yybm[0+yych] & 16) {
goto yy225;
}
-#line 384 "../src/parse/lex.re"
+#line 397 "../src/parse/lex.re"
{ goto scan; }
-#line 1296 "src/parse/lex.cc"
+#line 1303 "src/parse/lex.cc"
yy228:
yyaccept = 0;
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
if (yych == '#') goto yy258;
}
yy229:
-#line 391 "../src/parse/lex.re"
+#line 404 "../src/parse/lex.re"
{
next_line();
if (lexer_state == LEX_FLEX_NAME) {
goto scan;
}
}
-#line 1318 "src/parse/lex.cc"
+#line 1325 "src/parse/lex.cc"
yy230:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy228;
goto yy224;
yy231:
++YYCURSOR;
-#line 304 "../src/parse/lex.re"
+#line 317 "../src/parse/lex.re"
{ yylval.regexp = lex_str('"'); return TOKEN_REGEXP; }
-#line 1327 "src/parse/lex.cc"
+#line 1334 "src/parse/lex.cc"
yy233:
yych = (YYCTYPE)*++YYCURSOR;
if (yych <= '^') {
yy234:
++YYCURSOR;
yy235:
-#line 313 "../src/parse/lex.re"
+#line 326 "../src/parse/lex.re"
{ return *tok; }
-#line 1344 "src/parse/lex.cc"
+#line 1351 "src/parse/lex.cc"
yy236:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '}') goto yy263;
goto yy224;
yy237:
++YYCURSOR;
-#line 303 "../src/parse/lex.re"
+#line 316 "../src/parse/lex.re"
{ yylval.regexp = lex_str('\''); return TOKEN_REGEXP; }
-#line 1353 "src/parse/lex.cc"
+#line 1360 "src/parse/lex.cc"
yy239:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '/') goto yy263;
goto yy235;
yy240:
++YYCURSOR;
-#line 379 "../src/parse/lex.re"
+#line 392 "../src/parse/lex.re"
{
yylval.regexp = ast_dot(tok_loc());
return TOKEN_REGEXP;
}
-#line 1365 "src/parse/lex.cc"
+#line 1372 "src/parse/lex.cc"
yy242:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '*') goto yy265;
goto yy224;
yy244:
++YYCURSOR;
-#line 296 "../src/parse/lex.re"
+#line 309 "../src/parse/lex.re"
{ return lex_clist(); }
-#line 1379 "src/parse/lex.cc"
+#line 1386 "src/parse/lex.cc"
yy246:
yyaccept = 1;
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
if (yybm[0+yych] & 32) {
goto yy247;
}
-#line 356 "../src/parse/lex.re"
+#line 369 "../src/parse/lex.re"
{
if (!globopts->FFlag || lex_namedef_context_re2c()) {
yylval.str = newstr(tok, cur);
return TOKEN_REGEXP;
}
}
-#line 1416 "src/parse/lex.cc"
+#line 1423 "src/parse/lex.cc"
yy250:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '^') goto yy273;
-#line 305 "../src/parse/lex.re"
+#line 318 "../src/parse/lex.re"
{ yylval.regexp = lex_cls(false); return TOKEN_REGEXP; }
-#line 1422 "src/parse/lex.cc"
+#line 1429 "src/parse/lex.cc"
yy252:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == 'e') goto yy275;
}
}
yy254:
-#line 288 "../src/parse/lex.re"
+#line 301 "../src/parse/lex.re"
{ lex_code_in_braces(); return TOKEN_CODE; }
-#line 1447 "src/parse/lex.cc"
+#line 1454 "src/parse/lex.cc"
yy255:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
}
}
yy262:
-#line 308 "../src/parse/lex.re"
+#line 321 "../src/parse/lex.re"
{
yylval.regexp = ast_tag(tok_loc(), newstr(tok + 1, cur), tok[0] == '#');
return TOKEN_REGEXP;
}
-#line 1511 "src/parse/lex.cc"
+#line 1518 "src/parse/lex.cc"
yy263:
++YYCURSOR;
-#line 301 "../src/parse/lex.re"
+#line 314 "../src/parse/lex.re"
{ tok = cur; return 0; }
-#line 1516 "src/parse/lex.cc"
+#line 1523 "src/parse/lex.cc"
yy265:
++YYCURSOR;
-#line 299 "../src/parse/lex.re"
+#line 312 "../src/parse/lex.re"
{ lex_c_comment(); goto scan; }
-#line 1521 "src/parse/lex.cc"
+#line 1528 "src/parse/lex.cc"
yy267:
++YYCURSOR;
-#line 298 "../src/parse/lex.re"
+#line 311 "../src/parse/lex.re"
{ lex_cpp_comment(); goto scan; }
-#line 1526 "src/parse/lex.cc"
+#line 1533 "src/parse/lex.cc"
yy269:
yyaccept = 3;
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
if (yych == '>') goto yy271;
yy270:
-#line 289 "../src/parse/lex.re"
+#line 302 "../src/parse/lex.re"
{ lex_code_indented(); return TOKEN_CODE; }
-#line 1534 "src/parse/lex.cc"
+#line 1541 "src/parse/lex.cc"
yy271:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
}
yy273:
++YYCURSOR;
-#line 306 "../src/parse/lex.re"
+#line 319 "../src/parse/lex.re"
{ yylval.regexp = lex_cls(true); return TOKEN_REGEXP; }
-#line 1569 "src/parse/lex.cc"
+#line 1576 "src/parse/lex.cc"
yy275:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '2') goto yy286;
yy276:
++YYCURSOR;
yy277:
-#line 341 "../src/parse/lex.re"
+#line 354 "../src/parse/lex.re"
{
msg.fatal(tok_loc(), "illegal closure form, use '{n}', '{n,}', '{n,m}' "
"where n and m are numbers");
}
-#line 1582 "src/parse/lex.cc"
+#line 1589 "src/parse/lex.cc"
yy278:
++YYCURSOR;
if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
}
yy285:
p = yyt1;
-#line 291 "../src/parse/lex.re"
+#line 304 "../src/parse/lex.re"
{
yylval.str = newstr(p, cur);
return tok[0] == ':' ? TOKEN_CJUMP : TOKEN_CNEXT;
}
-#line 1645 "src/parse/lex.cc"
+#line 1652 "src/parse/lex.cc"
yy286:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == 'c') goto yy293;
goto yy277;
yy288:
++YYCURSOR;
-#line 315 "../src/parse/lex.re"
+#line 328 "../src/parse/lex.re"
{
if (!s_to_u32_unsafe (tok + 1, cur - 1, yylval.bounds.min)) {
msg.fatal(tok_loc(), "repetition count overflow");
yylval.bounds.max = yylval.bounds.min;
return TOKEN_CLOSESIZE;
}
-#line 1667 "src/parse/lex.cc"
+#line 1674 "src/parse/lex.cc"
yy290:
++YYCURSOR;
-#line 346 "../src/parse/lex.re"
+#line 359 "../src/parse/lex.re"
{
if (!globopts->FFlag) {
msg.fatal(tok_loc(), "curly braces for names only allowed with -F switch");
yylval.str = newstr(tok + 1, cur - 1);
return TOKEN_ID;
}
-#line 1678 "src/parse/lex.cc"
+#line 1685 "src/parse/lex.cc"
yy292:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == 'n') goto yy298;
goto yy257;
yy296:
++YYCURSOR;
-#line 333 "../src/parse/lex.re"
+#line 346 "../src/parse/lex.re"
{
if (!s_to_u32_unsafe (tok + 1, cur - 2, yylval.bounds.min)) {
msg.fatal(tok_loc(), "repetition lower bound overflow");
yylval.bounds.max = std::numeric_limits<uint32_t>::max();
return TOKEN_CLOSESIZE;
}
-#line 1705 "src/parse/lex.cc"
+#line 1712 "src/parse/lex.cc"
yy298:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == 'e') goto yy303;
goto yy257;
yy299:
++YYCURSOR;
-#line 354 "../src/parse/lex.re"
+#line 367 "../src/parse/lex.re"
{ return TOKEN_CONF; }
-#line 1714 "src/parse/lex.cc"
+#line 1721 "src/parse/lex.cc"
yy301:
++YYCURSOR;
p = yyt1;
-#line 323 "../src/parse/lex.re"
+#line 336 "../src/parse/lex.re"
{
if (!s_to_u32_unsafe (tok + 1, p, yylval.bounds.min)) {
msg.fatal(tok_loc(), "repetition lower bound overflow");
}
return TOKEN_CLOSESIZE;
}
-#line 1728 "src/parse/lex.cc"
+#line 1735 "src/parse/lex.cc"
yy303:
yych = (YYCTYPE)*++YYCURSOR;
if (yych <= '0') goto yy305;
yy310:
++YYCURSOR;
YYCURSOR = yyt1;
-#line 386 "../src/parse/lex.re"
+#line 399 "../src/parse/lex.re"
{
set_sourceline ();
return TOKEN_LINE_INFO;
}
-#line 1789 "src/parse/lex.cc"
+#line 1796 "src/parse/lex.cc"
yy312:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy310;
if (yych == '\n') goto yy257;
goto yy313;
}
-#line 406 "../src/parse/lex.re"
+#line 419 "../src/parse/lex.re"
}
bool Scanner::lex_namedef_context_re2c()
{
-#line 1822 "src/parse/lex.cc"
+#line 1829 "src/parse/lex.cc"
{
YYCTYPE yych;
static const unsigned char yybm[] = {
}
}
yy319:
-#line 413 "../src/parse/lex.re"
+#line 426 "../src/parse/lex.re"
{ return false; }
-#line 1879 "src/parse/lex.cc"
+#line 1886 "src/parse/lex.cc"
yy320:
++YYCURSOR;
if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
if (yych == '>') goto yy322;
++YYCURSOR;
YYCURSOR = yyt1;
-#line 412 "../src/parse/lex.re"
+#line 425 "../src/parse/lex.re"
{ return true; }
-#line 1898 "src/parse/lex.cc"
+#line 1905 "src/parse/lex.cc"
}
-#line 414 "../src/parse/lex.re"
+#line 427 "../src/parse/lex.re"
}
bool Scanner::lex_namedef_context_flex()
{
-#line 1907 "src/parse/lex.cc"
+#line 1914 "src/parse/lex.cc"
{
YYCTYPE yych;
static const unsigned char yybm[] = {
yyt1 = YYCURSOR;
goto yy329;
}
-#line 422 "../src/parse/lex.re"
+#line 435 "../src/parse/lex.re"
{ return false; }
-#line 1956 "src/parse/lex.cc"
+#line 1963 "src/parse/lex.cc"
yy329:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
if (yych == '{') goto yy332;
}
YYCURSOR = yyt1;
-#line 421 "../src/parse/lex.re"
+#line 434 "../src/parse/lex.re"
{ return true; }
-#line 1973 "src/parse/lex.cc"
+#line 1980 "src/parse/lex.cc"
yy332:
++YYCURSOR;
YYCURSOR = yyt1;
-#line 420 "../src/parse/lex.re"
+#line 433 "../src/parse/lex.re"
{ return false; }
-#line 1979 "src/parse/lex.cc"
+#line 1986 "src/parse/lex.cc"
}
-#line 423 "../src/parse/lex.re"
+#line 436 "../src/parse/lex.re"
}
int kind = TOKEN_CLIST;
CondList *cl = new CondList;
-#line 1990 "src/parse/lex.cc"
+#line 1997 "src/parse/lex.cc"
{
YYCTYPE yych;
static const unsigned char yybm[] = {
if (yych <= '!') goto yy338;
if (yych == '>') goto yy341;
yy337:
-#line 433 "../src/parse/lex.re"
+#line 446 "../src/parse/lex.re"
{ goto cond; }
-#line 2042 "src/parse/lex.cc"
+#line 2049 "src/parse/lex.cc"
yy338:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = (YYCTYPE)*YYCURSOR;
if (yych == '\t') goto yy338;
if (yych == ' ') goto yy338;
-#line 431 "../src/parse/lex.re"
+#line 444 "../src/parse/lex.re"
{ kind = TOKEN_CSETUP; goto cond; }
-#line 2051 "src/parse/lex.cc"
+#line 2058 "src/parse/lex.cc"
yy341:
++YYCURSOR;
-#line 432 "../src/parse/lex.re"
+#line 445 "../src/parse/lex.re"
{ kind = TOKEN_CZERO; goto end; }
-#line 2056 "src/parse/lex.cc"
+#line 2063 "src/parse/lex.cc"
}
-#line 434 "../src/parse/lex.re"
+#line 447 "../src/parse/lex.re"
cond:
tok = cur;
-#line 2063 "src/parse/lex.cc"
+#line 2070 "src/parse/lex.cc"
{
YYCTYPE yych;
static const unsigned char yybm[] = {
}
yy345:
++YYCURSOR;
-#line 440 "../src/parse/lex.re"
+#line 453 "../src/parse/lex.re"
{ goto error; }
-#line 2117 "src/parse/lex.cc"
+#line 2124 "src/parse/lex.cc"
yy347:
++YYCURSOR;
-#line 439 "../src/parse/lex.re"
+#line 452 "../src/parse/lex.re"
{ if (!cl->empty()) goto error; cl->insert("*"); goto next; }
-#line 2122 "src/parse/lex.cc"
+#line 2129 "src/parse/lex.cc"
yy349:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
if (yybm[0+yych] & 128) {
goto yy349;
}
-#line 438 "../src/parse/lex.re"
+#line 451 "../src/parse/lex.re"
{ cl->insert(getstr(tok, cur)); goto next; }
-#line 2132 "src/parse/lex.cc"
+#line 2139 "src/parse/lex.cc"
}
-#line 441 "../src/parse/lex.re"
+#line 454 "../src/parse/lex.re"
next:
-#line 2138 "src/parse/lex.cc"
+#line 2145 "src/parse/lex.cc"
{
YYCTYPE yych;
static const unsigned char yybm[] = {
}
++YYCURSOR;
yy355:
-#line 446 "../src/parse/lex.re"
+#line 459 "../src/parse/lex.re"
{ goto error; }
-#line 2191 "src/parse/lex.cc"
+#line 2198 "src/parse/lex.cc"
yy356:
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
if (yych <= ' ') {
if (yybm[0+yych] & 128) {
goto yy357;
}
-#line 444 "../src/parse/lex.re"
+#line 457 "../src/parse/lex.re"
{ goto cond; }
-#line 2215 "src/parse/lex.cc"
+#line 2222 "src/parse/lex.cc"
yy360:
++YYCURSOR;
-#line 445 "../src/parse/lex.re"
+#line 458 "../src/parse/lex.re"
{ goto end; }
-#line 2220 "src/parse/lex.cc"
+#line 2227 "src/parse/lex.cc"
yy362:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
YYCURSOR = YYMARKER;
goto yy355;
}
-#line 447 "../src/parse/lex.re"
+#line 460 "../src/parse/lex.re"
end:
yylval.clist = cl;
tok = cur;
code:
-#line 2254 "src/parse/lex.cc"
+#line 2261 "src/parse/lex.cc"
{
YYCTYPE yych;
if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
}
yy367:
++YYCURSOR;
-#line 472 "../src/parse/lex.re"
+#line 485 "../src/parse/lex.re"
{ fail_if_eof(); goto code; }
-#line 2284 "src/parse/lex.cc"
+#line 2291 "src/parse/lex.cc"
yy369:
++YYCURSOR;
yy370:
-#line 477 "../src/parse/lex.re"
+#line 490 "../src/parse/lex.re"
{ goto code; }
-#line 2290 "src/parse/lex.cc"
+#line 2297 "src/parse/lex.cc"
yy371:
yych = (YYCTYPE)*++YYCURSOR;
if (yych <= '\f') {
if (yych == ' ') goto yy379;
}
yy372:
-#line 463 "../src/parse/lex.re"
+#line 476 "../src/parse/lex.re"
{
next_line();
while (isspace(tok[0])) ++tok;
yylval.code = new Code(loc, getstr(tok, p));
return;
}
-#line 2310 "src/parse/lex.cc"
+#line 2317 "src/parse/lex.cc"
yy373:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy371;
goto yy370;
yy374:
++YYCURSOR;
-#line 476 "../src/parse/lex.re"
+#line 489 "../src/parse/lex.re"
{ lex_string(cur[-1]); goto code; }
-#line 2319 "src/parse/lex.cc"
+#line 2326 "src/parse/lex.cc"
yy376:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '*') goto yy381;
goto yy370;
yy377:
++YYCURSOR;
-#line 473 "../src/parse/lex.re"
+#line 486 "../src/parse/lex.re"
{ msg.fatal(cur_loc(), "Curly braces are not allowed after ':='"); }
-#line 2329 "src/parse/lex.cc"
+#line 2336 "src/parse/lex.cc"
yy379:
++YYCURSOR;
YYCURSOR -= 1;
-#line 462 "../src/parse/lex.re"
+#line 475 "../src/parse/lex.re"
{ next_line(); goto code; }
-#line 2335 "src/parse/lex.cc"
+#line 2342 "src/parse/lex.cc"
yy381:
++YYCURSOR;
-#line 474 "../src/parse/lex.re"
+#line 487 "../src/parse/lex.re"
{ lex_c_comment(); goto code; }
-#line 2340 "src/parse/lex.cc"
+#line 2347 "src/parse/lex.cc"
yy383:
++YYCURSOR;
-#line 475 "../src/parse/lex.re"
+#line 488 "../src/parse/lex.re"
{ lex_cpp_comment(); goto code; }
-#line 2345 "src/parse/lex.cc"
+#line 2352 "src/parse/lex.cc"
}
-#line 478 "../src/parse/lex.re"
+#line 491 "../src/parse/lex.re"
}
uint32_t depth = 1;
code:
-#line 2357 "src/parse/lex.cc"
+#line 2364 "src/parse/lex.cc"
{
YYCTYPE yych;
static const unsigned char yybm[] = {
}
yy387:
++YYCURSOR;
-#line 498 "../src/parse/lex.re"
+#line 511 "../src/parse/lex.re"
{ fail_if_eof(); goto code; }
-#line 2421 "src/parse/lex.cc"
+#line 2428 "src/parse/lex.cc"
yy389:
++YYCURSOR;
yy390:
-#line 502 "../src/parse/lex.re"
+#line 515 "../src/parse/lex.re"
{ goto code; }
-#line 2427 "src/parse/lex.cc"
+#line 2434 "src/parse/lex.cc"
yy391:
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
if (yybm[0+yych] & 32) {
}
if (yych == '#') goto yy404;
yy392:
-#line 497 "../src/parse/lex.re"
+#line 510 "../src/parse/lex.re"
{ next_line(); goto code; }
-#line 2437 "src/parse/lex.cc"
+#line 2444 "src/parse/lex.cc"
yy393:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy391;
goto yy390;
yy394:
++YYCURSOR;
-#line 501 "../src/parse/lex.re"
+#line 514 "../src/parse/lex.re"
{ lex_string(cur[-1]); goto code; }
-#line 2446 "src/parse/lex.cc"
+#line 2453 "src/parse/lex.cc"
yy396:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '*') goto yy406;
goto yy390;
yy397:
++YYCURSOR;
-#line 495 "../src/parse/lex.re"
+#line 508 "../src/parse/lex.re"
{ ++depth; goto code; }
-#line 2456 "src/parse/lex.cc"
+#line 2463 "src/parse/lex.cc"
yy399:
++YYCURSOR;
-#line 487 "../src/parse/lex.re"
+#line 500 "../src/parse/lex.re"
{
if (--depth == 0) {
yylval.code = new Code(loc, getstr(tok, cur));
}
goto code;
}
-#line 2467 "src/parse/lex.cc"
+#line 2474 "src/parse/lex.cc"
yy401:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
}
yy406:
++YYCURSOR;
-#line 499 "../src/parse/lex.re"
+#line 512 "../src/parse/lex.re"
{ lex_c_comment(); goto code; }
-#line 2495 "src/parse/lex.cc"
+#line 2502 "src/parse/lex.cc"
yy408:
++YYCURSOR;
-#line 500 "../src/parse/lex.re"
+#line 513 "../src/parse/lex.re"
{ lex_cpp_comment(); goto code; }
-#line 2500 "src/parse/lex.cc"
+#line 2507 "src/parse/lex.cc"
yy410:
yych = (YYCTYPE)*++YYCURSOR;
if (yych != 'i') goto yy403;
yy420:
++YYCURSOR;
YYCURSOR = yyt1;
-#line 496 "../src/parse/lex.re"
+#line 509 "../src/parse/lex.re"
{ set_sourceline (); goto code; }
-#line 2559 "src/parse/lex.cc"
+#line 2566 "src/parse/lex.cc"
yy422:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy420;
if (yych == '\n') goto yy403;
goto yy423;
}
-#line 503 "../src/parse/lex.re"
+#line 516 "../src/parse/lex.re"
}
{
loop:
-#line 2593 "src/parse/lex.cc"
+#line 2600 "src/parse/lex.cc"
{
YYCTYPE yych;
if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
}
yy429:
++YYCURSOR;
-#line 513 "../src/parse/lex.re"
+#line 526 "../src/parse/lex.re"
{ fail_if_eof(); goto loop; }
-#line 2621 "src/parse/lex.cc"
+#line 2628 "src/parse/lex.cc"
yy431:
++YYCURSOR;
yy432:
-#line 514 "../src/parse/lex.re"
+#line 527 "../src/parse/lex.re"
{ goto loop; }
-#line 2627 "src/parse/lex.cc"
+#line 2634 "src/parse/lex.cc"
yy433:
++YYCURSOR;
-#line 512 "../src/parse/lex.re"
+#line 525 "../src/parse/lex.re"
{ next_line(); goto loop; }
-#line 2632 "src/parse/lex.cc"
+#line 2639 "src/parse/lex.cc"
yy435:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy433;
goto yy432;
yy436:
++YYCURSOR;
-#line 510 "../src/parse/lex.re"
+#line 523 "../src/parse/lex.re"
{ if (cur[-1] == delim) return; else goto loop; }
-#line 2641 "src/parse/lex.cc"
+#line 2648 "src/parse/lex.cc"
yy438:
yych = (YYCTYPE)*++YYCURSOR;
if (yych <= '&') {
}
yy439:
++YYCURSOR;
-#line 511 "../src/parse/lex.re"
+#line 524 "../src/parse/lex.re"
{ goto loop; }
-#line 2654 "src/parse/lex.cc"
+#line 2661 "src/parse/lex.cc"
}
-#line 515 "../src/parse/lex.re"
+#line 528 "../src/parse/lex.re"
}
{
loop:
-#line 2664 "src/parse/lex.cc"
+#line 2671 "src/parse/lex.cc"
{
YYCTYPE yych;
if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
}
yy443:
++YYCURSOR;
-#line 524 "../src/parse/lex.re"
+#line 537 "../src/parse/lex.re"
{ fail_if_eof(); goto loop; }
-#line 2682 "src/parse/lex.cc"
+#line 2689 "src/parse/lex.cc"
yy445:
++YYCURSOR;
yy446:
-#line 525 "../src/parse/lex.re"
+#line 538 "../src/parse/lex.re"
{ goto loop; }
-#line 2688 "src/parse/lex.cc"
+#line 2695 "src/parse/lex.cc"
yy447:
++YYCURSOR;
-#line 523 "../src/parse/lex.re"
+#line 536 "../src/parse/lex.re"
{ next_line(); goto loop; }
-#line 2693 "src/parse/lex.cc"
+#line 2700 "src/parse/lex.cc"
yy449:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy447;
yych = (YYCTYPE)*++YYCURSOR;
if (yych != '/') goto yy446;
++YYCURSOR;
-#line 522 "../src/parse/lex.re"
+#line 535 "../src/parse/lex.re"
{ return; }
-#line 2704 "src/parse/lex.cc"
+#line 2711 "src/parse/lex.cc"
}
-#line 526 "../src/parse/lex.re"
+#line 539 "../src/parse/lex.re"
}
{
loop:
-#line 2714 "src/parse/lex.cc"
+#line 2721 "src/parse/lex.cc"
{
YYCTYPE yych;
if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
}
yy455:
++YYCURSOR;
-#line 534 "../src/parse/lex.re"
+#line 547 "../src/parse/lex.re"
{ fail_if_eof(); goto loop; }
-#line 2731 "src/parse/lex.cc"
+#line 2738 "src/parse/lex.cc"
yy457:
++YYCURSOR;
yy458:
-#line 535 "../src/parse/lex.re"
+#line 548 "../src/parse/lex.re"
{ goto loop; }
-#line 2737 "src/parse/lex.cc"
+#line 2744 "src/parse/lex.cc"
yy459:
++YYCURSOR;
-#line 533 "../src/parse/lex.re"
+#line 546 "../src/parse/lex.re"
{ next_line(); return; }
-#line 2742 "src/parse/lex.cc"
+#line 2749 "src/parse/lex.cc"
yy461:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy459;
goto yy458;
}
-#line 536 "../src/parse/lex.re"
+#line 549 "../src/parse/lex.re"
}
fst:
tok = cur;
-#line 2761 "src/parse/lex.cc"
+#line 2768 "src/parse/lex.cc"
{
YYCTYPE yych;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = (YYCTYPE)*YYCURSOR;
if (yych == ']') goto yy465;
-#line 549 "../src/parse/lex.re"
+#line 562 "../src/parse/lex.re"
{ l = lex_cls_chr(); goto snd; }
-#line 2769 "src/parse/lex.cc"
+#line 2776 "src/parse/lex.cc"
yy465:
++YYCURSOR;
-#line 548 "../src/parse/lex.re"
+#line 561 "../src/parse/lex.re"
{ return ast_cls(loc0, cls, neg); }
-#line 2774 "src/parse/lex.cc"
+#line 2781 "src/parse/lex.cc"
}
-#line 550 "../src/parse/lex.re"
+#line 563 "../src/parse/lex.re"
snd:
-#line 2780 "src/parse/lex.cc"
+#line 2787 "src/parse/lex.cc"
{
YYCTYPE yych;
if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = (YYCTYPE)*(YYMARKER = YYCURSOR);
if (yych == '-') goto yy470;
yy469:
-#line 553 "../src/parse/lex.re"
+#line 566 "../src/parse/lex.re"
{ u = l; goto add; }
-#line 2789 "src/parse/lex.cc"
+#line 2796 "src/parse/lex.cc"
yy470:
yych = (YYCTYPE)*++YYCURSOR;
if (yych != ']') goto yy472;
yy472:
++YYCURSOR;
YYCURSOR -= 1;
-#line 554 "../src/parse/lex.re"
+#line 567 "../src/parse/lex.re"
{
u = lex_cls_chr();
if (l > u) {
}
goto add;
}
-#line 2807 "src/parse/lex.cc"
+#line 2814 "src/parse/lex.cc"
}
-#line 562 "../src/parse/lex.re"
+#line 575 "../src/parse/lex.re"
add:
cls->push_back(ASTRange(l, u, loc));
{
tok = cur;
const loc_t &loc = cur_loc();
- #line 599 "../src/parse/lex.re"
+ #line 612 "../src/parse/lex.re"
if (globopts->input_encoding == Enc::ASCII) {
-#line 2825 "src/parse/lex.cc"
+#line 2832 "src/parse/lex.cc"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
}
yy476:
++YYCURSOR;
-#line 580 "../src/parse/lex.re"
+#line 593 "../src/parse/lex.re"
{ fail_if_eof(); return 0; }
-#line 2844 "src/parse/lex.cc"
+#line 2851 "src/parse/lex.cc"
yy478:
++YYCURSOR;
yy479:
-#line 582 "../src/parse/lex.re"
+#line 595 "../src/parse/lex.re"
{ return decode(tok); }
-#line 2850 "src/parse/lex.cc"
+#line 2857 "src/parse/lex.cc"
yy480:
++YYCURSOR;
-#line 574 "../src/parse/lex.re"
+#line 587 "../src/parse/lex.re"
{ msg.fatal(loc, "newline in character class"); }
-#line 2855 "src/parse/lex.cc"
+#line 2862 "src/parse/lex.cc"
yy482:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy480;
}
}
yy484:
-#line 577 "../src/parse/lex.re"
+#line 590 "../src/parse/lex.re"
{ msg.fatal(loc, "syntax error in escape sequence"); }
-#line 2916 "src/parse/lex.cc"
+#line 2923 "src/parse/lex.cc"
yy485:
++YYCURSOR;
yy486:
-#line 595 "../src/parse/lex.re"
+#line 608 "../src/parse/lex.re"
{
msg.warn.useless_escape(loc, tok, cur);
return decode(tok + 1);
}
-#line 2925 "src/parse/lex.cc"
+#line 2932 "src/parse/lex.cc"
yy487:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy480;
goto yy486;
yy488:
++YYCURSOR;
-#line 593 "../src/parse/lex.re"
+#line 606 "../src/parse/lex.re"
{ return static_cast<uint8_t>('-'); }
-#line 2934 "src/parse/lex.cc"
+#line 2941 "src/parse/lex.cc"
yy490:
yyaccept = 0;
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
if (yych <= '/') goto yy491;
if (yych <= '7') goto yy515;
yy491:
-#line 576 "../src/parse/lex.re"
+#line 589 "../src/parse/lex.re"
{ msg.fatal(loc, "syntax error in octal escape sequence"); }
-#line 2943 "src/parse/lex.cc"
+#line 2950 "src/parse/lex.cc"
yy492:
++YYCURSOR;
goto yy491;
if (yych <= 'f') goto yy517;
}
yy494:
-#line 575 "../src/parse/lex.re"
+#line 588 "../src/parse/lex.re"
{ msg.fatal(loc, "syntax error in hexadecimal escape sequence"); }
-#line 2961 "src/parse/lex.cc"
+#line 2968 "src/parse/lex.cc"
yy495:
yyaccept = 1;
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
}
yy496:
++YYCURSOR;
-#line 592 "../src/parse/lex.re"
+#line 605 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\\'); }
-#line 2979 "src/parse/lex.cc"
+#line 2986 "src/parse/lex.cc"
yy498:
++YYCURSOR;
-#line 594 "../src/parse/lex.re"
+#line 607 "../src/parse/lex.re"
{ return static_cast<uint8_t>(']'); }
-#line 2984 "src/parse/lex.cc"
+#line 2991 "src/parse/lex.cc"
yy500:
++YYCURSOR;
-#line 585 "../src/parse/lex.re"
+#line 598 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\a'); }
-#line 2989 "src/parse/lex.cc"
+#line 2996 "src/parse/lex.cc"
yy502:
++YYCURSOR;
-#line 586 "../src/parse/lex.re"
+#line 599 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\b'); }
-#line 2994 "src/parse/lex.cc"
+#line 3001 "src/parse/lex.cc"
yy504:
++YYCURSOR;
-#line 587 "../src/parse/lex.re"
+#line 600 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\f'); }
-#line 2999 "src/parse/lex.cc"
+#line 3006 "src/parse/lex.cc"
yy506:
++YYCURSOR;
-#line 588 "../src/parse/lex.re"
+#line 601 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\n'); }
-#line 3004 "src/parse/lex.cc"
+#line 3011 "src/parse/lex.cc"
yy508:
++YYCURSOR;
-#line 589 "../src/parse/lex.re"
+#line 602 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\r'); }
-#line 3009 "src/parse/lex.cc"
+#line 3016 "src/parse/lex.cc"
yy510:
++YYCURSOR;
-#line 590 "../src/parse/lex.re"
+#line 603 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\t'); }
-#line 3014 "src/parse/lex.cc"
+#line 3021 "src/parse/lex.cc"
yy512:
++YYCURSOR;
-#line 591 "../src/parse/lex.re"
+#line 604 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\v'); }
-#line 3019 "src/parse/lex.cc"
+#line 3026 "src/parse/lex.cc"
yy514:
yyaccept = 1;
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
}
yy520:
++YYCURSOR;
-#line 584 "../src/parse/lex.re"
+#line 597 "../src/parse/lex.re"
{ return unesc_oct(tok, cur); }
-#line 3084 "src/parse/lex.cc"
+#line 3091 "src/parse/lex.cc"
yy522:
yych = (YYCTYPE)*++YYCURSOR;
if (yych <= '@') {
}
yy524:
++YYCURSOR;
-#line 583 "../src/parse/lex.re"
+#line 596 "../src/parse/lex.re"
{ return unesc_hex(tok, cur); }
-#line 3113 "src/parse/lex.cc"
+#line 3120 "src/parse/lex.cc"
yy526:
yych = (YYCTYPE)*++YYCURSOR;
if (yych <= '@') {
goto yy516;
}
}
-#line 601 "../src/parse/lex.re"
+#line 614 "../src/parse/lex.re"
}
else {
-#line 3142 "src/parse/lex.cc"
+#line 3149 "src/parse/lex.cc"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
}
yy530:
++YYCURSOR;
-#line 580 "../src/parse/lex.re"
+#line 593 "../src/parse/lex.re"
{ fail_if_eof(); return 0; }
-#line 3175 "src/parse/lex.cc"
+#line 3182 "src/parse/lex.cc"
yy532:
++YYCURSOR;
yy533:
-#line 582 "../src/parse/lex.re"
+#line 595 "../src/parse/lex.re"
{ return decode(tok); }
-#line 3181 "src/parse/lex.cc"
+#line 3188 "src/parse/lex.cc"
yy534:
++YYCURSOR;
-#line 574 "../src/parse/lex.re"
+#line 587 "../src/parse/lex.re"
{ msg.fatal(loc, "newline in character class"); }
-#line 3186 "src/parse/lex.cc"
+#line 3193 "src/parse/lex.cc"
yy536:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy534;
}
}
yy538:
-#line 577 "../src/parse/lex.re"
+#line 590 "../src/parse/lex.re"
{ msg.fatal(loc, "syntax error in escape sequence"); }
-#line 3278 "src/parse/lex.cc"
+#line 3285 "src/parse/lex.cc"
yy539:
++YYCURSOR;
yy540:
-#line 578 "../src/parse/lex.re"
+#line 591 "../src/parse/lex.re"
{ msg.fatal(loc, "syntax error"); }
-#line 3284 "src/parse/lex.cc"
+#line 3291 "src/parse/lex.cc"
yy541:
yych = (YYCTYPE)*++YYCURSOR;
if (yych <= 0x7F) goto yy540;
yy547:
++YYCURSOR;
yy548:
-#line 595 "../src/parse/lex.re"
+#line 608 "../src/parse/lex.re"
{
msg.warn.useless_escape(loc, tok, cur);
return decode(tok + 1);
}
-#line 3328 "src/parse/lex.cc"
+#line 3335 "src/parse/lex.cc"
yy549:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy534;
goto yy548;
yy550:
++YYCURSOR;
-#line 593 "../src/parse/lex.re"
+#line 606 "../src/parse/lex.re"
{ return static_cast<uint8_t>('-'); }
-#line 3337 "src/parse/lex.cc"
+#line 3344 "src/parse/lex.cc"
yy552:
yyaccept = 2;
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
if (yych <= '/') goto yy553;
if (yych <= '7') goto yy586;
yy553:
-#line 576 "../src/parse/lex.re"
+#line 589 "../src/parse/lex.re"
{ msg.fatal(loc, "syntax error in octal escape sequence"); }
-#line 3346 "src/parse/lex.cc"
+#line 3353 "src/parse/lex.cc"
yy554:
++YYCURSOR;
goto yy553;
if (yych <= 'f') goto yy587;
}
yy556:
-#line 575 "../src/parse/lex.re"
+#line 588 "../src/parse/lex.re"
{ msg.fatal(loc, "syntax error in hexadecimal escape sequence"); }
-#line 3364 "src/parse/lex.cc"
+#line 3371 "src/parse/lex.cc"
yy557:
yyaccept = 3;
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
}
yy558:
++YYCURSOR;
-#line 592 "../src/parse/lex.re"
+#line 605 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\\'); }
-#line 3382 "src/parse/lex.cc"
+#line 3389 "src/parse/lex.cc"
yy560:
++YYCURSOR;
-#line 594 "../src/parse/lex.re"
+#line 607 "../src/parse/lex.re"
{ return static_cast<uint8_t>(']'); }
-#line 3387 "src/parse/lex.cc"
+#line 3394 "src/parse/lex.cc"
yy562:
++YYCURSOR;
-#line 585 "../src/parse/lex.re"
+#line 598 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\a'); }
-#line 3392 "src/parse/lex.cc"
+#line 3399 "src/parse/lex.cc"
yy564:
++YYCURSOR;
-#line 586 "../src/parse/lex.re"
+#line 599 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\b'); }
-#line 3397 "src/parse/lex.cc"
+#line 3404 "src/parse/lex.cc"
yy566:
++YYCURSOR;
-#line 587 "../src/parse/lex.re"
+#line 600 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\f'); }
-#line 3402 "src/parse/lex.cc"
+#line 3409 "src/parse/lex.cc"
yy568:
++YYCURSOR;
-#line 588 "../src/parse/lex.re"
+#line 601 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\n'); }
-#line 3407 "src/parse/lex.cc"
+#line 3414 "src/parse/lex.cc"
yy570:
++YYCURSOR;
-#line 589 "../src/parse/lex.re"
+#line 602 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\r'); }
-#line 3412 "src/parse/lex.cc"
+#line 3419 "src/parse/lex.cc"
yy572:
++YYCURSOR;
-#line 590 "../src/parse/lex.re"
+#line 603 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\t'); }
-#line 3417 "src/parse/lex.cc"
+#line 3424 "src/parse/lex.cc"
yy574:
++YYCURSOR;
-#line 591 "../src/parse/lex.re"
+#line 604 "../src/parse/lex.re"
{ return static_cast<uint8_t>('\v'); }
-#line 3422 "src/parse/lex.cc"
+#line 3429 "src/parse/lex.cc"
yy576:
yyaccept = 3;
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
}
yy590:
++YYCURSOR;
-#line 584 "../src/parse/lex.re"
+#line 597 "../src/parse/lex.re"
{ return unesc_oct(tok, cur); }
-#line 3535 "src/parse/lex.cc"
+#line 3542 "src/parse/lex.cc"
yy592:
yych = (YYCTYPE)*++YYCURSOR;
if (yych <= '@') {
}
yy594:
++YYCURSOR;
-#line 583 "../src/parse/lex.re"
+#line 596 "../src/parse/lex.re"
{ return unesc_hex(tok, cur); }
-#line 3564 "src/parse/lex.cc"
+#line 3571 "src/parse/lex.cc"
yy596:
yych = (YYCTYPE)*++YYCURSOR;
if (yych <= '@') {
goto yy578;
}
}
-#line 604 "../src/parse/lex.re"
- #line 604 "../src/parse/lex.re"
+#line 617 "../src/parse/lex.re"
+ #line 617 "../src/parse/lex.re"
}
}
tok = cur;
ast.loc = cur_loc();
- #line 638 "../src/parse/lex.re"
+ #line 651 "../src/parse/lex.re"
if (globopts->input_encoding == Enc::ASCII) {
-#line 3603 "src/parse/lex.cc"
+#line 3610 "src/parse/lex.cc"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
}
yy600:
++YYCURSOR;
-#line 620 "../src/parse/lex.re"
+#line 633 "../src/parse/lex.re"
{ fail_if_eof(); ast.chr = 0; return true; }
-#line 3622 "src/parse/lex.cc"
+#line 3629 "src/parse/lex.cc"
yy602:
++YYCURSOR;
yy603:
-#line 622 "../src/parse/lex.re"
+#line 635 "../src/parse/lex.re"
{ ast.chr = decode(tok); return tok[0] != quote; }
-#line 3628 "src/parse/lex.cc"
+#line 3635 "src/parse/lex.cc"
yy604:
++YYCURSOR;
-#line 614 "../src/parse/lex.re"
+#line 627 "../src/parse/lex.re"
{ msg.fatal(ast.loc, "newline in character string"); }
-#line 3633 "src/parse/lex.cc"
+#line 3640 "src/parse/lex.cc"
yy606:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy604;
}
}
yy608:
-#line 617 "../src/parse/lex.re"
+#line 630 "../src/parse/lex.re"
{ msg.fatal(ast.loc, "syntax error in escape sequence"); }
-#line 3689 "src/parse/lex.cc"
+#line 3696 "src/parse/lex.cc"
yy609:
++YYCURSOR;
yy610:
-#line 633 "../src/parse/lex.re"
+#line 646 "../src/parse/lex.re"
{
ast.chr = decode(tok + 1);
if (tok[1] != quote) msg.warn.useless_escape(ast.loc, tok, cur);
return true;
}
-#line 3699 "src/parse/lex.cc"
+#line 3706 "src/parse/lex.cc"
yy611:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy604;
if (yych <= '/') goto yy613;
if (yych <= '7') goto yy635;
yy613:
-#line 616 "../src/parse/lex.re"
+#line 629 "../src/parse/lex.re"
{ msg.fatal(ast.loc, "syntax error in octal escape sequence"); }
-#line 3712 "src/parse/lex.cc"
+#line 3719 "src/parse/lex.cc"
yy614:
++YYCURSOR;
goto yy613;
if (yych <= 'f') goto yy637;
}
yy616:
-#line 615 "../src/parse/lex.re"
+#line 628 "../src/parse/lex.re"
{ msg.fatal(ast.loc, "syntax error in hexadecimal escape sequence"); }
-#line 3730 "src/parse/lex.cc"
+#line 3737 "src/parse/lex.cc"
yy617:
yyaccept = 1;
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
}
yy618:
++YYCURSOR;
-#line 632 "../src/parse/lex.re"
+#line 645 "../src/parse/lex.re"
{ ast.chr = static_cast<uint8_t>('\\'); return true; }
-#line 3748 "src/parse/lex.cc"
+#line 3755 "src/parse/lex.cc"
yy620:
++YYCURSOR;
-#line 625 "../src/parse/lex.re"
+#line 638 "../src/parse/lex.re"
{ ast.chr = static_cast<uint8_t>('\a'); return true; }
-#line 3753 "src/parse/lex.cc"
+#line 3760 "src/parse/lex.cc"
yy622:
++YYCURSOR;
-#line 626 "../src/parse/lex.re"
+#line 639 "../src/parse/lex.re"
{ ast.chr = static_cast<uint8_t>('\b'); return true; }
-#line 3758 "src/parse/lex.cc"
+#line 3765 "src/parse/lex.cc"
yy624:
++YYCURSOR;
-#line 627 "../src/parse/lex.re"
+#line 640 "../src/parse/lex.re"
{ ast.chr = static_cast<uint8_t>('\f'); return true; }
-#line 3763 "src/parse/lex.cc"
+#line 3770 "src/parse/lex.cc"
yy626:
++YYCURSOR;
-#line 628 "../src/parse/lex.re"
+#line 641 "../src/parse/lex.re"
{ ast.chr = static_cast<uint8_t>('\n'); return true; }
-#line 3768 "src/parse/lex.cc"
+#line 3775 "src/parse/lex.cc"
yy628:
++YYCURSOR;
-#line 629 "../src/parse/lex.re"
+#line 642 "../src/parse/lex.re"
{ ast.chr = static_cast<uint8_t>('\r'); return true; }
-#line 3773 "src/parse/lex.cc"
+#line 3780 "src/parse/lex.cc"
yy630:
++YYCURSOR;
-#line 630 "../src/parse/lex.re"
+#line 643 "../src/parse/lex.re"
{ ast.chr = static_cast<uint8_t>('\t'); return true; }
-#line 3778 "src/parse/lex.cc"
+#line 3785 "src/parse/lex.cc"
yy632:
++YYCURSOR;
-#line 631 "../src/parse/lex.re"
+#line 644 "../src/parse/lex.re"
{ ast.chr = static_cast<uint8_t>('\v'); return true; }
-#line 3783 "src/parse/lex.cc"
+#line 3790 "src/parse/lex.cc"
yy634:
yyaccept = 1;
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
}
yy640:
++YYCURSOR;
-#line 624 "../src/parse/lex.re"
+#line 637 "../src/parse/lex.re"
{ ast.chr = unesc_oct(tok, cur); return true; }
-#line 3848 "src/parse/lex.cc"
+#line 3855 "src/parse/lex.cc"
yy642:
yych = (YYCTYPE)*++YYCURSOR;
if (yych <= '@') {
}
yy644:
++YYCURSOR;
-#line 623 "../src/parse/lex.re"
+#line 636 "../src/parse/lex.re"
{ ast.chr = unesc_hex(tok, cur); return true; }
-#line 3877 "src/parse/lex.cc"
+#line 3884 "src/parse/lex.cc"
yy646:
yych = (YYCTYPE)*++YYCURSOR;
if (yych <= '@') {
goto yy636;
}
}
-#line 640 "../src/parse/lex.re"
+#line 653 "../src/parse/lex.re"
}
else {
-#line 3906 "src/parse/lex.cc"
+#line 3913 "src/parse/lex.cc"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
}
yy650:
++YYCURSOR;
-#line 620 "../src/parse/lex.re"
+#line 633 "../src/parse/lex.re"
{ fail_if_eof(); ast.chr = 0; return true; }
-#line 3939 "src/parse/lex.cc"
+#line 3946 "src/parse/lex.cc"
yy652:
++YYCURSOR;
yy653:
-#line 622 "../src/parse/lex.re"
+#line 635 "../src/parse/lex.re"
{ ast.chr = decode(tok); return tok[0] != quote; }
-#line 3945 "src/parse/lex.cc"
+#line 3952 "src/parse/lex.cc"
yy654:
++YYCURSOR;
-#line 614 "../src/parse/lex.re"
+#line 627 "../src/parse/lex.re"
{ msg.fatal(ast.loc, "newline in character string"); }
-#line 3950 "src/parse/lex.cc"
+#line 3957 "src/parse/lex.cc"
yy656:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy654;
}
}
yy658:
-#line 617 "../src/parse/lex.re"
+#line 630 "../src/parse/lex.re"
{ msg.fatal(ast.loc, "syntax error in escape sequence"); }
-#line 4035 "src/parse/lex.cc"
+#line 4042 "src/parse/lex.cc"
yy659:
++YYCURSOR;
yy660:
-#line 618 "../src/parse/lex.re"
+#line 631 "../src/parse/lex.re"
{ msg.fatal(ast.loc, "syntax error"); }
-#line 4041 "src/parse/lex.cc"
+#line 4048 "src/parse/lex.cc"
yy661:
yych = (YYCTYPE)*++YYCURSOR;
if (yych <= 0x7F) goto yy660;
yy667:
++YYCURSOR;
yy668:
-#line 633 "../src/parse/lex.re"
+#line 646 "../src/parse/lex.re"
{
ast.chr = decode(tok + 1);
if (tok[1] != quote) msg.warn.useless_escape(ast.loc, tok, cur);
return true;
}
-#line 4086 "src/parse/lex.cc"
+#line 4093 "src/parse/lex.cc"
yy669:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy654;
if (yych <= '/') goto yy671;
if (yych <= '7') goto yy702;
yy671:
-#line 616 "../src/parse/lex.re"
+#line 629 "../src/parse/lex.re"
{ msg.fatal(ast.loc, "syntax error in octal escape sequence"); }
-#line 4099 "src/parse/lex.cc"
+#line 4106 "src/parse/lex.cc"
yy672:
++YYCURSOR;
goto yy671;
if (yych <= 'f') goto yy703;
}
yy674:
-#line 615 "../src/parse/lex.re"
+#line 628 "../src/parse/lex.re"
{ msg.fatal(ast.loc, "syntax error in hexadecimal escape sequence"); }
-#line 4117 "src/parse/lex.cc"
+#line 4124 "src/parse/lex.cc"
yy675:
yyaccept = 3;
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
}
yy676:
++YYCURSOR;
-#line 632 "../src/parse/lex.re"
+#line 645 "../src/parse/lex.re"
{ ast.chr = static_cast<uint8_t>('\\'); return true; }
-#line 4135 "src/parse/lex.cc"
+#line 4142 "src/parse/lex.cc"
yy678:
++YYCURSOR;
-#line 625 "../src/parse/lex.re"
+#line 638 "../src/parse/lex.re"
{ ast.chr = static_cast<uint8_t>('\a'); return true; }
-#line 4140 "src/parse/lex.cc"
+#line 4147 "src/parse/lex.cc"
yy680:
++YYCURSOR;
-#line 626 "../src/parse/lex.re"
+#line 639 "../src/parse/lex.re"
{ ast.chr = static_cast<uint8_t>('\b'); return true; }
-#line 4145 "src/parse/lex.cc"
+#line 4152 "src/parse/lex.cc"
yy682:
++YYCURSOR;
-#line 627 "../src/parse/lex.re"
+#line 640 "../src/parse/lex.re"
{ ast.chr = static_cast<uint8_t>('\f'); return true; }
-#line 4150 "src/parse/lex.cc"
+#line 4157 "src/parse/lex.cc"
yy684:
++YYCURSOR;
-#line 628 "../src/parse/lex.re"
+#line 641 "../src/parse/lex.re"
{ ast.chr = static_cast<uint8_t>('\n'); return true; }
-#line 4155 "src/parse/lex.cc"
+#line 4162 "src/parse/lex.cc"
yy686:
++YYCURSOR;
-#line 629 "../src/parse/lex.re"
+#line 642 "../src/parse/lex.re"
{ ast.chr = static_cast<uint8_t>('\r'); return true; }
-#line 4160 "src/parse/lex.cc"
+#line 4167 "src/parse/lex.cc"
yy688:
++YYCURSOR;
-#line 630 "../src/parse/lex.re"
+#line 643 "../src/parse/lex.re"
{ ast.chr = static_cast<uint8_t>('\t'); return true; }
-#line 4165 "src/parse/lex.cc"
+#line 4172 "src/parse/lex.cc"
yy690:
++YYCURSOR;
-#line 631 "../src/parse/lex.re"
+#line 644 "../src/parse/lex.re"
{ ast.chr = static_cast<uint8_t>('\v'); return true; }
-#line 4170 "src/parse/lex.cc"
+#line 4177 "src/parse/lex.cc"
yy692:
yyaccept = 3;
yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
}
yy706:
++YYCURSOR;
-#line 624 "../src/parse/lex.re"
+#line 637 "../src/parse/lex.re"
{ ast.chr = unesc_oct(tok, cur); return true; }
-#line 4283 "src/parse/lex.cc"
+#line 4290 "src/parse/lex.cc"
yy708:
yych = (YYCTYPE)*++YYCURSOR;
if (yych <= '@') {
}
yy710:
++YYCURSOR;
-#line 623 "../src/parse/lex.re"
+#line 636 "../src/parse/lex.re"
{ ast.chr = unesc_hex(tok, cur); return true; }
-#line 4312 "src/parse/lex.cc"
+#line 4319 "src/parse/lex.cc"
yy712:
yych = (YYCTYPE)*++YYCURSOR;
if (yych <= '@') {
goto yy694;
}
}
-#line 643 "../src/parse/lex.re"
- #line 643 "../src/parse/lex.re"
+#line 656 "../src/parse/lex.re"
+ #line 656 "../src/parse/lex.re"
}
}
sourceline:
tok = cur;
-#line 4360 "src/parse/lex.cc"
+#line 4367 "src/parse/lex.cc"
{
YYCTYPE yych;
static const unsigned char yybm[] = {
}
}
++YYCURSOR;
-#line 685 "../src/parse/lex.re"
+#line 698 "../src/parse/lex.re"
{ --cur; return; }
-#line 4420 "src/parse/lex.cc"
+#line 4427 "src/parse/lex.cc"
yy718:
++YYCURSOR;
yy719:
-#line 686 "../src/parse/lex.re"
+#line 699 "../src/parse/lex.re"
{ goto sourceline; }
-#line 4426 "src/parse/lex.cc"
+#line 4433 "src/parse/lex.cc"
yy720:
++YYCURSOR;
-#line 684 "../src/parse/lex.re"
+#line 697 "../src/parse/lex.re"
{ pos = tok = cur; return; }
-#line 4431 "src/parse/lex.cc"
+#line 4438 "src/parse/lex.cc"
yy722:
yych = (YYCTYPE)*++YYCURSOR;
if (yych == '\n') goto yy720;
if (yybm[0+yych] & 64) {
goto yy724;
}
-#line 665 "../src/parse/lex.re"
+#line 678 "../src/parse/lex.re"
{
uint32_t l;
if (!s_to_u32_unsafe(tok, cur, l)) {
set_line(l);
goto sourceline;
}
-#line 4457 "src/parse/lex.cc"
+#line 4464 "src/parse/lex.cc"
yy727:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
goto yy719;
yy730:
++YYCURSOR;
-#line 674 "../src/parse/lex.re"
+#line 687 "../src/parse/lex.re"
{
Input &in = get_input();
std::string &name = in.escaped_name;
msg.filenames.push_back(name);
goto sourceline;
}
-#line 4484 "src/parse/lex.cc"
+#line 4491 "src/parse/lex.cc"
yy732:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
if (yych == '\n') goto yy729;
goto yy727;
}
-#line 687 "../src/parse/lex.re"
+#line 700 "../src/parse/lex.re"
}
-/* Generated by re2c 1.1.1 on Thu Mar 7 22:57:34 2019 */
+/* Generated by re2c 1.1.1 on Sat Jul 13 10:45:22 2019 */
#line 1 "../src/parse/lex_conf.re"
#include "src/util/c99_stdint.h"
#include <string>
-#include "src/codegen/output.h"
+#include "src/codegen/input_api.h"
#include "src/encoding/enc.h"
+#include "src/msg/msg.h"
+#include "src/options/opt.h"
#include "src/parse/ast.h"
#include "src/parse/scanner.h"
+#include "src/regexp/empty_class_policy.h"
#include "src/util/s_to_n32_unsafe.h"
#include "src/util/string_utils.h"
-namespace re2c
-{
-#define YYFILL(n) { if (!fill (n)) fatal("unexpected end of input"); }
+namespace re2c {
+
+#define YYFILL(n) do { if (!fill(n)) fatal("unexpected end of input"); } while(0)
// global re2c config (affects the whole file)
-#line 37 "../src/parse/lex_conf.re"
+#line 40 "../src/parse/lex_conf.re"
void Scanner::lex_conf(Opt &opts)
{
tok = cur;
-#line 27 "src/parse/lex_conf.cc"
+#line 30 "src/parse/lex_conf.cc"
{
unsigned char yych;
unsigned int yyaccept = 0;
}
}
yy2:
-#line 173 "../src/parse/lex_conf.re"
+#line 176 "../src/parse/lex_conf.re"
{
msg.fatal(tok_loc(), "unrecognized configuration '%.*s'",
static_cast<int>(cur - tok), tok);
}
-#line 113 "src/parse/lex_conf.cc"
+#line 116 "src/parse/lex_conf.cc"
yy3:
++cur;
if (lim <= cur) YYFILL(1);
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 71 "../src/parse/lex_conf.re"
+#line 74 "../src/parse/lex_conf.re"
{
const int32_t eof = lex_conf_number();
if (eof < 0) {
opts.set_eof(static_cast<uint32_t>(eof));
return;
}
-#line 240 "src/parse/lex_conf.cc"
+#line 243 "src/parse/lex_conf.cc"
yy31:
yych = (unsigned char)*++cur;
if (yych == 'g') goto yy43;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 65 "../src/parse/lex_conf.re"
+#line 68 "../src/parse/lex_conf.re"
{ lex_conf_enc(Enc::UTF8, opts); return; }
-#line 526 "src/parse/lex_conf.cc"
+#line 529 "src/parse/lex_conf.cc"
yy95:
yych = (unsigned char)*++cur;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 54 "../src/parse/lex_conf.re"
+#line 57 "../src/parse/lex_conf.re"
{
bool b = lex_conf_bool();
opts.set_posix_syntax(b);
opts.set_posix_semantics(b);
return;
}
-#line 539 "src/parse/lex_conf.cc"
+#line 542 "src/parse/lex_conf.cc"
yy97:
yych = (unsigned char)*++cur;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 48 "../src/parse/lex_conf.re"
+#line 51 "../src/parse/lex_conf.re"
{ opts.set_tags (lex_conf_bool()); return; }
-#line 547 "src/parse/lex_conf.cc"
+#line 550 "src/parse/lex_conf.cc"
yy99:
yych = (unsigned char)*++cur;
if (yych <= 'Z') {
}
}
yy100:
-#line 43 "../src/parse/lex_conf.re"
+#line 46 "../src/parse/lex_conf.re"
{ opts.set_bFlag (lex_conf_bool()); return; }
-#line 568 "src/parse/lex_conf.cc"
+#line 571 "src/parse/lex_conf.cc"
yy101:
yych = (unsigned char)*++cur;
if (yych == 'a') goto yy144;
}
}
yy103:
-#line 44 "../src/parse/lex_conf.re"
+#line 47 "../src/parse/lex_conf.re"
{ opts.set_dFlag (lex_conf_bool()); return; }
-#line 594 "src/parse/lex_conf.cc"
+#line 597 "src/parse/lex_conf.cc"
yy104:
yych = (unsigned char)*++cur;
if (yych <= '_') {
}
}
yy105:
-#line 61 "../src/parse/lex_conf.re"
+#line 64 "../src/parse/lex_conf.re"
{ lex_conf_enc(Enc::EBCDIC, opts); return; }
-#line 620 "src/parse/lex_conf.cc"
+#line 623 "src/parse/lex_conf.cc"
yy106:
yych = (unsigned char)*++cur;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 45 "../src/parse/lex_conf.re"
+#line 48 "../src/parse/lex_conf.re"
{ opts.set_gFlag (lex_conf_bool()); return; }
-#line 628 "src/parse/lex_conf.cc"
+#line 631 "src/parse/lex_conf.cc"
yy108:
yych = (unsigned char)*++cur;
if (yych <= 'Z') {
}
}
yy109:
-#line 46 "../src/parse/lex_conf.re"
+#line 49 "../src/parse/lex_conf.re"
{ opts.set_iFlag (lex_conf_bool()); return; }
-#line 649 "src/parse/lex_conf.cc"
+#line 652 "src/parse/lex_conf.cc"
yy110:
yych = (unsigned char)*++cur;
if (yych == 'e') goto yy151;
}
}
yy112:
-#line 51 "../src/parse/lex_conf.re"
+#line 54 "../src/parse/lex_conf.re"
{ opts.set_output_file (lex_conf_string()); return; }
-#line 675 "src/parse/lex_conf.cc"
+#line 678 "src/parse/lex_conf.cc"
yy113:
yych = (unsigned char)*++cur;
if (yych == 'o') goto yy154;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 47 "../src/parse/lex_conf.re"
+#line 50 "../src/parse/lex_conf.re"
{ opts.set_sFlag (lex_conf_bool()); return; }
-#line 687 "src/parse/lex_conf.cc"
+#line 690 "src/parse/lex_conf.cc"
yy116:
yych = (unsigned char)*++cur;
if (yych <= '^') {
}
}
yy117:
-#line 52 "../src/parse/lex_conf.re"
+#line 55 "../src/parse/lex_conf.re"
{ opts.set_header_file (lex_conf_string()); return; }
-#line 710 "src/parse/lex_conf.cc"
+#line 713 "src/parse/lex_conf.cc"
yy118:
yych = (unsigned char)*++cur;
if (yych <= '^') {
}
}
yy119:
-#line 62 "../src/parse/lex_conf.re"
+#line 65 "../src/parse/lex_conf.re"
{ lex_conf_enc(Enc::UTF32, opts); return; }
-#line 734 "src/parse/lex_conf.cc"
+#line 737 "src/parse/lex_conf.cc"
yy120:
yych = (unsigned char)*++cur;
if (yych <= 'Z') {
}
}
yy121:
-#line 63 "../src/parse/lex_conf.re"
+#line 66 "../src/parse/lex_conf.re"
{ lex_conf_enc(Enc::UCS2, opts); return; }
-#line 755 "src/parse/lex_conf.cc"
+#line 758 "src/parse/lex_conf.cc"
yy122:
yych = (unsigned char)*++cur;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 64 "../src/parse/lex_conf.re"
+#line 67 "../src/parse/lex_conf.re"
{ lex_conf_enc(Enc::UTF16, opts); return; }
-#line 763 "src/parse/lex_conf.cc"
+#line 766 "src/parse/lex_conf.cc"
yy124:
yych = (unsigned char)*++cur;
if (yych <= 'r') goto yy4;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 108 "../src/parse/lex_conf.re"
+#line 111 "../src/parse/lex_conf.re"
{ opts.set_yybmHexTable (lex_conf_bool()); return; }
-#line 964 "src/parse/lex_conf.cc"
+#line 967 "src/parse/lex_conf.cc"
yy172:
yych = (unsigned char)*++cur;
if (yych == 'v') goto yy212;
}
if (yych == '@') goto yy220;
yy180:
-#line 92 "../src/parse/lex_conf.re"
+#line 95 "../src/parse/lex_conf.re"
{ opts.set_condGoto (lex_conf_string ()); return; }
-#line 1003 "src/parse/lex_conf.cc"
+#line 1006 "src/parse/lex_conf.cc"
yy181:
yych = (unsigned char)*++cur;
if (yych == 'r') goto yy222;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 155 "../src/parse/lex_conf.re"
+#line 158 "../src/parse/lex_conf.re"
{ opts.set_bEmitYYCh (lex_conf_bool()); return; }
-#line 1152 "src/parse/lex_conf.cc"
+#line 1155 "src/parse/lex_conf.cc"
yy215:
yych = (unsigned char)*++cur;
if (yych == 'e') goto yy264;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 88 "../src/parse/lex_conf.re"
+#line 91 "../src/parse/lex_conf.re"
{ opts.set_condPrefix (lex_conf_string ()); return; }
-#line 1210 "src/parse/lex_conf.cc"
+#line 1213 "src/parse/lex_conf.cc"
yy225:
yych = (unsigned char)*++cur;
if (yych == 'A') goto yy271;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 141 "../src/parse/lex_conf.re"
+#line 144 "../src/parse/lex_conf.re"
{
const int32_t n = lex_conf_number ();
if (n < 0) {
opts.set_topIndent (static_cast<uint32_t> (n));
return;
}
-#line 1344 "src/parse/lex_conf.cc"
+#line 1347 "src/parse/lex_conf.cc"
yy253:
yych = (unsigned char)*++cur;
if (yych == 'l') goto yy304;
}
}
yy257:
-#line 168 "../src/parse/lex_conf.re"
+#line 171 "../src/parse/lex_conf.re"
{ opts.set_startlabel (lex_conf_string()); return; }
-#line 1381 "src/parse/lex_conf.cc"
+#line 1384 "src/parse/lex_conf.cc"
yy258:
yych = (unsigned char)*++cur;
if (yych == 't') goto yy312;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 68 "../src/parse/lex_conf.re"
+#line 71 "../src/parse/lex_conf.re"
{ lex_conf_input(opts); return; }
-#line 1531 "src/parse/lex_conf.cc"
+#line 1534 "src/parse/lex_conf.cc"
yy295:
yych = (unsigned char)*++cur;
if (yych == 'd') goto yy351;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 164 "../src/parse/lex_conf.re"
+#line 167 "../src/parse/lex_conf.re"
{ opts.set_labelPrefix (lex_conf_string ()); return; }
-#line 1583 "src/parse/lex_conf.cc"
+#line 1586 "src/parse/lex_conf.cc"
yy308:
++cur;
if (lim <= cur) YYFILL(1);
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 103 "../src/parse/lex_conf.re"
+#line 106 "../src/parse/lex_conf.re"
{ opts.set_bUseStateAbort (lex_conf_bool()); return; }
-#line 1621 "src/parse/lex_conf.cc"
+#line 1624 "src/parse/lex_conf.cc"
yy314:
yych = (unsigned char)*++cur;
if (yych == 'a') goto yy367;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 137 "../src/parse/lex_conf.re"
+#line 140 "../src/parse/lex_conf.re"
{ opts.set_tags_prefix (lex_conf_string ()); return; }
-#line 1637 "src/parse/lex_conf.cc"
+#line 1640 "src/parse/lex_conf.cc"
yy318:
yych = (unsigned char)*++cur;
if (yych <= 'c') {
}
if (yych == '@') goto yy380;
yy325:
-#line 90 "../src/parse/lex_conf.re"
+#line 93 "../src/parse/lex_conf.re"
{ opts.set_condDivider (lex_conf_string ()); return; }
-#line 1681 "src/parse/lex_conf.cc"
+#line 1684 "src/parse/lex_conf.cc"
yy326:
yych = (unsigned char)*++cur;
if (yych == 'n') goto yy381;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 102 "../src/parse/lex_conf.re"
+#line 105 "../src/parse/lex_conf.re"
{ opts.set_yynext (lex_conf_string ()); return; }
-#line 1829 "src/parse/lex_conf.cc"
+#line 1832 "src/parse/lex_conf.cc"
yy362:
yych = (unsigned char)*++cur;
if (yych <= '0') goto yy221;
++cur;
yy364:
cur = ctx;
-#line 167 "../src/parse/lex_conf.re"
+#line 170 "../src/parse/lex_conf.re"
{ opts.set_startlabel_force (lex_conf_bool()); return; }
-#line 1841 "src/parse/lex_conf.cc"
+#line 1844 "src/parse/lex_conf.cc"
yy365:
++cur;
if (lim <= cur) YYFILL(1);
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 162 "../src/parse/lex_conf.re"
+#line 165 "../src/parse/lex_conf.re"
{ opts.set_fill_check (lex_conf_bool()); return; }
-#line 1890 "src/parse/lex_conf.cc"
+#line 1893 "src/parse/lex_conf.cc"
yy377:
yych = (unsigned char)*++cur;
if (yych == 'e') goto yy431;
}
}
yy390:
-#line 157 "../src/parse/lex_conf.re"
+#line 160 "../src/parse/lex_conf.re"
{ opts.set_fill (lex_conf_string ()); return; }
-#line 1961 "src/parse/lex_conf.cc"
+#line 1964 "src/parse/lex_conf.cc"
yy391:
yych = (unsigned char)*++cur;
if (yych == 'O') goto yy450;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 124 "../src/parse/lex_conf.re"
+#line 127 "../src/parse/lex_conf.re"
{ opts.set_yypeek (lex_conf_string ()); return; }
-#line 1994 "src/parse/lex_conf.cc"
+#line 1997 "src/parse/lex_conf.cc"
yy399:
yych = (unsigned char)*++cur;
if (yych == 'O') goto yy460;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 125 "../src/parse/lex_conf.re"
+#line 128 "../src/parse/lex_conf.re"
{ opts.set_yyskip (lex_conf_string ()); return; }
-#line 2014 "src/parse/lex_conf.cc"
+#line 2017 "src/parse/lex_conf.cc"
yy404:
yych = (unsigned char)*++cur;
if (yych == 'N') goto yy463;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 140 "../src/parse/lex_conf.re"
+#line 143 "../src/parse/lex_conf.re"
{ opts.set_indString (lex_conf_string ()); return; }
-#line 2078 "src/parse/lex_conf.cc"
+#line 2081 "src/parse/lex_conf.cc"
yy419:
yych = (unsigned char)*++cur;
if (yych == 'a') goto yy479;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 107 "../src/parse/lex_conf.re"
+#line 110 "../src/parse/lex_conf.re"
{ opts.set_yybm (lex_conf_string ()); return; }
-#line 2102 "src/parse/lex_conf.cc"
+#line 2105 "src/parse/lex_conf.cc"
yy425:
yych = (unsigned char)*++cur;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 153 "../src/parse/lex_conf.re"
+#line 156 "../src/parse/lex_conf.re"
{ opts.set_yych (lex_conf_string ()); return; }
-#line 2110 "src/parse/lex_conf.cc"
+#line 2113 "src/parse/lex_conf.cc"
yy427:
yych = (unsigned char)*++cur;
if (yych == 'a') goto yy483;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 158 "../src/parse/lex_conf.re"
+#line 161 "../src/parse/lex_conf.re"
{ opts.set_fill_use (lex_conf_bool()); return; }
-#line 2134 "src/parse/lex_conf.cc"
+#line 2137 "src/parse/lex_conf.cc"
yy433:
yych = (unsigned char)*++cur;
if (yych == 't') goto yy487;
goto yy221;
yy436:
++cur;
-#line 93 "../src/parse/lex_conf.re"
+#line 96 "../src/parse/lex_conf.re"
{ opts.set_condGotoParam (lex_conf_string ()); return; }
-#line 2151 "src/parse/lex_conf.cc"
+#line 2154 "src/parse/lex_conf.cc"
yy438:
yych = (unsigned char)*++cur;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 89 "../src/parse/lex_conf.re"
+#line 92 "../src/parse/lex_conf.re"
{ opts.set_condEnumPrefix (lex_conf_string ()); return; }
-#line 2159 "src/parse/lex_conf.cc"
+#line 2162 "src/parse/lex_conf.cc"
yy440:
yych = (unsigned char)*++cur;
if (yych == 'P') goto yy491;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 152 "../src/parse/lex_conf.re"
+#line 155 "../src/parse/lex_conf.re"
{ opts.set_yyctype (lex_conf_string ()); return; }
-#line 2179 "src/parse/lex_conf.cc"
+#line 2182 "src/parse/lex_conf.cc"
yy445:
yych = (unsigned char)*++cur;
if (yych == 'R') goto yy495;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 150 "../src/parse/lex_conf.re"
+#line 153 "../src/parse/lex_conf.re"
{ opts.set_yydebug (lex_conf_string ()); return; }
-#line 2191 "src/parse/lex_conf.cc"
+#line 2194 "src/parse/lex_conf.cc"
yy448:
yych = (unsigned char)*++cur;
if (yych == 'n') goto yy497;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 122 "../src/parse/lex_conf.re"
+#line 125 "../src/parse/lex_conf.re"
{ opts.set_yylimit (lex_conf_string ()); return; }
-#line 2219 "src/parse/lex_conf.cc"
+#line 2222 "src/parse/lex_conf.cc"
yy455:
yych = (unsigned char)*++cur;
if (yych == 'R') goto yy502;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 134 "../src/parse/lex_conf.re"
+#line 137 "../src/parse/lex_conf.re"
{ opts.set_yymtagn (lex_conf_string ()); return; }
-#line 2231 "src/parse/lex_conf.cc"
+#line 2234 "src/parse/lex_conf.cc"
yy458:
yych = (unsigned char)*++cur;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 135 "../src/parse/lex_conf.re"
+#line 138 "../src/parse/lex_conf.re"
{ opts.set_yymtagp (lex_conf_string ()); return; }
-#line 2239 "src/parse/lex_conf.cc"
+#line 2242 "src/parse/lex_conf.cc"
yy460:
yych = (unsigned char)*++cur;
if (yych == 'R') goto yy504;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 132 "../src/parse/lex_conf.re"
+#line 135 "../src/parse/lex_conf.re"
{ opts.set_yystagn (lex_conf_string ()); return; }
-#line 2259 "src/parse/lex_conf.cc"
+#line 2262 "src/parse/lex_conf.cc"
yy465:
yych = (unsigned char)*++cur;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 133 "../src/parse/lex_conf.re"
+#line 136 "../src/parse/lex_conf.re"
{ opts.set_yystagp (lex_conf_string ()); return; }
-#line 2267 "src/parse/lex_conf.cc"
+#line 2270 "src/parse/lex_conf.cc"
yy467:
yych = (unsigned char)*++cur;
if (yych == 'o') goto yy507;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 109 "../src/parse/lex_conf.re"
+#line 112 "../src/parse/lex_conf.re"
{
const int32_t n = lex_conf_number ();
if (n < 0) {
opts.set_cGotoThreshold (static_cast<uint32_t> (n));
return;
}
-#line 2366 "src/parse/lex_conf.cc"
+#line 2369 "src/parse/lex_conf.cc"
yy490:
yych = (unsigned char)*++cur;
if (yych == 'n') goto yy531;
}
}
yy492:
-#line 126 "../src/parse/lex_conf.re"
+#line 129 "../src/parse/lex_conf.re"
{ opts.set_yybackup (lex_conf_string ()); return; }
-#line 2392 "src/parse/lex_conf.cc"
+#line 2395 "src/parse/lex_conf.cc"
yy493:
yych = (unsigned char)*++cur;
if (yych == 'P') goto yy533;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 119 "../src/parse/lex_conf.re"
+#line 122 "../src/parse/lex_conf.re"
{ opts.set_yycursor (lex_conf_string ()); return; }
-#line 2408 "src/parse/lex_conf.cc"
+#line 2411 "src/parse/lex_conf.cc"
yy497:
yych = (unsigned char)*++cur;
if (yych == 'a') goto yy535;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 120 "../src/parse/lex_conf.re"
+#line 123 "../src/parse/lex_conf.re"
{ opts.set_yymarker (lex_conf_string ()); return; }
-#line 2436 "src/parse/lex_conf.cc"
+#line 2439 "src/parse/lex_conf.cc"
yy504:
yych = (unsigned char)*++cur;
if (yych == 'E') goto yy540;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 104 "../src/parse/lex_conf.re"
+#line 107 "../src/parse/lex_conf.re"
{ opts.set_bUseStateNext (lex_conf_bool()); return; }
-#line 2508 "src/parse/lex_conf.cc"
+#line 2511 "src/parse/lex_conf.cc"
yy522:
yych = (unsigned char)*++cur;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 138 "../src/parse/lex_conf.re"
+#line 141 "../src/parse/lex_conf.re"
{ opts.set_tags_expression(lex_conf_string ()); return; }
-#line 2516 "src/parse/lex_conf.cc"
+#line 2519 "src/parse/lex_conf.cc"
yy524:
yych = (unsigned char)*++cur;
if (yych == 'p') goto yy556;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 154 "../src/parse/lex_conf.re"
+#line 157 "../src/parse/lex_conf.re"
{ opts.set_yychConversion (lex_conf_bool()); return; }
-#line 2540 "src/parse/lex_conf.cc"
+#line 2543 "src/parse/lex_conf.cc"
yy530:
yych = (unsigned char)*++cur;
if (yych == 'r') goto yy560;
}
}
yy541:
-#line 128 "../src/parse/lex_conf.re"
+#line 131 "../src/parse/lex_conf.re"
{ opts.set_yyrestore (lex_conf_string ()); return; }
-#line 2604 "src/parse/lex_conf.cc"
+#line 2607 "src/parse/lex_conf.cc"
yy542:
yych = (unsigned char)*++cur;
if (yych == 'I') goto yy578;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 160 "../src/parse/lex_conf.re"
+#line 163 "../src/parse/lex_conf.re"
{ opts.set_fill_arg_use (lex_conf_bool()); return; }
-#line 2686 "src/parse/lex_conf.cc"
+#line 2689 "src/parse/lex_conf.cc"
yy562:
++cur;
-#line 91 "../src/parse/lex_conf.re"
+#line 94 "../src/parse/lex_conf.re"
{ opts.set_condDividerParam (lex_conf_string ()); return; }
-#line 2691 "src/parse/lex_conf.cc"
+#line 2694 "src/parse/lex_conf.cc"
yy564:
yych = (unsigned char)*++cur;
if (yych == 'X') goto yy602;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 82 "../src/parse/lex_conf.re"
+#line 85 "../src/parse/lex_conf.re"
{ opts.set_yycondtype (lex_conf_string ()); return; }
-#line 2703 "src/parse/lex_conf.cc"
+#line 2706 "src/parse/lex_conf.cc"
yy567:
yych = (unsigned char)*++cur;
if (yych == 'R') goto yy604;
goto yy4;
yy569:
++cur;
-#line 159 "../src/parse/lex_conf.re"
+#line 162 "../src/parse/lex_conf.re"
{ opts.set_fill_arg (lex_conf_string ()); return; }
-#line 2716 "src/parse/lex_conf.cc"
+#line 2719 "src/parse/lex_conf.cc"
yy571:
yych = (unsigned char)*++cur;
if (yych == 'T') goto yy607;
}
}
yy573:
-#line 96 "../src/parse/lex_conf.re"
+#line 99 "../src/parse/lex_conf.re"
{ opts.set_state_get (lex_conf_string ()); return; }
-#line 2742 "src/parse/lex_conf.cc"
+#line 2745 "src/parse/lex_conf.cc"
yy574:
yych = (unsigned char)*++cur;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 131 "../src/parse/lex_conf.re"
+#line 134 "../src/parse/lex_conf.re"
{ opts.set_yylessthan (lex_conf_string ()); return; }
-#line 2750 "src/parse/lex_conf.cc"
+#line 2753 "src/parse/lex_conf.cc"
yy576:
yych = (unsigned char)*++cur;
if (yych == 'T') goto yy609;
}
}
yy580:
-#line 98 "../src/parse/lex_conf.re"
+#line 101 "../src/parse/lex_conf.re"
{ opts.set_state_set (lex_conf_string ()); return; }
-#line 2785 "src/parse/lex_conf.cc"
+#line 2788 "src/parse/lex_conf.cc"
yy581:
yych = (unsigned char)*++cur;
if (yybm[0+yych] & 32) {
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 69 "../src/parse/lex_conf.re"
+#line 72 "../src/parse/lex_conf.re"
{ lex_conf_empty_class(opts); return; }
-#line 2815 "src/parse/lex_conf.cc"
+#line 2818 "src/parse/lex_conf.cc"
yy588:
yych = (unsigned char)*++cur;
if (yych == 'l') goto yy618;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 101 "../src/parse/lex_conf.re"
+#line 104 "../src/parse/lex_conf.re"
{ opts.set_yyfilllabel (lex_conf_string ()); return; }
-#line 2841 "src/parse/lex_conf.cc"
+#line 2844 "src/parse/lex_conf.cc"
yy594:
yych = (unsigned char)*++cur;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 105 "../src/parse/lex_conf.re"
+#line 108 "../src/parse/lex_conf.re"
{ opts.set_yyaccept (lex_conf_string ()); return; }
-#line 2849 "src/parse/lex_conf.cc"
+#line 2852 "src/parse/lex_conf.cc"
yy596:
yych = (unsigned char)*++cur;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 94 "../src/parse/lex_conf.re"
+#line 97 "../src/parse/lex_conf.re"
{ opts.set_yyctable (lex_conf_string ()); return; }
-#line 2857 "src/parse/lex_conf.cc"
+#line 2860 "src/parse/lex_conf.cc"
yy598:
yych = (unsigned char)*++cur;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 171 "../src/parse/lex_conf.re"
+#line 174 "../src/parse/lex_conf.re"
{ lex_conf_string (); return; }
-#line 2865 "src/parse/lex_conf.cc"
+#line 2868 "src/parse/lex_conf.cc"
yy600:
yych = (unsigned char)*++cur;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 117 "../src/parse/lex_conf.re"
+#line 120 "../src/parse/lex_conf.re"
{ opts.set_yytarget (lex_conf_string ()); return; }
-#line 2873 "src/parse/lex_conf.cc"
+#line 2876 "src/parse/lex_conf.cc"
yy602:
yych = (unsigned char)*++cur;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 127 "../src/parse/lex_conf.re"
+#line 130 "../src/parse/lex_conf.re"
{ opts.set_yybackupctx (lex_conf_string ()); return; }
-#line 2881 "src/parse/lex_conf.cc"
+#line 2884 "src/parse/lex_conf.cc"
yy604:
yych = (unsigned char)*++cur;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 121 "../src/parse/lex_conf.re"
+#line 124 "../src/parse/lex_conf.re"
{ opts.set_yyctxmarker (lex_conf_string ()); return; }
-#line 2889 "src/parse/lex_conf.cc"
+#line 2892 "src/parse/lex_conf.cc"
yy606:
yych = (unsigned char)*++cur;
if (yych == 'd') goto yy621;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 161 "../src/parse/lex_conf.re"
+#line 164 "../src/parse/lex_conf.re"
{ opts.set_fill_naked (lex_conf_bool()); return; }
-#line 2959 "src/parse/lex_conf.cc"
+#line 2962 "src/parse/lex_conf.cc"
yy623:
yych = (unsigned char)*++cur;
if (yych == 'O') goto yy639;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 129 "../src/parse/lex_conf.re"
+#line 132 "../src/parse/lex_conf.re"
{ opts.set_yyrestorectx (lex_conf_string ()); return; }
-#line 2975 "src/parse/lex_conf.cc"
+#line 2978 "src/parse/lex_conf.cc"
yy627:
yych = (unsigned char)*++cur;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 130 "../src/parse/lex_conf.re"
+#line 133 "../src/parse/lex_conf.re"
{ opts.set_yyrestoretag (lex_conf_string ()); return; }
-#line 2983 "src/parse/lex_conf.cc"
+#line 2986 "src/parse/lex_conf.cc"
yy629:
yych = (unsigned char)*++cur;
if (yych == 'O') goto yy641;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 50 "../src/parse/lex_conf.re"
+#line 53 "../src/parse/lex_conf.re"
{ opts.set_bCaseInverted (lex_conf_bool()); return; }
-#line 3007 "src/parse/lex_conf.cc"
+#line 3010 "src/parse/lex_conf.cc"
yy635:
yych = (unsigned char)*++cur;
if (yych == 's') goto yy106;
}
}
yy647:
-#line 83 "../src/parse/lex_conf.re"
+#line 86 "../src/parse/lex_conf.re"
{ opts.set_cond_get (lex_conf_string ()); return; }
-#line 3075 "src/parse/lex_conf.cc"
+#line 3078 "src/parse/lex_conf.cc"
yy648:
yych = (unsigned char)*++cur;
if (yych == 'e') goto yy657;
}
}
yy650:
-#line 85 "../src/parse/lex_conf.re"
+#line 88 "../src/parse/lex_conf.re"
{ opts.set_cond_set (lex_conf_string ()); return; }
-#line 3102 "src/parse/lex_conf.cc"
+#line 3105 "src/parse/lex_conf.cc"
yy651:
yych = (unsigned char)*++cur;
if (yych == 'e') goto yy660;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 67 "../src/parse/lex_conf.re"
+#line 70 "../src/parse/lex_conf.re"
{ lex_conf_encoding_policy(opts); return; }
-#line 3122 "src/parse/lex_conf.cc"
+#line 3125 "src/parse/lex_conf.cc"
yy656:
yych = (unsigned char)*++cur;
if (yych == 'n') goto yy664;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 49 "../src/parse/lex_conf.re"
+#line 52 "../src/parse/lex_conf.re"
{ opts.set_bCaseInsensitive (lex_conf_bool()); return; }
-#line 3154 "src/parse/lex_conf.cc"
+#line 3157 "src/parse/lex_conf.cc"
yy664:
yych = (unsigned char)*++cur;
if (yych == 'a') goto yy673;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 97 "../src/parse/lex_conf.re"
+#line 100 "../src/parse/lex_conf.re"
{ opts.set_state_get_naked (lex_conf_bool()); return; }
-#line 3166 "src/parse/lex_conf.cc"
+#line 3169 "src/parse/lex_conf.cc"
yy667:
yych = (unsigned char)*++cur;
if (yych == 'a') goto yy674;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 99 "../src/parse/lex_conf.re"
+#line 102 "../src/parse/lex_conf.re"
{ opts.set_state_set_naked (lex_conf_bool()); return; }
-#line 3182 "src/parse/lex_conf.cc"
+#line 3185 "src/parse/lex_conf.cc"
yy671:
++cur;
-#line 100 "../src/parse/lex_conf.re"
+#line 103 "../src/parse/lex_conf.re"
{ opts.set_state_set_arg (lex_conf_string ()); return; }
-#line 3187 "src/parse/lex_conf.cc"
+#line 3190 "src/parse/lex_conf.cc"
yy673:
yych = (unsigned char)*++cur;
if (yych == 'k') goto yy676;
goto yy4;
yy681:
++cur;
-#line 86 "../src/parse/lex_conf.re"
+#line 89 "../src/parse/lex_conf.re"
{ opts.set_cond_set_arg (lex_conf_string ()); return; }
-#line 3224 "src/parse/lex_conf.cc"
+#line 3227 "src/parse/lex_conf.cc"
yy683:
yych = (unsigned char)*++cur;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 84 "../src/parse/lex_conf.re"
+#line 87 "../src/parse/lex_conf.re"
{ opts.set_cond_get_naked (lex_conf_bool()); return; }
-#line 3232 "src/parse/lex_conf.cc"
+#line 3235 "src/parse/lex_conf.cc"
yy685:
yych = (unsigned char)*++cur;
if (yybm[0+yych] & 32) {
goto yy3;
}
-#line 87 "../src/parse/lex_conf.re"
+#line 90 "../src/parse/lex_conf.re"
{ opts.set_cond_set_naked (lex_conf_bool()); return; }
-#line 3240 "src/parse/lex_conf.cc"
+#line 3243 "src/parse/lex_conf.cc"
}
-#line 177 "../src/parse/lex_conf.re"
+#line 180 "../src/parse/lex_conf.re"
}
{
lex_conf_assign ();
-#line 3250 "src/parse/lex_conf.cc"
+#line 3253 "src/parse/lex_conf.cc"
{
unsigned char yych;
if ((lim - cur) < 10) YYFILL(10);
}
++cur;
yy690:
-#line 184 "../src/parse/lex_conf.re"
+#line 187 "../src/parse/lex_conf.re"
{ msg.fatal(cur_loc(),
"bad configuration value (expected: 'ignore', 'substitute', 'fail')"); }
-#line 3266 "src/parse/lex_conf.cc"
+#line 3269 "src/parse/lex_conf.cc"
yy691:
yych = (unsigned char)*(mar = ++cur);
if (yych == 'a') goto yy694;
goto yy695;
yy701:
++cur;
-#line 188 "../src/parse/lex_conf.re"
+#line 191 "../src/parse/lex_conf.re"
{ opts.set_encoding_policy(Enc::POLICY_FAIL); goto end; }
-#line 3309 "src/parse/lex_conf.cc"
+#line 3312 "src/parse/lex_conf.cc"
yy703:
yych = (unsigned char)*++cur;
if (yych == 'r') goto yy705;
goto yy695;
yy707:
++cur;
-#line 186 "../src/parse/lex_conf.re"
+#line 189 "../src/parse/lex_conf.re"
{ opts.set_encoding_policy(Enc::POLICY_IGNORE); goto end; }
-#line 3330 "src/parse/lex_conf.cc"
+#line 3333 "src/parse/lex_conf.cc"
yy709:
yych = (unsigned char)*++cur;
if (yych != 't') goto yy695;
yych = (unsigned char)*++cur;
if (yych != 'e') goto yy695;
++cur;
-#line 187 "../src/parse/lex_conf.re"
+#line 190 "../src/parse/lex_conf.re"
{ opts.set_encoding_policy(Enc::POLICY_SUBSTITUTE); goto end; }
-#line 3343 "src/parse/lex_conf.cc"
+#line 3346 "src/parse/lex_conf.cc"
}
-#line 189 "../src/parse/lex_conf.re"
+#line 192 "../src/parse/lex_conf.re"
end:
lex_conf_semicolon();
{
lex_conf_assign ();
-#line 3355 "src/parse/lex_conf.cc"
+#line 3358 "src/parse/lex_conf.cc"
{
unsigned char yych;
if ((lim - cur) < 7) YYFILL(7);
yy717:
++cur;
yy718:
-#line 198 "../src/parse/lex_conf.re"
+#line 201 "../src/parse/lex_conf.re"
{ msg.fatal(cur_loc(), "bad configuration value (expected: 'default', 'custom')"); }
-#line 3368 "src/parse/lex_conf.cc"
+#line 3371 "src/parse/lex_conf.cc"
yy719:
yych = (unsigned char)*(mar = ++cur);
if (yych == 'u') goto yy721;
goto yy722;
yy730:
++cur;
-#line 200 "../src/parse/lex_conf.re"
+#line 203 "../src/parse/lex_conf.re"
{ opts.set_input_api(INPUT_CUSTOM); goto end; }
-#line 3415 "src/parse/lex_conf.cc"
+#line 3418 "src/parse/lex_conf.cc"
yy732:
yych = (unsigned char)*++cur;
if (yych != 't') goto yy722;
++cur;
-#line 199 "../src/parse/lex_conf.re"
+#line 202 "../src/parse/lex_conf.re"
{ opts.set_input_api(INPUT_DEFAULT); goto end; }
-#line 3422 "src/parse/lex_conf.cc"
+#line 3425 "src/parse/lex_conf.cc"
}
-#line 201 "../src/parse/lex_conf.re"
+#line 204 "../src/parse/lex_conf.re"
end:
lex_conf_semicolon();
{
lex_conf_assign ();
-#line 3434 "src/parse/lex_conf.cc"
+#line 3437 "src/parse/lex_conf.cc"
{
unsigned char yych;
if ((lim - cur) < 11) YYFILL(11);
if (yych == 'm') goto yy740;
++cur;
yy738:
-#line 210 "../src/parse/lex_conf.re"
+#line 213 "../src/parse/lex_conf.re"
{ msg.fatal(cur_loc(),
"bad configuration value (expected: 'match-empty', 'match-none', 'error')"); }
-#line 3446 "src/parse/lex_conf.cc"
+#line 3449 "src/parse/lex_conf.cc"
yy739:
yych = (unsigned char)*(mar = ++cur);
if (yych == 'r') goto yy741;
goto yy742;
yy748:
++cur;
-#line 214 "../src/parse/lex_conf.re"
+#line 217 "../src/parse/lex_conf.re"
{ opts.set_empty_class_policy(EMPTY_CLASS_ERROR); goto end; }
-#line 3485 "src/parse/lex_conf.cc"
+#line 3488 "src/parse/lex_conf.cc"
yy750:
yych = (unsigned char)*++cur;
if (yych != '-') goto yy742;
goto yy742;
yy759:
++cur;
-#line 213 "../src/parse/lex_conf.re"
+#line 216 "../src/parse/lex_conf.re"
{ opts.set_empty_class_policy(EMPTY_CLASS_MATCH_NONE); goto end; }
-#line 3525 "src/parse/lex_conf.cc"
+#line 3528 "src/parse/lex_conf.cc"
yy761:
++cur;
-#line 212 "../src/parse/lex_conf.re"
+#line 215 "../src/parse/lex_conf.re"
{ opts.set_empty_class_policy(EMPTY_CLASS_MATCH_EMPTY); goto end; }
-#line 3530 "src/parse/lex_conf.cc"
+#line 3533 "src/parse/lex_conf.cc"
}
-#line 215 "../src/parse/lex_conf.re"
+#line 218 "../src/parse/lex_conf.re"
end:
lex_conf_semicolon();
void Scanner::lex_conf_assign ()
{
-#line 3550 "src/parse/lex_conf.cc"
+#line 3553 "src/parse/lex_conf.cc"
{
unsigned char yych;
static const unsigned char yybm[] = {
}
++cur;
yy766:
-#line 232 "../src/parse/lex_conf.re"
+#line 235 "../src/parse/lex_conf.re"
{ msg.fatal(cur_loc(), "missing '=' in configuration"); }
-#line 3599 "src/parse/lex_conf.cc"
+#line 3602 "src/parse/lex_conf.cc"
yy767:
yych = (unsigned char)*(mar = ++cur);
if (yych <= 0x1F) {
if (yybm[0+yych] & 128) {
goto yy768;
}
-#line 233 "../src/parse/lex_conf.re"
+#line 236 "../src/parse/lex_conf.re"
{ return; }
-#line 3618 "src/parse/lex_conf.cc"
+#line 3621 "src/parse/lex_conf.cc"
yy771:
++cur;
if (lim <= cur) YYFILL(1);
cur = mar;
goto yy766;
}
-#line 234 "../src/parse/lex_conf.re"
+#line 237 "../src/parse/lex_conf.re"
}
void Scanner::lex_conf_semicolon ()
{
-#line 3639 "src/parse/lex_conf.cc"
+#line 3642 "src/parse/lex_conf.cc"
{
unsigned char yych;
static const unsigned char yybm[] = {
}
++cur;
yy777:
-#line 240 "../src/parse/lex_conf.re"
+#line 243 "../src/parse/lex_conf.re"
{ msg.fatal(cur_loc(), "missing ending ';' in configuration"); }
-#line 3688 "src/parse/lex_conf.cc"
+#line 3691 "src/parse/lex_conf.cc"
yy778:
yych = (unsigned char)*(mar = ++cur);
if (yybm[0+yych] & 128) {
if (yych != ';') goto yy777;
yy779:
++cur;
-#line 241 "../src/parse/lex_conf.re"
+#line 244 "../src/parse/lex_conf.re"
{ return; }
-#line 3699 "src/parse/lex_conf.cc"
+#line 3702 "src/parse/lex_conf.cc"
yy781:
++cur;
if (lim <= cur) YYFILL(1);
cur = mar;
goto yy777;
}
-#line 242 "../src/parse/lex_conf.re"
+#line 245 "../src/parse/lex_conf.re"
}
lex_conf_assign ();
tok = cur;
-#line 3725 "src/parse/lex_conf.cc"
+#line 3728 "src/parse/lex_conf.cc"
{
unsigned char yych;
static const unsigned char yybm[] = {
}
++cur;
yy787:
-#line 255 "../src/parse/lex_conf.re"
+#line 258 "../src/parse/lex_conf.re"
{ msg.fatal(cur_loc(), "bad configuration value (expected number)"); }
-#line 3774 "src/parse/lex_conf.cc"
+#line 3777 "src/parse/lex_conf.cc"
yy788:
yych = (unsigned char)*++cur;
if (yych <= '0') goto yy787;
yy789:
++cur;
yy790:
-#line 256 "../src/parse/lex_conf.re"
+#line 259 "../src/parse/lex_conf.re"
{
int32_t n = 0;
if (!s_to_i32_unsafe (tok, cur, n)) {
lex_conf_semicolon ();
return n;
}
-#line 3792 "src/parse/lex_conf.cc"
+#line 3795 "src/parse/lex_conf.cc"
yy791:
++cur;
if (lim <= cur) YYFILL(1);
}
goto yy790;
}
-#line 264 "../src/parse/lex_conf.re"
+#line 267 "../src/parse/lex_conf.re"
}
std::string s;
tok = cur;
-#line 3812 "src/parse/lex_conf.cc"
+#line 3815 "src/parse/lex_conf.cc"
{
unsigned char yych;
static const unsigned char yybm[] = {
}
}
yy795:
-#line 293 "../src/parse/lex_conf.re"
+#line 296 "../src/parse/lex_conf.re"
{ goto end; }
-#line 3870 "src/parse/lex_conf.cc"
+#line 3873 "src/parse/lex_conf.cc"
yy796:
++cur;
if (lim <= cur) YYFILL(1);
if (yybm[0+yych] & 128) {
goto yy796;
}
-#line 289 "../src/parse/lex_conf.re"
+#line 292 "../src/parse/lex_conf.re"
{
s = getstr(tok, cur);
goto end;
}
-#line 3883 "src/parse/lex_conf.cc"
+#line 3886 "src/parse/lex_conf.cc"
yy799:
++cur;
-#line 273 "../src/parse/lex_conf.re"
+#line 276 "../src/parse/lex_conf.re"
{
const char quote = tok[0];
for (;;) {
}
}
}
-#line 3903 "src/parse/lex_conf.cc"
+#line 3906 "src/parse/lex_conf.cc"
}
-#line 294 "../src/parse/lex_conf.re"
+#line 297 "../src/parse/lex_conf.re"
end:
lex_conf_semicolon ();
// 'long' as vararg requres suffix 'L', which is easy to forget and hard
// to notice (the problem is platform/toolchain-specific).
#define GS static const regoff_t gs[]
-#define T(R,S,gs) e |= test(R,S,sizeof(gs)/sizeof(gs[0])/2,gs,flags);
-#define T0(R,S) e |= test(R,S,0,NULL,flags);
-#define T1(R,S,a,b) { GS = {a,b}; T(R,S,gs); }
-#define T2(R,S,a,b,c,d) { GS = {a,b,c,d}; T(R,S,gs); }
-#define T3(R,S,a,b,c,d,e,f) { GS = {a,b,c,d,e,f}; T(R,S,gs); }
-#define T4(R,S,a,b,c,d,e,f,g,h) { GS = {a,b,c,d,e,f,g,h}; T(R,S,gs); }
-#define T5(R,S,a,b,c,d,e,f,g,h,i,j) { GS = {a,b,c,d,e,f,g,h,i,j}; T(R,S,gs); }
-#define T6(R,S,a,b,c,d,e,f,g,h,i,j,k,l) { GS = {a,b,c,d,e,f,g,h,i,j,k,l}; T(R,S,gs); }
-#define T7(R,S,a,b,c,d,e,f,g,h,i,j,k,l,m,n) { GS = {a,b,c,d,e,f,g,h,i,j,k,l,m,n}; T(R,S,gs); }
-#define T8(R,S,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) { GS = {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}; T(R,S,gs); }
-#define T9(R,S,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) { GS = {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r}; T(R,S,gs); }
-#define T10(R,S,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) { GS = {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t}; T(R,S,gs); }
+#define T(R,S,gs) do { e |= test(R,S,sizeof(gs)/sizeof(gs[0])/2,gs,flags); } while(0)
+#define T0(R,S) do { e |= test(R,S,0,NULL,flags); } while(0)
+#define T1(R,S,a,b) do { GS = {a,b}; T(R,S,gs); } while(0)
+#define T2(R,S,a,b,c,d) do { GS = {a,b,c,d}; T(R,S,gs); } while(0)
+#define T3(R,S,a,b,c,d,e,f) do { GS = {a,b,c,d,e,f}; T(R,S,gs); } while(0)
+#define T4(R,S,a,b,c,d,e,f,g,h) do { GS = {a,b,c,d,e,f,g,h}; T(R,S,gs); } while(0)
+#define T5(R,S,a,b,c,d,e,f,g,h,i,j) do { GS = {a,b,c,d,e,f,g,h,i,j}; T(R,S,gs); } while(0)
+#define T6(R,S,a,b,c,d,e,f,g,h,i,j,k,l) do { GS = {a,b,c,d,e,f,g,h,i,j,k,l}; T(R,S,gs); } while(0)
+#define T7(R,S,a,b,c,d,e,f,g,h,i,j,k,l,m,n) do { GS = {a,b,c,d,e,f,g,h,i,j,k,l,m,n}; T(R,S,gs); } while(0)
+#define T8(R,S,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) do { GS = {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}; T(R,S,gs); } while(0)
+#define T9(R,S,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) do { GS = {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r}; T(R,S,gs); } while(0)
+#define T10(R,S,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) do { GS = {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t}; T(R,S,gs); } while(0)
static int test_all_posix(int flags)
{