From: paulmcq Date: Mon, 26 Sep 2011 02:40:12 +0000 (+0000) Subject: ID# 2535084: Sun C 5.8 found int32_t := uint64_t; 2 billion specs are sufficient X-Git-Tag: 0.13.6~7 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b2f9728f2324e2ca63f89ff84c532bfabc5f8f1a;p=re2c ID# 2535084: Sun C 5.8 found int32_t := uint64_t; 2 billion specs are sufficient --- diff --git a/re2c/bootstrap/parser.cc b/re2c/bootstrap/parser.cc index ee454249..7b1396b7 100644 --- a/re2c/bootstrap/parser.cc +++ b/re2c/bootstrap/parser.cc @@ -1,24 +1,23 @@ -/* A Bison parser, made by GNU Bison 2.3. */ -/* Skeleton implementation for Bison's Yacc-like parsers in C +/* A Bison parser, made by GNU Bison 2.4.1. */ - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +/* Skeleton implementation for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -29,7 +28,7 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@ -47,7 +46,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.3" +#define YYBISON_VERSION "2.4.1" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -55,51 +54,20 @@ /* Pure parsers. */ #define YYPURE 0 -/* Using locations. */ -#define YYLSP_NEEDED 0 - +/* Push parsers. */ +#define YYPUSH 0 +/* Pull parsers. */ +#define YYPULL 1 -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - CLOSESIZE = 258, - CLOSE = 259, - STAR = 260, - NOCOND = 261, - ID = 262, - CODE = 263, - RANGE = 264, - STRING = 265, - CONFIG = 266, - VALUE = 267, - NUMBER = 268, - SETUP = 269, - FID = 270 - }; -#endif -/* Tokens. */ -#define CLOSESIZE 258 -#define CLOSE 259 -#define STAR 260 -#define NOCOND 261 -#define ID 262 -#define CODE 263 -#define RANGE 264 -#define STRING 265 -#define CONFIG 266 -#define VALUE 267 -#define NUMBER 268 -#define SETUP 269 -#define FID 270 - +/* Using locations. */ +#define YYLSP_NEEDED 0 /* Copy the first part of user declarations. */ + +/* Line 189 of yacc.c */ #line 1 "parser.y" @@ -198,7 +166,8 @@ void context_rule(CondList *clist, RegExp *expr, RegExp *look, Str *newcond, Tok else { size_t nIndex = specMap.size() + 1; // 0 is reserved for "0"-spec - specMap[*it] = std::make_pair(nIndex, rule); + assert( nIndex < 1u << 31); + specMap[*it] = std::make_pair(unsigned( nIndex), rule); } } @@ -229,6 +198,9 @@ void setup_rule(CondList *clist, Token *code) +/* Line 189 of yacc.c */ +#line 203 "parser.cc" + /* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 0 @@ -247,10 +219,53 @@ void setup_rule(CondList *clist, Token *code) # define YYTOKEN_TABLE 0 #endif + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + CLOSESIZE = 258, + CLOSE = 259, + STAR = 260, + NOCOND = 261, + ID = 262, + CODE = 263, + RANGE = 264, + STRING = 265, + CONFIG = 266, + VALUE = 267, + NUMBER = 268, + SETUP = 269, + FID = 270 + }; +#endif +/* Tokens. */ +#define CLOSESIZE 258 +#define CLOSE 259 +#define STAR 260 +#define NOCOND 261 +#define ID 262 +#define CODE 263 +#define RANGE 264 +#define STRING 265 +#define CONFIG 266 +#define VALUE 267 +#define NUMBER 268 +#define SETUP 269 +#define FID 270 + + + + #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 131 "parser.y" { + +/* Line 214 of yacc.c */ +#line 132 "parser.y" + re2c::Symbol *symbol; re2c::RegExp *regexp; re2c::Token *token; @@ -259,22 +274,23 @@ typedef union YYSTYPE re2c::ExtOp extop; re2c::Str *str; re2c::CondList *clist; -} -/* Line 187 of yacc.c. */ -#line 265 "parser.cc" - YYSTYPE; + + + +/* Line 214 of yacc.c */ +#line 282 "parser.cc" +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 #endif - /* Copy the second part of user declarations. */ -/* Line 216 of yacc.c. */ -#line 278 "parser.cc" +/* Line 264 of yacc.c */ +#line 294 "parser.cc" #ifdef short # undef short @@ -349,14 +365,14 @@ typedef short int yytype_int16; #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static int -YYID (int i) +YYID (int yyi) #else static int -YYID (i) - int i; +YYID (yyi) + int yyi; #endif { - return i; + return yyi; } #endif @@ -437,9 +453,9 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss; - YYSTYPE yyvs; - }; + yytype_int16 yyss_alloc; + YYSTYPE yyvs_alloc; +}; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) @@ -473,12 +489,12 @@ union yyalloc elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack) \ +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack, Stack, yysize); \ - Stack = &yyptr->Stack; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ @@ -579,11 +595,11 @@ static const yytype_int8 yyrhs[] = /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 160, 160, 162, 166, 170, 178, 186, 190, 194, - 200, 208, 217, 221, 226, 231, 237, 245, 253, 258, - 264, 276, 288, 294, 302, 305, 312, 317, 326, 329, - 337, 340, 347, 351, 358, 362, 373, 377, 384, 388, - 403, 410, 414, 418, 422, 429, 437, 441, 445 + 0, 161, 161, 163, 167, 171, 179, 187, 191, 195, + 201, 209, 218, 222, 227, 232, 238, 246, 254, 259, + 265, 277, 289, 295, 303, 306, 313, 318, 327, 330, + 338, 341, 348, 352, 359, 363, 374, 378, 385, 389, + 404, 411, 415, 419, 423, 430, 438, 442, 446 }; #endif @@ -910,17 +926,20 @@ yy_symbol_print (yyoutput, yytype, yyvaluep) #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void -yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) #else static void -yy_stack_print (bottom, top) - yytype_int16 *bottom; - yytype_int16 *top; +yy_stack_print (yybottom, yytop) + yytype_int16 *yybottom; + yytype_int16 *yytop; #endif { YYFPRINTF (stderr, "Stack now"); - for (; bottom <= top; ++bottom) - YYFPRINTF (stderr, " %d", *bottom); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } YYFPRINTF (stderr, "\n"); } @@ -954,11 +973,11 @@ yy_reduce_print (yyvsp, yyrule) /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { - fprintf (stderr, " $%d = ", yyi + 1); + YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], &(yyvsp[(yyi + 1) - (yynrhs)]) ); - fprintf (stderr, "\n"); + YYFPRINTF (stderr, "\n"); } } @@ -1238,10 +1257,8 @@ yydestruct (yymsg, yytype, yyvaluep) break; } } - /* Prevent warnings from -Wmissing-prototypes. */ - #ifdef YYPARSE_PARAM #if defined __STDC__ || defined __cplusplus int yyparse (void *YYPARSE_PARAM); @@ -1257,11 +1274,10 @@ int yyparse (); #endif /* ! YYPARSE_PARAM */ - -/* The look-ahead symbol. */ +/* The lookahead symbol. */ int yychar; -/* The semantic value of the look-ahead symbol. */ +/* The semantic value of the lookahead symbol. */ YYSTYPE yylval; /* Number of syntax errors so far. */ @@ -1269,9 +1285,9 @@ int yynerrs; -/*----------. -| yyparse. | -`----------*/ +/*-------------------------. +| yyparse or yypush_parse. | +`-------------------------*/ #ifdef YYPARSE_PARAM #if (defined __STDC__ || defined __C99__FUNC__ \ @@ -1295,66 +1311,68 @@ yyparse () #endif #endif { - - int yystate; - int yyn; - int yyresult; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - /* Look-ahead token as an internal (translated) token number. */ - int yytoken = 0; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif - /* Three stacks and their tools: - `yyss': related to states, - `yyvs': related to semantic values, - `yyls': related to locations. - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ + int yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss = yyssa; - yytype_int16 *yyssp; + /* The stacks and their tools: + `yyss': related to states. + `yyvs': related to semantic values. - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp; + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss; + yytype_int16 *yyssp; + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) - - YYSIZE_T yystacksize = YYINITDEPTH; + YYSIZE_T yystacksize; + int yyn; + int yyresult; + /* Lookahead token as an internal (translated) token number. */ + int yytoken; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; + yytoken = 0; + yyss = yyssa; + yyvs = yyvsa; + yystacksize = YYINITDEPTH; + YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ + yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ - yyssp = yyss; yyvsp = yyvs; @@ -1384,7 +1402,6 @@ yyparse () YYSTYPE *yyvs1 = yyvs; yytype_int16 *yyss1 = yyss; - /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might @@ -1392,7 +1409,6 @@ yyparse () yyoverflow (YY_("memory exhausted"), &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); yyss = yyss1; @@ -1415,9 +1431,8 @@ yyparse () (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss); - YYSTACK_RELOCATE (yyvs); - + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); @@ -1428,7 +1443,6 @@ yyparse () yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); @@ -1438,6 +1452,9 @@ yyparse () YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + if (yystate == YYFINAL) + YYACCEPT; + goto yybackup; /*-----------. @@ -1446,16 +1463,16 @@ yyparse () yybackup: /* Do appropriate processing given the current state. Read a - look-ahead token if we need one and don't already have one. */ + lookahead token if we need one and don't already have one. */ - /* First try to decide what to do without reference to look-ahead token. */ + /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yyn == YYPACT_NINF) goto yydefault; - /* Not known => get a look-ahead token if don't already have one. */ + /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); @@ -1487,20 +1504,16 @@ yybackup: goto yyreduce; } - if (yyn == YYFINAL) - YYACCEPT; - /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; - /* Shift the look-ahead token. */ + /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - /* Discard the shifted token unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; + /* Discard the shifted token. */ + yychar = YYEMPTY; yystate = yyn; *++yyvsp = yylval; @@ -1540,20 +1553,26 @@ yyreduce: switch (yyn) { case 2: -#line 160 "parser.y" + +/* Line 1455 of yacc.c */ +#line 161 "parser.y" { } break; case 3: -#line 163 "parser.y" + +/* Line 1455 of yacc.c */ +#line 164 "parser.y" { foundRules = true; } break; case 5: -#line 171 "parser.y" + +/* Line 1455 of yacc.c */ +#line 172 "parser.y" { if ((yyvsp[(1) - (4)].symbol)->re) { @@ -1564,7 +1583,9 @@ yyreduce: break; case 6: -#line 179 "parser.y" + +/* Line 1455 of yacc.c */ +#line 180 "parser.y" { if ((yyvsp[(1) - (2)].symbol)->re) { @@ -1575,21 +1596,27 @@ yyreduce: break; case 7: -#line 187 "parser.y" + +/* Line 1455 of yacc.c */ +#line 188 "parser.y" { in->fatal("trailing contexts are not allowed in named definitions"); } break; case 8: -#line 191 "parser.y" + +/* Line 1455 of yacc.c */ +#line 192 "parser.y" { in->fatal("trailing contexts are not allowed in named definitions"); } break; case 9: -#line 195 "parser.y" + +/* Line 1455 of yacc.c */ +#line 196 "parser.y" { in->config(*(yyvsp[(1) - (4)].str), *(yyvsp[(3) - (4)].str)); delete (yyvsp[(1) - (4)].str); @@ -1598,7 +1625,9 @@ yyreduce: break; case 10: -#line 201 "parser.y" + +/* Line 1455 of yacc.c */ +#line 202 "parser.y" { in->config(*(yyvsp[(1) - (4)].str), (yyvsp[(3) - (4)].number)); delete (yyvsp[(1) - (4)].str); @@ -1606,7 +1635,9 @@ yyreduce: break; case 11: -#line 209 "parser.y" + +/* Line 1455 of yacc.c */ +#line 210 "parser.y" { if (cFlag) { @@ -1618,14 +1649,18 @@ yyreduce: break; case 12: -#line 218 "parser.y" + +/* Line 1455 of yacc.c */ +#line 219 "parser.y" { context_rule((yyvsp[(2) - (7)].clist), (yyvsp[(4) - (7)].regexp), (yyvsp[(5) - (7)].regexp), (yyvsp[(6) - (7)].str), (yyvsp[(7) - (7)].token)); } break; case 13: -#line 222 "parser.y" + +/* Line 1455 of yacc.c */ +#line 223 "parser.y" { assert((yyvsp[(7) - (7)].str)); context_rule((yyvsp[(2) - (7)].clist), (yyvsp[(4) - (7)].regexp), (yyvsp[(5) - (7)].regexp), (yyvsp[(7) - (7)].str), NULL); @@ -1633,7 +1668,9 @@ yyreduce: break; case 14: -#line 227 "parser.y" + +/* Line 1455 of yacc.c */ +#line 228 "parser.y" { context_none((yyvsp[(2) - (6)].clist)); delete (yyvsp[(5) - (6)].str); @@ -1641,7 +1678,9 @@ yyreduce: break; case 15: -#line 232 "parser.y" + +/* Line 1455 of yacc.c */ +#line 233 "parser.y" { assert((yyvsp[(6) - (6)].str)); context_none((yyvsp[(2) - (6)].clist)); @@ -1650,7 +1689,9 @@ yyreduce: break; case 16: -#line 238 "parser.y" + +/* Line 1455 of yacc.c */ +#line 239 "parser.y" { context_check(NULL); Token *token = new Token((yyvsp[(7) - (7)].token), (yyvsp[(7) - (7)].token)->source, (yyvsp[(7) - (7)].token)->line, (yyvsp[(6) - (7)].str)); @@ -1661,7 +1702,9 @@ yyreduce: break; case 17: -#line 246 "parser.y" + +/* Line 1455 of yacc.c */ +#line 247 "parser.y" { assert((yyvsp[(7) - (7)].str)); context_check(NULL); @@ -1672,7 +1715,9 @@ yyreduce: break; case 18: -#line 254 "parser.y" + +/* Line 1455 of yacc.c */ +#line 255 "parser.y" { context_none(NULL); delete (yyvsp[(5) - (6)].str); @@ -1680,7 +1725,9 @@ yyreduce: break; case 19: -#line 259 "parser.y" + +/* Line 1455 of yacc.c */ +#line 260 "parser.y" { assert((yyvsp[(6) - (6)].str)); context_none(NULL); @@ -1689,7 +1736,9 @@ yyreduce: break; case 20: -#line 265 "parser.y" + +/* Line 1455 of yacc.c */ +#line 266 "parser.y" { context_check(NULL); if (specNone) @@ -1704,7 +1753,9 @@ yyreduce: break; case 21: -#line 277 "parser.y" + +/* Line 1455 of yacc.c */ +#line 278 "parser.y" { assert((yyvsp[(3) - (3)].str)); context_check(NULL); @@ -1719,7 +1770,9 @@ yyreduce: break; case 22: -#line 289 "parser.y" + +/* Line 1455 of yacc.c */ +#line 290 "parser.y" { CondList *clist = new CondList(); clist->insert("*"); @@ -1728,28 +1781,36 @@ yyreduce: break; case 23: -#line 295 "parser.y" + +/* Line 1455 of yacc.c */ +#line 296 "parser.y" { setup_rule((yyvsp[(2) - (4)].clist), (yyvsp[(4) - (4)].token)); } break; case 24: -#line 302 "parser.y" + +/* Line 1455 of yacc.c */ +#line 303 "parser.y" { in->fatal("unnamed condition not supported"); } break; case 25: -#line 306 "parser.y" + +/* Line 1455 of yacc.c */ +#line 307 "parser.y" { (yyval.clist) = (yyvsp[(1) - (1)].clist); } break; case 26: -#line 313 "parser.y" + +/* Line 1455 of yacc.c */ +#line 314 "parser.y" { (yyval.clist) = new CondList(); (yyval.clist)->insert((yyvsp[(1) - (1)].symbol)->GetName().to_string()); @@ -1757,7 +1818,9 @@ yyreduce: break; case 27: -#line 318 "parser.y" + +/* Line 1455 of yacc.c */ +#line 319 "parser.y" { (yyvsp[(1) - (3)].clist)->insert((yyvsp[(3) - (3)].symbol)->GetName().to_string()); (yyval.clist) = (yyvsp[(1) - (3)].clist); @@ -1765,56 +1828,72 @@ yyreduce: break; case 28: -#line 326 "parser.y" + +/* Line 1455 of yacc.c */ +#line 327 "parser.y" { (yyval.str) = NULL; } break; case 29: -#line 330 "parser.y" + +/* Line 1455 of yacc.c */ +#line 331 "parser.y" { (yyval.str) = new Str((yyvsp[(3) - (3)].symbol)->GetName().to_string().c_str()); } break; case 30: -#line 337 "parser.y" + +/* Line 1455 of yacc.c */ +#line 338 "parser.y" { (yyval.regexp) = new NullOp; } break; case 31: -#line 341 "parser.y" + +/* Line 1455 of yacc.c */ +#line 342 "parser.y" { (yyval.regexp) = (yyvsp[(2) - (2)].regexp); } break; case 32: -#line 348 "parser.y" + +/* Line 1455 of yacc.c */ +#line 349 "parser.y" { (yyval.regexp) = (yyvsp[(1) - (1)].regexp); } break; case 33: -#line 352 "parser.y" + +/* Line 1455 of yacc.c */ +#line 353 "parser.y" { (yyval.regexp) = mkAlt((yyvsp[(1) - (3)].regexp), (yyvsp[(3) - (3)].regexp)); } break; case 34: -#line 359 "parser.y" + +/* Line 1455 of yacc.c */ +#line 360 "parser.y" { (yyval.regexp) = (yyvsp[(1) - (1)].regexp); } break; case 35: -#line 363 "parser.y" + +/* Line 1455 of yacc.c */ +#line 364 "parser.y" { (yyval.regexp) = mkDiff((yyvsp[(1) - (3)].regexp), (yyvsp[(3) - (3)].regexp)); if(!(yyval.regexp)) @@ -1825,28 +1904,36 @@ yyreduce: break; case 36: -#line 374 "parser.y" + +/* Line 1455 of yacc.c */ +#line 375 "parser.y" { (yyval.regexp) = (yyvsp[(1) - (1)].regexp); } break; case 37: -#line 378 "parser.y" + +/* Line 1455 of yacc.c */ +#line 379 "parser.y" { (yyval.regexp) = new CatOp((yyvsp[(1) - (2)].regexp), (yyvsp[(2) - (2)].regexp)); } break; case 38: -#line 385 "parser.y" + +/* Line 1455 of yacc.c */ +#line 386 "parser.y" { (yyval.regexp) = (yyvsp[(1) - (1)].regexp); } break; case 39: -#line 389 "parser.y" + +/* Line 1455 of yacc.c */ +#line 390 "parser.y" { switch((yyvsp[(2) - (2)].op)) { @@ -1864,42 +1951,54 @@ yyreduce: break; case 40: -#line 404 "parser.y" + +/* Line 1455 of yacc.c */ +#line 405 "parser.y" { (yyval.regexp) = new CloseVOp((yyvsp[(1) - (2)].regexp), (yyvsp[(2) - (2)].extop).minsize, (yyvsp[(2) - (2)].extop).maxsize); } break; case 41: -#line 411 "parser.y" + +/* Line 1455 of yacc.c */ +#line 412 "parser.y" { (yyval.op) = (yyvsp[(1) - (1)].op); } break; case 42: -#line 415 "parser.y" + +/* Line 1455 of yacc.c */ +#line 416 "parser.y" { (yyval.op) = (yyvsp[(1) - (1)].op); } break; case 43: -#line 419 "parser.y" + +/* Line 1455 of yacc.c */ +#line 420 "parser.y" { (yyval.op) = ((yyvsp[(1) - (2)].op) == (yyvsp[(2) - (2)].op)) ? (yyvsp[(1) - (2)].op) : '*'; } break; case 44: -#line 423 "parser.y" + +/* Line 1455 of yacc.c */ +#line 424 "parser.y" { (yyval.op) = ((yyvsp[(1) - (2)].op) == (yyvsp[(2) - (2)].op)) ? (yyvsp[(1) - (2)].op) : '*'; } break; case 45: -#line 430 "parser.y" + +/* Line 1455 of yacc.c */ +#line 431 "parser.y" { if(!(yyvsp[(1) - (1)].symbol)->re) { @@ -1910,29 +2009,36 @@ yyreduce: break; case 46: -#line 438 "parser.y" + +/* Line 1455 of yacc.c */ +#line 439 "parser.y" { (yyval.regexp) = (yyvsp[(1) - (1)].regexp); } break; case 47: -#line 442 "parser.y" + +/* Line 1455 of yacc.c */ +#line 443 "parser.y" { (yyval.regexp) = (yyvsp[(1) - (1)].regexp); } break; case 48: -#line 446 "parser.y" + +/* Line 1455 of yacc.c */ +#line 447 "parser.y" { (yyval.regexp) = (yyvsp[(2) - (3)].regexp); } break; -/* Line 1267 of yacc.c. */ -#line 1936 "parser.cc" + +/* Line 1455 of yacc.c */ +#line 2042 "parser.cc" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -1943,7 +2049,6 @@ yyreduce: *++yyvsp = yyval; - /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ @@ -2008,7 +2113,7 @@ yyerrlab: if (yyerrstatus == 3) { - /* If just tried and failed to reuse look-ahead token after an + /* If just tried and failed to reuse lookahead token after an error, discard it. */ if (yychar <= YYEOF) @@ -2025,7 +2130,7 @@ yyerrlab: } } - /* Else will try to reuse look-ahead token after shifting the error + /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; @@ -2082,9 +2187,6 @@ yyerrlab1: YY_STACK_PRINT (yyss, yyssp); } - if (yyn == YYFINAL) - YYACCEPT; - *++yyvsp = yylval; @@ -2109,7 +2211,7 @@ yyabortlab: yyresult = 1; goto yyreturn; -#ifndef yyoverflow +#if !defined(yyoverflow) || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ @@ -2120,7 +2222,7 @@ yyexhaustedlab: #endif yyreturn: - if (yychar != YYEOF && yychar != YYEMPTY) + if (yychar != YYEMPTY) yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval); /* Do not reclaim the symbols of the rule which action triggered @@ -2146,7 +2248,9 @@ yyreturn: } -#line 451 "parser.y" + +/* Line 1675 of yacc.c */ +#line 452 "parser.y" extern "C" { diff --git a/re2c/bootstrap/scanner.cc b/re2c/bootstrap/scanner.cc index a4fe8fdc..d99279ac 100644 --- a/re2c/bootstrap/scanner.cc +++ b/re2c/bootstrap/scanner.cc @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.6.dev on Mon Nov 17 23:14:19 2008 */ +/* Generated by re2c 0.13.6.dev on Sun Sep 25 17:57:17 2011 */ /* $Id$ */ #include #include @@ -84,33 +84,46 @@ echo: if ((YYLIMIT - YYCURSOR) < 16) YYFILL(16); yych = *YYCURSOR; - if (yych <= ')') { - if (yych <= 0x00) goto yy7; - if (yych == '\n') goto yy5; - goto yy9; + if (yych <= '%') { + if (yych <= '\t') { + if (yych <= 0x00) goto yy8; + goto yy10; + } else { + if (yych <= '\n') goto yy6; + if (yych <= '$') goto yy10; + } } else { - if (yych <= '*') goto yy4; - if (yych != '/') goto yy9; + if (yych <= '*') { + if (yych <= ')') goto yy10; + goto yy5; + } else { + if (yych == '/') goto yy4; + goto yy10; + } } - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '*') goto yy37; + ++YYCURSOR; + if ((yych = *YYCURSOR) == '{') goto yy58; yy3: { goto echo; } yy4: - yych = *++YYCURSOR; - if (yych == '/') goto yy32; + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '*') goto yy38; goto yy3; yy5: + yych = *++YYCURSOR; + if (yych == '/') goto yy33; + goto yy3; +yy6: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 32) { - goto yy10; + goto yy11; } - if (yych == '#') goto yy13; -yy6: + if (yych == '#') goto yy14; +yy7: { if (ignore_eoc) { @@ -124,7 +137,7 @@ yy6: cline++; goto echo; } -yy7: +yy8: ++YYCURSOR; { if (!ignore_eoc && !DFlag) @@ -137,127 +150,127 @@ yy7: RETURN(Stop); } } -yy9: +yy10: yych = *++YYCURSOR; goto yy3; -yy10: +yy11: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 32) { - goto yy10; + goto yy11; } - if (yych == '#') goto yy13; -yy12: + if (yych == '#') goto yy14; +yy13: YYCURSOR = YYMARKER; if (yyaccept <= 1) { if (yyaccept == 0) { goto yy3; } else { - goto yy6; + goto yy7; } } else { - goto yy33; + goto yy34; } -yy13: +yy14: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); yych = *YYCURSOR; if (yych <= 0x1F) { - if (yych == '\t') goto yy13; - goto yy12; + if (yych == '\t') goto yy14; + goto yy13; } else { - if (yych <= ' ') goto yy13; - if (yych != 'l') goto yy12; + if (yych <= ' ') goto yy14; + if (yych != 'l') goto yy13; } yych = *++YYCURSOR; - if (yych != 'i') goto yy12; + if (yych != 'i') goto yy13; yych = *++YYCURSOR; - if (yych != 'n') goto yy12; + if (yych != 'n') goto yy13; yych = *++YYCURSOR; - if (yych != 'e') goto yy12; + if (yych != 'e') goto yy13; yych = *++YYCURSOR; - if (yych <= '0') goto yy20; - if (yych <= '9') goto yy12; - goto yy20; -yy19: + if (yych <= '0') goto yy21; + if (yych <= '9') goto yy13; + goto yy21; +yy20: YYCTXMARKER = YYCURSOR + 1; ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy20: +yy21: if (yych <= 0x1F) { - if (yych == '\t') goto yy19; - goto yy12; + if (yych == '\t') goto yy20; + goto yy13; } else { - if (yych <= ' ') goto yy19; - if (yych <= '0') goto yy12; - if (yych >= ':') goto yy12; + if (yych <= ' ') goto yy20; + if (yych <= '0') goto yy13; + if (yych >= ':') goto yy13; } -yy21: +yy22: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if (yybm[0+yych] & 64) { - goto yy21; + goto yy22; } if (yych <= '\f') { - if (yych <= 0x08) goto yy12; - if (yych <= '\t') goto yy23; - if (yych <= '\n') goto yy25; - goto yy12; + if (yych <= 0x08) goto yy13; + if (yych <= '\t') goto yy24; + if (yych <= '\n') goto yy26; + goto yy13; } else { - if (yych <= '\r') goto yy27; - if (yych != ' ') goto yy12; + if (yych <= '\r') goto yy28; + if (yych != ' ') goto yy13; } -yy23: +yy24: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; if (yych <= 0x1F) { - if (yych == '\t') goto yy23; - goto yy12; + if (yych == '\t') goto yy24; + goto yy13; } else { - if (yych <= ' ') goto yy23; - if (yych == '"') goto yy28; - goto yy12; + if (yych <= ' ') goto yy24; + if (yych == '"') goto yy29; + goto yy13; } -yy25: +yy26: ++YYCURSOR; YYCURSOR = YYCTXMARKER; { set_sourceline(cursor); goto echo; } -yy27: - yych = *++YYCURSOR; - if (yych == '\n') goto yy25; - goto yy12; yy28: + yych = *++YYCURSOR; + if (yych == '\n') goto yy26; + goto yy13; +yy29: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); yych = *YYCURSOR; if (yybm[0+yych] & 128) { - goto yy28; + goto yy29; } - if (yych <= '!') goto yy12; - if (yych <= '"') goto yy31; + if (yych <= '!') goto yy13; + if (yych <= '"') goto yy32; ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if (yych == '\n') goto yy12; - goto yy28; -yy31: - yych = *++YYCURSOR; - if (yych == '\n') goto yy25; - if (yych == '\r') goto yy27; - goto yy12; + if (yych == '\n') goto yy13; + goto yy29; yy32: + yych = *++YYCURSOR; + if (yych == '\n') goto yy26; + if (yych == '\r') goto yy28; + goto yy13; +yy33: yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '\n') goto yy35; - if (yych == '\r') goto yy34; -yy33: + if (yych == '\n') goto yy36; + if (yych == '\r') goto yy35; +yy34: { if (ignore_eoc) { @@ -275,10 +288,10 @@ yy33: tok = pos = cursor; goto echo; } -yy34: - yych = *++YYCURSOR; - if (yych != '\n') goto yy12; yy35: + yych = *++YYCURSOR; + if (yych != '\n') goto yy13; +yy36: ++YYCURSOR; { cline++; @@ -298,65 +311,65 @@ yy35: tok = pos = cursor; goto echo; } -yy37: +yy38: yych = *++YYCURSOR; - if (yych != '!') goto yy12; + if (yych != '!') goto yy13; yych = *++YYCURSOR; switch (yych) { - case 'g': goto yy41; - case 'i': goto yy40; - case 'm': goto yy42; - case 'r': goto yy44; - case 't': goto yy39; - case 'u': goto yy43; - default: goto yy12; - } -yy39: - yych = *++YYCURSOR; - if (yych == 'y') goto yy99; - goto yy12; + case 'g': goto yy42; + case 'i': goto yy41; + case 'm': goto yy43; + case 'r': goto yy45; + case 't': goto yy40; + case 'u': goto yy44; + default: goto yy13; + } yy40: yych = *++YYCURSOR; - if (yych == 'g') goto yy88; - goto yy12; + if (yych == 'y') goto yy100; + goto yy13; yy41: yych = *++YYCURSOR; - if (yych == 'e') goto yy75; - goto yy12; + if (yych == 'g') goto yy89; + goto yy13; yy42: yych = *++YYCURSOR; - if (yych == 'a') goto yy67; - goto yy12; + if (yych == 'e') goto yy76; + goto yy13; yy43: yych = *++YYCURSOR; - if (yych == 's') goto yy59; - goto yy12; + if (yych == 'a') goto yy68; + goto yy13; yy44: yych = *++YYCURSOR; - if (yych == 'e') goto yy45; - if (yych == 'u') goto yy46; - goto yy12; + if (yych == 's') goto yy60; + goto yy13; yy45: yych = *++YYCURSOR; - if (yych == '2') goto yy56; - goto yy12; + if (yych == 'e') goto yy46; + if (yych == 'u') goto yy47; + goto yy13; yy46: yych = *++YYCURSOR; - if (yych != 'l') goto yy12; + if (yych == '2') goto yy57; + goto yy13; +yy47: + yych = *++YYCURSOR; + if (yych != 'l') goto yy13; yych = *++YYCURSOR; - if (yych != 'e') goto yy12; + if (yych != 'e') goto yy13; yych = *++YYCURSOR; - if (yych != 's') goto yy12; + if (yych != 's') goto yy13; yych = *++YYCURSOR; - if (yych != ':') goto yy12; + if (yych != ':') goto yy13; yych = *++YYCURSOR; - if (yych != 'r') goto yy12; + if (yych != 'r') goto yy13; yych = *++YYCURSOR; - if (yych != 'e') goto yy12; + if (yych != 'e') goto yy13; yych = *++YYCURSOR; - if (yych != '2') goto yy12; + if (yych != '2') goto yy13; yych = *++YYCURSOR; - if (yych != 'c') goto yy12; + if (yych != 'c') goto yy13; ++YYCURSOR; { if (rFlag) @@ -374,9 +387,10 @@ yy46: tok = cursor; RETURN(Rules); } -yy56: +yy57: yych = *++YYCURSOR; - if (yych != 'c') goto yy12; + if (yych != 'c') goto yy13; +yy58: ++YYCURSOR; { if (rFlag) @@ -394,19 +408,19 @@ yy56: tok = cursor; RETURN(Parse); } -yy59: +yy60: yych = *++YYCURSOR; - if (yych != 'e') goto yy12; + if (yych != 'e') goto yy13; yych = *++YYCURSOR; - if (yych != ':') goto yy12; + if (yych != ':') goto yy13; yych = *++YYCURSOR; - if (yych != 'r') goto yy12; + if (yych != 'r') goto yy13; yych = *++YYCURSOR; - if (yych != 'e') goto yy12; + if (yych != 'e') goto yy13; yych = *++YYCURSOR; - if (yych != '2') goto yy12; + if (yych != '2') goto yy13; yych = *++YYCURSOR; - if (yych != 'c') goto yy12; + if (yych != 'c') goto yy13; ++YYCURSOR; { if (!rFlag) @@ -425,19 +439,19 @@ yy59: tok = cursor; RETURN(Reuse); } -yy67: +yy68: yych = *++YYCURSOR; - if (yych != 'x') goto yy12; + if (yych != 'x') goto yy13; yych = *++YYCURSOR; - if (yych != ':') goto yy12; + if (yych != ':') goto yy13; yych = *++YYCURSOR; - if (yych != 'r') goto yy12; + if (yych != 'r') goto yy13; yych = *++YYCURSOR; - if (yych != 'e') goto yy12; + if (yych != 'e') goto yy13; yych = *++YYCURSOR; - if (yych != '2') goto yy12; + if (yych != '2') goto yy13; yych = *++YYCURSOR; - if (yych != 'c') goto yy12; + if (yych != 'c') goto yy13; ++YYCURSOR; { if (bUsedYYMaxFill) @@ -453,29 +467,29 @@ yy67: bUsedYYMaxFill = true; goto echo; } -yy75: +yy76: yych = *++YYCURSOR; - if (yych != 't') goto yy12; + if (yych != 't') goto yy13; yych = *++YYCURSOR; - if (yych != 's') goto yy12; + if (yych != 's') goto yy13; yych = *++YYCURSOR; - if (yych != 't') goto yy12; + if (yych != 't') goto yy13; yych = *++YYCURSOR; - if (yych != 'a') goto yy12; + if (yych != 'a') goto yy13; yych = *++YYCURSOR; - if (yych != 't') goto yy12; + if (yych != 't') goto yy13; yych = *++YYCURSOR; - if (yych != 'e') goto yy12; + if (yych != 'e') goto yy13; yych = *++YYCURSOR; - if (yych != ':') goto yy12; + if (yych != ':') goto yy13; yych = *++YYCURSOR; - if (yych != 'r') goto yy12; + if (yych != 'r') goto yy13; yych = *++YYCURSOR; - if (yych != 'e') goto yy12; + if (yych != 'e') goto yy13; yych = *++YYCURSOR; - if (yych != '2') goto yy12; + if (yych != '2') goto yy13; yych = *++YYCURSOR; - if (yych != 'c') goto yy12; + if (yych != 'c') goto yy13; ++YYCURSOR; { tok = pos = cursor; @@ -483,48 +497,48 @@ yy75: ignore_eoc = true; goto echo; } -yy88: +yy89: yych = *++YYCURSOR; - if (yych != 'n') goto yy12; + if (yych != 'n') goto yy13; yych = *++YYCURSOR; - if (yych != 'o') goto yy12; + if (yych != 'o') goto yy13; yych = *++YYCURSOR; - if (yych != 'r') goto yy12; + if (yych != 'r') goto yy13; yych = *++YYCURSOR; - if (yych != 'e') goto yy12; + if (yych != 'e') goto yy13; yych = *++YYCURSOR; - if (yych != ':') goto yy12; + if (yych != ':') goto yy13; yych = *++YYCURSOR; - if (yych != 'r') goto yy12; + if (yych != 'r') goto yy13; yych = *++YYCURSOR; - if (yych != 'e') goto yy12; + if (yych != 'e') goto yy13; yych = *++YYCURSOR; - if (yych != '2') goto yy12; + if (yych != '2') goto yy13; yych = *++YYCURSOR; - if (yych != 'c') goto yy12; + if (yych != 'c') goto yy13; ++YYCURSOR; { tok = pos = cursor; ignore_eoc = true; goto echo; } -yy99: +yy100: yych = *++YYCURSOR; - if (yych != 'p') goto yy12; + if (yych != 'p') goto yy13; yych = *++YYCURSOR; - if (yych != 'e') goto yy12; + if (yych != 'e') goto yy13; yych = *++YYCURSOR; - if (yych != 's') goto yy12; + if (yych != 's') goto yy13; yych = *++YYCURSOR; - if (yych != ':') goto yy12; + if (yych != ':') goto yy13; yych = *++YYCURSOR; - if (yych != 'r') goto yy12; + if (yych != 'r') goto yy13; yych = *++YYCURSOR; - if (yych != 'e') goto yy12; + if (yych != 'e') goto yy13; yych = *++YYCURSOR; - if (yych != '2') goto yy12; + if (yych != '2') goto yy13; yych = *++YYCURSOR; - if (yych != 'c') goto yy12; + if (yych != 'c') goto yy13; ++YYCURSOR; { if (bSinglePass) @@ -604,107 +618,115 @@ scan: }; if ((YYLIMIT - YYCURSOR) < 6) YYFILL(6); yych = *YYCURSOR; - if (yych <= '/') { + if (yych <= '.') { if (yych <= '"') { if (yych <= '\f') { - if (yych <= 0x08) goto yy138; - if (yych <= '\t') goto yy133; - if (yych <= '\n') goto yy135; - goto yy138; + if (yych <= 0x08) goto yy140; + if (yych <= '\t') goto yy135; + if (yych <= '\n') goto yy137; + goto yy140; } else { if (yych <= 0x1F) { - if (yych <= '\r') goto yy137; - goto yy138; + if (yych <= '\r') goto yy139; + goto yy140; } else { - if (yych <= ' ') goto yy133; - if (yych <= '!') goto yy138; - goto yy119; + if (yych <= ' ') goto yy135; + if (yych <= '!') goto yy140; + goto yy121; } } } else { - if (yych <= '*') { - if (yych <= '&') goto yy138; - if (yych <= '\'') goto yy121; - if (yych <= ')') goto yy126; - goto yy117; + if (yych <= ')') { + if (yych <= '%') { + if (yych <= '$') goto yy140; + goto yy118; + } else { + if (yych <= '&') goto yy140; + if (yych <= '\'') goto yy123; + goto yy128; + } } else { - if (yych <= ',') { - if (yych <= '+') goto yy127; - goto yy126; + if (yych <= '+') { + if (yych <= '*') goto yy119; + goto yy129; } else { - if (yych <= '-') goto yy138; - if (yych <= '.') goto yy131; - goto yy115; + if (yych <= ',') goto yy128; + if (yych <= '-') goto yy140; + goto yy133; } } } } else { if (yych <= '[') { if (yych <= '<') { - if (yych <= '9') goto yy138; - if (yych <= ':') goto yy113; - if (yych <= ';') goto yy126; - goto yy125; + if (yych <= '9') { + if (yych <= '/') goto yy116; + goto yy140; + } else { + if (yych <= ':') goto yy114; + if (yych <= ';') goto yy128; + goto yy127; + } } else { if (yych <= '?') { - if (yych <= '>') goto yy126; - goto yy127; + if (yych <= '>') goto yy128; + goto yy129; } else { - if (yych <= '@') goto yy138; - if (yych <= 'Z') goto yy130; - goto yy123; + if (yych <= '@') goto yy140; + if (yych <= 'Z') goto yy132; + goto yy125; } } } else { if (yych <= 'q') { if (yych <= '^') { - if (yych <= '\\') goto yy126; - goto yy138; + if (yych <= '\\') goto yy128; + goto yy140; } else { - if (yych == '`') goto yy138; - goto yy130; + if (yych == '`') goto yy140; + goto yy132; } } else { if (yych <= 'z') { - if (yych <= 'r') goto yy129; - goto yy130; + if (yych <= 'r') goto yy131; + goto yy132; } else { - if (yych <= '{') goto yy111; - if (yych <= '|') goto yy126; - goto yy138; + if (yych <= '{') goto yy112; + if (yych <= '|') goto yy128; + goto yy140; } } } } -yy111: +yy112: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '@') { if (yych <= '/') { - if (yych == ',') goto yy229; + if (yych == ',') goto yy233; } else { - if (yych <= '0') goto yy226; - if (yych <= '9') goto yy227; + if (yych <= '0') goto yy230; + if (yych <= '9') goto yy231; } } else { if (yych <= '_') { - if (yych <= 'Z') goto yy224; - if (yych >= '_') goto yy224; + if (yych <= 'Z') goto yy228; + if (yych >= '_') goto yy228; } else { - if (yych <= '`') goto yy112; - if (yych <= 'z') goto yy224; + if (yych <= '`') goto yy113; + if (yych <= 'z') goto yy228; } } -yy112: +yy113: { depth = 1; goto code; } -yy113: +yy114: YYCTXMARKER = YYCURSOR + 1; ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy220; -yy114: + if ((yych = *YYCURSOR) == '=') goto yy224; +yy115: { std::ostringstream msg; msg << "unexpected character: "; @@ -712,278 +734,283 @@ yy114: fatal(msg.str().c_str()); goto scan; } -yy115: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '*') goto yy218; yy116: + ++YYCURSOR; + if ((yych = *YYCURSOR) == '*') goto yy220; + if (yych == '/') goto yy222; +yy117: { RETURN(*tok); } -yy117: +yy118: + yych = *++YYCURSOR; + if (yych == '}') goto yy218; + goto yy115; +yy119: ++YYCURSOR; - if ((yych = *YYCURSOR) == '/') goto yy216; + if ((yych = *YYCURSOR) == '/') goto yy218; { yylval.op = *tok; RETURN(STAR); } -yy119: +yy121: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - if (yych != '\n') goto yy212; -yy120: + if (yych != '\n') goto yy214; +yy122: { fatal("unterminated string constant (missing \")"); } -yy121: +yy123: yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych != '\n') goto yy207; -yy122: + if (yych != '\n') goto yy209; +yy124: { fatal("unterminated string constant (missing ')"); } -yy123: +yy125: yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '\n') goto yy124; - if (yych == '^') goto yy198; - goto yy197; -yy124: + if (yych == '\n') goto yy126; + if (yych == '^') goto yy200; + goto yy199; +yy126: { fatal("unterminated range (missing ])"); } -yy125: +yy127: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '!') goto yy187; - if (yych == '>') goto yy189; - goto yy116; -yy126: + if (yych == '!') goto yy189; + if (yych == '>') goto yy191; + goto yy117; +yy128: yych = *++YYCURSOR; - goto yy116; -yy127: + goto yy117; +yy129: ++YYCURSOR; { yylval.op = *tok; RETURN(CLOSE); } -yy129: +yy131: YYCTXMARKER = YYCURSOR + 1; yych = *++YYCURSOR; - if (yych == 'e') goto yy176; - goto yy165; -yy130: + if (yych == 'e') goto yy178; + goto yy167; +yy132: YYCTXMARKER = YYCURSOR + 1; yych = *++YYCURSOR; - goto yy165; -yy131: + goto yy167; +yy133: ++YYCURSOR; { cur = cursor; yylval.regexp = mkDot(); return RANGE; } -yy133: +yy135: ++YYCURSOR; yych = *YYCURSOR; - goto yy163; -yy134: + goto yy165; +yy136: { goto scan; } -yy135: +yy137: yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 4) { - goto yy140; + goto yy142; } - if (yych == '#') goto yy143; -yy136: + if (yych == '#') goto yy145; +yy138: { if (cursor == eof) RETURN(0); pos = cursor; cline++; goto scan; } -yy137: +yy139: yych = *++YYCURSOR; - if (yych == '\n') goto yy139; - goto yy114; -yy138: + if (yych == '\n') goto yy141; + goto yy115; +yy140: yych = *++YYCURSOR; - goto yy114; -yy139: + goto yy115; +yy141: yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 4) { - goto yy140; + goto yy142; } - if (yych == '#') goto yy143; - goto yy136; -yy140: + if (yych == '#') goto yy145; + goto yy138; +yy142: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 4) { - goto yy140; + goto yy142; } - if (yych == '#') goto yy143; -yy142: + if (yych == '#') goto yy145; +yy144: YYCURSOR = YYMARKER; if (yyaccept <= 3) { if (yyaccept <= 1) { if (yyaccept == 0) { - goto yy112; + goto yy113; } else { - goto yy120; + goto yy122; } } else { if (yyaccept == 2) { - goto yy122; - } else { goto yy124; + } else { + goto yy126; } } } else { if (yyaccept <= 5) { if (yyaccept == 4) { - goto yy116; + goto yy117; } else { - goto yy136; + goto yy138; } } else { if (yyaccept == 6) { - goto yy182; + goto yy184; } else { - goto yy230; + goto yy234; } } } -yy143: +yy145: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); yych = *YYCURSOR; if (yych <= 0x1F) { - if (yych == '\t') goto yy143; - goto yy142; + if (yych == '\t') goto yy145; + goto yy144; } else { - if (yych <= ' ') goto yy143; - if (yych != 'l') goto yy142; + if (yych <= ' ') goto yy145; + if (yych != 'l') goto yy144; } yych = *++YYCURSOR; - if (yych != 'i') goto yy142; + if (yych != 'i') goto yy144; yych = *++YYCURSOR; - if (yych != 'n') goto yy142; + if (yych != 'n') goto yy144; yych = *++YYCURSOR; - if (yych != 'e') goto yy142; + if (yych != 'e') goto yy144; yych = *++YYCURSOR; - if (yych <= '0') goto yy150; - if (yych <= '9') goto yy142; - goto yy150; -yy149: + if (yych <= '0') goto yy152; + if (yych <= '9') goto yy144; + goto yy152; +yy151: YYCTXMARKER = YYCURSOR + 1; ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy150: +yy152: if (yych <= 0x1F) { - if (yych == '\t') goto yy149; - goto yy142; + if (yych == '\t') goto yy151; + goto yy144; } else { - if (yych <= ' ') goto yy149; - if (yych <= '0') goto yy142; - if (yych >= ':') goto yy142; + if (yych <= ' ') goto yy151; + if (yych <= '0') goto yy144; + if (yych >= ':') goto yy144; } -yy151: +yy153: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if (yybm[0+yych] & 8) { - goto yy151; + goto yy153; } if (yych <= '\f') { - if (yych <= 0x08) goto yy142; - if (yych <= '\t') goto yy153; - if (yych <= '\n') goto yy155; - goto yy142; + if (yych <= 0x08) goto yy144; + if (yych <= '\t') goto yy155; + if (yych <= '\n') goto yy157; + goto yy144; } else { - if (yych <= '\r') goto yy157; - if (yych != ' ') goto yy142; + if (yych <= '\r') goto yy159; + if (yych != ' ') goto yy144; } -yy153: +yy155: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; if (yych <= 0x1F) { - if (yych == '\t') goto yy153; - goto yy142; + if (yych == '\t') goto yy155; + goto yy144; } else { - if (yych <= ' ') goto yy153; - if (yych == '"') goto yy158; - goto yy142; + if (yych <= ' ') goto yy155; + if (yych == '"') goto yy160; + goto yy144; } -yy155: +yy157: ++YYCURSOR; YYCURSOR = YYCTXMARKER; { set_sourceline(cursor); goto scan; } -yy157: +yy159: yych = *++YYCURSOR; - if (yych == '\n') goto yy155; - goto yy142; -yy158: + if (yych == '\n') goto yy157; + goto yy144; +yy160: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); yych = *YYCURSOR; if (yybm[0+yych] & 16) { - goto yy158; + goto yy160; } - if (yych <= '!') goto yy142; - if (yych <= '"') goto yy161; + if (yych <= '!') goto yy144; + if (yych <= '"') goto yy163; ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if (yych == '\n') goto yy142; - goto yy158; -yy161: + if (yych == '\n') goto yy144; + goto yy160; +yy163: yych = *++YYCURSOR; - if (yych == '\n') goto yy155; - if (yych == '\r') goto yy157; - goto yy142; -yy162: + if (yych == '\n') goto yy157; + if (yych == '\r') goto yy159; + goto yy144; +yy164: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy163: - if (yych == '\t') goto yy162; - if (yych == ' ') goto yy162; - goto yy134; -yy164: +yy165: + if (yych == '\t') goto yy164; + if (yych == ' ') goto yy164; + goto yy136; +yy166: YYCTXMARKER = YYCURSOR + 1; ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; -yy165: +yy167: if (yybm[0+yych] & 32) { - goto yy164; + goto yy166; } if (yych <= ' ') { - if (yych == '\t') goto yy168; - if (yych <= 0x1F) goto yy167; - goto yy168; + if (yych == '\t') goto yy170; + if (yych <= 0x1F) goto yy169; + goto yy170; } else { if (yych <= ',') { - if (yych <= '+') goto yy167; - goto yy169; + if (yych <= '+') goto yy169; + goto yy171; } else { - if (yych <= '<') goto yy167; - if (yych <= '>') goto yy169; - goto yy167; + if (yych <= '<') goto yy169; + if (yych <= '>') goto yy171; + goto yy169; } } -yy166: +yy168: YYCURSOR = YYCTXMARKER; { if (!FFlag) { @@ -1004,22 +1031,22 @@ yy166: return STRING; } } -yy167: +yy169: yych = *++YYCURSOR; - goto yy166; -yy168: + goto yy168; +yy170: yych = *++YYCURSOR; - goto yy174; -yy169: + goto yy176; +yy171: ++YYCURSOR; -yy170: +yy172: YYCURSOR = YYCTXMARKER; { cur = ptr > tok ? ptr - 1 : cursor; yylval.symbol = Symbol::find(token()); return ID; } -yy171: +yy173: ++YYCURSOR; YYCURSOR = YYCTXMARKER; { @@ -1027,65 +1054,65 @@ yy171: yylval.symbol = Symbol::find(token()); return FFlag ? FID : ID; } -yy173: +yy175: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy174: +yy176: if (yych <= ' ') { - if (yych == '\t') goto yy173; - if (yych <= 0x1F) goto yy171; - goto yy173; + if (yych == '\t') goto yy175; + if (yych <= 0x1F) goto yy173; + goto yy175; } else { if (yych <= ',') { - if (yych <= '+') goto yy171; + if (yych <= '+') goto yy173; } else { - if (yych <= '<') goto yy171; - if (yych >= '?') goto yy171; + if (yych <= '<') goto yy173; + if (yych >= '?') goto yy173; } } yych = *++YYCURSOR; - goto yy170; -yy176: + goto yy172; +yy178: YYCTXMARKER = YYCURSOR + 1; yych = *++YYCURSOR; - if (yych != '2') goto yy165; + if (yych != '2') goto yy167; YYCTXMARKER = YYCURSOR + 1; yych = *++YYCURSOR; - if (yych != 'c') goto yy165; + if (yych != 'c') goto yy167; YYCTXMARKER = YYCURSOR + 1; yych = *++YYCURSOR; - if (yych != ':') goto yy165; + if (yych != ':') goto yy167; yych = *++YYCURSOR; if (yych <= '^') { - if (yych <= '@') goto yy166; - if (yych >= '[') goto yy166; + if (yych <= '@') goto yy168; + if (yych >= '[') goto yy168; } else { - if (yych == '`') goto yy166; - if (yych >= '{') goto yy166; + if (yych == '`') goto yy168; + if (yych >= '{') goto yy168; } -yy180: +yy182: yyaccept = 6; YYMARKER = ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if (yych <= '@') { if (yych <= '9') { - if (yych >= '0') goto yy180; + if (yych >= '0') goto yy182; } else { - if (yych <= ':') goto yy184; - if (yych >= '@') goto yy183; + if (yych <= ':') goto yy186; + if (yych >= '@') goto yy185; } } else { if (yych <= '_') { - if (yych <= 'Z') goto yy180; - if (yych >= '_') goto yy180; + if (yych <= 'Z') goto yy182; + if (yych >= '_') goto yy182; } else { - if (yych <= '`') goto yy182; - if (yych <= 'z') goto yy180; + if (yych <= '`') goto yy184; + if (yych <= 'z') goto yy182; } } -yy182: +yy184: { cur = cursor; tok += 5; /* skip "re2c:" */ @@ -1093,159 +1120,159 @@ yy182: yylval.str = new Str(token()); return CONFIG; } -yy183: +yy185: yych = *++YYCURSOR; if (yych <= '^') { - if (yych <= '@') goto yy142; - if (yych <= 'Z') goto yy185; - goto yy142; + if (yych <= '@') goto yy144; + if (yych <= 'Z') goto yy187; + goto yy144; } else { - if (yych == '`') goto yy142; - if (yych <= 'z') goto yy185; - goto yy142; + if (yych == '`') goto yy144; + if (yych <= 'z') goto yy187; + goto yy144; } -yy184: +yy186: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; if (yych <= '^') { - if (yych <= '@') goto yy142; - if (yych <= 'Z') goto yy180; - goto yy142; + if (yych <= '@') goto yy144; + if (yych <= 'Z') goto yy182; + goto yy144; } else { - if (yych == '`') goto yy142; - if (yych <= 'z') goto yy180; - goto yy142; + if (yych == '`') goto yy144; + if (yych <= 'z') goto yy182; + goto yy144; } -yy185: +yy187: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; if (yych <= 'Z') { - if (yych <= '/') goto yy182; - if (yych <= '9') goto yy185; - if (yych <= '@') goto yy182; - goto yy185; + if (yych <= '/') goto yy184; + if (yych <= '9') goto yy187; + if (yych <= '@') goto yy184; + goto yy187; } else { if (yych <= '_') { - if (yych <= '^') goto yy182; - goto yy185; + if (yych <= '^') goto yy184; + goto yy187; } else { - if (yych <= '`') goto yy182; - if (yych <= 'z') goto yy185; - goto yy182; + if (yych <= '`') goto yy184; + if (yych <= 'z') goto yy187; + goto yy184; } } -yy187: +yy189: ++YYCURSOR; { RETURN(SETUP); } -yy189: +yy191: YYCTXMARKER = YYCURSOR + 1; yych = *++YYCURSOR; - goto yy191; -yy190: + goto yy193; +yy192: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; -yy191: +yy193: if (yych <= '9') { if (yych <= '\t') { - if (yych <= 0x08) goto yy142; - goto yy190; + if (yych <= 0x08) goto yy144; + goto yy192; } else { - if (yych == ' ') goto yy190; - goto yy142; + if (yych == ' ') goto yy192; + goto yy144; } } else { if (yych <= '=') { - if (yych <= ':') goto yy195; - if (yych <= '<') goto yy142; - goto yy194; + if (yych <= ':') goto yy197; + if (yych <= '<') goto yy144; + goto yy196; } else { - if (yych != '{') goto yy142; + if (yych != '{') goto yy144; } } -yy192: +yy194: ++YYCURSOR; YYCURSOR = YYCTXMARKER; { RETURN(NOCOND); } -yy194: +yy196: yych = *++YYCURSOR; - if (yych == '>') goto yy192; - goto yy142; -yy195: + if (yych == '>') goto yy194; + goto yy144; +yy197: yych = *++YYCURSOR; - if (yych == '=') goto yy192; - goto yy142; -yy196: + if (yych == '=') goto yy194; + goto yy144; +yy198: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy197: +yy199: if (yybm[0+yych] & 64) { - goto yy196; + goto yy198; } - if (yych <= '[') goto yy142; - if (yych <= '\\') goto yy200; - goto yy201; -yy198: + if (yych <= '[') goto yy144; + if (yych <= '\\') goto yy202; + goto yy203; +yy200: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; if (yych <= '[') { - if (yych == '\n') goto yy142; - goto yy198; + if (yych == '\n') goto yy144; + goto yy200; } else { - if (yych <= '\\') goto yy203; - if (yych <= ']') goto yy204; - goto yy198; + if (yych <= '\\') goto yy205; + if (yych <= ']') goto yy206; + goto yy200; } -yy200: +yy202: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if (yych == '\n') goto yy142; - goto yy196; -yy201: + if (yych == '\n') goto yy144; + goto yy198; +yy203: ++YYCURSOR; { cur = cursor; yylval.regexp = ranToRE(token()); return RANGE; } -yy203: +yy205: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if (yych == '\n') goto yy142; - goto yy198; -yy204: + if (yych == '\n') goto yy144; + goto yy200; +yy206: ++YYCURSOR; { cur = cursor; yylval.regexp = invToRE(token()); return RANGE; } -yy206: +yy208: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy207: +yy209: if (yybm[0+yych] & 128) { - goto yy206; + goto yy208; } - if (yych <= '&') goto yy142; - if (yych <= '\'') goto yy209; + if (yych <= '&') goto yy144; + if (yych <= '\'') goto yy211; ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if (yych == '\n') goto yy142; - goto yy206; -yy209: + if (yych == '\n') goto yy144; + goto yy208; +yy211: ++YYCURSOR; { cur = cursor; @@ -1259,24 +1286,24 @@ yy209: } return STRING; } -yy211: +yy213: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy212: +yy214: if (yych <= '!') { - if (yych == '\n') goto yy142; - goto yy211; + if (yych == '\n') goto yy144; + goto yy213; } else { - if (yych <= '"') goto yy214; - if (yych != '\\') goto yy211; + if (yych <= '"') goto yy216; + if (yych != '\\') goto yy213; } ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if (yych == '\n') goto yy142; - goto yy211; -yy214: + if (yych == '\n') goto yy144; + goto yy213; +yy216: ++YYCURSOR; { cur = cursor; @@ -1290,122 +1317,127 @@ yy214: } return STRING; } -yy216: +yy218: ++YYCURSOR; { tok = cursor; RETURN(0); } -yy218: +yy220: ++YYCURSOR; { depth = 1; goto comment; } -yy220: +yy222: + ++YYCURSOR; + { + goto nextLine; + } +yy224: ++YYCURSOR; - if ((yych = *YYCURSOR) == '>') goto yy222; + if ((yych = *YYCURSOR) == '>') goto yy226; { cur = cursor; tok += 2; /* skip ":=" */ depth = 0; goto code; } -yy222: +yy226: ++YYCURSOR; YYCURSOR = YYCTXMARKER; { RETURN(*tok); } -yy224: +yy228: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; if (yych <= '^') { if (yych <= '9') { - if (yych <= '/') goto yy142; - goto yy224; + if (yych <= '/') goto yy144; + goto yy228; } else { - if (yych <= '@') goto yy142; - if (yych <= 'Z') goto yy224; - goto yy142; + if (yych <= '@') goto yy144; + if (yych <= 'Z') goto yy228; + goto yy144; } } else { if (yych <= 'z') { - if (yych == '`') goto yy142; - goto yy224; + if (yych == '`') goto yy144; + goto yy228; } else { - if (yych == '}') goto yy243; - goto yy142; + if (yych == '}') goto yy247; + goto yy144; } } -yy226: +yy230: yych = *++YYCURSOR; - if (yych == ',') goto yy240; - goto yy228; -yy227: + if (yych == ',') goto yy244; + goto yy232; +yy231: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; -yy228: +yy232: if (yych <= '/') { - if (yych == ',') goto yy233; - goto yy142; + if (yych == ',') goto yy237; + goto yy144; } else { - if (yych <= '9') goto yy227; - if (yych == '}') goto yy231; - goto yy142; + if (yych <= '9') goto yy231; + if (yych == '}') goto yy235; + goto yy144; } -yy229: +yy233: ++YYCURSOR; -yy230: +yy234: { fatal("illegal closure form, use '{n}', '{n,}', '{n,m}' where n and m are numbers"); } -yy231: +yy235: ++YYCURSOR; { yylval.extop.minsize = atoi((char *)tok+1); yylval.extop.maxsize = atoi((char *)tok+1); RETURN(CLOSESIZE); } -yy233: +yy237: yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy230; - if (yych <= '9') goto yy236; - if (yych != '}') goto yy230; + if (yych <= '/') goto yy234; + if (yych <= '9') goto yy240; + if (yych != '}') goto yy234; ++YYCURSOR; { yylval.extop.minsize = atoi((char *)tok+1); yylval.extop.maxsize = -1; RETURN(CLOSESIZE); } -yy236: +yy240: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if (yych <= '/') goto yy142; - if (yych <= '9') goto yy236; - if (yych != '}') goto yy142; + if (yych <= '/') goto yy144; + if (yych <= '9') goto yy240; + if (yych != '}') goto yy144; ++YYCURSOR; { yylval.extop.minsize = atoi((char *)tok+1); yylval.extop.maxsize = MAX(yylval.extop.minsize,atoi(strchr((char *)tok, ',')+1)); RETURN(CLOSESIZE); } -yy240: +yy244: yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy230; - if (yych <= '9') goto yy236; - if (yych != '}') goto yy230; + if (yych <= '/') goto yy234; + if (yych <= '9') goto yy240; + if (yych != '}') goto yy234; ++YYCURSOR; { yylval.op = '*'; RETURN(CLOSE); } -yy243: +yy247: ++YYCURSOR; { if (!FFlag) { @@ -1461,20 +1493,20 @@ code: yych = *YYCURSOR; if (yych <= '&') { if (yych <= '\n') { - if (yych <= 0x00) goto yy253; - if (yych <= '\t') goto yy255; - goto yy251; - } else { - if (yych == '"') goto yy257; + if (yych <= 0x00) goto yy257; + if (yych <= '\t') goto yy259; goto yy255; + } else { + if (yych == '"') goto yy261; + goto yy259; } } else { if (yych <= '{') { - if (yych <= '\'') goto yy258; - if (yych <= 'z') goto yy255; - goto yy249; + if (yych <= '\'') goto yy262; + if (yych <= 'z') goto yy259; + goto yy253; } else { - if (yych != '}') goto yy255; + if (yych != '}') goto yy259; } } ++YYCURSOR; @@ -1491,7 +1523,7 @@ code: } goto code; } -yy249: +yy253: ++YYCURSOR; { if (depth == 0) @@ -1504,25 +1536,25 @@ yy249: } goto code; } -yy251: +yy255: YYCTXMARKER = YYCURSOR + 1; yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '\r') { if (yych <= '\t') { - if (yych >= '\t') goto yy266; + if (yych >= '\t') goto yy270; } else { - if (yych <= '\n') goto yy268; - if (yych >= '\r') goto yy268; + if (yych <= '\n') goto yy272; + if (yych >= '\r') goto yy272; } } else { if (yych <= ' ') { - if (yych >= ' ') goto yy266; + if (yych >= ' ') goto yy270; } else { - if (yych == '#') goto yy269; + if (yych == '#') goto yy273; } } -yy252: +yy256: { if (depth == 0) { @@ -1543,7 +1575,7 @@ yy252: cline++; goto code; } -yy253: +yy257: ++YYCURSOR; { if (cursor == eof) @@ -1556,75 +1588,75 @@ yy253: } goto code; } -yy255: +yy259: ++YYCURSOR; -yy256: +yy260: { goto code; } -yy257: +yy261: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '\n') goto yy256; - goto yy264; -yy258: + if (yych == '\n') goto yy260; + goto yy268; +yy262: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '\n') goto yy256; - goto yy260; -yy259: + if (yych == '\n') goto yy260; + goto yy264; +yy263: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy260: +yy264: if (yybm[0+yych] & 16) { - goto yy259; + goto yy263; } - if (yych <= '&') goto yy261; - if (yych <= '\'') goto yy255; - goto yy262; -yy261: + if (yych <= '&') goto yy265; + if (yych <= '\'') goto yy259; + goto yy266; +yy265: YYCURSOR = YYMARKER; if (yyaccept <= 1) { if (yyaccept == 0) { - goto yy252; - } else { goto yy256; + } else { + goto yy260; } } else { - goto yy267; + goto yy271; } -yy262: +yy266: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if (yych == '\n') goto yy261; - goto yy259; -yy263: + if (yych == '\n') goto yy265; + goto yy263; +yy267: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy264: +yy268: if (yybm[0+yych] & 32) { - goto yy263; + goto yy267; } - if (yych <= '!') goto yy261; - if (yych <= '"') goto yy255; + if (yych <= '!') goto yy265; + if (yych <= '"') goto yy259; ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if (yych == '\n') goto yy261; - goto yy263; -yy266: + if (yych == '\n') goto yy265; + goto yy267; +yy270: yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy288; + if (yych == '\t') goto yy292; } else { - if (yych <= ' ') goto yy288; - if (yych == '#') goto yy269; + if (yych <= ' ') goto yy292; + if (yych == '#') goto yy273; } -yy267: +yy271: YYCURSOR = YYCTXMARKER; { if (depth == 0) @@ -1639,112 +1671,112 @@ yy267: cline++; goto code; } -yy268: +yy272: yych = *++YYCURSOR; - goto yy267; -yy269: + goto yy271; +yy273: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); yych = *YYCURSOR; if (yybm[0+yych] & 64) { - goto yy269; + goto yy273; } - if (yych != 'l') goto yy261; + if (yych != 'l') goto yy265; yych = *++YYCURSOR; - if (yych != 'i') goto yy261; + if (yych != 'i') goto yy265; yych = *++YYCURSOR; - if (yych != 'n') goto yy261; + if (yych != 'n') goto yy265; yych = *++YYCURSOR; - if (yych != 'e') goto yy261; + if (yych != 'e') goto yy265; yych = *++YYCURSOR; - if (yych <= '0') goto yy276; - if (yych <= '9') goto yy261; - goto yy276; -yy275: + if (yych <= '0') goto yy280; + if (yych <= '9') goto yy265; + goto yy280; +yy279: YYCTXMARKER = YYCURSOR + 1; ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy276: +yy280: if (yych <= 0x1F) { - if (yych == '\t') goto yy275; - goto yy261; + if (yych == '\t') goto yy279; + goto yy265; } else { - if (yych <= ' ') goto yy275; - if (yych <= '0') goto yy261; - if (yych >= ':') goto yy261; + if (yych <= ' ') goto yy279; + if (yych <= '0') goto yy265; + if (yych >= ':') goto yy265; } -yy277: +yy281: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if (yybm[0+yych] & 128) { - goto yy277; + goto yy281; } if (yych <= '\f') { - if (yych <= 0x08) goto yy261; - if (yych <= '\t') goto yy279; - if (yych <= '\n') goto yy281; - goto yy261; + if (yych <= 0x08) goto yy265; + if (yych <= '\t') goto yy283; + if (yych <= '\n') goto yy285; + goto yy265; } else { - if (yych <= '\r') goto yy283; - if (yych != ' ') goto yy261; + if (yych <= '\r') goto yy287; + if (yych != ' ') goto yy265; } -yy279: +yy283: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; if (yych <= 0x1F) { - if (yych == '\t') goto yy279; - goto yy261; + if (yych == '\t') goto yy283; + goto yy265; } else { - if (yych <= ' ') goto yy279; - if (yych == '"') goto yy284; - goto yy261; + if (yych <= ' ') goto yy283; + if (yych == '"') goto yy288; + goto yy265; } -yy281: +yy285: ++YYCURSOR; YYCURSOR = YYCTXMARKER; { set_sourceline(cursor); goto code; } -yy283: +yy287: yych = *++YYCURSOR; - if (yych == '\n') goto yy281; - goto yy261; -yy284: + if (yych == '\n') goto yy285; + goto yy265; +yy288: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); yych = *YYCURSOR; if (yych <= '!') { - if (yych == '\n') goto yy261; - goto yy284; + if (yych == '\n') goto yy265; + goto yy288; } else { - if (yych <= '"') goto yy287; - if (yych != '\\') goto yy284; + if (yych <= '"') goto yy291; + if (yych != '\\') goto yy288; } ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if (yych == '\n') goto yy261; - goto yy284; -yy287: + if (yych == '\n') goto yy265; + goto yy288; +yy291: yych = *++YYCURSOR; - if (yych == '\n') goto yy281; - if (yych == '\r') goto yy283; - goto yy261; -yy288: + if (yych == '\n') goto yy285; + if (yych == '\r') goto yy287; + goto yy265; +yy292: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; if (yych <= 0x1F) { - if (yych == '\t') goto yy288; - goto yy261; + if (yych == '\t') goto yy292; + goto yy265; } else { - if (yych <= ' ') goto yy288; - if (yych == '#') goto yy269; - goto yy261; + if (yych <= ' ') goto yy292; + if (yych == '#') goto yy273; + goto yy265; } } @@ -1790,17 +1822,17 @@ comment: if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if (yych <= ')') { - if (yych == '\n') goto yy295; - goto yy297; + if (yych == '\n') goto yy299; + goto yy301; } else { - if (yych <= '*') goto yy292; - if (yych == '/') goto yy294; - goto yy297; + if (yych <= '*') goto yy296; + if (yych == '/') goto yy298; + goto yy301; } -yy292: +yy296: ++YYCURSOR; - if ((yych = *YYCURSOR) == '/') goto yy322; -yy293: + if ((yych = *YYCURSOR) == '/') goto yy326; +yy297: { if (cursor == eof) { @@ -1808,17 +1840,17 @@ yy293: } goto comment; } -yy294: +yy298: yych = *++YYCURSOR; - if (yych == '*') goto yy320; - goto yy293; -yy295: + if (yych == '*') goto yy324; + goto yy297; +yy299: yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 32) { - goto yy298; + goto yy302; } - if (yych == '#') goto yy301; -yy296: + if (yych == '#') goto yy305; +yy300: { if (cursor == eof) { @@ -1828,121 +1860,121 @@ yy296: cline++; goto comment; } -yy297: +yy301: yych = *++YYCURSOR; - goto yy293; -yy298: + goto yy297; +yy302: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 32) { - goto yy298; + goto yy302; } - if (yych == '#') goto yy301; -yy300: + if (yych == '#') goto yy305; +yy304: YYCURSOR = YYMARKER; - goto yy296; -yy301: + goto yy300; +yy305: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); yych = *YYCURSOR; if (yych <= 0x1F) { - if (yych == '\t') goto yy301; - goto yy300; + if (yych == '\t') goto yy305; + goto yy304; } else { - if (yych <= ' ') goto yy301; - if (yych != 'l') goto yy300; + if (yych <= ' ') goto yy305; + if (yych != 'l') goto yy304; } yych = *++YYCURSOR; - if (yych != 'i') goto yy300; + if (yych != 'i') goto yy304; yych = *++YYCURSOR; - if (yych != 'n') goto yy300; + if (yych != 'n') goto yy304; yych = *++YYCURSOR; - if (yych != 'e') goto yy300; + if (yych != 'e') goto yy304; yych = *++YYCURSOR; - if (yych <= '0') goto yy308; - if (yych <= '9') goto yy300; - goto yy308; -yy307: + if (yych <= '0') goto yy312; + if (yych <= '9') goto yy304; + goto yy312; +yy311: YYCTXMARKER = YYCURSOR + 1; ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy308: +yy312: if (yych <= 0x1F) { - if (yych == '\t') goto yy307; - goto yy300; + if (yych == '\t') goto yy311; + goto yy304; } else { - if (yych <= ' ') goto yy307; - if (yych <= '0') goto yy300; - if (yych >= ':') goto yy300; + if (yych <= ' ') goto yy311; + if (yych <= '0') goto yy304; + if (yych >= ':') goto yy304; } -yy309: +yy313: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if (yybm[0+yych] & 64) { - goto yy309; + goto yy313; } if (yych <= '\f') { - if (yych <= 0x08) goto yy300; - if (yych <= '\t') goto yy311; - if (yych <= '\n') goto yy313; - goto yy300; + if (yych <= 0x08) goto yy304; + if (yych <= '\t') goto yy315; + if (yych <= '\n') goto yy317; + goto yy304; } else { - if (yych <= '\r') goto yy315; - if (yych != ' ') goto yy300; + if (yych <= '\r') goto yy319; + if (yych != ' ') goto yy304; } -yy311: +yy315: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; if (yych <= 0x1F) { - if (yych == '\t') goto yy311; - goto yy300; + if (yych == '\t') goto yy315; + goto yy304; } else { - if (yych <= ' ') goto yy311; - if (yych == '"') goto yy316; - goto yy300; + if (yych <= ' ') goto yy315; + if (yych == '"') goto yy320; + goto yy304; } -yy313: +yy317: ++YYCURSOR; YYCURSOR = YYCTXMARKER; { set_sourceline(cursor); goto comment; } -yy315: +yy319: yych = *++YYCURSOR; - if (yych == '\n') goto yy313; - goto yy300; -yy316: + if (yych == '\n') goto yy317; + goto yy304; +yy320: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); yych = *YYCURSOR; if (yybm[0+yych] & 128) { - goto yy316; + goto yy320; } - if (yych <= '!') goto yy300; - if (yych <= '"') goto yy319; + if (yych <= '!') goto yy304; + if (yych <= '"') goto yy323; ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if (yych == '\n') goto yy300; - goto yy316; -yy319: + if (yych == '\n') goto yy304; + goto yy320; +yy323: yych = *++YYCURSOR; - if (yych == '\n') goto yy313; - if (yych == '\r') goto yy315; - goto yy300; -yy320: + if (yych == '\n') goto yy317; + if (yych == '\r') goto yy319; + goto yy304; +yy324: ++YYCURSOR; { ++depth; fatal("ambiguous /* found"); goto comment; } -yy322: +yy326: ++YYCURSOR; { if (--depth == 0) @@ -1957,6 +1989,31 @@ yy322: } +nextLine: + +{ + YYCTYPE yych; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych != '\n') goto yy332; + ++YYCURSOR; + { if(cursor == eof) { + RETURN(0); + } + tok = pos = cursor; + cline++; + goto scan; + } +yy332: + ++YYCURSOR; + { if(cursor == eof) { + RETURN(0); + } + goto nextLine; + } +} + + config: { @@ -1998,52 +2055,52 @@ config: if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if (yych <= 0x1F) { - if (yych != '\t') goto yy330; + if (yych != '\t') goto yy340; } else { - if (yych <= ' ') goto yy326; - if (yych == '=') goto yy328; - goto yy330; + if (yych <= ' ') goto yy336; + if (yych == '=') goto yy338; + goto yy340; } -yy326: +yy336: ++YYCURSOR; yych = *YYCURSOR; - goto yy335; -yy327: + goto yy345; +yy337: { goto config; } -yy328: +yy338: ++YYCURSOR; yych = *YYCURSOR; - goto yy333; -yy329: + goto yy343; +yy339: { iscfg = 2; cur = cursor; RETURN('='); } -yy330: +yy340: ++YYCURSOR; { fatal("missing '='"); } -yy332: +yy342: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy333: +yy343: if (yybm[0+yych] & 128) { - goto yy332; + goto yy342; } - goto yy329; -yy334: + goto yy339; +yy344: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy335: - if (yych == '\t') goto yy334; - if (yych == ' ') goto yy334; - goto yy327; +yy345: + if (yych == '\t') goto yy344; + if (yych == ' ') goto yy344; + goto yy337; } @@ -2089,191 +2146,191 @@ value: yych = *YYCURSOR; if (yych <= '&') { if (yych <= '\r') { - if (yych <= 0x08) goto yy344; - if (yych <= '\n') goto yy338; - if (yych <= '\f') goto yy344; + if (yych <= 0x08) goto yy354; + if (yych <= '\n') goto yy348; + if (yych <= '\f') goto yy354; } else { if (yych <= ' ') { - if (yych <= 0x1F) goto yy344; + if (yych <= 0x1F) goto yy354; } else { - if (yych == '"') goto yy346; - goto yy344; + if (yych == '"') goto yy356; + goto yy354; } } } else { if (yych <= '/') { - if (yych <= '\'') goto yy348; - if (yych == '-') goto yy341; - goto yy344; + if (yych <= '\'') goto yy358; + if (yych == '-') goto yy351; + goto yy354; } else { if (yych <= '9') { - if (yych <= '0') goto yy339; - goto yy342; + if (yych <= '0') goto yy349; + goto yy352; } else { - if (yych != ';') goto yy344; + if (yych != ';') goto yy354; } } } -yy338: +yy348: { cur = cursor; yylval.str = new Str(token()); iscfg = 0; return VALUE; } -yy339: +yy349: ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy344; + goto yy354; } -yy340: +yy350: { cur = cursor; yylval.number = atoi(token().to_string().c_str()); iscfg = 0; return NUMBER; } -yy341: +yy351: yych = *++YYCURSOR; - if (yych <= '0') goto yy345; - if (yych >= ':') goto yy345; -yy342: + if (yych <= '0') goto yy355; + if (yych >= ':') goto yy355; +yy352: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 4) { - goto yy342; + goto yy352; } if (yych <= '\r') { - if (yych <= 0x08) goto yy344; - if (yych <= '\n') goto yy340; - if (yych >= '\r') goto yy340; + if (yych <= 0x08) goto yy354; + if (yych <= '\n') goto yy350; + if (yych >= '\r') goto yy350; } else { if (yych <= ' ') { - if (yych >= ' ') goto yy340; + if (yych >= ' ') goto yy350; } else { - if (yych == ';') goto yy340; + if (yych == ';') goto yy350; } } -yy344: +yy354: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy345: +yy355: if (yybm[0+yych] & 8) { - goto yy344; + goto yy354; } - goto yy338; -yy346: + goto yy348; +yy356: YYMARKER = ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 16) { - goto yy346; + goto yy356; } if (yych <= '!') { - if (yych == '\n') goto yy338; - goto yy356; + if (yych == '\n') goto yy348; + goto yy366; } else { - if (yych <= '"') goto yy344; - if (yych <= '[') goto yy356; - goto yy358; + if (yych <= '"') goto yy354; + if (yych <= '[') goto yy366; + goto yy368; } -yy348: +yy358: YYMARKER = ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 32) { - goto yy348; + goto yy358; } if (yych <= '&') { - if (yych == '\n') goto yy338; + if (yych == '\n') goto yy348; } else { - if (yych <= '\'') goto yy344; - if (yych >= '\\') goto yy353; + if (yych <= '\'') goto yy354; + if (yych >= '\\') goto yy363; } -yy350: +yy360: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 64) { - goto yy350; + goto yy360; } - if (yych <= '&') goto yy352; - if (yych <= '\'') goto yy354; - goto yy355; -yy352: + if (yych <= '&') goto yy362; + if (yych <= '\'') goto yy364; + goto yy365; +yy362: YYCURSOR = YYMARKER; - goto yy338; -yy353: + goto yy348; +yy363: YYMARKER = ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; if (yych <= '\r') { if (yych <= '\t') { - if (yych <= 0x08) goto yy348; - goto yy350; + if (yych <= 0x08) goto yy358; + goto yy360; } else { - if (yych <= '\n') goto yy338; - if (yych <= '\f') goto yy348; - goto yy350; + if (yych <= '\n') goto yy348; + if (yych <= '\f') goto yy358; + goto yy360; } } else { if (yych <= ' ') { - if (yych <= 0x1F) goto yy348; - goto yy350; + if (yych <= 0x1F) goto yy358; + goto yy360; } else { - if (yych == ';') goto yy350; - goto yy348; + if (yych == ';') goto yy360; + goto yy358; } } -yy354: +yy364: yych = *++YYCURSOR; - goto yy338; -yy355: + goto yy348; +yy365: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if (yych == '\n') goto yy352; - goto yy350; -yy356: + if (yych == '\n') goto yy362; + goto yy360; +yy366: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 128) { - goto yy356; + goto yy366; } - if (yych <= '!') goto yy352; - if (yych <= '"') goto yy354; - goto yy359; -yy358: + if (yych <= '!') goto yy362; + if (yych <= '"') goto yy364; + goto yy369; +yy368: YYMARKER = ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; if (yych <= '\r') { if (yych <= '\t') { - if (yych <= 0x08) goto yy346; - goto yy356; + if (yych <= 0x08) goto yy356; + goto yy366; } else { - if (yych <= '\n') goto yy338; - if (yych <= '\f') goto yy346; - goto yy356; + if (yych <= '\n') goto yy348; + if (yych <= '\f') goto yy356; + goto yy366; } } else { if (yych <= ' ') { - if (yych <= 0x1F) goto yy346; - goto yy356; + if (yych <= 0x1F) goto yy356; + goto yy366; } else { - if (yych == ';') goto yy356; - goto yy346; + if (yych == ';') goto yy366; + goto yy356; } } -yy359: +yy369: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if (yych == '\n') goto yy352; - goto yy356; + if (yych == '\n') goto yy362; + goto yy366; } } @@ -2322,30 +2379,30 @@ sourceline: if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if (yych <= '!') { - if (yych == '\n') goto yy366; - goto yy368; + if (yych == '\n') goto yy376; + goto yy378; } else { - if (yych <= '"') goto yy364; - if (yych <= '0') goto yy368; - if (yych >= ':') goto yy368; + if (yych <= '"') goto yy374; + if (yych <= '0') goto yy378; + if (yych >= ':') goto yy378; } ++YYCURSOR; yych = *YYCURSOR; - goto yy376; -yy363: + goto yy386; +yy373: { cur = cursor; cline = atoi(token().to_string().c_str()); goto sourceline; } -yy364: +yy374: yych = *(YYMARKER = ++YYCURSOR); - if (yych != '\n') goto yy370; -yy365: + if (yych != '\n') goto yy380; +yy375: { goto sourceline; } -yy366: +yy376: ++YYCURSOR; { if (cursor == eof) @@ -2359,45 +2416,45 @@ yy366: tok = cursor; return; } -yy368: +yy378: yych = *++YYCURSOR; - goto yy365; -yy369: + goto yy375; +yy379: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy370: +yy380: if (yybm[0+yych] & 64) { - goto yy369; + goto yy379; } - if (yych <= '!') goto yy371; - if (yych <= '"') goto yy373; - goto yy372; -yy371: + if (yych <= '!') goto yy381; + if (yych <= '"') goto yy383; + goto yy382; +yy381: YYCURSOR = YYMARKER; - goto yy365; -yy372: + goto yy375; +yy382: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if (yych == '\n') goto yy371; - goto yy369; -yy373: + if (yych == '\n') goto yy381; + goto yy379; +yy383: ++YYCURSOR; { cur = cursor; sourceFileInfo.set_fname(token(1, cur - tok - 2).to_string()); goto sourceline; } -yy375: +yy385: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy376: +yy386: if (yybm[0+yych] & 128) { - goto yy375; + goto yy385; } - goto yy363; + goto yy373; } } diff --git a/re2c/bootstrap/y.tab.h b/re2c/bootstrap/y.tab.h index bc38838c..71270a77 100644 --- a/re2c/bootstrap/y.tab.h +++ b/re2c/bootstrap/y.tab.h @@ -1,24 +1,23 @@ -/* A Bison parser, made by GNU Bison 2.3. */ -/* Skeleton interface for Bison's Yacc-like parsers in C +/* A Bison parser, made by GNU Bison 2.4.1. */ - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +/* Skeleton interface for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -29,10 +28,11 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ + /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE @@ -74,8 +74,11 @@ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 131 "parser.y" { + +/* Line 1676 of yacc.c */ +#line 132 "parser.y" + re2c::Symbol *symbol; re2c::RegExp *regexp; re2c::Token *token; @@ -84,14 +87,17 @@ typedef union YYSTYPE re2c::ExtOp extop; re2c::Str *str; re2c::CondList *clist; -} -/* Line 1489 of yacc.c. */ -#line 90 "y.tab.h" - YYSTYPE; + + + +/* Line 1676 of yacc.c */ +#line 95 "y.tab.h" +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 #endif extern YYSTYPE yylval; + diff --git a/re2c/parser.y b/re2c/parser.y index 9f8e9c7a..1a24ca40 100644 --- a/re2c/parser.y +++ b/re2c/parser.y @@ -95,7 +95,8 @@ void context_rule(CondList *clist, RegExp *expr, RegExp *look, Str *newcond, Tok else { size_t nIndex = specMap.size() + 1; // 0 is reserved for "0"-spec - specMap[*it] = std::make_pair(nIndex, rule); + assert( nIndex < 1u << 31); + specMap[*it] = std::make_pair(unsigned( nIndex), rule); } } diff --git a/re2c/re.h b/re2c/re.h index 1d7e2051..34fb6681 100644 --- a/re2c/re.h +++ b/re2c/re.h @@ -492,7 +492,7 @@ private: }; typedef std::set CondList; -typedef std::pair NRegExp; +typedef std::pair NRegExp; typedef std::map RegExpMap; typedef std::vector RegExpIndices; typedef std::list RuleOpList;