diff options
Diffstat (limited to 'src/parse.c')
-rw-r--r-- | src/parse.c | 343 |
1 files changed, 173 insertions, 170 deletions
diff --git a/src/parse.c b/src/parse.c index 97fc6d7..32458e4 100644 --- a/src/parse.c +++ b/src/parse.c @@ -112,7 +112,7 @@ int previous_continued_action; /* whether the previous rule's action was '|' */ do{ \ char fw3_msg[MAXLINE];\ snprintf( fw3_msg, MAXLINE,(fmt), (a1), (a2) );\ - warn( fw3_msg );\ + lwarn( fw3_msg );\ }while(0) /* Expand a POSIX character class expression. */ @@ -594,14 +594,14 @@ static const yytype_uint16 yyrline[] = { 0, 118, 118, 148, 155, 156, 157, 158, 162, 170, 173, 177, 180, 183, 187, 190, 191, 194, 199, 201, - 203, 205, 207, 211, 213, 215, 219, 231, 267, 291, - 314, 319, 322, 325, 343, 346, 348, 350, 354, 377, - 433, 436, 479, 497, 503, 508, 535, 543, 546, 574, - 588, 610, 617, 623, 629, 657, 671, 690, 724, 742, - 752, 755, 758, 773, 774, 775, 780, 782, 789, 849, - 867, 875, 883, 884, 885, 886, 887, 888, 889, 894, - 895, 896, 897, 898, 904, 905, 906, 907, 908, 909, - 910, 911, 912, 913, 914, 920, 928, 944 + 205, 207, 209, 213, 215, 217, 221, 233, 269, 293, + 316, 321, 324, 327, 345, 348, 350, 352, 356, 379, + 435, 438, 481, 499, 505, 510, 537, 545, 548, 576, + 590, 612, 619, 625, 631, 659, 673, 692, 726, 744, + 754, 757, 760, 775, 776, 777, 782, 784, 791, 851, + 869, 877, 885, 886, 887, 888, 889, 890, 891, 896, + 897, 898, 899, 900, 906, 907, 908, 909, 910, 911, + 912, 913, 914, 915, 916, 922, 930, 946 }; #endif @@ -1506,7 +1506,7 @@ yyreduce: else add_action( "ECHO" ); - add_action( ";\n\tYY_BREAK\n" ); + add_action( ";\n\tYY_BREAK]]\n" ); } #line 1512 "parse.c" /* yacc.c:1646 */ break; @@ -1584,42 +1584,44 @@ yyreduce: case 19: #line 202 "parse.y" /* yacc.c:1646 */ - { prefix = xstrdup(nmstr); } -#line 1589 "parse.c" /* yacc.c:1646 */ + { prefix = xstrdup(nmstr); + if (strchr(prefix, '[') || strchr(prefix, ']')) + flexerror(_("Prefix must not contain [ or ]")); } +#line 1591 "parse.c" /* yacc.c:1646 */ break; case 20: -#line 204 "parse.y" /* yacc.c:1646 */ +#line 206 "parse.y" /* yacc.c:1646 */ { yyclass = xstrdup(nmstr); } -#line 1595 "parse.c" /* yacc.c:1646 */ +#line 1597 "parse.c" /* yacc.c:1646 */ break; case 21: -#line 206 "parse.y" /* yacc.c:1646 */ +#line 208 "parse.y" /* yacc.c:1646 */ { headerfilename = xstrdup(nmstr); } -#line 1601 "parse.c" /* yacc.c:1646 */ +#line 1603 "parse.c" /* yacc.c:1646 */ break; case 22: -#line 208 "parse.y" /* yacc.c:1646 */ +#line 210 "parse.y" /* yacc.c:1646 */ { tablesext = true; tablesfilename = xstrdup(nmstr); } -#line 1607 "parse.c" /* yacc.c:1646 */ +#line 1609 "parse.c" /* yacc.c:1646 */ break; case 23: -#line 212 "parse.y" /* yacc.c:1646 */ +#line 214 "parse.y" /* yacc.c:1646 */ { scon_stk_ptr = (yyvsp[-3]); } -#line 1613 "parse.c" /* yacc.c:1646 */ +#line 1615 "parse.c" /* yacc.c:1646 */ break; case 24: -#line 214 "parse.y" /* yacc.c:1646 */ +#line 216 "parse.y" /* yacc.c:1646 */ { scon_stk_ptr = (yyvsp[-3]); } -#line 1619 "parse.c" /* yacc.c:1646 */ +#line 1621 "parse.c" /* yacc.c:1646 */ break; case 26: -#line 219 "parse.y" /* yacc.c:1646 */ +#line 221 "parse.y" /* yacc.c:1646 */ { /* Initialize for a parse of one rule. */ trlcontxt = variable_trail_rule = varlength = false; @@ -1630,11 +1632,11 @@ yyreduce: new_rule(); } -#line 1634 "parse.c" /* yacc.c:1646 */ +#line 1636 "parse.c" /* yacc.c:1646 */ break; case 27: -#line 232 "parse.y" /* yacc.c:1646 */ +#line 234 "parse.y" /* yacc.c:1646 */ { pat = (yyvsp[0]); finish_rule( pat, variable_trail_rule, @@ -1669,11 +1671,11 @@ yyreduce: "'^' operator results in sub-optimal performance" ); } } -#line 1673 "parse.c" /* yacc.c:1646 */ +#line 1675 "parse.c" /* yacc.c:1646 */ break; case 28: -#line 268 "parse.y" /* yacc.c:1646 */ +#line 270 "parse.y" /* yacc.c:1646 */ { pat = (yyvsp[0]); finish_rule( pat, variable_trail_rule, @@ -1696,11 +1698,11 @@ yyreduce: pat ); } } -#line 1700 "parse.c" /* yacc.c:1646 */ +#line 1702 "parse.c" /* yacc.c:1646 */ break; case 29: -#line 292 "parse.y" /* yacc.c:1646 */ +#line 294 "parse.y" /* yacc.c:1646 */ { if ( scon_stk_ptr > 0 ) build_eof_action(); @@ -1715,36 +1717,36 @@ yyreduce: scon_stk[++scon_stk_ptr] = i; if ( scon_stk_ptr == 0 ) - warn( + lwarn( "all start conditions already have <<EOF>> rules" ); else build_eof_action(); } } -#line 1726 "parse.c" /* yacc.c:1646 */ +#line 1728 "parse.c" /* yacc.c:1646 */ break; case 30: -#line 315 "parse.y" /* yacc.c:1646 */ +#line 317 "parse.y" /* yacc.c:1646 */ { synerr( _("unrecognized rule") ); } -#line 1732 "parse.c" /* yacc.c:1646 */ +#line 1734 "parse.c" /* yacc.c:1646 */ break; case 31: -#line 319 "parse.y" /* yacc.c:1646 */ +#line 321 "parse.y" /* yacc.c:1646 */ { (yyval) = scon_stk_ptr; } -#line 1738 "parse.c" /* yacc.c:1646 */ +#line 1740 "parse.c" /* yacc.c:1646 */ break; case 32: -#line 323 "parse.y" /* yacc.c:1646 */ +#line 325 "parse.y" /* yacc.c:1646 */ { (yyval) = (yyvsp[-2]); } -#line 1744 "parse.c" /* yacc.c:1646 */ +#line 1746 "parse.c" /* yacc.c:1646 */ break; case 33: -#line 326 "parse.y" /* yacc.c:1646 */ +#line 328 "parse.y" /* yacc.c:1646 */ { (yyval) = scon_stk_ptr; @@ -1760,23 +1762,23 @@ yyreduce: scon_stk[++scon_stk_ptr] = i; } } -#line 1764 "parse.c" /* yacc.c:1646 */ +#line 1766 "parse.c" /* yacc.c:1646 */ break; case 34: -#line 343 "parse.y" /* yacc.c:1646 */ +#line 345 "parse.y" /* yacc.c:1646 */ { (yyval) = scon_stk_ptr; } -#line 1770 "parse.c" /* yacc.c:1646 */ +#line 1772 "parse.c" /* yacc.c:1646 */ break; case 37: -#line 351 "parse.y" /* yacc.c:1646 */ +#line 353 "parse.y" /* yacc.c:1646 */ { synerr( _("bad start condition list") ); } -#line 1776 "parse.c" /* yacc.c:1646 */ +#line 1778 "parse.c" /* yacc.c:1646 */ break; case 38: -#line 355 "parse.y" /* yacc.c:1646 */ +#line 357 "parse.y" /* yacc.c:1646 */ { if ( (scnum = sclookup( nmstr )) == 0 ) format_pinpoint_message( @@ -1797,11 +1799,11 @@ yyreduce: scon_stk[++scon_stk_ptr] = scnum; } } -#line 1801 "parse.c" /* yacc.c:1646 */ +#line 1803 "parse.c" /* yacc.c:1646 */ break; case 39: -#line 378 "parse.y" /* yacc.c:1646 */ +#line 380 "parse.y" /* yacc.c:1646 */ { if ( transchar[lastst[(yyvsp[0])]] != SYM_EPSILON ) /* Provide final transition \now/ so it @@ -1825,7 +1827,7 @@ yyreduce: * erroneously. */ if ( ! varlength || headcnt != 0 ) - warn( + lwarn( "trailing context made variable due to preceding '|' action" ); /* Mark as variable. */ @@ -1856,17 +1858,17 @@ yyreduce: (yyval) = link_machines( (yyvsp[-1]), (yyvsp[0]) ); } -#line 1860 "parse.c" /* yacc.c:1646 */ +#line 1862 "parse.c" /* yacc.c:1646 */ break; case 40: -#line 434 "parse.y" /* yacc.c:1646 */ +#line 436 "parse.y" /* yacc.c:1646 */ { synerr( _("trailing context used twice") ); } -#line 1866 "parse.c" /* yacc.c:1646 */ +#line 1868 "parse.c" /* yacc.c:1646 */ break; case 41: -#line 437 "parse.y" /* yacc.c:1646 */ +#line 439 "parse.y" /* yacc.c:1646 */ { headcnt = 0; trailcnt = 1; @@ -1886,7 +1888,7 @@ yyreduce: /* See the comment in the rule for "re2 re" * above. */ - warn( + lwarn( "trailing context made variable due to preceding '|' action" ); varlength = true; @@ -1908,11 +1910,11 @@ yyreduce: (yyval) = link_machines( (yyvsp[-1]), link_machines( eps, mkstate( '\n' ) ) ); } -#line 1912 "parse.c" /* yacc.c:1646 */ +#line 1914 "parse.c" /* yacc.c:1646 */ break; case 42: -#line 480 "parse.y" /* yacc.c:1646 */ +#line 482 "parse.y" /* yacc.c:1646 */ { (yyval) = (yyvsp[0]); @@ -1927,26 +1929,26 @@ yyreduce: trailcnt = rulelen; } } -#line 1931 "parse.c" /* yacc.c:1646 */ +#line 1933 "parse.c" /* yacc.c:1646 */ break; case 43: -#line 498 "parse.y" /* yacc.c:1646 */ +#line 500 "parse.y" /* yacc.c:1646 */ { varlength = true; (yyval) = mkor( (yyvsp[-2]), (yyvsp[0]) ); } -#line 1940 "parse.c" /* yacc.c:1646 */ +#line 1942 "parse.c" /* yacc.c:1646 */ break; case 44: -#line 504 "parse.y" /* yacc.c:1646 */ +#line 506 "parse.y" /* yacc.c:1646 */ { (yyval) = (yyvsp[0]); } -#line 1946 "parse.c" /* yacc.c:1646 */ +#line 1948 "parse.c" /* yacc.c:1646 */ break; case 45: -#line 509 "parse.y" /* yacc.c:1646 */ +#line 511 "parse.y" /* yacc.c:1646 */ { /* This rule is written separately so the * reduction will occur before the trailing @@ -1971,28 +1973,28 @@ yyreduce: current_state_type = STATE_TRAILING_CONTEXT; (yyval) = (yyvsp[-1]); } -#line 1975 "parse.c" /* yacc.c:1646 */ +#line 1977 "parse.c" /* yacc.c:1646 */ break; case 46: -#line 536 "parse.y" /* yacc.c:1646 */ +#line 538 "parse.y" /* yacc.c:1646 */ { /* This is where concatenation of adjacent patterns * gets done. */ (yyval) = link_machines( (yyvsp[-1]), (yyvsp[0]) ); } -#line 1986 "parse.c" /* yacc.c:1646 */ +#line 1988 "parse.c" /* yacc.c:1646 */ break; case 47: -#line 544 "parse.y" /* yacc.c:1646 */ +#line 546 "parse.y" /* yacc.c:1646 */ { (yyval) = (yyvsp[0]); } -#line 1992 "parse.c" /* yacc.c:1646 */ +#line 1994 "parse.c" /* yacc.c:1646 */ break; case 48: -#line 547 "parse.y" /* yacc.c:1646 */ +#line 549 "parse.y" /* yacc.c:1646 */ { varlength = true; @@ -2019,11 +2021,11 @@ yyreduce: (yyval) = mkrep( (yyvsp[-5]), (yyvsp[-3]), (yyvsp[-1]) ); } } -#line 2023 "parse.c" /* yacc.c:1646 */ +#line 2025 "parse.c" /* yacc.c:1646 */ break; case 49: -#line 575 "parse.y" /* yacc.c:1646 */ +#line 577 "parse.y" /* yacc.c:1646 */ { varlength = true; @@ -2036,11 +2038,11 @@ yyreduce: else (yyval) = mkrep( (yyvsp[-4]), (yyvsp[-2]), INFINITE_REPEAT ); } -#line 2040 "parse.c" /* yacc.c:1646 */ +#line 2042 "parse.c" /* yacc.c:1646 */ break; case 50: -#line 589 "parse.y" /* yacc.c:1646 */ +#line 591 "parse.y" /* yacc.c:1646 */ { /* The series could be something like "(foo)", * in which case we have no idea what its length @@ -2059,39 +2061,39 @@ yyreduce: (yyval) = link_machines( (yyvsp[-3]), copysingl( (yyvsp[-3]), (yyvsp[-1]) - 1 ) ); } -#line 2063 "parse.c" /* yacc.c:1646 */ +#line 2065 "parse.c" /* yacc.c:1646 */ break; case 51: -#line 611 "parse.y" /* yacc.c:1646 */ +#line 613 "parse.y" /* yacc.c:1646 */ { varlength = true; (yyval) = mkclos( (yyvsp[-1]) ); } -#line 2073 "parse.c" /* yacc.c:1646 */ +#line 2075 "parse.c" /* yacc.c:1646 */ break; case 52: -#line 618 "parse.y" /* yacc.c:1646 */ +#line 620 "parse.y" /* yacc.c:1646 */ { varlength = true; (yyval) = mkposcl( (yyvsp[-1]) ); } -#line 2082 "parse.c" /* yacc.c:1646 */ +#line 2084 "parse.c" /* yacc.c:1646 */ break; case 53: -#line 624 "parse.y" /* yacc.c:1646 */ +#line 626 "parse.y" /* yacc.c:1646 */ { varlength = true; (yyval) = mkopt( (yyvsp[-1]) ); } -#line 2091 "parse.c" /* yacc.c:1646 */ +#line 2093 "parse.c" /* yacc.c:1646 */ break; case 54: -#line 630 "parse.y" /* yacc.c:1646 */ +#line 632 "parse.y" /* yacc.c:1646 */ { varlength = true; @@ -2118,11 +2120,11 @@ yyreduce: (yyval) = mkrep( (yyvsp[-5]), (yyvsp[-3]), (yyvsp[-1]) ); } } -#line 2122 "parse.c" /* yacc.c:1646 */ +#line 2124 "parse.c" /* yacc.c:1646 */ break; case 55: -#line 658 "parse.y" /* yacc.c:1646 */ +#line 660 "parse.y" /* yacc.c:1646 */ { varlength = true; @@ -2135,11 +2137,11 @@ yyreduce: else (yyval) = mkrep( (yyvsp[-4]), (yyvsp[-2]), INFINITE_REPEAT ); } -#line 2139 "parse.c" /* yacc.c:1646 */ +#line 2141 "parse.c" /* yacc.c:1646 */ break; case 56: -#line 672 "parse.y" /* yacc.c:1646 */ +#line 674 "parse.y" /* yacc.c:1646 */ { /* The singleton could be something like "(foo)", * in which case we have no idea what its length @@ -2157,11 +2159,11 @@ yyreduce: (yyval) = link_machines( (yyvsp[-3]), copysingl( (yyvsp[-3]), (yyvsp[-1]) - 1 ) ); } -#line 2161 "parse.c" /* yacc.c:1646 */ +#line 2163 "parse.c" /* yacc.c:1646 */ break; case 57: -#line 691 "parse.y" /* yacc.c:1646 */ +#line 693 "parse.y" /* yacc.c:1646 */ { if ( ! madeany ) { @@ -2194,11 +2196,11 @@ yyreduce: else (yyval) = mkstate( -ccldot ); } -#line 2198 "parse.c" /* yacc.c:1646 */ +#line 2200 "parse.c" /* yacc.c:1646 */ break; case 58: -#line 725 "parse.y" /* yacc.c:1646 */ +#line 727 "parse.y" /* yacc.c:1646 */ { /* Sort characters for fast searching. */ @@ -2215,11 +2217,11 @@ yyreduce: (yyval) = mkstate( -(yyvsp[0]) ); } -#line 2219 "parse.c" /* yacc.c:1646 */ +#line 2221 "parse.c" /* yacc.c:1646 */ break; case 59: -#line 743 "parse.y" /* yacc.c:1646 */ +#line 745 "parse.y" /* yacc.c:1646 */ { ++rulelen; @@ -2228,23 +2230,23 @@ yyreduce: (yyval) = mkstate( -(yyvsp[0]) ); } -#line 2232 "parse.c" /* yacc.c:1646 */ +#line 2234 "parse.c" /* yacc.c:1646 */ break; case 60: -#line 753 "parse.y" /* yacc.c:1646 */ +#line 755 "parse.y" /* yacc.c:1646 */ { (yyval) = (yyvsp[-1]); } -#line 2238 "parse.c" /* yacc.c:1646 */ +#line 2240 "parse.c" /* yacc.c:1646 */ break; case 61: -#line 756 "parse.y" /* yacc.c:1646 */ +#line 758 "parse.y" /* yacc.c:1646 */ { (yyval) = (yyvsp[-1]); } -#line 2244 "parse.c" /* yacc.c:1646 */ +#line 2246 "parse.c" /* yacc.c:1646 */ break; case 62: -#line 759 "parse.y" /* yacc.c:1646 */ +#line 761 "parse.y" /* yacc.c:1646 */ { ++rulelen; @@ -2257,38 +2259,38 @@ yyreduce: else (yyval) = mkstate( (yyvsp[0]) ); } -#line 2261 "parse.c" /* yacc.c:1646 */ +#line 2263 "parse.c" /* yacc.c:1646 */ break; case 63: -#line 773 "parse.y" /* yacc.c:1646 */ +#line 775 "parse.y" /* yacc.c:1646 */ { (yyval) = ccl_set_diff ((yyvsp[-2]), (yyvsp[0])); } -#line 2267 "parse.c" /* yacc.c:1646 */ +#line 2269 "parse.c" /* yacc.c:1646 */ break; case 64: -#line 774 "parse.y" /* yacc.c:1646 */ +#line 776 "parse.y" /* yacc.c:1646 */ { (yyval) = ccl_set_union ((yyvsp[-2]), (yyvsp[0])); } -#line 2273 "parse.c" /* yacc.c:1646 */ +#line 2275 "parse.c" /* yacc.c:1646 */ break; case 66: -#line 780 "parse.y" /* yacc.c:1646 */ +#line 782 "parse.y" /* yacc.c:1646 */ { (yyval) = (yyvsp[-1]); } -#line 2279 "parse.c" /* yacc.c:1646 */ +#line 2281 "parse.c" /* yacc.c:1646 */ break; case 67: -#line 783 "parse.y" /* yacc.c:1646 */ +#line 785 "parse.y" /* yacc.c:1646 */ { cclnegate( (yyvsp[-1]) ); (yyval) = (yyvsp[-1]); } -#line 2288 "parse.c" /* yacc.c:1646 */ +#line 2290 "parse.c" /* yacc.c:1646 */ break; case 68: -#line 790 "parse.y" /* yacc.c:1646 */ +#line 792 "parse.y" /* yacc.c:1646 */ { if (sf_case_ins()) @@ -2347,11 +2349,11 @@ yyreduce: (yyval) = (yyvsp[-3]); } -#line 2351 "parse.c" /* yacc.c:1646 */ +#line 2353 "parse.c" /* yacc.c:1646 */ break; case 69: -#line 850 "parse.y" /* yacc.c:1646 */ +#line 852 "parse.y" /* yacc.c:1646 */ { ccladd( (yyvsp[-1]), (yyvsp[0]) ); cclsorted = cclsorted && ((yyvsp[0]) > lastchar); @@ -2368,193 +2370,193 @@ yyreduce: (yyval) = (yyvsp[-1]); } -#line 2372 "parse.c" /* yacc.c:1646 */ +#line 2374 "parse.c" /* yacc.c:1646 */ break; case 70: -#line 868 "parse.y" /* yacc.c:1646 */ +#line 870 "parse.y" /* yacc.c:1646 */ { /* Too hard to properly maintain cclsorted. */ cclsorted = false; (yyval) = (yyvsp[-1]); } -#line 2382 "parse.c" /* yacc.c:1646 */ +#line 2384 "parse.c" /* yacc.c:1646 */ break; case 71: -#line 875 "parse.y" /* yacc.c:1646 */ +#line 877 "parse.y" /* yacc.c:1646 */ { cclsorted = true; lastchar = 0; currccl = (yyval) = cclinit(); } -#line 2392 "parse.c" /* yacc.c:1646 */ +#line 2394 "parse.c" /* yacc.c:1646 */ break; case 72: -#line 883 "parse.y" /* yacc.c:1646 */ +#line 885 "parse.y" /* yacc.c:1646 */ { CCL_EXPR(isalnum); } -#line 2398 "parse.c" /* yacc.c:1646 */ +#line 2400 "parse.c" /* yacc.c:1646 */ break; case 73: -#line 884 "parse.y" /* yacc.c:1646 */ +#line 886 "parse.y" /* yacc.c:1646 */ { CCL_EXPR(isalpha); } -#line 2404 "parse.c" /* yacc.c:1646 */ +#line 2406 "parse.c" /* yacc.c:1646 */ break; case 74: -#line 885 "parse.y" /* yacc.c:1646 */ +#line 887 "parse.y" /* yacc.c:1646 */ { CCL_EXPR(IS_BLANK); } -#line 2410 "parse.c" /* yacc.c:1646 */ +#line 2412 "parse.c" /* yacc.c:1646 */ break; case 75: -#line 886 "parse.y" /* yacc.c:1646 */ +#line 888 "parse.y" /* yacc.c:1646 */ { CCL_EXPR(iscntrl); } -#line 2416 "parse.c" /* yacc.c:1646 */ +#line 2418 "parse.c" /* yacc.c:1646 */ break; case 76: -#line 887 "parse.y" /* yacc.c:1646 */ +#line 889 "parse.y" /* yacc.c:1646 */ { CCL_EXPR(isdigit); } -#line 2422 "parse.c" /* yacc.c:1646 */ +#line 2424 "parse.c" /* yacc.c:1646 */ break; case 77: -#line 888 "parse.y" /* yacc.c:1646 */ +#line 890 "parse.y" /* yacc.c:1646 */ { CCL_EXPR(isgraph); } -#line 2428 "parse.c" /* yacc.c:1646 */ +#line 2430 "parse.c" /* yacc.c:1646 */ break; case 78: -#line 889 "parse.y" /* yacc.c:1646 */ +#line 891 "parse.y" /* yacc.c:1646 */ { CCL_EXPR(islower); if (sf_case_ins()) CCL_EXPR(isupper); } -#line 2438 "parse.c" /* yacc.c:1646 */ +#line 2440 "parse.c" /* yacc.c:1646 */ break; case 79: -#line 894 "parse.y" /* yacc.c:1646 */ +#line 896 "parse.y" /* yacc.c:1646 */ { CCL_EXPR(isprint); } -#line 2444 "parse.c" /* yacc.c:1646 */ +#line 2446 "parse.c" /* yacc.c:1646 */ break; case 80: -#line 895 "parse.y" /* yacc.c:1646 */ +#line 897 "parse.y" /* yacc.c:1646 */ { CCL_EXPR(ispunct); } -#line 2450 "parse.c" /* yacc.c:1646 */ +#line 2452 "parse.c" /* yacc.c:1646 */ break; case 81: -#line 896 "parse.y" /* yacc.c:1646 */ +#line 898 "parse.y" /* yacc.c:1646 */ { CCL_EXPR(isspace); } -#line 2456 "parse.c" /* yacc.c:1646 */ +#line 2458 "parse.c" /* yacc.c:1646 */ break; case 82: -#line 897 "parse.y" /* yacc.c:1646 */ +#line 899 "parse.y" /* yacc.c:1646 */ { CCL_EXPR(isxdigit); } -#line 2462 "parse.c" /* yacc.c:1646 */ +#line 2464 "parse.c" /* yacc.c:1646 */ break; case 83: -#line 898 "parse.y" /* yacc.c:1646 */ +#line 900 "parse.y" /* yacc.c:1646 */ { CCL_EXPR(isupper); if (sf_case_ins()) CCL_EXPR(islower); } -#line 2472 "parse.c" /* yacc.c:1646 */ +#line 2474 "parse.c" /* yacc.c:1646 */ break; case 84: -#line 904 "parse.y" /* yacc.c:1646 */ +#line 906 "parse.y" /* yacc.c:1646 */ { CCL_NEG_EXPR(isalnum); } -#line 2478 "parse.c" /* yacc.c:1646 */ +#line 2480 "parse.c" /* yacc.c:1646 */ break; case 85: -#line 905 "parse.y" /* yacc.c:1646 */ +#line 907 "parse.y" /* yacc.c:1646 */ { CCL_NEG_EXPR(isalpha); } -#line 2484 "parse.c" /* yacc.c:1646 */ +#line 2486 "parse.c" /* yacc.c:1646 */ break; case 86: -#line 906 "parse.y" /* yacc.c:1646 */ +#line 908 "parse.y" /* yacc.c:1646 */ { CCL_NEG_EXPR(IS_BLANK); } -#line 2490 "parse.c" /* yacc.c:1646 */ +#line 2492 "parse.c" /* yacc.c:1646 */ break; case 87: -#line 907 "parse.y" /* yacc.c:1646 */ +#line 909 "parse.y" /* yacc.c:1646 */ { CCL_NEG_EXPR(iscntrl); } -#line 2496 "parse.c" /* yacc.c:1646 */ +#line 2498 "parse.c" /* yacc.c:1646 */ break; case 88: -#line 908 "parse.y" /* yacc.c:1646 */ +#line 910 "parse.y" /* yacc.c:1646 */ { CCL_NEG_EXPR(isdigit); } -#line 2502 "parse.c" /* yacc.c:1646 */ +#line 2504 "parse.c" /* yacc.c:1646 */ break; case 89: -#line 909 "parse.y" /* yacc.c:1646 */ +#line 911 "parse.y" /* yacc.c:1646 */ { CCL_NEG_EXPR(isgraph); } -#line 2508 "parse.c" /* yacc.c:1646 */ +#line 2510 "parse.c" /* yacc.c:1646 */ break; case 90: -#line 910 "parse.y" /* yacc.c:1646 */ +#line 912 "parse.y" /* yacc.c:1646 */ { CCL_NEG_EXPR(isprint); } -#line 2514 "parse.c" /* yacc.c:1646 */ +#line 2516 "parse.c" /* yacc.c:1646 */ break; case 91: -#line 911 "parse.y" /* yacc.c:1646 */ +#line 913 "parse.y" /* yacc.c:1646 */ { CCL_NEG_EXPR(ispunct); } -#line 2520 "parse.c" /* yacc.c:1646 */ +#line 2522 "parse.c" /* yacc.c:1646 */ break; case 92: -#line 912 "parse.y" /* yacc.c:1646 */ +#line 914 "parse.y" /* yacc.c:1646 */ { CCL_NEG_EXPR(isspace); } -#line 2526 "parse.c" /* yacc.c:1646 */ +#line 2528 "parse.c" /* yacc.c:1646 */ break; case 93: -#line 913 "parse.y" /* yacc.c:1646 */ +#line 915 "parse.y" /* yacc.c:1646 */ { CCL_NEG_EXPR(isxdigit); } -#line 2532 "parse.c" /* yacc.c:1646 */ +#line 2534 "parse.c" /* yacc.c:1646 */ break; case 94: -#line 914 "parse.y" /* yacc.c:1646 */ +#line 916 "parse.y" /* yacc.c:1646 */ { if ( sf_case_ins() ) - warn(_("[:^lower:] is ambiguous in case insensitive scanner")); + lwarn(_("[:^lower:] is ambiguous in case insensitive scanner")); else CCL_NEG_EXPR(islower); } -#line 2543 "parse.c" /* yacc.c:1646 */ +#line 2545 "parse.c" /* yacc.c:1646 */ break; case 95: -#line 920 "parse.y" /* yacc.c:1646 */ +#line 922 "parse.y" /* yacc.c:1646 */ { if ( sf_case_ins() ) - warn(_("[:^upper:] ambiguous in case insensitive scanner")); + lwarn(_("[:^upper:] ambiguous in case insensitive scanner")); else CCL_NEG_EXPR(isupper); } -#line 2554 "parse.c" /* yacc.c:1646 */ +#line 2556 "parse.c" /* yacc.c:1646 */ break; case 96: -#line 929 "parse.y" /* yacc.c:1646 */ +#line 931 "parse.y" /* yacc.c:1646 */ { if ( (yyvsp[0]) == nlch ) rule_has_nl[num_rules] = true; @@ -2568,17 +2570,17 @@ yyreduce: (yyval) = link_machines( (yyvsp[-1]), (yyval)); } -#line 2572 "parse.c" /* yacc.c:1646 */ +#line 2574 "parse.c" /* yacc.c:1646 */ break; case 97: -#line 944 "parse.y" /* yacc.c:1646 */ +#line 946 "parse.y" /* yacc.c:1646 */ { (yyval) = mkstate( SYM_EPSILON ); } -#line 2578 "parse.c" /* yacc.c:1646 */ +#line 2580 "parse.c" /* yacc.c:1646 */ break; -#line 2582 "parse.c" /* yacc.c:1646 */ +#line 2584 "parse.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -2806,7 +2808,7 @@ yyreturn: #endif return yyresult; } -#line 947 "parse.y" /* yacc.c:1906 */ +#line 949 "parse.y" /* yacc.c:1906 */ @@ -2840,6 +2842,7 @@ void build_eof_action(void) } line_directive_out(NULL, 1); + add_action("[["); /* This isn't a normal rule after all - don't count it as * such, so we don't have any holes in the rule numbering @@ -2878,13 +2881,13 @@ void format_warn( const char *msg, const char arg[] ) char warn_msg[MAXLINE]; snprintf( warn_msg, sizeof(warn_msg), msg, arg ); - warn( warn_msg ); + lwarn( warn_msg ); } -/* warn - report a warning, unless -w was given */ +/* lwarn - report a warning, unless -w was given */ -void warn( const char *str ) +void lwarn( const char *str ) { line_warning( str, linenum ); } |