chiark / gitweb /
@@ -1,8 +1,10 @@
[userv.git] / lexer.c
diff --git a/lexer.c b/lexer.c
index 6d2c63d24e7bf6732c0235823c43682665cb53ea..3d9174e2b1b6a2cb98c111edac2ce7d55a42e51d 100644 (file)
--- a/lexer.c
+++ b/lexer.c
@@ -285,73 +285,72 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
        *yy_cp = '\0'; \
        yy_c_buf_p = yy_cp;
 
-#define YY_NUM_RULES 104
-#define YY_END_OF_BUFFER 105
-static yyconst short int yy_accept[579] =
+#define YY_NUM_RULES 107
+#define YY_END_OF_BUFFER 108
+static yyconst short int yy_accept[565] =
     {   0,
-        0,    0,  105,  103,   97,   98,   90,  102,  100,   87,
-       91,   88,   89,   94,  103,  103,  103,  103,  103,  103,
+        0,    0,  108,  103,   98,   99,   90,  104,  101,   87,
+       91,   88,   89,   94,  105,  103,  103,  103,  103,  103,
       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
-      103,  103,  103,  103,  103,  103,   92,  103,   97,   98,
-      100,  102,  102,  101,  102,  100,  100,   99,   96,   94,
-      103,  103,  103,  103,   19,  103,  103,  103,  103,  103,
-      103,  103,  103,  103,  103,   37,  103,  103,  103,  103,
-       32,  103,  103,  103,  103,  103,  103,  103,  103,  103,
+      103,  103,  103,  103,  103,  103,  103,   92,  103,   98,
+       99,  101,    0,    0,  102,    0,  101,  101,  100,   96,
+       94,    0,   97,  103,  103,  103,  103,   19,  103,  103,
+      103,  103,  103,  103,  103,  103,  103,  103,   37,  103,
+      103,  103,  103,   32,  103,  103,  103,  103,  103,  103,
       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
-      103,  103,  103,  103,  103,  103,  103,  101,  102,  102,
-
-      102,  102,    0,  102,  102,   95,   94,  103,  103,  103,
       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
-      103,  103,   31,   63,  103,  103,  103,  103,  103,  103,
-      103,  103,  103,  103,   71,  103,  103,  103,  103,  103,
+
+        0,    0,    0,   95,   94,   97,  103,  103,  103,  103,
       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
+      103,   31,   63,  103,  103,  103,  103,  103,  103,  103,
+      103,  103,  103,   71,  103,  103,  103,  103,  103,  103,
       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
-      103,  103,  103,  102,  102,  101,    0,  102,  102,   95,
-       94,  103,  103,  103,   67,  103,  103,   64,   68,  103,
-      103,  103,   35,   36,  103,  103,  103,  103,   40,   42,
-      103,   51,  103,  103,   60,   70,  103,   72,  103,   73,
-
-      103,  103,  103,  103,  103,  103,  103,   30,  103,   85,
       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
-      103,   75,   76,  103,   62,  103,  102,  102,    0,    0,
-        0,  102,   95,   94,  103,   65,  103,  103,  103,  103,
+      103,  103,    0,    0,   95,   94,  103,  103,  103,   67,
+      103,  103,   64,   68,  103,  103,  103,   35,   36,  103,
+      103,  103,  103,   40,   42,  103,   51,  103,  103,   60,
+       70,  103,   72,  103,   73,  103,  103,  103,  103,  103,
+
+      103,  103,   30,  103,   85,  103,  103,  103,  103,  103,
+      103,  103,  103,  103,  103,  103,   75,   76,  103,   62,
+      103,    0,   95,   94,  103,   65,  103,  103,  103,  103,
       103,   59,  103,   66,  103,   93,  103,   38,  103,  103,
       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
        41,  103,  103,   49,  103,  103,  103,  103,  103,  103,
-      103,  103,  103,  103,  103,   86,  102,    0,    0,   95,
-       94,  103,  103,  103,  103,  103,   69,  103,  103,  103,
-      103,  103,  103,   70,   77,   78,   79,   80,   81,   82,
-
-       83,   84,  103,  103,  103,  103,   61,  103,  103,  103,
-        1,  103,  103,  103,  103,  103,   39,  103,   74,  103,
-      103,  103,  103,    0,   95,   94,  103,  103,  103,  103,
-      103,  103,  103,  103,   50,  103,   21,   26,  103,  103,
-      103,   10,  103,  103,  103,  103,  103,   52,  103,  103,
-      103,  103,  103,   45,   62,   95,   94,  103,    9,   67,
+      103,  103,  103,  103,  103,   86,   95,   94,  103,  103,
+      103,  103,  103,   69,  103,  103,  103,  103,  103,  103,
+       70,   77,   78,   79,   80,   81,   82,   83,   84,  103,
+      103,  103,  103,   61,  103,  103,  103,    1,  103,  103,
+
+      103,  103,  103,   39,  103,   74,  103,  103,  103,  103,
+       95,   94,  103,  103,  103,  103,  103,  103,  103,  103,
+       50,  103,   21,   26,  103,  103,  103,   10,  103,  103,
+      103,  103,  103,   52,  103,  103,  103,  103,  103,   45,
+       62,   95,   94,  103,    9,   67,  103,  103,  103,  103,
+      103,  103,  103,  103,  103,  103,  103,  103,   47,  103,
+      103,  103,  103,  103,   48,  103,   46,  103,   95,  103,
+      103,  103,  103,  103,  103,  103,  103,  103,  103,   12,
+      103,  103,  103,  103,  103,  103,   44,   11,  103,  103,
+      103,  103,  103,  103,   95,  103,  103,  103,  103,  103,
+
+       33,  103,  103,  103,  103,  103,  103,  103,  103,  103,
+      103,  103,  103,    8,  103,  103,  103,  103,  103,  103,
+      103,  103,  103,  103,  103,   43,   34,  103,  103,  103,
+      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
+      103,   20,  103,  103,  103,  103,   53,  103,  103,  103,
       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
-      103,  103,   47,  103,  103,  103,  103,  103,   48,  103,
-       46,  103,   95,  103,  103,  103,  103,  103,  103,  103,
-      103,  103,  103,   12,  103,  103,  103,  103,  103,  103,
-
-       44,   11,  103,  103,  103,  103,  103,  103,   95,  103,
-      103,  103,  103,  103,   33,  103,  103,  103,  103,  103,
-      103,  103,  103,  103,  103,  103,  103,    8,  103,  103,
-      103,  103,  103,  103,  103,  103,  103,  103,  103,   43,
-       34,  103,  103,  103,  103,  103,  103,  103,  103,  103,
-      103,  103,  103,  103,  103,   20,  103,  103,  103,  103,
-       53,  103,  103,  103,  103,  103,  103,  103,  103,  103,
-      103,  103,  103,  103,   56,  103,  103,  103,  103,  103,
-       54,  103,  103,  103,  103,  103,  103,  103,  103,  103,
-      103,  103,  103,  103,   57,  103,  103,   15,  103,  103,
-
-      103,  103,   17,    7,  103,  103,  103,  103,  103,  103,
-      103,   23,  103,  103,  103,  103,  103,  103,  103,  103,
-      103,  103,  103,    4,  103,  103,  103,   22,  103,  103,
-      103,  103,  103,   13,  103,  103,  103,  103,    5,    6,
-      103,  103,  103,  103,  103,  103,   16,  103,  103,  103,
-      103,  103,  103,    3,   25,  103,   18,  103,  103,  103,
-       27,  103,   55,  103,   24,   14,   58,  103,  103,  103,
-      103,   28,  103,  103,  103,   29,    2,    0
+       56,  103,  103,  103,  103,  103,   54,  103,  103,  103,
+      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
+       57,  103,  103,   15,  103,  103,  103,  103,   17,    7,
+      103,  103,  103,  103,  103,  103,  103,   23,  103,  103,
+
+      103,  103,  103,  103,  103,  103,  103,  103,  103,    4,
+      103,  103,  103,   22,  103,  103,  103,  103,  103,   13,
+      103,  103,  103,  103,    5,    6,  103,  103,  103,  103,
+      103,  103,   16,  103,  103,  103,  103,  103,  103,    3,
+       25,  103,   18,  103,  103,  103,   27,  103,   55,  103,
+       24,   14,   58,  103,  103,  103,  103,   28,  103,  103,
+      103,   29,    2,    0
     } ;
 
 static yyconst int yy_ec[256] =
@@ -388,370 +387,336 @@ static yyconst int yy_ec[256] =
 
 static yyconst int yy_meta[52] =
     {   0,
-        1,    2,    3,    1,    1,    1,    1,    1,    1,    1,
+        1,    2,    3,    1,    2,    1,    1,    1,    1,    1,
         1,    1,    4,    4,    4,    4,    4,    4,    4,    4,
-        4,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        4,    1,    2,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1
     } ;
 
-static yyconst short int yy_base[589] =
+static yyconst short int yy_base[571] =
     {   0,
-        0,    0,  924,    0,   50,  925,    0,   52,   56,    0,
-        0,    0,    0,   64,  890,   19,   44,   37,   51,  889,
-       25,   36,   64,  892,   34,   67,   62,  874,  894,  873,
-       75,   74,  878,   65,  887,   72,    0,    0,  109,  925,
-      912,  115,  104,  912,  138,  119,  910,  925,  174,  183,
-      874,   69,  867,   24,    0,   85,  881,  883,  865,   92,
-      878,  860,  875,  862,  874,    0,  863,  872,  856,  863,
-        0,  860,   99,  855,  869,  853,  861,  850,  845,  101,
-      855,  861,   90,  856,  850,  136,  104,  842,  847,  845,
-      841,  843,  853,  854,  838,  837,  845,    0,  204,  875,
-
-        0,  131,  139,  251,  271,  289,  298,  849,  833,  835,
-      841,  836,  844,  826,  831,  831,  822,  839,  835,  835,
-      821,  829,    0,  822,  833,  833,  818,  832,  816,  816,
-      818,  814,  814,  826,    0,  814,  806,  805,  121,  814,
-      810,  803,  811,  818,  798,  810,  812,  810,  793,  808,
-      791,  789,  822,  789,  790,  791,  794,  793,  786,  787,
-      783,  787,  780,  307,  324,  925,  354,  390,  399,  417,
-      426,  787,  778,  774,  780,  786,  786,    0,    0,  778,
-      785,  776,    0,    0,  783,  771,  770,  766,    0,    0,
-      783,    0,  767,  763,    0,  778,  770,    0,  780,    0,
-
-      771,  118,  776,  790,  759,  773,  762,    0,  769,    0,
-      770,  763,  751,  752,  760,  763,  763,  748,  747,  749,
-      758,  774,    0,  752,  751,  754,  435,  444,  134,    0,
-      470,  206,  488,  497,  737,    0,  769,  738,  741,  766,
-      739,    0,  738,    0,  736,  731,  729,    0,  743,  743,
-      734,  506,  738,  725,  723,  726,  736,  734,  730,  733,
-        0,  717,  718,    0,  726,  731,  719,  717,  726,  725,
-      722,  706,  709,  711,  711,    0,  145,    0,  514,  532,
-      541,  720,  717,  713,  714,  703,    0,  705,  704,  729,
-      711,  727,  709,    0,    0,    0,    0,    0,    0,    0,
-
-        0,    0,  708,  709,  723,  694,    0,  705,  704,  687,
-      718,  700,  684,  698,  680,  678,    0,  681,    0,  694,
-      695,  683,  689,  160,  550,  559,  690,  690,  671,  704,
-      670,  685,  676,  127,  700,  681,  698,    0,  670,  679,
-      665,    0,  677,  676,  674,  691,  653,  689,  667,  661,
-      655,  661,  666,    0,    0,  568,  683,  682,    0,    0,
-      135,  660,  665,  662,  645,  650,  143,  660,  148,  649,
-      648,  656,    0,  642,  655,  652,  182,  639,    0,  668,
-        0,  646,  577,  185,  636,  634,  632,  631,  636,  630,
-      660,  626,  628,    0,  636,  638,  628,  628,  619,  621,
-
-        0,    0,  635,  620,  618,  621,  634,  622,    0,  621,
-      607,  612,  615,  624,    0,  640,  607,  618,  100,  616,
-      609,  605,  617,  606,  615,  610,  599,    0,  602,  611,
-      601,  596,  608,  603,  592,  605,  588,  590,  599,    0,
-        0,  596,  165,  589,  584,  588,  557,  566,  573,  496,
-      525,  449,  440,  444,  449,    0,  450,  451,  435,  436,
-      456,  422,  387,  394,  358,  356,  387,  371,  364,  351,
-      351,  355,  368,  352,  379,  361,  346,  350,  348,  374,
-        0,  342,  344,  354,  353,  345,  347,  203,  335,  335,
-      337,  354,  327,  322,    0,  320,  324,    0,  317,  322,
-
-      317,  326,    0,    0,  306,  297,  297,  301,  308,  293,
-      287,  318,  263,  246,  251,  249,  236,  267,  248,  250,
-      246,  232,  232,    0,  220,  217,  218,    0,  234,  213,
-      228,  213,  226,    0,  227,  218,  220,  213,    0,    0,
-      219,  215,  197,  209,  204,  204,    0,  205,  201,  208,
-      205,  201,  209,    0,    0,  199,    0,  190,  197,  194,
-        0,  180,    0,  171,    0,    0,    0,  180,  156,  143,
-      145,    0,  133,  143,  123,    0,    0,  925,  598,  602,
-      606,  610,  614,  618,  622,  626,  138,   67
+        0,    0,  779,    0,   50,  780,    0,   49,   55,    0,
+        0,    0,    0,   67,   59,  745,   19,   49,   34,   56,
+      744,   29,   39,   59,  747,   30,   71,   70,  729,  749,
+      728,   76,   74,  733,   65,  742,   82,    0,    0,  111,
+      780,  767,   73,   97,  780,  134,  123,  766,  780,  170,
+      179,  109,  116,  730,   93,  723,   94,    0,   88,  737,
+      739,  721,   98,  734,  716,  731,  718,  730,    0,  719,
+      728,  712,  719,    0,  716,  113,  711,  725,  709,  717,
+      706,  701,  120,  711,  717,  119,  712,  706,  133,  118,
+      698,  703,  701,  697,  699,  709,  710,  694,  693,  701,
+
+      163,    0,  196,  214,  223,  140,  706,  690,  692,  698,
+      693,  701,  683,  688,  688,  679,  696,  692,  692,  678,
+      686,    0,  679,  690,  690,  675,  689,  673,  673,  675,
+      671,  671,  683,    0,  671,  663,  662,  116,  671,  667,
+      660,  668,  675,  655,  667,  669,  667,  650,  665,  648,
+      646,  679,  646,  647,  648,  651,  650,  643,  644,  640,
+      644,  637,    0,  232,  250,  259,  644,  635,  631,  637,
+      643,  643,    0,    0,  635,  642,  633,    0,    0,  640,
+      628,  627,  623,    0,    0,  640,    0,  624,  620,    0,
+      635,  627,    0,  637,    0,  628,  175,  633,  647,  616,
+
+      630,  619,    0,  626,    0,  627,  620,  608,  609,  617,
+      620,  620,  605,  604,  606,  615,  631,    0,  609,  608,
+      611,  276,  287,  296,  594,    0,  626,  595,  598,  623,
+      596,    0,  595,    0,  593,  588,  586,    0,  600,  600,
+      591,  305,  595,  582,  580,  583,  593,  591,  587,  590,
+        0,  574,  575,    0,  583,  588,  576,  574,  583,  582,
+      579,  563,  566,  568,  568,    0,  313,  322,  577,  574,
+      570,  571,  560,    0,  562,  561,  586,  568,  584,  566,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  565,
+      566,  580,  551,    0,  562,  561,  544,  575,  557,  541,
+
+      555,  537,  535,    0,  538,    0,  551,  552,  540,  546,
+      331,  340,  547,  547,  528,  561,  527,  542,  533,  128,
+      557,  538,  555,    0,  527,  536,  522,    0,  534,  533,
+      531,  548,  510,  546,  524,  518,  512,  518,  523,    0,
+        0,  349,  540,  539,    0,    0,  251,  517,  522,  519,
+      502,  507,  143,  517,  142,  506,  505,  513,    0,  499,
+      512,  509,  252,  496,    0,  525,    0,  503,  358,  353,
+      493,  491,  489,  488,  493,  487,  517,  483,  485,    0,
+      493,  495,  485,  485,  476,  478,    0,    0,  492,  477,
+      475,  478,  491,  479,    0,  478,  464,  469,  472,  481,
+
+        0,  497,  464,  475,  255,  473,  466,  462,  474,  463,
+      472,  467,  456,    0,  459,  468,  458,  453,  465,  460,
+      449,  462,  445,  447,  456,    0,    0,  454,  158,  450,
+      448,  455,  435,  447,  454,  438,  467,  433,  435,  439,
+      444,    0,  445,  446,  430,  431,  458,  424,  432,  439,
+      423,  421,  452,  436,  429,  416,  416,  420,  433,  417,
+      444,  426,  411,  415,  413,  439,    0,  407,  409,  419,
+      418,  410,  412,  353,  400,  400,  402,  429,  402,  397,
+        0,  395,  399,    0,  392,  397,  392,  401,    0,    0,
+      390,  392,  392,  396,  403,  388,  382,  413,  392,  386,
+
+      391,  389,  376,  407,  388,  390,  387,  373,  374,    0,
+      359,  356,  355,    0,  370,  349,  363,  348,  361,    0,
+      362,  355,  357,  350,    0,    0,  356,  352,  334,  346,
+      255,  256,    0,  257,  253,  260,  257,  253,  261,    0,
+        0,  251,    0,  242,  248,  218,    0,  219,    0,  164,
+        0,    0,    0,  176,  176,  164,  148,    0,  138,  148,
+      128,    0,    0,  780,  398,  402,  406,  410,  167,  129
     } ;
 
-static yyconst short int yy_def[589] =
+static yyconst short int yy_def[571] =
     {   0,
-      578,    1,  578,  579,  578,  578,  579,  580,  581,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  578,  578,
-      582,  580,  583,  584,  580,  581,  582,  578,  579,   14,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  585,  583,  584,
-
-      585,  585,  586,  584,  580,  579,   14,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  585,  583,  578,  586,  104,  105,  579,
-       14,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  585,  165,  578,  587,
-      586,  580,  579,   14,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  583,  588,  231,  579,
-       14,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  586,  579,   14,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,    0,  578,  578,
-      578,  578,  578,  578,  578,  578,  578,  578
+      564,    1,  564,  565,  564,  564,  565,  566,  567,  565,
+      565,  565,  565,  565,  564,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  564,
+      564,  568,  564,  566,  564,  566,  567,  568,  564,  565,
+       14,  564,  564,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+
+      564,  569,  566,  565,   14,  564,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  570,  103,  565,   14,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  566,  565,   14,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,   14,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,   14,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,    0,  564,  564,  564,  564,  564,  564
     } ;
 
-static yyconst short int yy_nxt[977] =
+static yyconst short int yy_nxt[832] =
     {   0,
         4,    5,    6,    7,    8,    9,   10,    4,   11,   12,
        13,    4,   14,   14,   14,   14,   14,   14,   14,   14,
-       14,    4,    4,   15,   16,    4,   17,   18,   19,   20,
-       21,   22,   23,    4,   24,   25,   26,   27,   28,   29,
-       30,   31,   32,   33,   34,   35,   36,    4,    4,    4,
-       37,   39,   40,   43,   52,   41,   44,   47,   48,  112,
-       67,   57,   69,   53,   70,   58,   68,  113,   54,   59,
-      103,   55,   75,   76,   45,   49,   50,   50,   50,   50,
-       50,   50,   50,   50,   50,   56,   60,   61,   62,   63,
-       79,   77,   64,   71,   72,   78,   96,  109,   65,   85,
-
-       80,   73,   87,   86,  110,   88,   81,   93,   98,   94,
-       39,   40,  139,   97,   41,   89,   43,  114,   90,   44,
-       47,   48,   91,  115,  119,  131,   99,  143,  132,  442,
-      151,  144,  102,  103,  120,  229,  103,   45,  100,  102,
-      103,  278,  443,  166,  140,  152,  255,  153,  201,   98,
-      104,  104,  104,  104,  104,  104,  104,  104,  104,  100,
-      147,  167,  256,  202,  166,  385,  365,   99,  392,  148,
-      366,  577,  393,  576,  575,  395,  149,  574,  150,  386,
-      396,  573,  167,  397,  572,  105,  106,  106,  106,  106,
-      106,  106,  106,  106,  106,  107,  107,  107,  107,  107,
-
-      107,  107,  107,  107,  101,  102,  103,   43,  464,  571,
-       44,  410,  404,  465,  570,  569,  164,  164,  164,  164,
-      164,  164,  164,  164,  164,  101,  405,  411,   45,  412,
-      508,  568,  567,  566,  565,  564,  563,  562,  561,  560,
-      559,  558,  509,  557,  556,  555,  554,  553,  552,  551,
-      550,  165,  101,  549,  548,  547,  546,  545,  544,  543,
-      542,  541,  540,  168,  168,  168,  168,  168,  168,  168,
-      168,  168,   43,  539,  538,   44,  537,  536,  535,  534,
-      533,  532,  531,  169,  169,  169,  169,  169,  169,  169,
-      169,  169,  169,   45,  530,  169,  169,  169,  169,  169,
-
-      169,  170,  170,  170,  170,  170,  170,  170,  170,  170,
-      171,  171,  171,  171,  171,  171,  171,  171,  171,  227,
-      227,  227,  227,  227,  227,  227,  227,  227,   98,  529,
-      528,  527,  526,  525,  524,  523,  228,  228,  228,  228,
-      228,  228,  228,  228,  228,  228,   99,  522,  228,  228,
-      228,  228,  228,  228,  578,  229,  103,  521,  520,  519,
-      518,  517,  516,  515,  514,  513,  230,  230,  230,  230,
-      230,  230,  230,  230,  230,  578,  512,  511,  510,  507,
-      506,  505,  504,  503,  502,  501,  500,  499,  498,  497,
-      496,  495,  494,  493,  492,  491,  490,  489,  488,  487,
-
-      486,  231,   42,   42,   42,   42,   42,   42,   42,   42,
-       42,  232,  232,  232,  232,  232,  232,  232,  232,  232,
-      232,  485,  484,  232,  232,  232,  232,  232,  232,  233,
-      233,  233,  233,  233,  233,  233,  233,  233,  234,  234,
-      234,  234,  234,  234,  234,  234,  234,   43,   43,   43,
-       43,   43,   43,   43,   43,   43,  277,  277,  277,  277,
-      277,  277,  277,  277,  277,  277,  483,  482,  277,  277,
-      277,  277,  277,  277,  166,  481,  480,  479,  478,  477,
-      476,  475,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  167,  474,  279,  279,  279,  279,  279,  279,
-
-      280,  280,  280,  280,  280,  280,  280,  280,  280,  281,
-      281,  281,  281,  281,  281,  281,  281,  281,  295,  296,
-      297,  298,  299,  300,  301,  302,  324,  324,  324,  324,
-      324,  324,  324,  324,  324,  324,  473,  472,  324,  324,
-      324,  324,  324,  324,  325,  325,  325,  325,  325,  325,
-      325,  325,  325,  326,  326,  326,  326,  326,  326,  326,
-      326,  326,  356,  356,  356,  356,  356,  356,  356,  356,
-      356,  357,  357,  357,  357,  357,  357,  357,  357,  357,
-      383,  383,  383,  383,  383,  383,  383,  383,  383,  409,
-      409,  409,  409,  409,  409,  409,  409,  409,   38,  471,
-
-      470,   38,   42,   42,  469,   42,   46,   46,   46,   46,
-       47,   47,   47,   47,   43,   43,  468,   43,  100,  100,
-      467,  100,  101,  101,  466,  101,  103,  103,  463,  103,
-      462,  461,  460,  459,  458,  457,  456,  455,  454,  453,
-      452,  451,  450,  449,  448,  447,  446,  445,  444,  441,
-      440,  439,  438,  437,  436,  435,  434,  433,  432,  431,
-      430,  429,  428,  427,  426,  425,  424,  423,  422,  421,
-      420,  419,  418,  417,  416,  415,  414,  413,  408,  407,
-      406,  403,  402,  401,  400,  399,  398,  394,  391,  390,
-      389,  388,  387,  384,   49,  382,  381,  380,  379,  378,
-
-      377,  360,  376,  375,  374,  373,  372,  371,  370,  369,
-      368,  367,  364,  363,  362,  361,  360,  359,  358,  355,
-      354,  353,  352,  351,  350,  349,  348,  347,  346,  345,
-      344,  343,  342,  341,  340,  339,  338,  337,  336,  335,
-      334,  333,  332,  331,  330,  329,  328,  327,  323,  322,
-      321,  320,  319,  318,  317,  316,  315,  314,  313,  312,
-      311,  310,  309,  308,  307,  306,  305,  304,  303,  294,
-      293,  292,  291,  290,  289,  288,  287,  286,  285,  284,
-      283,  282,  276,  275,  274,  273,  272,  271,  270,  269,
-      268,  267,  266,  265,  264,  263,  262,  261,  260,  244,
-
-      259,  258,  257,  254,  253,  252,  251,  250,  249,  248,
-      247,  246,  245,  244,  243,  242,  241,  240,  239,  238,
-      237,  236,  235,  226,  225,  224,  223,  222,  221,  220,
-      219,  218,  217,  216,  215,  214,  213,  212,  211,  210,
-      209,  208,  207,  206,  205,  204,  203,  200,  199,  198,
-      197,  196,  195,  194,  193,  192,  191,  190,  189,  188,
-      187,  186,  185,  184,  183,  182,  181,  180,  179,  178,
-      177,  176,  175,  174,  173,  172,  101,  163,  162,  161,
-      160,  159,  158,  157,  156,  155,  154,  146,  145,  142,
-      141,  138,  137,  136,  135,  134,  133,  130,  129,  128,
-
-      127,  126,  125,  124,  123,  122,  121,  118,  117,  116,
-      111,  108,   48,  101,   48,   95,   92,   84,   83,   82,
-       74,   66,   51,  578,    3,  578,  578,  578,  578,  578,
-      578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
-      578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
-      578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
-      578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
-      578,  578,  578,  578,  578,  578
+       14,    4,   15,   16,   17,    4,   18,   19,   20,   21,
+       22,   23,   24,    4,   25,   26,   27,   28,   29,   30,
+       31,   32,   33,   34,   35,   36,   37,    4,    4,    4,
+       38,   40,   41,   45,   55,   42,   48,   49,   60,   48,
+       52,   53,   61,   56,   70,   72,   62,   73,   78,   79,
+       71,   46,   43,   57,   52,   53,   58,   48,   50,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   74,   75,
+       59,   63,   64,   65,   66,   80,   76,   67,   82,   81,
+
+       88,   45,   90,   68,   89,   91,   99,   96,   83,   97,
+       52,   53,   40,   41,   84,   92,   42,  106,   93,   46,
+      113,  108,   94,  100,   48,   49,  114,   48,  109,  111,
+      118,  138,   44,   43,  564,  101,   44,  112,   43,  130,
+      119,  106,  131,  196,  150,   48,  102,  102,  102,  102,
+      102,  102,  102,  102,  102,  564,  142,  146,  197,  151,
+      143,  152,   43,  139,  101,   44,  147,  351,  378,  381,
+      163,  352,  379,  148,  382,  149,  563,  383,  562,  561,
+      560,  103,  104,  104,  104,  104,  104,  104,  104,  104,
+      104,  105,  105,  105,  105,  105,  105,  105,  105,  105,
+
+       45,  450,  559,  245,  558,  557,  451,  556,  164,  164,
+      164,  164,  164,  164,  164,  164,  164,  164,   46,  246,
+      164,  164,  164,  164,  164,  164,  165,  165,  165,  165,
+      165,  165,  165,  165,  165,  166,  166,  166,  166,  166,
+      166,  166,  166,  166,  222,  222,  222,  222,  222,  222,
+      222,  222,  222,  222,  555,  554,  222,  222,  222,  222,
+      222,  222,  223,  223,  223,  223,  223,  223,  223,  223,
+      223,  224,  224,  224,  224,  224,  224,  224,  224,  224,
+       45,  371,  390,  553,  428,  552,  551,  550,  549,  548,
+      547,  546,  545,  544,  543,  372,  391,  429,   46,  267,
+
+      267,  267,  267,  267,  267,  267,  267,  267,  268,  268,
+      268,  268,  268,  268,  268,  268,  268,  282,  283,  284,
+      285,  286,  287,  288,  289,  311,  311,  311,  311,  311,
+      311,  311,  311,  311,  312,  312,  312,  312,  312,  312,
+      312,  312,  312,  342,  342,  342,  342,  342,  342,  342,
+      342,  342,  343,  343,  343,  343,  343,  343,  343,  343,
+      343,  369,  369,  369,  369,  369,  369,  369,  369,  369,
+      395,  395,  395,  395,  395,  395,  395,  395,  395,  396,
+      494,  542,  541,  540,  539,  538,  537,  536,  535,  534,
+      533,  532,  495,  531,  530,  397,  529,  398,   39,  528,
+
+      527,   39,   44,   44,  526,   44,   47,   47,   47,   47,
+       48,   48,   48,   48,  525,  524,  523,  522,  521,  520,
+      519,  518,  517,  516,  515,  514,  513,  512,  511,  510,
+      509,  508,  507,  506,  505,  504,  503,  502,  501,  500,
+      499,  498,  497,  496,  493,  492,  491,  490,  489,  488,
+      487,  486,  485,  484,  483,  482,  481,  480,  479,  478,
+      477,  476,  475,  474,  473,  472,  471,  470,  469,  468,
+      467,  466,  465,  464,  463,  462,  461,  460,  459,  458,
+      457,  456,  455,  454,  453,  452,  449,  448,  447,  446,
+      445,  444,  443,  442,  441,  440,  439,  438,  437,  436,
+
+      435,  434,  433,  432,  431,  430,  427,  426,  425,  424,
+      423,  422,  421,  420,  419,  418,  417,  416,  415,  414,
+      413,  412,  411,  410,  409,  408,  407,  406,  405,  404,
+      403,  402,  401,  400,  399,  394,  393,  392,  389,  388,
+      387,  386,  385,  384,  380,  377,  376,  375,  374,  373,
+      370,   50,  368,  367,  366,  365,  364,  363,  346,  362,
+      361,  360,  359,  358,  357,  356,  355,  354,  353,  350,
+      349,  348,  347,  346,  345,  344,  341,  340,  339,  338,
+      337,  336,  335,  334,  333,  332,  331,  330,  329,  328,
+      327,  326,  325,  324,  323,  322,  321,  320,  319,  318,
+
+      317,  316,  315,  314,  313,  310,  309,  308,  307,  306,
+      305,  304,  303,  302,  301,  300,  299,  298,  297,  296,
+      295,  294,  293,  292,  291,  290,  281,  280,  279,  278,
+      277,  276,  275,  274,  273,  272,  271,  270,  269,  266,
+      265,  264,  263,  262,  261,  260,  259,  258,  257,  256,
+      255,  254,  253,  252,  251,  250,  234,  249,  248,  247,
+      244,  243,  242,  241,  240,  239,  238,  237,  236,  235,
+      234,  233,  232,  231,  230,  229,  228,  227,  226,  225,
+      221,  220,  219,  218,  217,  216,  215,  214,  213,  212,
+      211,  210,  209,  208,  207,  206,  205,  204,  203,  202,
+
+      201,  200,  199,  198,  195,  194,  193,  192,  191,  190,
+      189,  188,  187,  186,  185,  184,  183,  182,  181,  180,
+      179,  178,  177,  176,  175,  174,  173,  172,  171,  170,
+      169,  168,  167,  162,  161,  160,  159,  158,  157,  156,
+      155,  154,  153,  145,  144,  141,  140,  137,  136,  135,
+      134,  133,  132,  129,  128,  127,  126,  125,  124,  123,
+      122,  121,  120,  117,  116,  115,  110,  107,   49,   49,
+       98,   95,   87,   86,   85,   77,   69,   54,  564,    3,
+      564,  564,  564,  564,  564,  564,  564,  564,  564,  564,
+      564,  564,  564,  564,  564,  564,  564,  564,  564,  564,
+
+      564,  564,  564,  564,  564,  564,  564,  564,  564,  564,
+      564,  564,  564,  564,  564,  564,  564,  564,  564,  564,
+      564,  564,  564,  564,  564,  564,  564,  564,  564,  564,
+      564
     } ;
 
-static yyconst short int yy_chk[977] =
+static yyconst short int yy_chk[832] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    5,    5,    8,   16,    5,    8,    9,    9,   54,
-       21,   18,   22,   16,   22,   18,   21,   54,   17,   18,
-      588,   17,   25,   25,    8,   14,   14,   14,   14,   14,
-       14,   14,   14,   14,   14,   17,   19,   19,   19,   19,
-       27,   26,   19,   23,   23,   26,   36,   52,   19,   31,
-
-       27,   23,   32,   31,   52,   32,   27,   34,   43,   34,
-       39,   39,   80,   36,   39,   32,   42,   56,   32,   42,
-       46,   46,   32,   56,   60,   73,   43,   83,   73,  419,
-       87,   83,  102,  102,   60,  229,  229,   42,   45,   45,
-       45,  587,  419,  103,   80,   87,  202,   87,  139,  277,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       86,  103,  202,  139,  324,  361,  334,  277,  367,   86,
-      334,  575,  367,  574,  573,  369,   86,  571,   86,  361,
-      369,  570,  324,  369,  569,   45,   49,   49,   49,   49,
-       49,   49,   49,   49,   49,   50,   50,   50,   50,   50,
-
-       50,   50,   50,   50,   99,   99,   99,  232,  443,  568,
-      232,  384,  377,  443,  564,  562,   99,   99,   99,   99,
-       99,   99,   99,   99,   99,   99,  377,  384,  232,  384,
-      488,  560,  559,  558,  556,  553,  552,  551,  550,  549,
-      548,  546,  488,  545,  544,  543,  542,  541,  538,  537,
-      536,   99,  104,  535,  533,  532,  531,  530,  529,  527,
-      526,  525,  523,  104,  104,  104,  104,  104,  104,  104,
-      104,  104,  105,  522,  521,  105,  520,  519,  518,  517,
-      516,  515,  514,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  513,  105,  105,  105,  105,  105,
-
-      105,  106,  106,  106,  106,  106,  106,  106,  106,  106,
-      107,  107,  107,  107,  107,  107,  107,  107,  107,  164,
-      164,  164,  164,  164,  164,  164,  164,  164,  165,  512,
-      511,  510,  509,  508,  507,  506,  165,  165,  165,  165,
-      165,  165,  165,  165,  165,  165,  165,  505,  165,  165,
-      165,  165,  165,  165,  167,  167,  167,  502,  501,  500,
-      499,  497,  496,  494,  493,  492,  167,  167,  167,  167,
-      167,  167,  167,  167,  167,  167,  491,  490,  489,  487,
-      486,  485,  484,  483,  482,  480,  479,  478,  477,  476,
-      475,  474,  473,  472,  471,  470,  469,  468,  467,  466,
-
-      465,  167,  168,  168,  168,  168,  168,  168,  168,  168,
-      168,  169,  169,  169,  169,  169,  169,  169,  169,  169,
-      169,  464,  463,  169,  169,  169,  169,  169,  169,  170,
-      170,  170,  170,  170,  170,  170,  170,  170,  171,  171,
-      171,  171,  171,  171,  171,  171,  171,  227,  227,  227,
-      227,  227,  227,  227,  227,  227,  228,  228,  228,  228,
-      228,  228,  228,  228,  228,  228,  462,  461,  228,  228,
-      228,  228,  228,  228,  231,  460,  459,  458,  457,  455,
-      454,  453,  231,  231,  231,  231,  231,  231,  231,  231,
-      231,  231,  231,  452,  231,  231,  231,  231,  231,  231,
-
-      233,  233,  233,  233,  233,  233,  233,  233,  233,  234,
-      234,  234,  234,  234,  234,  234,  234,  234,  252,  252,
-      252,  252,  252,  252,  252,  252,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  451,  450,  279,  279,
-      279,  279,  279,  279,  280,  280,  280,  280,  280,  280,
-      280,  280,  280,  281,  281,  281,  281,  281,  281,  281,
-      281,  281,  325,  325,  325,  325,  325,  325,  325,  325,
-      325,  326,  326,  326,  326,  326,  326,  326,  326,  326,
-      356,  356,  356,  356,  356,  356,  356,  356,  356,  383,
-      383,  383,  383,  383,  383,  383,  383,  383,  579,  449,
-
-      448,  579,  580,  580,  447,  580,  581,  581,  581,  581,
-      582,  582,  582,  582,  583,  583,  446,  583,  584,  584,
-      445,  584,  585,  585,  444,  585,  586,  586,  442,  586,
-      439,  438,  437,  436,  435,  434,  433,  432,  431,  430,
-      429,  427,  426,  425,  424,  423,  422,  421,  420,  418,
-      417,  416,  414,  413,  412,  411,  410,  408,  407,  406,
-      405,  404,  403,  400,  399,  398,  397,  396,  395,  393,
-      392,  391,  390,  389,  388,  387,  386,  385,  382,  380,
-      378,  376,  375,  374,  372,  371,  370,  368,  366,  365,
-      364,  363,  362,  358,  357,  353,  352,  351,  350,  349,
-
-      348,  347,  346,  345,  344,  343,  341,  340,  339,  337,
-      336,  335,  333,  332,  331,  330,  329,  328,  327,  323,
-      322,  321,  320,  318,  316,  315,  314,  313,  312,  311,
-      310,  309,  308,  306,  305,  304,  303,  293,  292,  291,
-      290,  289,  288,  286,  285,  284,  283,  282,  275,  274,
-      273,  272,  271,  270,  269,  268,  267,  266,  265,  263,
-      262,  260,  259,  258,  257,  256,  255,  254,  253,  251,
-      250,  249,  247,  246,  245,  243,  241,  240,  239,  238,
-      237,  235,  226,  225,  224,  222,  221,  220,  219,  218,
-      217,  216,  215,  214,  213,  212,  211,  209,  207,  206,
-
-      205,  204,  203,  201,  199,  197,  196,  194,  193,  191,
-      188,  187,  186,  185,  182,  181,  180,  177,  176,  175,
-      174,  173,  172,  163,  162,  161,  160,  159,  158,  157,
-      156,  155,  154,  153,  152,  151,  150,  149,  148,  147,
-      146,  145,  144,  143,  142,  141,  140,  138,  137,  136,
-      134,  133,  132,  131,  130,  129,  128,  127,  126,  125,
-      124,  122,  121,  120,  119,  118,  117,  116,  115,  114,
-      113,  112,  111,  110,  109,  108,  100,   97,   96,   95,
-       94,   93,   92,   91,   90,   89,   88,   85,   84,   82,
-       81,   79,   78,   77,   76,   75,   74,   72,   70,   69,
-
-       68,   67,   65,   64,   63,   62,   61,   59,   58,   57,
-       53,   51,   47,   44,   41,   35,   33,   30,   29,   28,
-       24,   20,   15,    3,  578,  578,  578,  578,  578,  578,
-      578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
-      578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
-      578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
-      578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
-      578,  578,  578,  578,  578,  578
+        1,    5,    5,    8,   17,    5,    9,    9,   19,    9,
+       15,   15,   19,   17,   22,   23,   19,   23,   26,   26,
+       22,    8,    5,   18,   43,   43,   18,    9,   14,   14,
+       14,   14,   14,   14,   14,   14,   14,   14,   24,   24,
+       18,   20,   20,   20,   20,   27,   24,   20,   28,   27,
+
+       32,   44,   33,   20,   32,   33,   37,   35,   28,   35,
+       52,   52,   40,   40,   28,   33,   40,   53,   33,   44,
+       59,   55,   33,   37,   47,   47,   59,   47,   55,   57,
+       63,   83,  570,   40,   46,   46,   46,   57,   53,   76,
+       63,  106,   76,  138,   90,   47,   46,   46,   46,   46,
+       46,   46,   46,   46,   46,   46,   86,   89,  138,   90,
+       86,   90,  106,   83,  101,  101,   89,  320,  353,  355,
+      569,  320,  353,   89,  355,   89,  561,  355,  560,  559,
+      557,   46,   50,   50,   50,   50,   50,   50,   50,   50,
+       50,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+
+      103,  429,  556,  197,  555,  554,  429,  550,  103,  103,
+      103,  103,  103,  103,  103,  103,  103,  103,  103,  197,
+      103,  103,  103,  103,  103,  103,  104,  104,  104,  104,
+      104,  104,  104,  104,  104,  105,  105,  105,  105,  105,
+      105,  105,  105,  105,  164,  164,  164,  164,  164,  164,
+      164,  164,  164,  164,  548,  546,  164,  164,  164,  164,
+      164,  164,  165,  165,  165,  165,  165,  165,  165,  165,
+      165,  166,  166,  166,  166,  166,  166,  166,  166,  166,
+      222,  347,  363,  545,  405,  544,  542,  539,  538,  537,
+      536,  535,  534,  532,  531,  347,  363,  405,  222,  223,
+
+      223,  223,  223,  223,  223,  223,  223,  223,  224,  224,
+      224,  224,  224,  224,  224,  224,  224,  242,  242,  242,
+      242,  242,  242,  242,  242,  267,  267,  267,  267,  267,
+      267,  267,  267,  267,  268,  268,  268,  268,  268,  268,
+      268,  268,  268,  311,  311,  311,  311,  311,  311,  311,
+      311,  311,  312,  312,  312,  312,  312,  312,  312,  312,
+      312,  342,  342,  342,  342,  342,  342,  342,  342,  342,
+      369,  369,  369,  369,  369,  369,  369,  369,  369,  370,
+      474,  530,  529,  528,  527,  524,  523,  522,  521,  519,
+      518,  517,  474,  516,  515,  370,  513,  370,  565,  512,
+
+      511,  565,  566,  566,  509,  566,  567,  567,  567,  567,
+      568,  568,  568,  568,  508,  507,  506,  505,  504,  503,
+      502,  501,  500,  499,  498,  497,  496,  495,  494,  493,
+      492,  491,  488,  487,  486,  485,  483,  482,  480,  479,
+      478,  477,  476,  475,  473,  472,  471,  470,  469,  468,
+      466,  465,  464,  463,  462,  461,  460,  459,  458,  457,
+      456,  455,  454,  453,  452,  451,  450,  449,  448,  447,
+      446,  445,  444,  443,  441,  440,  439,  438,  437,  436,
+      435,  434,  433,  432,  431,  430,  428,  425,  424,  423,
+      422,  421,  420,  419,  418,  417,  416,  415,  413,  412,
+
+      411,  410,  409,  408,  407,  406,  404,  403,  402,  400,
+      399,  398,  397,  396,  394,  393,  392,  391,  390,  389,
+      386,  385,  384,  383,  382,  381,  379,  378,  377,  376,
+      375,  374,  373,  372,  371,  368,  366,  364,  362,  361,
+      360,  358,  357,  356,  354,  352,  351,  350,  349,  348,
+      344,  343,  339,  338,  337,  336,  335,  334,  333,  332,
+      331,  330,  329,  327,  326,  325,  323,  322,  321,  319,
+      318,  317,  316,  315,  314,  313,  310,  309,  308,  307,
+      305,  303,  302,  301,  300,  299,  298,  297,  296,  295,
+      293,  292,  291,  290,  280,  279,  278,  277,  276,  275,
+
+      273,  272,  271,  270,  269,  265,  264,  263,  262,  261,
+      260,  259,  258,  257,  256,  255,  253,  252,  250,  249,
+      248,  247,  246,  245,  244,  243,  241,  240,  239,  237,
+      236,  235,  233,  231,  230,  229,  228,  227,  225,  221,
+      220,  219,  217,  216,  215,  214,  213,  212,  211,  210,
+      209,  208,  207,  206,  204,  202,  201,  200,  199,  198,
+      196,  194,  192,  191,  189,  188,  186,  183,  182,  181,
+      180,  177,  176,  175,  172,  171,  170,  169,  168,  167,
+      162,  161,  160,  159,  158,  157,  156,  155,  154,  153,
+      152,  151,  150,  149,  148,  147,  146,  145,  144,  143,
+
+      142,  141,  140,  139,  137,  136,  135,  133,  132,  131,
+      130,  129,  128,  127,  126,  125,  124,  123,  121,  120,
+      119,  118,  117,  116,  115,  114,  113,  112,  111,  110,
+      109,  108,  107,  100,   99,   98,   97,   96,   95,   94,
+       93,   92,   91,   88,   87,   85,   84,   82,   81,   80,
+       79,   78,   77,   75,   73,   72,   71,   70,   68,   67,
+       66,   65,   64,   62,   61,   60,   56,   54,   48,   42,
+       36,   34,   31,   30,   29,   25,   21,   16,    3,  564,
+      564,  564,  564,  564,  564,  564,  564,  564,  564,  564,
+      564,  564,  564,  564,  564,  564,  564,  564,  564,  564,
+
+      564,  564,  564,  564,  564,  564,  564,  564,  564,  564,
+      564,  564,  564,  564,  564,  564,  564,  564,  564,  564,
+      564,  564,  564,  564,  564,  564,  564,  564,  564,  564,
+      564
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -811,6 +776,7 @@ char *yytext;
 #include "common.h"
 #include "daemon.h"
 #include "lib.h"
+#include "both.h"
 #include "tokens.h"
 
 #define HYPHEN '-'
@@ -900,6 +866,7 @@ struct error_handling {
 static struct error_handling eh = { tokv_word_errorstostderr, 0,0,0,0,0 };
 
 static int dequote(char *inplace);
+static void countnewlines(void);
 
 #define YY_NO_UNPUT
 
@@ -1053,7 +1020,7 @@ YY_DECL
        register char *yy_cp, *yy_bp;
        register int yy_act;
 
-#line 142 "lexer.l"
+#line 144 "lexer.l"
 
 
 
@@ -1106,13 +1073,13 @@ yy_match:
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                                {
                                yy_current_state = (int) yy_def[yy_current_state];
-                               if ( yy_current_state >= 579 )
+                               if ( yy_current_state >= 565 )
                                        yy_c = yy_meta[(unsigned int) yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                        ++yy_cp;
                        }
-               while ( yy_base[yy_current_state] != 925 );
+               while ( yy_base[yy_current_state] != 780 );
 
 yy_find_action:
                yy_act = yy_accept[yy_current_state];
@@ -1140,472 +1107,472 @@ do_action:    /* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-#line 144 "lexer.l"
+#line 146 "lexer.l"
 { lr_dir= df_reject; return tokv_word_reject; }
        YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 145 "lexer.l"
+#line 147 "lexer.l"
 { lr_dir= df_executefromdirectory; return tokv_word_executefromdirectory; }
        YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 146 "lexer.l"
+#line 148 "lexer.l"
 { lr_dir= df_executefrompath; return tokv_word_executefrompath; }
        YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 147 "lexer.l"
+#line 149 "lexer.l"
 { lr_dir= df_executebuiltin; return tokv_word_executebuiltin; }
        YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 148 "lexer.l"
+#line 150 "lexer.l"
 { lr_dir= df_errorstostderr; return tokv_word_errorstostderr; }
        YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 149 "lexer.l"
+#line 151 "lexer.l"
 { lr_dir= df_errorstosyslog; return tokv_word_errorstosyslog; }
        YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 150 "lexer.l"
+#line 152 "lexer.l"
 { lr_dir= df_errorstofile; return tokv_word_errorstofile; }
        YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 151 "lexer.l"
+#line 153 "lexer.l"
 { lr_dir= dfg_fdwant; lr_fdwant_readwrite=1; return tokv_word_requirefd; }
        YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 152 "lexer.l"
+#line 154 "lexer.l"
 { lr_dir= dfg_fdwant; lr_fdwant_readwrite=0; return tokv_word_allowfd; }
        YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 153 "lexer.l"
+#line 155 "lexer.l"
 { lr_dir= dfg_fdwant; lr_fdwant_readwrite=0; return tokv_word_nullfd; }
        YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 154 "lexer.l"
+#line 156 "lexer.l"
 { lr_dir= dfg_fdwant; lr_fdwant_readwrite=-1; return tokv_word_rejectfd; }
        YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 155 "lexer.l"
+#line 157 "lexer.l"
 { lr_dir= dfg_fdwant; lr_fdwant_readwrite=-1; return tokv_word_ignorefd; }
        YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 156 "lexer.l"
+#line 158 "lexer.l"
 { lr_dir= dfg_setflag; lr_flag= &setenvironment; lr_flagval= 1; return tokv_word_setenvironment; }
        YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 157 "lexer.l"
+#line 159 "lexer.l"
 { lr_dir= dfg_setflag; lr_flag= &setenvironment; lr_flagval= 0; return tokv_word_nosetenvironment; }
        YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 158 "lexer.l"
+#line 160 "lexer.l"
 { lr_dir= dfg_setflag; lr_flag= &suppressargs; lr_flagval= 1; return tokv_word_suppressargs; }
        YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 159 "lexer.l"
+#line 161 "lexer.l"
 { lr_dir= dfg_setflag; lr_flag= &suppressargs; lr_flagval= 0; return tokv_word_nosuppressargs; }
        YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 160 "lexer.l"
+#line 162 "lexer.l"
 { lr_dir= dfg_setflag; lr_flag= &disconnecthup; lr_flagval= 1; return tokv_word_disconnecthup; }
        YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 161 "lexer.l"
+#line 163 "lexer.l"
 { lr_dir= dfg_setflag; lr_flag= &disconnecthup; lr_flagval= 0; return tokv_word_nodisconnecthup; }
        YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 162 "lexer.l"
+#line 164 "lexer.l"
 { lr_dir= df_cd; return tokv_word_cd; }
        YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 163 "lexer.l"
+#line 165 "lexer.l"
 { lr_dir= df_userrcfile; return tokv_word_userrcfile; }
        YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 164 "lexer.l"
+#line 166 "lexer.l"
 { lr_dir= df_include; return tokv_word_include; }
        YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 165 "lexer.l"
+#line 167 "lexer.l"
 { lr_dir= df_include; return tokv_word_includeifexist; }
        YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 166 "lexer.l"
+#line 168 "lexer.l"
 { lr_dir= df_includelookup; return tokv_word_includelookup; }
        YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 167 "lexer.l"
+#line 169 "lexer.l"
 { lr_dir= df_includelookup; return tokv_word_includelookupall; }
        YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 168 "lexer.l"
+#line 170 "lexer.l"
 { lr_dir= df_includedirectory; return tokv_word_includedirectory; }
        YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 169 "lexer.l"
+#line 171 "lexer.l"
 { lr_dir= df_message; return tokv_word_message; }
        YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 170 "lexer.l"
+#line 172 "lexer.l"
 { lr_dir= df_include; return tokv_word_includesysconfig; }
        YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 171 "lexer.l"
+#line 173 "lexer.l"
 { lr_dir= dfi_includeuserrcfile; return tokv_word_includeuserrcfile; }
        YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 172 "lexer.l"
+#line 174 "lexer.l"
 { lr_dir= dfi_includeclientconfig; return tokv_word_includeclientconfig; }
        YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 173 "lexer.l"
+#line 175 "lexer.l"
 { lr_dir= df_quit; return tokv_word_quit; }
        YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 174 "lexer.l"
+#line 176 "lexer.l"
 { lr_dir= df_eof; return tokv_word_eof; }
        YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 175 "lexer.l"
+#line 177 "lexer.l"
 { lr_dir= df_if; return tokv_word_if; }
        YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 176 "lexer.l"
+#line 178 "lexer.l"
 { lr_dir= df_catchquit; return tokv_word_catchquit; }
        YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 177 "lexer.l"
+#line 179 "lexer.l"
 { lr_dir= df_errorspush; return tokv_word_errorspush; }
        YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 178 "lexer.l"
+#line 180 "lexer.l"
 { lr_controlend= tokv_word_if; return tokv_word_elif; }
        YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 179 "lexer.l"
+#line 181 "lexer.l"
 { lr_controlend= tokv_word_if; return tokv_word_else; }
        YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 180 "lexer.l"
+#line 182 "lexer.l"
 { lr_controlend= tokv_word_if; return tokv_word_fi; }
        YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 181 "lexer.l"
+#line 183 "lexer.l"
 { lr_controlend= tokv_word_catchquit; return tokv_word_hctac; }
        YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 182 "lexer.l"
+#line 184 "lexer.l"
 { lr_controlend= tokv_word_errorspush; return tokv_word_srorre; }
        YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 183 "lexer.l"
+#line 185 "lexer.l"
 { lr_parmcond= pcf_glob; return tokv_word_glob; }
        YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 184 "lexer.l"
+#line 186 "lexer.l"
 { lr_parmcond= pcf_range; return tokv_word_range; }
        YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 185 "lexer.l"
+#line 187 "lexer.l"
 { lr_parmcond= pcf_grep; return tokv_word_grep; }
        YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 186 "lexer.l"
+#line 188 "lexer.l"
 { lr_bispa= bispa_none; lr_bisexec= bisexec_environment; return tokv_word_environment; }
        YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 187 "lexer.l"
+#line 189 "lexer.l"
 { lr_bispa= bispa_parameter; lr_bisexec= bisexec_parameter; return tokv_word_parameter; }
        YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 188 "lexer.l"
+#line 190 "lexer.l"
 { lr_bispa= bispa_none; lr_bisexec= bisexec_version; return tokv_word_version; }
        YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 189 "lexer.l"
+#line 191 "lexer.l"
 { lr_bispa= bispa_none; lr_bisexec= bisexec_toplevel; return tokv_word_toplevel; }
        YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 190 "lexer.l"
+#line 192 "lexer.l"
 { lr_bispa= bispa_none; lr_bisexec= bisexec_override; return tokv_word_override; }
        YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 191 "lexer.l"
+#line 193 "lexer.l"
 { lr_bispa= bispa_none; lr_bisexec= bisexec_shutdown; return tokv_word_shutdown; }
        YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 192 "lexer.l"
+#line 194 "lexer.l"
 { lr_bispa= bispa_none; lr_bisexec= bisexec_reset; lr_dir= df_reset; return tokv_word_reset; }
        YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 193 "lexer.l"
+#line 195 "lexer.l"
 { lr_bispa= bispa_none; lr_bisexec= bisexec_execute; lr_dir= df_execute; return tokv_word_execute; }
        YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 194 "lexer.l"
+#line 196 "lexer.l"
 { lr_bispa= bispa_none; lr_bisexec= bisexec_help; return tokv_word_help; }
        YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 195 "lexer.l"
+#line 197 "lexer.l"
 { lr_parameter= pf_service; return tokv_word_service; }
        YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 196 "lexer.l"
+#line 198 "lexer.l"
 { lr_parameter= pf_callinguser; return tokv_word_callinguser; }
        YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 197 "lexer.l"
+#line 199 "lexer.l"
 { lr_parameter= pf_callinggroup; return tokv_word_callinggroup; }
        YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 198 "lexer.l"
+#line 200 "lexer.l"
 { lr_parameter= pf_callingusershell; return tokv_word_callingusershell; }
        YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 199 "lexer.l"
+#line 201 "lexer.l"
 { lr_parameter= pf_serviceuser; return tokv_word_serviceuser; }
        YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 200 "lexer.l"
+#line 202 "lexer.l"
 { lr_parameter= pf_servicegroup; return tokv_word_servicegroup; }
        YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 201 "lexer.l"
+#line 203 "lexer.l"
 { lr_parameter= pf_serviceusershell; return tokv_word_serviceusershell; }
        YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 202 "lexer.l"
+#line 204 "lexer.l"
 { lr_loglevel= LOG_DEBUG; return tokv_syslog_debug; }
        YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 203 "lexer.l"
+#line 205 "lexer.l"
 { lr_loglevel= LOG_INFO; return tokv_syslog_info; }
        YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 204 "lexer.l"
+#line 206 "lexer.l"
 { lr_loglevel= LOG_NOTICE; return tokv_syslog_notice; }
        YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 205 "lexer.l"
+#line 207 "lexer.l"
 { lr_loglevel= LOG_WARNING; return tokv_syslog_warning; }
        YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 206 "lexer.l"
+#line 208 "lexer.l"
 { lr_loglevel= LOG_ERR; return tokv_syslog_err; }
        YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 207 "lexer.l"
+#line 209 "lexer.l"
 { lr_loglevel= LOG_CRIT; return tokv_syslog_crit; }
        YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 208 "lexer.l"
+#line 210 "lexer.l"
 { lr_loglevel= LOG_ALERT; return tokv_syslog_alert; }
        YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 209 "lexer.l"
+#line 211 "lexer.l"
 { lr_loglevel= LOG_EMERG; return tokv_syslog_emerg; }
        YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 210 "lexer.l"
+#line 212 "lexer.l"
 { lr_logfacility= LOG_AUTHPRIV; return tokv_syslog_authpriv; }
        YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 211 "lexer.l"
+#line 213 "lexer.l"
 { lr_logfacility= LOG_CRON; return tokv_syslog_cron; }
        YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 212 "lexer.l"
+#line 214 "lexer.l"
 { lr_logfacility= LOG_DAEMON; return tokv_syslog_daemon; }
        YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 213 "lexer.l"
+#line 215 "lexer.l"
 { lr_logfacility= LOG_KERN; return tokv_syslog_kern; }
        YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 214 "lexer.l"
+#line 216 "lexer.l"
 { lr_logfacility= LOG_LPR; return tokv_syslog_lpr; }
        YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 215 "lexer.l"
+#line 217 "lexer.l"
 { lr_logfacility= LOG_MAIL; return tokv_syslog_mail; }
        YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 216 "lexer.l"
+#line 218 "lexer.l"
 { lr_logfacility= LOG_NEWS; return tokv_syslog_news; }
        YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 217 "lexer.l"
+#line 219 "lexer.l"
 { lr_logfacility= LOG_SYSLOG; return tokv_syslog_syslog; }
        YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 218 "lexer.l"
+#line 220 "lexer.l"
 { lr_logfacility= LOG_USER; return tokv_syslog_user; }
        YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 219 "lexer.l"
+#line 221 "lexer.l"
 { lr_logfacility= LOG_UUCP; return tokv_syslog_uucp; }
        YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 220 "lexer.l"
+#line 222 "lexer.l"
 { lr_logfacility= LOG_LOCAL0; return tokv_syslog_local0; }
        YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 221 "lexer.l"
+#line 223 "lexer.l"
 { lr_logfacility= LOG_LOCAL1; return tokv_syslog_local1; }
        YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 222 "lexer.l"
+#line 224 "lexer.l"
 { lr_logfacility= LOG_LOCAL2; return tokv_syslog_local2; }
        YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 223 "lexer.l"
+#line 225 "lexer.l"
 { lr_logfacility= LOG_LOCAL3; return tokv_syslog_local3; }
        YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 224 "lexer.l"
+#line 226 "lexer.l"
 { lr_logfacility= LOG_LOCAL4; return tokv_syslog_local4; }
        YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 225 "lexer.l"
+#line 227 "lexer.l"
 { lr_logfacility= LOG_LOCAL5; return tokv_syslog_local5; }
        YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 226 "lexer.l"
+#line 228 "lexer.l"
 { lr_logfacility= LOG_LOCAL6; return tokv_syslog_local6; }
        YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 227 "lexer.l"
+#line 229 "lexer.l"
 { lr_logfacility= LOG_LOCAL7; return tokv_syslog_local7; }
        YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 228 "lexer.l"
+#line 230 "lexer.l"
 { return tokv_word_read; }
        YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 229 "lexer.l"
+#line 231 "lexer.l"
 { return tokv_word_write; }
        YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 230 "lexer.l"
+#line 232 "lexer.l"
 { return tokv_dollar; }
        YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 231 "lexer.l"
+#line 233 "lexer.l"
 { return tokv_openparen; }
        YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 232 "lexer.l"
+#line 234 "lexer.l"
 { return tokv_closeparen; }
        YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 233 "lexer.l"
+#line 235 "lexer.l"
 { return tokv_not; }
        YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 234 "lexer.l"
+#line 236 "lexer.l"
 { return tokv_and; }
        YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 235 "lexer.l"
+#line 237 "lexer.l"
 { return tokv_or; }
        YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 236 "lexer.l"
+#line 238 "lexer.l"
 { lr_dir= df_error; lr_loglevel= LOG_ERR; return tokv_word_error; }
        YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 240 "lexer.l"
+#line 242 "lexer.l"
 {
                          char *ep;
                          lr_min=lr_max= (int)strtoul(yytext,&ep,10);
@@ -1615,7 +1582,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 246 "lexer.l"
+#line 248 "lexer.l"
 {
                          char *ep;
                          lr_min= (int)strtoul(yytext,&ep,10);
@@ -1623,10 +1590,8 @@ YY_RULE_SETUP
                          assert(*++ep);
                          lr_max= (int)strtoul(ep,&ep,10);
                          assert(!*ep);
-                         if (lr_max < lr_min) {
-                           parseerrprint("fd range has min > max");
-                           return tokv_error;
-                         }
+                         if (lr_max < lr_min)
+                           return parseerrprint("fd range has min > max");
                          return tokv_fdrange;
                        }
        YY_BREAK
@@ -1645,12 +1610,12 @@ YY_RULE_SETUP
 case 97:
 YY_RULE_SETUP
 #line 267 "lexer.l"
-return tokv_lwsp;
+countnewlines(); return tokv_lwsp;
        YY_BREAK
 case 98:
 YY_RULE_SETUP
 #line 268 "lexer.l"
-cstate->lineno++; return tokv_newline;
+return tokv_lwsp;
        YY_BREAK
 case 99:
 YY_RULE_SETUP
@@ -1660,38 +1625,48 @@ cstate->lineno++; return tokv_newline;
 case 100:
 YY_RULE_SETUP
 #line 270 "lexer.l"
-{
-                         parseerrprint("missing newline at eof after comment");
-                         return tokv_error;
-                       }
+cstate->lineno++; return tokv_newline;
        YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 274 "lexer.l"
-{
-                         return dequote(yytext);
-                       }
+#line 271 "lexer.l"
+return parseerrprint("missing newline at eof after comment");
        YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 277 "lexer.l"
+#line 272 "lexer.l"
 {
-                         parseerrprint("misquoted or unterminated string");
-                         return tokv_error;
+                         countnewlines();
+                         return dequote(yytext);
                        }
        YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 281 "lexer.l"
+#line 276 "lexer.l"
 return tokv_barestring;
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 282 "lexer.l"
+#line 277 "lexer.l"
 return tokv_eof;
        YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 285 "lexer.l"
+#line 278 "lexer.l"
+return parseerrprint("misquoted or unterminated string");
+       YY_BREAK
+case 105:
+YY_RULE_SETUP
+#line 279 "lexer.l"
+return parseerrprint("unexpected backslash");
+       YY_BREAK
+case 106:
+YY_RULE_SETUP
+#line 280 "lexer.l"
+abort(); /* expect lex warning "rule cannot be matched" */
+       YY_BREAK
+case 107:
+YY_RULE_SETUP
+#line 283 "lexer.l"
 ECHO;
        YY_BREAK
 
@@ -1983,7 +1958,7 @@ static yy_state_type yy_get_previous_state()
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
-                       if ( yy_current_state >= 579 )
+                       if ( yy_current_state >= 565 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2018,11 +1993,11 @@ yy_state_type yy_current_state;
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                {
                yy_current_state = (int) yy_def[yy_current_state];
-               if ( yy_current_state >= 579 )
+               if ( yy_current_state >= 565 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-       yy_is_jam = (yy_current_state == 578);
+       yy_is_jam = (yy_current_state == 564);
 
        return yy_is_jam ? 0 : yy_current_state;
        }
@@ -2577,7 +2552,7 @@ int main()
        return 0;
        }
 #endif
-#line 285 "lexer.l"
+#line 283 "lexer.l"
 
 
 const char *const builtinservicehelpstrings[]= {