Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/lex.cc

    r02e5ab6 rde62360d  
    382382        (yy_c_buf_p) = yy_cp;
    383383
    384 #define YY_NUM_RULES 177
    385 #define YY_END_OF_BUFFER 178
     384#define YY_NUM_RULES 171
     385#define YY_END_OF_BUFFER 172
    386386/* This struct is not used in this scanner,
    387387   but its presence is necessary. */
     
    391391        flex_int32_t yy_nxt;
    392392        };
    393 static yyconst flex_int16_t yy_accept[851] =
     393static yyconst flex_int16_t yy_accept[826] =
    394394    {   0,
    395         0,    0,    0,    0,    0,    0,  113,  113,  116,  116,
    396       178,  176,    7,    9,    8,  136,  115,  100,  141,  144,
    397       112,  123,  124,  139,  137,  127,  138,  130,  140,  105,
    398       106,  107,  128,  129,  146,  148,  147,  149,  176,  100,
    399       121,  176,  122,  142,  100,  102,  100,  100,  100,  100,
    400       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    401       100,  125,  145,  126,  143,    7,  176,    4,    4,  177,
    402       103,  177,  104,  113,  114,  120,  116,  117,    7,    9,
    403         0,    8,  153,  171,  100,    0,  165,  135,  158,  166,
    404       163,  150,  161,  151,  162,  160,    0,  110,    3,    0,
    405 
    406       164,  110,  108,    0,    0,  108,  108,    0,    0,  108,
    407       107,  107,  107,    0,  107,  133,  134,  132,  154,  156,
    408       152,  157,  155,    0,    0,    0,    0,    0,    0,    0,
    409         0,    0,    0,    0,    0,    0,    0,    0,  101,    0,
    410       115,  112,  100,    0,    0,  168,    0,  100,  100,  100,
    411       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    412       100,  100,  100,  100,   39,  100,  100,  100,  100,  100,
    413       100,  100,  100,  100,  100,   57,  100,  100,  100,  100,
    414       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    415       100,  167,  159,    7,    0,    0,    0,    2,    0,    5,
    416 
    417       103,    0,    0,    0,  113,    0,  119,  118,  118,    0,
    418         0,    0,  116,    0,    0,    0,    0,    0,    0,    0,
    419         0,    0,    0,    0,    0,    0,    0,    0,  131,  110,
    420         0,  110,    0,    0,    6,    0,  108,    0,    0,    0,
    421       110,    0,  108,  108,  108,  108,    0,  109,    0,    0,
    422       107,  107,  107,  107,    0,  169,  170,    0,  174,  172,
    423         0,    0,    0,  101,    0,    0,    0,    0,    0,    0,
    424         0,    0,  100,   17,  100,  100,  100,  100,  100,  100,
    425       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    426       100,   14,  100,  100,  100,  100,  100,  100,  100,  100,
    427 
    428       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    429        51,  100,  100,  100,   64,  100,  100,  100,  100,  100,
    430       100,  100,  100,  100,  100,  100,  100,   87,  100,  100,
    431       100,  100,  100,  100,  100,    0,    0,    0,    0,    0,
    432         0,    0,    0,  118,    0,    0,    0,    0,    0,  118,
    433         0,    0,  175,    0,    0,    0,    0,    0,    0,    0,
    434         0,  110,    0,    0,    0,  110,    0,  108,  108,    0,
    435         0,  109,  109,    0,  109,    0,  109,  107,  107,    0,
    436         0,    0,    0,    0,    0,    0,    0,    0,    0,  173,
    437       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    438 
    439       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    440       100,  100,   21,  100,   24,  100,   27,  100,  100,  100,
    441       100,  100,  100,  100,   42,  100,   44,  100,  100,  100,
    442       100,  100,  100,  100,   56,  100,   67,  100,  100,  100,
    443       100,  100,  100,  100,  100,  100,  100,  100,   88,  100,
    444       100,   95,  100,  100,    0,    0,    0,    0,    0,    0,
    445         0,    0,    0,    0,    0,    0,    0,    0,  118,    0,
    446         0,    0,    0,    0,  110,    0,    0,    0,    0,    0,
    447         0,  109,  109,    0,  111,    0,  109,  109,    0,    0,
     395        0,    0,    0,    0,    0,    0,  108,  108,  111,  111,
     396      172,  170,    7,    9,    8,  131,  110,   95,  136,  139,
     397      107,  118,  119,  134,  132,  122,  133,  125,  135,  100,
     398      101,  102,  123,  124,  141,  143,  142,  144,  170,   95,
     399      116,  170,  117,  137,   95,   97,   95,   95,   95,   95,
     400       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
     401       95,  120,  140,  121,  138,    7,  170,    4,    4,  171,
     402       98,  171,   99,  108,  109,  115,  111,  112,    7,    9,
     403        0,    8,  148,  166,   95,    0,  160,  130,  153,  161,
     404      158,  145,  156,  146,  157,  155,    0,  105,    3,    0,
     405
     406      159,  105,  103,    0,    0,  103,  103,    0,    0,  103,
     407      102,  102,  102,    0,  102,  128,  129,  127,  149,  151,
     408      147,  152,  150,    0,    0,    0,    0,    0,    0,    0,
     409        0,    0,    0,    0,    0,    0,    0,    0,   96,    0,
     410      110,  107,   95,    0,    0,  163,   95,   95,   95,   95,
     411       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
     412       95,   95,   36,   95,   95,   95,   95,   95,   95,   95,
     413       95,   95,   95,   53,   95,   95,   95,   95,   95,   95,
     414       95,   95,   95,   95,   95,   95,   95,   95,   95,  162,
     415      154,    7,    0,    0,    0,    2,    0,    5,   98,    0,
     416
     417        0,    0,  108,    0,  114,  113,  113,    0,    0,    0,
     418      111,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     419        0,    0,    0,    0,    0,    0,  126,  105,    0,  105,
     420        0,    0,    6,    0,  103,    0,    0,    0,  105,    0,
     421      103,  103,  103,  103,    0,  104,    0,    0,  102,  102,
     422      102,  102,    0,  164,  165,    0,  168,  167,    0,    0,
     423        0,   96,    0,    0,    0,    0,    0,    0,    0,   95,
     424       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
     425       95,   95,   95,   95,   95,   95,   95,   95,   14,   95,
     426       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
     427
     428       95,   95,   95,   95,   95,   47,   95,   95,   95,   60,
     429       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
     430       95,   95,   82,   95,   95,   95,   95,   95,   95,   95,
     431        0,    0,    0,    0,    0,    0,    0,    0,  113,    0,
     432        0,    0,    0,    0,  113,    0,    0,  169,    0,    0,
     433        0,    0,    0,    0,    0,    0,  105,    0,    0,    0,
     434      105,    0,  103,  103,    0,    0,  104,  104,    0,  104,
     435        0,  104,  102,  102,    0,    0,    0,    0,    0,    0,
     436        0,    0,    0,    0,   95,   95,   95,   95,   95,   95,
     437       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
     438
     439       95,   95,   95,   95,   95,   95,   20,   95,   23,   95,
     440       25,   95,   95,   95,   95,   95,   95,   39,   40,   95,
     441       95,   95,   95,   95,   95,   95,   52,   95,   63,   95,
     442       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
     443       83,   95,   95,   90,   95,   95,    0,    0,    0,    0,
    448444        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    449 
    450         0,  100,  100,   22,  100,  100,  100,  100,  100,  100,
    451       100,   15,  100,  100,  100,  100,  100,  100,  100,  100,
    452       100,  100,  100,  100,  100,   23,   25,  100,   32,  100,
    453       100,  100,  100,  100,   41,  100,  100,  100,  100,   49,
    454       100,  100,   54,  100,  100,  100,  100,  100,   75,  100,
    455       100,  100,  100,  100,   85,  100,  100,   93,  100,  100,
    456        99,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     445      113,    0,    0,    0,    0,    0,  105,    0,    0,    0,
     446        0,    0,    0,  104,  104,    0,  106,    0,  104,  104,
    457447        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    458       111,    0,    0,  109,  111,  111,    0,  109,    0,    0,
    459         0,    0,    0,    0,    0,    0,    0,    0,  100,    0,
    460 
    461       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    462       100,  100,  100,  100,  100,   59,  100,  100,  100,  100,
    463       100,  100,  100,  100,   28,  100,  100,  100,  100,   40,
    464        43,   46,  100,  100,   52,  100,   61,   68,  100,  100,
    465        74,   76,   79,   80,   82,   83,  100,  100,   90,  100,
    466       100,    0,    1,    0,    0,    0,    0,    0,    0,  103,
    467         0,    0,    0,  118,    0,    0,    0,    0,  111,    0,
    468         0,    0,    0,    0,    0,    0,    0,    0,    0,  100,
    469       100,   18,  100,  100,  100,  100,  100,  100,  100,   16,
    470       100,  100,   33,  100,  100,  100,  100,  100,  100,  100,
    471 
    472       100,  100,  100,  100,   35,  100,   37,   38,  100,   48,
    473        53,  100,  100,  100,   89,  100,  100,    0,    0,    0,
     448        0,    0,    0,   95,   95,   21,   95,   95,   95,   95,
     449
     450       95,   95,   95,   15,   95,   95,   95,   95,   95,   95,
     451       95,   95,   95,   95,   95,   95,   95,   22,   24,   95,
     452       30,   95,   95,   95,   95,   38,   95,   95,   95,   45,
     453       95,   95,   50,   95,   95,   95,   95,   95,   71,   95,
     454       95,   95,   95,   95,   81,   95,   95,   88,   95,   95,
     455       94,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    474456        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    475        10,   11,   29,   55,  100,  100,  100,  100,  100,  100,
    476       100,  100,  100,  100,   60,   62,   65,  100,  100,   77,
    477        91,  100,  100,   36,   47,   70,   71,  100,   94,   96,
     457      106,    0,    0,  104,  106,  106,    0,  104,    0,    0,
     458        0,    0,    0,    0,    0,    0,    0,    0,   95,    0,
     459       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
     460
     461       95,   95,   95,   95,   95,   55,   95,   95,   95,   95,
     462       95,   95,   95,   26,   95,   95,   95,   37,   42,   95,
     463       95,   48,   95,   57,   64,   95,   95,   70,   72,   75,
     464       76,   78,   79,   95,   85,   95,   95,    0,    1,    0,
     465        0,    0,    0,    0,    0,   98,    0,    0,    0,  113,
     466        0,    0,    0,    0,  106,    0,    0,    0,    0,    0,
     467        0,    0,    0,    0,    0,   95,   95,   17,   95,   95,
     468       95,   95,   95,   95,   95,   16,   95,   95,   31,   95,
     469       95,   95,   95,   95,   95,   95,   95,   95,   95,   33,
     470       95,   35,   95,   44,   49,   95,   95,   84,   95,   95,
     471
    478472        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    479         0,    0,  100,   69,  100,  100,   12,  100,   30,   34,
    480       100,  100,  100,   66,  100,  100,  100,  100,  100,  100,
     473        0,    0,    0,   10,   11,   27,   51,   95,   95,   95,
     474       95,   95,   95,   95,   95,   95,   95,   56,   58,   61,
     475       95,   95,   73,   86,   95,   34,   43,   66,   67,   89,
     476       91,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     477        0,    0,    0,   95,   65,   95,   95,   12,   95,   28,
     478       32,   95,   95,   95,   62,   95,   95,   95,   95,    0,
    481479        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    482 
    483         0,    0,    0,   58,  100,  100,  100,  100,  100,  100,
    484        50,   63,   72,   78,   92,   97,  100,  100,    0,    0,
    485         0,    0,    0,    0,    0,    0,  100,  100,   13,   19,
    486        31,  100,  100,  100,   26,   86,    0,    0,  100,  100,
    487       100,  100,   73,   98,  100,   84,   20,   45,   81,    0
     480        0,    0,   54,   95,   95,   95,   95,   95,   95,   46,
     481       59,   68,   74,   87,   92,    0,    0,    0,    0,    0,
     482
     483        0,    0,    0,   95,   95,   13,   18,   29,   95,   95,
     484       95,    0,    0,   95,   95,   95,   95,   69,   93,   95,
     485       80,   19,   41,   77,    0
    488486    } ;
    489487
     
    498496       32,   33,   34,   35,   36,   37,   38,   39,   40,   41,
    499497       42,   11,   43,   11,   11,   44,   11,   45,   11,   46,
    500        11,   47,   48,   49,   50,   11,   11,   51,   11,   11,
    501        52,   53,   54,   55,   56,   57,   58,   59,   60,   61,
    502 
    503        62,   63,   64,   65,   66,   11,   67,   68,   69,   70,
    504        71,   72,   11,   73,   74,   75,   76,   77,   78,   79,
    505        80,   81,   82,   83,   84,   85,    1,    1,    1,    1,
     498       11,   11,   47,   48,   49,   11,   11,   50,   11,   11,
     499       51,   52,   53,   54,   55,   56,   57,   58,   59,   60,
     500
     501       61,   62,   63,   64,   65,   11,   66,   67,   68,   69,
     502       70,   71,   11,   72,   73,   74,   75,   76,   77,   78,
     503       79,   80,   81,   82,   83,   84,    1,    1,    1,    1,
    506504        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    507505        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    520518    } ;
    521519
    522 static yyconst flex_int32_t yy_meta[86] =
     520static yyconst flex_int32_t yy_meta[85] =
    523521    {   0,
    524522        1,    1,    2,    1,    1,    1,    1,    1,    3,    1,
     
    526524        6,    1,    7,    7,    7,    7,    7,    7,    1,    1,
    527525        1,    1,    1,    1,    1,    8,    8,    8,    8,    8,
    528         8,    4,    4,    9,    4,   10,    4,    4,    4,    9,
    529         4,    1,   11,    1,    1,   12,    1,    8,    8,    8,
    530         8,    8,    8,    4,    4,    4,    4,    9,    4,    4,
    531         4,   10,    4,    4,    4,    9,    4,    4,    4,    4,
    532         4,    1,    1,    1,    1
     526        8,    4,    4,    9,    4,   10,    4,    4,    9,    4,
     527        1,   11,    1,    1,   12,    1,    8,    8,    8,    8,
     528        8,    8,    4,    4,    4,    4,    9,    4,    4,    4,
     529       10,    4,    4,    4,    9,    4,    4,    4,    4,    4,
     530        1,    1,    1,    1
    533531    } ;
    534532
    535 static yyconst flex_int16_t yy_base[1024] =
     533static yyconst flex_int16_t yy_base[999] =
    536534    {   0,
    537         0,   84, 2338, 2332,   94,    0,  177,  178,  179,  180,
    538      2348, 2604,  191, 2604,  197,   55, 2604, 2294,   60,  173,
    539      2604, 2604, 2604,   56,  188, 2604,  191,  189,  204,  216,
    540       275,    0, 2310, 2604,  216, 2310,  152,  344, 2288,  220,
    541      2604,  159, 2604,  217,  226, 2604,  185,  134,  212,  251,
    542       237,  270,  137,  257,  235,  165,  305,  314,  333,  238,
    543       193, 2604,  225, 2604, 2301,  402,  390, 2604, 2312, 2604,
    544      2280,  204, 2604,    0, 2604,  426,    0, 2604,  417, 2604,
    545       439,  451, 2604,  498, 2274,  205, 2604, 2604, 2604, 2604,
    546      2604, 2292, 2604, 2291, 2604, 2604, 2298,  559, 2604, 2315,
    547 
    548      2604,  605,  413,  498,  516,  274,  243,  229,  293,  305,
    549         0,  289,  253,  273,  334, 2604, 2604, 2604, 2285, 2604,
    550      2604, 2604, 2279, 2278,  298,  314, 2293,  356,  429,  439,
    551       366,  400,  433,  448, 2269,  434, 2218,  438, 2248,  319,
    552      2604, 2604,  484, 2239, 2238, 2604, 2211,  310,  282,  377,
    553       329,  409,  424,  422,  421,  503,  438,  434,  451,  474,
    554       475,  430,  348,  461,  441,  479,  494,  499,  437,  502,
    555       492,  520,  281,  514,  521, 2234,  536,  535,  537,  544,
    556       539,  545,  567,  498,  540,  526,  563,  598,  570,  571,
    557       548, 2604, 2604,  653,  662, 2283,  668, 2604,  674, 2604,
    558 
    559      2232,  562, 2223, 2222,    0,  640, 2604, 2604,  680, 2221,
    560      2200, 2199,    0, 2218,  616,  640,  646,  689,  688,  650,
    561       678,  679,  682, 2215,  685,  692, 2192, 2186, 2604,  714,
    562       707, 2604, 2185, 2237, 2604,  703,    0,  596,  760,  725,
    563       767,  778,  603, 2604, 2190, 2165,    0,  768, 2211,  822,
    564       696, 2604, 2182, 2157,  828, 2604, 2604, 2190, 2604, 2604,
    565       725,  728, 2164, 2164,  723, 2160, 2154, 2153,    0, 2152,
    566         0, 2120,  703,  708,  744,  676,  711,  722,  754,  767,
    567       756,  764,  757,  778,  766,  773,  805,  806,  807,  784,
    568       808, 2150,  809,  812,  813,  233,  760,  814,  816,  818,
    569 
    570       819,  315,  821,  830,  715,  828,  833,  834,  836,  843,
    571       845,  835,  829,  846, 2149,  714,  851,  852,  853,  855,
    572       768,  856,  860,  857,  858,  861,  862, 2145,  863,  549,
    573       864,  871,  868,  885,  874,  937,  938, 2140, 2134, 2133,
    574         0, 2132,    0,  925,  929, 2126,    0, 2125,    0, 2124,
    575         0, 2142, 2604,  924,  925, 2121, 2118,    0, 2112,    0,
    576       937,  943,  965,  949,  989,  995, 1003, 2604, 2604,  952,
    577       992, 1011,  957, 1050,  934, 1044,  984, 2604, 2604, 2111,
    578      2110, 2104,    0, 2103,    0, 2102,    0, 2096,    0, 2604,
    579       933,  926,  877,  982,  941,  989,  947,  929,  984,  990,
    580 
    581       927,  987, 1016,  997, 1027, 1031, 1028, 1038,  588, 1029,
    582      1039,  957, 2098, 1042, 2097, 1048, 2091, 1049, 1046, 1052,
    583      1051, 1066, 1054, 1055, 2090, 1062, 2089, 1071, 1057, 1073,
    584      1075, 1078, 1076, 1080, 2083, 1081, 2082, 1082, 1083, 1086,
    585      1087, 1090, 1085, 1084, 1095, 1092, 1103, 1100, 1101, 1111,
    586      1113, 2081, 1114, 1117, 1165, 2072,    0, 2071,    0, 2070,
    587         0, 2049,    0, 1159, 2048,    0, 2043,    0, 2042, 2041,
    588      2035,    0, 2034,    0, 1167, 1173, 1219, 1130, 1230, 1159,
    589      1134, 1137, 2604, 1236, 1243, 1254, 2045, 2015, 2026, 2025,
    590         0, 2019,    0, 2018,    0, 2017,    0, 2013,    0, 2012,
    591 
    592         0, 1118, 1150, 2014, 1151, 1154, 1156, 1157, 1159, 1168,
    593      1175, 1181, 1165, 1180, 1220, 1187, 1230, 1212, 1232, 1265,
    594      1238, 1237, 1239, 1240, 1243, 2010, 1122, 1242, 2009, 1244,
    595      1250, 1254, 1257, 1252, 2008, 1255, 1260, 1262, 1263, 2004,
    596      1266, 1268, 1997, 1271, 1275, 1276, 1279, 1282, 1995,  988,
    597       665, 1283, 1285, 1288, 1293, 1286, 1291, 1991, 1289, 1296,
    598      1989, 2033, 1979,    0, 1978,    0, 1972,    0, 1971,    0,
    599      1970,    0, 1964,    0, 1963,    0, 1962,    0, 1340, 1346,
    600      1353, 1364, 1956, 2604, 1376, 2604, 1387, 2604, 1955,    0,
    601      1954,    0, 1948,    0, 1947,    0,    0,    0, 1949,    0,
    602 
    603      1365, 1297, 1294, 1332, 1305, 1330, 1333, 1366, 1352, 1373,
    604      1342, 1372, 1371, 1377, 1381, 1382, 1384, 1408, 1389, 1392,
    605      1396, 1388, 1395, 1398, 1943, 1399, 1400, 1409, 1410, 1942,
    606      1941, 1935, 1413, 1171, 1934, 1411, 1933, 1929, 1415, 1418,
    607      1928, 1927, 1923, 1922, 1921, 1888, 1420, 1416, 1887, 1427,
    608      1422, 1932, 2604, 1878,    0, 1877,    0,    0,    0, 1874,
    609         0,    0,    0, 2604,    0,    0,    0,    0, 1468, 1474,
    610      1520, 1870,    0, 1869,    0,    0,    0,    0, 1865, 1414,
    611      1450, 1867, 1432, 1454, 1452, 1453, 1463, 1464, 1451, 1866,
    612      1302, 1470, 1472, 1434, 1497, 1482, 1487, 1500, 1498, 1486,
    613 
    614      1480, 1502, 1503, 1504, 1862, 1505, 1861, 1860, 1506, 1853,
    615      1832, 1507, 1508, 1510, 1831, 1509, 1511,    0,    0, 1827,
    616      1823, 1822, 1821, 1562,    0, 1817, 1816, 1815, 1811, 1810,
    617      1812, 1808, 1807, 1806, 1518, 1522, 1476, 1513, 1540, 1519,
    618      1515, 1521, 1543, 1554, 1802, 1544, 1801, 1545, 1546, 1549,
    619      1555, 1551, 1557, 1800, 1796, 1795, 1794, 1559, 1790, 1789,
    620      1785, 1781, 1780, 1779, 1770, 1769, 1766, 1765, 1764, 1747,
    621      1739, 1738, 1560, 1738, 1562, 1561, 1564, 1563, 1568, 1732,
    622      1570, 1595, 1572, 1729, 1574, 1573, 1578, 1577, 1584, 1589,
    623      1718, 1717, 1698, 1697, 1696, 1688, 1687, 1648, 1647, 1646,
    624 
    625      1645, 1644, 1643, 1645, 1590, 1591, 1594, 1592, 1599, 1593,
    626      1644, 1643, 1603, 1642, 1640, 1604, 1608, 1609, 1636, 1635,
    627      1634, 1633, 1631, 1630, 1427, 1351, 1612, 1614, 1167, 1613,
    628      1120, 1620, 1622, 1624,  870,  613,  578,  452, 1615, 1626,
    629      1628, 1629,  372,  287, 1630,  236,  200,  199,  166, 2604,
    630      1705, 1717, 1729, 1738, 1747, 1759, 1768, 1780, 1792, 1804,
    631      1811, 1820, 1826, 1832, 1838, 1844, 1850, 1856, 1862, 1868,
    632      1874, 1886, 1892, 1895, 1902, 1904, 1910, 1916, 1922, 1924,
    633      1930, 1935, 1947, 1959, 1965, 1971, 1977, 1983, 1985, 1991,
    634      1993, 1999, 2001, 2007, 2009, 2015, 2017, 2023, 2025, 2031,
    635 
    636      2033, 2039, 2046, 2052, 2058, 2064, 2070, 2072, 2078, 2080,
    637      2086, 2088, 2094, 2099, 2111, 2117, 2123, 2125, 2131, 2133,
    638      2139, 2141, 2147, 2149, 2155, 2157, 2163, 2165, 2171, 2177,
    639      2179, 2185, 2187, 2193, 2199, 2205, 2207, 2213, 2215, 2221,
    640      2223, 2229, 2231, 2237, 2239, 2245, 2250, 2262, 2268, 2274,
    641      2276, 2282, 2284, 2290, 2292, 2298, 2300, 2306, 2308, 2314,
    642      2316, 2322, 2324, 2330, 2332, 2338, 2344, 2346, 2352, 2354,
    643      2360, 2362, 2368, 2370, 2372, 2377, 2383, 2391, 2397, 2403,
    644      2405, 2411, 2413, 2415, 2420, 2426, 2428, 2430, 2432, 2434,
    645      2436, 2438, 2440, 2446, 2448, 2454, 2456, 2458, 2460, 2462,
    646 
    647      2471, 2477, 2479, 2481, 2487, 2493, 2499, 2501, 2507, 2513,
    648      2519, 2525, 2531, 2537, 2543, 2549, 2555, 2561, 2567, 2573,
    649      2579, 2585, 2591
     535        0,   83, 2266, 2265,   93,    0,  175,  176,  177,  178,
     536     2281, 2568,  189, 2568,  195,   54, 2568, 2223,   59,  171,
     537     2568, 2568, 2568,   55,  186, 2568,  189,  187,  202,  214,
     538      272,    0, 2241, 2568,  214, 2241,  150,  340, 2215,  222,
     539     2568,  157, 2568, 2234,  277, 2568,  192,  133,  196,  198,
     540      204,  271,  155,  218,  181,  200,  266,  238,  337,  224,
     541      227, 2568,  223, 2568, 2231,  372,  400, 2568, 2237, 2568,
     542     2206,  213, 2568,    0, 2568,  427,    0, 2568,  363, 2568,
     543      381,  393, 2568,  498, 2205,  229, 2568, 2568, 2568, 2568,
     544     2568, 2217, 2568, 2216, 2568, 2568, 2228,  558, 2568, 2240,
     545
     546     2568,  603,  385,  443,  419,  259,  239,  280,  399,  406,
     547        0,  305,  240,  335,  411, 2568, 2568, 2568, 2210, 2568,
     548     2568, 2568, 2209, 2188,  215,  277, 2203,  310,  383,  384,
     549      327,  425,  380,  399, 2180,  448, 2130,  458, 2160,  288,
     550     2568, 2568,  486, 2151, 2150, 2568,  420,  423,  439,  456,
     551      445,  455,  460,  329,  483,  469,  462,  467,  480,  494,
     552      396,  471,  472,  487,  470,  513,  489,  506,  508,  509,
     553      386,  510,  516, 2152,  520,  522,  518,  541,  526,  543,
     554      540,  551,  549,  553,  565,  598,  572,  581,  557, 2568,
     555     2568,  669,  659, 2195,  686, 2568,  692, 2568, 2145,  559,
     556
     557     2141, 2135,    0,  649, 2568, 2568,  679, 2134, 2133, 2127,
     558        0, 2149,  535,  606,  607,  674,  635,  625,  646,  664,
     559      689, 2146,  692,  693, 2119, 2118, 2568,  712,  723, 2568,
     560     2117, 2165, 2568,  714,    0,  555,  705,  759,  765,  776,
     561      593, 2568, 2123, 2099,    0,  784, 2141,  787,  632, 2568,
     562     2116, 2087,  798, 2568, 2568, 2119, 2568, 2568,  710,  725,
     563     2099, 2094,  720, 2090, 2089, 2085,    0, 2084,    0,  712,
     564      548,  710,  766,  767,  597,  745,  711,  777,  764,  788,
     565      720,  783,  792,  713,  639,  789,  611,  793, 2086,  794,
     566      791,  795,  810,  800,  805,  813,  814,  361,  818,  815,
     567
     568      816,  821,  825,  822,  826,  828,  829,  836,  838, 2080,
     569      841,  842,  843,  839,  844,  845,  846,  849,  847,  853,
     570      855,  860, 2079,  859,  905,  864,  866,  872,  870,  871,
     571      933,  930, 2075, 2069, 2068,    0, 2067,    0,  920,  924,
     572     2061,    0, 2060,    0, 2059,    0, 2074, 2568,  919,  920,
     573     2054, 2051,    0, 2045,    0,  935,  941,  953,  963,  974,
     574      986,  996, 2568, 2568,  960,  961, 1013,  989, 1047,  926,
     575     1045,  968, 2568, 2568, 2044, 2043, 2037,    0, 2036,    0,
     576     2035,    0, 2014,    0,  874,  873,  987,  903,  931,  932,
     577      984,  920,  994,  995,  974,  976, 1009, 1024, 1017,  992,
     578
     579     1029, 1027,  952, 1030, 1034, 1040, 2016, 1031, 2011, 1047,
     580     2010, 1049, 1043, 1054, 1038, 1056, 1057, 2009, 2003, 1052,
     581     1058, 1062, 1069, 1073, 1074, 1075, 2002, 1076, 2001, 1078,
     582     1079, 1082, 1083, 1085, 1081, 1086, 1092, 1089, 1099,  583,
     583     1108, 1095, 1087, 1995, 1097, 1109, 1160, 1991,    0, 1990,
     584        0, 1984,    0, 1983,    0, 1149, 1982,    0, 1978,    0,
     585     1977, 1976, 1972,    0, 1971,    0, 1156, 1162, 1207, 1121,
     586     1218, 1149, 1120, 1144, 2568, 1224, 1230, 1241, 1981, 1954,
     587     1959, 1957,    0, 1953,    0, 1951,    0, 1945,    0, 1944,
     588        0, 1943,    0, 1125, 1144, 1940, 1146, 1149, 1147, 1153,
     589
     590     1150, 1218, 1162, 1110, 1156, 1155, 1164, 1211, 1224, 1225,
     591     1226,  164, 1228, 1208, 1170, 1232, 1238, 1939, 1938, 1235,
     592     1932, 1227, 1231, 1234, 1242, 1931, 1246, 1247, 1250, 1930,
     593     1252, 1255, 1924, 1257, 1261, 1254, 1256, 1258, 1923, 1264,
     594      709, 1271, 1262, 1268, 1922, 1273, 1277, 1916, 1274, 1279,
     595     1915, 1963, 1905,    0, 1904,    0, 1903,    0, 1897,    0,
     596     1896,    0, 1895,    0, 1891,    0, 1890,    0, 1322, 1328,
     597     1334, 1345, 1889, 2568, 1356, 2568, 1380, 2568, 1885,    0,
     598     1884,    0, 1883,    0, 1850,    0,    0,    0, 1852,    0,
     599     1342, 1281, 1315, 1322, 1333, 1289, 1283, 1338, 1340, 1336,
     600
     601     1361, 1343, 1341, 1362, 1364, 1365, 1367, 1397, 1373, 1314,
     602     1376, 1375, 1377, 1847, 1378, 1380, 1382, 1846, 1845, 1381,
     603     1387, 1839, 1389, 1838, 1837, 1396, 1391, 1833, 1832, 1831,
     604     1827, 1826, 1825, 1392, 1818, 1407, 1394, 1846, 2568, 1793,
     605        0, 1792,    0,    0,    0, 1791,    0,    0,    0, 2568,
     606        0,    0,    0,    0, 1446, 1452, 1497, 1787,    0, 1786,
     607        0,    0,    0,    0, 1782, 1408, 1430, 1784, 1410, 1432,
     608     1437, 1411, 1412, 1443, 1433, 1783, 1447, 1445, 1457, 1413,
     609     1476, 1463, 1450, 1477, 1475, 1474, 1480, 1479, 1481, 1779,
     610     1482, 1778, 1483, 1777, 1773, 1464, 1485, 1772, 1490, 1486,
     611
     612        0,    0, 1768, 1764, 1763, 1762, 1537,    0, 1758, 1757,
     613     1756, 1752, 1751, 1753, 1749, 1748, 1747, 1496, 1497, 1499,
     614     1502, 1493, 1492, 1501, 1518, 1519, 1547, 1738, 1522, 1737,
     615     1523, 1458, 1528, 1530, 1524, 1734, 1733, 1732, 1715, 1707,
     616     1706, 1700, 1694, 1691, 1683, 1682, 1663, 1662, 1661, 1653,
     617     1652, 1613, 1612, 1529, 1614, 1534, 1535, 1538, 1536, 1542,
     618     1613, 1543, 1562, 1546, 1612, 1544, 1548, 1554, 1550, 1608,
     619     1607, 1606, 1605, 1604, 1603, 1602, 1601, 1600, 1598, 1597,
     620     1567, 1566, 1505, 1552, 1560, 1565, 1563, 1571, 1564, 1286,
     621     1285, 1575, 1188, 1158, 1576, 1001,  997,  950,  901,  753,
     622
     623      752,  642,  556, 1577, 1580,  519, 1584,  475, 1588, 1589,
     624     1590,  471,  407, 1582, 1583, 1594, 1596,  353,  298, 1595,
     625      274,  234,  233,  165, 2568, 1669, 1681, 1693, 1702, 1711,
     626     1723, 1732, 1744, 1756, 1768, 1775, 1784, 1790, 1796, 1802,
     627     1808, 1814, 1820, 1826, 1832, 1838, 1850, 1856, 1859, 1866,
     628     1868, 1874, 1880, 1886, 1888, 1894, 1899, 1911, 1923, 1929,
     629     1935, 1941, 1947, 1949, 1955, 1957, 1963, 1965, 1971, 1973,
     630     1979, 1981, 1987, 1989, 1995, 1997, 2003, 2010, 2016, 2022,
     631     2028, 2034, 2036, 2042, 2044, 2050, 2052, 2058, 2063, 2075,
     632     2081, 2087, 2089, 2095, 2097, 2103, 2105, 2111, 2113, 2119,
     633
     634     2121, 2127, 2129, 2135, 2141, 2143, 2149, 2151, 2157, 2163,
     635     2169, 2171, 2177, 2179, 2185, 2187, 2193, 2195, 2201, 2203,
     636     2209, 2214, 2226, 2232, 2238, 2240, 2246, 2248, 2254, 2256,
     637     2262, 2264, 2270, 2272, 2278, 2280, 2286, 2288, 2294, 2296,
     638     2302, 2308, 2310, 2316, 2318, 2324, 2326, 2332, 2334, 2336,
     639     2341, 2347, 2355, 2361, 2367, 2369, 2375, 2377, 2379, 2384,
     640     2390, 2392, 2394, 2396, 2398, 2400, 2402, 2404, 2410, 2412,
     641     2418, 2420, 2422, 2424, 2426, 2435, 2441, 2443, 2445, 2451,
     642     2457, 2463, 2465, 2471, 2477, 2483, 2489, 2495, 2501, 2507,
     643     2513, 2519, 2525, 2531, 2537, 2543, 2549, 2555
     644
    650645    } ;
    651646
    652 static yyconst flex_int16_t yy_def[1024] =
     647static yyconst flex_int16_t yy_def[999] =
    653648    {   0,
    654       850,    1,  851,  851,  850,    5,  852,  852,  853,  853,
    655       850,  850,  850,  850,  850,  850,  850,  854,  850,  850,
    656       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    657       850,   31,  850,  850,  850,  850,  850,  850,  855,  854,
    658       850,  850,  850,  850,  854,  850,  854,  854,  854,  854,
    659       854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
    660       854,  850,  850,  850,  850,  850,  856,  850,  850,  850,
    661       857,  850,  850,  858,  850,  850,  859,  850,  850,  850,
    662       850,  850,  850,  850,  854,  850,  850,  850,  850,  850,
    663       850,  850,  850,  850,  850,  850,  850,  850,  850,  860,
    664 
    665       850,  850,   30,  850,  850,  850,  850,  861,   30,  850,
    666        31,  850,  850,   31,  850,  850,  850,  850,  850,  850,
    667       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    668       850,  850,  850,  850,  850,  850,  850,  850,  862,  850,
    669       850,  850,  854,  863,  864,  850,  850,  854,  854,  854,
    670       854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
    671       854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
    672       854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
    673       854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
    674       854,  850,  850,  850,  856,  856,  856,  850,  856,  850,
    675 
    676       857,  850,  865,  866,  858,  850,  850,  850,  850,  867,
    677       868,  869,  859,  850,  850,  850,  850,  850,  850,  850,
    678       850,  850,  850,  850,  850,  850,  870,  871,  850,  850,
    679       850,  850,  230,  872,  850,  850,  103,  103,  850,  850,
    680       850,  850,  850,  850,  850,  850,  873,  874,  875,  850,
    681       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    682       850,  850,  850,  862,  850,  876,  877,  878,  879,  880,
    683       881,  850,  882,  882,  882,  882,  882,  882,  882,  882,
    684       882,  882,  882,  882,  882,  882,  882,  882,  882,  882,
    685       882,  882,  882,  882,  882,  882,  882,  882,  882,  882,
    686 
    687       882,  882,  882,  882,  882,  882,  882,  882,  882,  882,
    688       882,  882,  882,  882,  882,  882,  882,  882,  882,  882,
    689       882,  882,  882,  882,  882,  882,  882,  882,  882,  882,
    690       882,  882,  882,  882,  882,  883,  884,  885,  886,  887,
    691       888,  889,  890,  850,  850,  891,  892,  893,  894,  895,
    692       896,  850,  850,  850,  850,  850,  897,  898,  899,  900,
    693       850,  850,  850,  850,  850,  850,  850,  850,  850,  901,
    694       902,  903,  850,  850,  850,  903,  850,  850,  850,  904,
    695       905,  906,  907,  908,  909,  910,  911,  912,  913,  850,
    696       914,  914,  914,  914,  914,  914,  914,  914,  914,  914,
    697 
    698       914,  914,  914,  914,  914,  914,  914,  914,  914,  914,
    699       914,  914,  914,  914,  914,  914,  914,  914,  914,  914,
    700       914,  914,  914,  914,  914,  914,  914,  914,  914,  914,
    701       914,  914,  914,  914,  914,  914,  914,  914,  914,  914,
    702       914,  914,  914,  914,  914,  914,  914,  914,  914,  914,
    703       914,  914,  914,  914,  915,  916,  917,  918,  919,  920,
    704       921,  922,  923,  850,  924,  925,  926,  927,  928,  928,
    705       929,  930,  931,  932,  850,  850,  850,  933,  850,  933,
    706       850,  850,  850,  850,  850,  850,  850,  850,  934,  935,
    707       936,  937,  938,  939,  940,  941,  942,  943,  944,  945,
    708 
    709       946,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    710       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    711       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    712       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    713       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    714       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    715       947,  948,  949,  950,  951,  952,  953,  954,  955,  956,
    716       957,  958,  959,  960,  961,  962,  963,  964,  850,  850,
    717       850,  850,  965,  850,  850,  850,  850,  850,  966,  967,
    718       968,  969,  970,  971,  972,  973,  974,  975,  976,  977,
    719 
     649      825,    1,  826,  826,  825,    5,  827,  827,  828,  828,
     650      825,  825,  825,  825,  825,  825,  825,  829,  825,  825,
     651      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     652      825,   31,  825,  825,  825,  825,  825,  825,  830,  829,
     653      825,  825,  825,  825,  829,  825,  829,  829,  829,  829,
     654      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
     655      829,  825,  825,  825,  825,  825,  831,  825,  825,  825,
     656      832,  825,  825,  833,  825,  825,  834,  825,  825,  825,
     657      825,  825,  825,  825,  829,  825,  825,  825,  825,  825,
     658      825,  825,  825,  825,  825,  825,  825,  825,  825,  835,
     659
     660      825,  825,   30,  825,  825,  825,  825,  836,   30,  825,
     661       31,  825,  825,   31,  825,  825,  825,  825,  825,  825,
     662      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     663      825,  825,  825,  825,  825,  825,  825,  825,  837,  825,
     664      825,  825,  829,  838,  839,  825,  829,  829,  829,  829,
     665      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
     666      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
     667      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
     668      829,  829,  829,  829,  829,  829,  829,  829,  829,  825,
     669      825,  825,  831,  831,  831,  825,  831,  825,  832,  825,
     670
     671      840,  841,  833,  825,  825,  825,  825,  842,  843,  844,
     672      834,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     673      825,  825,  825,  825,  845,  846,  825,  825,  825,  825,
     674      228,  847,  825,  825,  103,  103,  825,  825,  825,  825,
     675      825,  825,  825,  825,  848,  849,  850,  825,  825,  825,
     676      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     677      825,  837,  825,  851,  852,  853,  854,  855,  856,  857,
     678      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
     679      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
     680      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
     681
     682      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
     683      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
     684      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
     685      858,  859,  860,  861,  862,  863,  864,  865,  825,  825,
     686      866,  867,  868,  869,  870,  871,  825,  825,  825,  825,
     687      825,  872,  873,  874,  875,  825,  825,  825,  825,  825,
     688      825,  825,  825,  825,  876,  877,  878,  825,  825,  825,
     689      878,  825,  825,  825,  879,  880,  881,  882,  883,  884,
     690      885,  886,  887,  888,  889,  889,  889,  889,  889,  889,
     691      889,  889,  889,  889,  889,  889,  889,  889,  889,  889,
     692
     693      889,  889,  889,  889,  889,  889,  889,  889,  889,  889,
     694      889,  889,  889,  889,  889,  889,  889,  889,  889,  889,
     695      889,  889,  889,  889,  889,  889,  889,  889,  889,  889,
     696      889,  889,  889,  889,  889,  889,  889,  889,  889,  889,
     697      889,  889,  889,  889,  889,  889,  890,  891,  892,  893,
     698      894,  895,  896,  897,  898,  825,  899,  900,  901,  902,
     699      903,  903,  904,  905,  906,  907,  825,  825,  825,  908,
     700      825,  908,  825,  825,  825,  825,  825,  825,  825,  825,
     701      909,  910,  911,  912,  913,  914,  915,  916,  917,  918,
     702      919,  920,  921,  922,  922,  922,  922,  922,  922,  922,
     703
     704      922,  922,  922,  922,  922,  922,  922,  922,  922,  922,
     705      922,  922,  922,  922,  922,  922,  922,  922,  922,  922,
     706      922,  922,  922,  922,  922,  922,  922,  922,  922,  922,
     707      922,  922,  922,  922,  922,  922,  922,  922,  922,  922,
     708      922,  922,  922,  922,  922,  922,  922,  922,  922,  922,
     709      922,  923,  924,  925,  926,  927,  928,  929,  930,  931,
     710      932,  933,  934,  935,  936,  937,  938,  939,  825,  825,
     711      825,  825,  940,  825,  825,  825,  825,  825,  941,  942,
     712      943,  944,  945,  946,  947,  948,  949,  950,  951,  952,
     713      951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
     714
     715      951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
     716      951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
     717      951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
     718      951,  951,  951,  951,  951,  951,  951,  953,  825,  954,
     719      955,  956,  957,  958,  959,  960,  961,  962,  963,  825,
     720      964,  965,  966,  967,  825,  825,  825,  968,  969,  970,
     721      971,  972,  973,  974,  975,  976,  976,  976,  976,  976,
    720722      976,  976,  976,  976,  976,  976,  976,  976,  976,  976,
    721723      976,  976,  976,  976,  976,  976,  976,  976,  976,  976,
    722724      976,  976,  976,  976,  976,  976,  976,  976,  976,  976,
     725
     726      977,  978,  956,  979,  980,  981,  825,  982,  968,  970,
     727      983,  984,  975,  976,  976,  976,  976,  976,  976,  976,
    723728      976,  976,  976,  976,  976,  976,  976,  976,  976,  976,
    724729      976,  976,  976,  976,  976,  976,  976,  976,  976,  976,
    725       976,  978,  850,  979,  980,  981,  982,  983,  984,  985,
    726       986,  987,  988,  850,  989,  990,  991,  992,  850,  850,
    727       850,  993,  994,  995,  996,  997,  998,  999, 1000, 1001,
    728      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    729      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    730 
    731      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    732      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1002, 1003,  981,
    733      1004, 1005, 1006,  850, 1007,  993,  995, 1008, 1009, 1000,
    734      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    735      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    736      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    737      1010, 1011, 1004, 1012, 1005, 1013, 1006, 1014, 1015, 1008,
    738      1016, 1009, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    739      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    740      1017, 1010, 1018, 1011, 1019, 1012, 1020, 1013, 1021, 1014,
    741 
    742      1022, 1015, 1016, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    743      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1023, 1017,
    744      1018, 1019, 1020,  995, 1021, 1022, 1001, 1001, 1001, 1001,
    745      1001, 1001, 1001, 1001, 1001, 1001, 1023,  995, 1001, 1001,
    746      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,    0,
    747       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    748       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    749       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    750       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    751       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    752 
    753       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    754       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    755       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    756       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    757       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    758       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    759       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    760       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    761       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    762       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    763 
    764       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    765       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    766       850,  850,  850
     730      976,  985,  986,  979,  987,  980,  988,  981,  989,  990,
     731      983,  991,  984,  976,  976,  976,  976,  976,  976,  976,
     732      976,  976,  976,  976,  976,  976,  976,  976,  976,  992,
     733      985,  993,  986,  994,  987,  995,  988,  996,  989,  997,
     734      990,  991,  976,  976,  976,  976,  976,  976,  976,  976,
     735      976,  976,  976,  976,  976,  998,  992,  993,  994,  995,
     736
     737      970,  996,  997,  976,  976,  976,  976,  976,  976,  976,
     738      976,  998,  970,  976,  976,  976,  976,  976,  976,  976,
     739      976,  976,  976,  976,    0,  825,  825,  825,  825,  825,
     740      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     741      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     742      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     743      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     744      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     745      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     746      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     747
     748      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     749      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     750      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     751      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     752      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     753      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     754      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     755      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     756      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     757      825,  825,  825,  825,  825,  825,  825,  825
     758
    767759    } ;
    768760
    769 static yyconst flex_int16_t yy_nxt[2690] =
     761static yyconst flex_int16_t yy_nxt[2653] =
    770762    {   0,
    771763       12,   13,   14,   15,   15,   15,   13,   16,   17,   12,
     
    773765       28,   29,   30,   31,   32,   32,   32,   32,   33,   34,
    774766       35,   36,   37,   38,   39,   18,   18,   18,   18,   18,
    775        18,   18,   18,   40,   18,   18,   18,   18,   18,   40,
    776        18,   41,   42,   43,   44,   45,   46,   47,   48,   49,
    777        50,   51,   52,   53,   18,   54,   18,   55,   18,   18,
    778        18,   18,   56,   57,   58,   59,   60,   61,   18,   18,
    779        18,   62,   63,   64,   65,   66,   83,   91,   84,   84,
    780        66,   87,   88,   67,   70,   70,   70,   70,   70,   70,
    781 
    782        70,   70,   70,   70,   71,   70,   70,   70,   70,   70,
     767       18,   18,   18,   40,   18,   18,   18,   18,   40,   18,
     768       41,   42,   43,   44,   45,   46,   47,   48,   49,   50,
     769       51,   52,   53,   18,   54,   18,   55,   18,   18,   18,
     770       18,   56,   57,   58,   59,   60,   61,   18,   18,   18,
     771       62,   63,   64,   65,   66,   83,   91,   84,   84,   66,
     772       87,   88,   67,   70,   70,   70,   70,   70,   70,   70,
     773
     774       70,   70,   70,   71,   70,   70,   70,   70,   70,   70,
    783775       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
    784        70,   70,   70,   70,   70,   70,   70,   70,   70,   71,
     776       70,   70,   70,   70,   70,   70,   70,   70,   71,   71,
    785777       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
    786        71,   71,   71,   71,   71,   70,   72,   70,   70,   71,
    787        73,   71,   71,   71,   71,   71,   71,   71,   71,   71,
     778       71,   71,   71,   70,   72,   70,   70,   71,   73,   71,
    788779       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
    789        71,   71,   71,   71,   71,   70,   70,   70,   70,   75,
    790        75,   78,   78,  122,  123,   89,   86,   78,   78,   86,
    791        75,   75,   79,   80,   81,   81,   81,   79,   81,   80,
    792 
    793        82,   82,   82,   81,   90,   92,  159,  175,  144,   97,
    794        94,   98,   98,   98,   98,   98,   98,   86,   86,   93,
    795        99,   84,   95,   96,   84,  100,  180,  117,  141,   76,
    796        76,   76,   76,  142,  145,  101,  102,   86,  103,  103,
    797       103,  103,  104,  104,  118,   86,  119,  120,  146,  247,
    798       147,   86,   86,  203,  227,  105,  192,  191,  157,  106,
    799       158,  148,  149,  150,   86,  107,  108,  151,  152,  160,
    800       153,  109,   86,  154,  155,  143,  161,  105,   86,  204,
    801       228,  156,  162,  110,  249,   86,  245,   86,   86,   86,
    802        86,  107,  416,  850,  108,  102,  253,  111,  111,  111,
    803 
    804       111,  111,  111,   86,  167,  178,  168,  193,  190,   86,
    805       246,  179,  163,  850,  105,  169,  164,  243,  112,  176,
    806       254,  165,   86,  244,  113,  166,  177,  170,  255,  258,
    807       114,  259,  251,   86,   86,  171,  105,  172,  252,   86,
    808       173,  141,  115,  850,  174,  258,  142,  259,  250,  244,
    809       113,  124,  275,  311,  244,  125,  126,   86,  127,  188,
    810       128,  129,   86,  130,  252,  131,   86,   86,  266,  181,
    811       182,  850,  243,  423,  132,  133,  134,  273,  185,  183,
    812       244,   86,  184,  252,  274,   86,  186,  258,  143,  259,
    813       277,  197,  198,  187,  267,  135,  197,  258,  136,  259,
    814 
    815        86,  251,  189,  194,   80,   81,   81,   81,  194,  252,
    816       300,  195,  199,  199,  199,  199,  199,  199,   79,   80,
    817        81,   81,   81,   79,   86,  137,  138,  206,  207,   86,
    818       261,  258,  206,  259,  208,  237,  237,  237,  237,  208,
    819        81,   80,   81,   81,   81,   81,  260,  276,  209,  209,
    820       209,  209,   81,   80,   82,   82,   82,   81,  260,  208,
    821       258,   86,  259,  850,  258,  258,  259,  259,  238,  258,
    822       258,  259,  259,   86,   86,  210,   86,  278,  208,  258,
    823       262,  259,   86,  208,  208,  281,   86,  208,  208,   86,
    824        86,  850,  141,   86,  279,  208,  280,  142,  208,  299,
    825 
    826       208,  211,  208,   86,  212,  214,  292,  850,  293,  215,
    827       216,  307,  294,   86,  217,  218,  302,  219,  102,  220,
    828       104,  104,  104,  104,  104,  104,   86,   86,  221,  222,
    829       223,   86,  297,  240,  301,  240,   86,  105,  241,  241,
    830       241,  241,  241,  241,   86,  298,   86,  295,  296,  224,
    831        86,   86,  225,  239,   86,   86,  305,  141,  303,  105,
    832       282,  309,  283,  326,  284,  285,   86,  304,  286,  308,
    833       287,  242,   86,   86,  306,  288,  289,  290,   86,  291,
    834       226,  230,  230,  230,  230,  230,  230,   86,   86,   86,
    835       310,   86,   86,  312,  317,  313,   86,   86,  231,  232,
    836 
    837        86,   86,  232,  314,  316,  328,  141,  318,  322,  321,
    838       315,  338,  327,  335,  233,   86,  850,  319,  320,   86,
    839       231,  232,   86,   86,  324,  323,  232,   98,   98,   98,
    840        98,   98,   98,  850,  329,  331,  333,  339,  334,  325,
    841        86,  206,  207,  332,  231,  232,  206,  352,  232,  353,
    842        86,  365,  368,  330,  194,   80,   81,   81,   81,  194,
    843       236,  522,  195,  197,  198,   86,  231,  232,  197,  197,
    844       198,  352,  232,  353,  197,  336,  198,  352,  368,  353,
    845       336,  352,  337,  353,  199,  199,  199,  199,  199,  199,
    846       199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
    847 
    848       199,  199,  344,  344,  344,  344,  353,  353,  354,  352,
    849       352,  353,  353,  352,  355,  353,  352,   86,  353,  352,
    850       352,  353,  353,  352,  361,  353,  361,  643,   86,  362,
    851       362,  362,  362,  362,  362,  345,  230,  230,  230,  230,
    852       230,  230,  231,  232,  394,  378,  232,  241,  241,  241,
    853       241,  241,  241,  231,  232,   86,  258,  232,  259,  258,
    854        86,  259,  363,   86,  231,  232,   86,   86,  391,  233,
    855       232,  378,  380,  426,   86,  231,  232,  437,  392,  396,
    856       395,  232,  104,  104,  104,  104,  104,  104,  371,  366,
    857       366,  366,  366,  366,  366,  240,   86,  240,  381,  105,
    858 
    859       241,  241,  241,  241,  241,  241,   86,  232,   86,   86,
    860       232,  373,   86,  374,  393,  250,   86,  375,   86,   86,
    861        86,  105,  367,  376,  398,   86,  397,  403,  399,  232,
    862        86,  400,  417,  405,  232,  377,   86,  401,  402,  374,
    863       442,  406,  407,  375,  104,  104,  104,  104,  104,  104,
    864       111,  111,  111,  111,  111,  111,  404,   86,   86,   86,
    865        86,   86,  408,  411,   86,   86,   86,  409,   86,  414,
    866        86,   86,  410,   86,  415,  421,  422,  250,  412,  413,
    867        86,   86,   86,  255,  418,   86,   86,   86,   86,  419,
    868       420,  425,  424,  430,  428,   86,  427,   86,   86,  435,
    869 
    870       431,  429,  432,   86,   86,   86,  434,   86,   86,   86,
    871        86,  436,   86,   86,   86,   86,   86,  439,  438,  433,
    872        86,  444,   86,   86,  449,  443,   86,  440,  452,   86,
    873       441,  445,  448,  446,  450,  447,  451,   86,  336,  198,
    874       198,  454,  453,  336,  504,  337,  196,  208,  208,  208,
    875       208,  344,  344,  344,  344,  352,  352,  353,  353,  362,
    876       362,  362,  362,  362,  362,  475,  475,  475,  475,  475,
    877       475,  230,  230,  230,  230,  230,  230,  487,   86,   86,
    878       464,   86,  361,  232,  361,   86,  232,  362,  362,  362,
    879       362,  362,  362,   86,  503,  512,  502,  479,  476,   86,
    880 
    881       482,  488,  506,  509,  364,  232,  483,  480,  508,   86,
    882       232,  237,  237,  237,  237,  104,  104,  366,  366,  366,
    883       366,  366,  366,  479,  525,  366,  366,  366,  366,  366,
    884       366,  371,  483,  483,   86,  232,   86,  479,  232,   86,
    885        86,   86,   86,  232,  365,  510,  232,  481,  642,   86,
    886       367,  482,  507,  505,  373,  511,  374,  232,  477,  483,
    887       375,  513,  232,  479,  850,  232,  376,  484,   86,  484,
    888       232,  516,  485,  485,  485,  485,  485,  485,  377,   86,
    889        86,   86,  374,   86,  514,  515,  375,  373,  518,  374,
    890        86,   86,  523,  375,   86,  519,  521,  517,   86,  489,
    891 
    892        86,   86,  520,   86,   86,  486,   86,   86,  526,   86,
    893       524,  377,  527,  530,   86,  374,  535,  531,   86,  375,
    894       529,  534,  528,   86,  533,   86,  532,   86,   86,  536,
    895        86,  538,   86,   86,   86,   86,   86,   86,   86,   86,
    896       539,  543,   86,  537,   86,  541,  550,   86,  542,  540,
    897       544,  553,   86,   86,  551,   86,  546,  545,  547,  548,
    898       552,  556,  554,   86,  549,   86,   86,  198,  624,   86,
    899        86,  557,   86,  562,   86,  479,  559,  555,  561,  479,
    900       558,  208,  208,  208,  208,  480,  584,  601,  560,  475,
    901       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
    902 
    903       475,  479,   86,   86,  479,  479,   86,  232,   86,   86,
    904       232,   86,  584,  232,  583,  602,  232,   86,  603,   86,
    905        86,  605,  476,   86,  607,  608,  604,   86,  579,  232,
    906       479,  606,   86,   86,  232,  232,  610,  611,  609,   86,
    907       232,  366,  366,  366,  366,  366,  366,  580,  614,  580,
    908       710,  612,  581,  581,  581,  581,  581,  581,  485,  485,
    909       485,  485,  485,  485,   86,  585,  585,  585,  585,  585,
    910       585,  484,   86,  484,  477,  616,  485,  485,  485,  485,
    911       485,  485,   86,  586,   86,  582,  586,  615,  618,   86,
    912        86,   86,   86,  613,   86,   86,   86,  617,  587,  619,
    913 
    914       623,  622,   86,  625,   86,  586,   86,   86,  621,   86,
    915       586,  620,   86,  630,   86,   86,  631,   86,   86,  627,
    916        86,  628,  626,   86,  629,  636,  633,   86,   86,  632,
    917       634,   86,  637,  635,   86,   86,  638,   86,   86,  647,
    918        86,   86,  644,   86,  640,   86,   86,  648,   86,   86,
    919       639,  641,  646,  649,   86,  683,  682,   86,  650,  645,
    920       740,  651,  475,  475,  475,  475,  475,  475,  581,  581,
    921       581,  581,  581,  581,  685,  669,  669,  669,  669,  669,
    922       669,  580,   86,  580,   86,   86,  581,  581,  581,  581,
    923       581,  581,  687,  586,   86,  579,  586,  684,  585,  585,
    924 
    925       585,  585,  585,  585,   86,  686,  850,  691,  670,  585,
    926       585,  585,  585,  585,  585,  586,  586,   86,   86,  586,
    927       586,  689,  680,   86,   86,   86,  688,  586,  690,   86,
    928       586,  587,  698,   86,   86,  681,   86,  696,  586,  692,
    929        86,   86,  671,  586,   86,  693,  694,   86,   86,  586,
    930        86,   86,   86,  697,  586,  695,  699,  701,  702,  704,
    931        86,   86,   86,   86,  700,   86,   86,   86,   86,  703,
    932        86,  708,   86,  705,   86,  706,  712,  713,  715,   86,
    933       711,  714,  850,  707,   86,  709,   86,  731,  716,  717,
    934       669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
    935 
    936       669,  669,   86,   86,   86,   86,   86,  743,  586,  735,
    937       733,  586,  732,  734,  586,   86,   86,  586,  737,  738,
    938       744,  739,   86,  670,   86,  736,  747,  742,   86,  724,
    939       586,  741,   86,  775,   86,  586,  586,  745,   86,   86,
    940       750,  586,  585,  585,  585,  585,  585,  585,  746,   86,
    941        86,  749,   86,  748,   86,   86,   86,   86,   86,   86,
    942        86,   86,   86,   86,  751,   86,  754,   86,  752,  759,
    943        86,   86,  760,   86,   86,  671,  780,  753,  782,  756,
    944       776,  755,  757,  758,  669,  669,  669,  669,  669,  669,
    945       773,  774,   86,  779,  778,   86,   86,   86,   86,  783,
    946 
    947       784,   86,  777,   86,  786,  785,   86,   86,  781,   86,
    948       787,   86,   86,   86,   86,   86,   86,  724,  788,  807,
    949        86,  811,   86,  809,   86,   86,   86,  812,  814,   86,
    950        86,  806,  789,  815,  790,  805,   86,  808,  816,  804,
    951       810,   86,   86,   86,   86,   86,   86,   86,  813,  829,
    952       828,   86,  817,  830,  831,   86,   86,  818,  833,  834,
    953        86,   86,  832,  827,   86,   86,   86,   86,  841,  835,
    954       836,  840,   86,  839,   86,  842,   86,  843,   86,  844,
    955        86,   86,   86,  847,  848,  838,  850,  845,  850,  850,
    956       850,  837,   86,  846,   86,   86,   86,   86,  850,  850,
    957 
    958       826,  850,  825,  850,  849,   68,   68,   68,   68,   68,
    959        68,   68,   68,   68,   68,   68,   68,   74,   74,   74,
    960        74,   74,   74,   74,   74,   74,   74,   74,   74,   77,
    961        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
    962        77,   85,  823,  850,   85,   85,   85,   85,   85,   85,
    963       139,  822,  850,  821,  139,  139,  139,  139,  139,  196,
    964       196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
    965       196,  201,  850,  820,  201,  201,  201,  201,  201,  201,
    966       205,   86,  205,  205,   86,  205,  205,  205,  205,  205,
    967        86,  205,  213,  850,  803,  213,  213,  213,  213,  213,
    968 
    969       213,  213,  850,  213,  234,  234,  234,  234,  234,  234,
    970       234,  234,  234,  234,  234,  234,  248,  248,  248,  802,
    971       800,  850,  248,  264,  798,  850,  264,  264,  264,  264,
    972       264,  264,  268,  268,  796,  850,  794,  268,  270,  270,
    973       792,   86,   86,  270,  340,  340,   86,   86,   86,  340,
    974       342,  342,   86,   86,   86,  342,  346,  346,   86,   86,
    975        86,  346,  348,  348,   86,  850,  772,  348,  350,  350,
    976       770,  850,  850,  350,  357,  357,  767,  765,  763,  357,
    977       359,  359,  850,   86,   86,  359,  234,  234,  234,  234,
    978       234,  234,  234,  234,  234,  234,  234,  234,  370,  370,
    979 
    980       372,  372,  372,  372,  372,   86,  372,  248,  248,  248,
    981       382,  382,   86,   86,   86,  382,  384,  384,   86,   86,
    982       730,  384,  386,  386,  727,  726,  202,  386,  268,  268,
    983       388,  388,  720,  719,  653,  388,  270,  270,   85,   86,
    984        86,   85,   85,   85,   85,   85,   85,  196,  196,  196,
    985       196,  196,  196,  196,  196,  196,  196,  196,  196,  455,
    986       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
    987       455,  456,  456,   86,   86,   86,  456,  458,  458,   86,
    988        86,   86,  458,  460,  460,   86,   86,   86,  460,  340,
    989       340,  462,  462,   86,   86,   86,  462,  342,  342,  465,
    990 
    991       465,   86,  678,  677,  465,  346,  346,  467,  467,  675,
    992       673,  583,  467,  348,  348,  469,  469,  668,  667,  665,
    993       469,  350,  350,  471,  471,  663,  661,  659,  471,  357,
    994       357,  473,  473,  657,  655,  653,  473,  359,  359,  478,
    995       478,   86,  478,   86,  478,  370,  370,   86,  370,   86,
    996       370,  372,  372,  372,  372,  372,   86,  372,  490,  490,
    997        86,   86,   86,  490,  492,  492,   86,  600,  598,  492,
    998       494,  494,  596,  594,  592,  494,  382,  382,  496,  496,
    999       590,  489,  588,  496,  384,  384,  498,  498,  588,  578,
    1000       576,  498,  386,  386,  500,  500,  470,  470,  574,  500,
    1001 
    1002       388,  388,   85,  572,  570,   85,   85,   85,   85,   85,
    1003        85,  455,  455,  455,  455,  455,  455,  455,  455,  455,
    1004       455,  455,  455,  563,  563,  568,  566,  564,  563,  456,
    1005       456,  565,  565,   86,   86,   86,  565,  458,  458,  567,
    1006       567,   86,   86,   86,  567,  460,  460,  569,  569,   86,
    1007        86,  501,  569,  462,  462,  571,  571,  499,  497,  495,
    1008       571,  465,  465,  573,  573,  493,  491,  474,  573,  467,
    1009       467,  469,  469,  472,  353,  353,  469,  575,  575,  470,
    1010       468,  466,  575,  471,  471,  577,  577,  463,  461,  459,
    1011       577,  473,  473,  478,  478,  457,  478,   86,  478,  372,
    1012 
    1013       372,   86,   86,  390,  372,  589,  589,  389,  387,  385,
    1014       589,  490,  490,  591,  591,  383,  265,  260,  591,  492,
    1015       492,  593,  593,  259,  379,  379,  593,  494,  494,  595,
    1016       595,  247,  369,  369,  595,  496,  496,  597,  597,  235,
    1017       364,  360,  597,  498,  498,  599,  599,  358,  356,  352,
    1018       599,  500,  500,   85,  351,  349,   85,   85,   85,   85,
    1019        85,   85,  652,  652,  652,  652,  652,  652,  652,  652,
    1020       652,  652,  652,  652,  654,  654,  347,  343,  341,  654,
    1021       563,  563,  656,  656,  202,  198,   86,  656,  565,  565,
    1022       658,  658,  272,  271,  269,  658,  567,  567,  660,  660,
    1023 
    1024       265,  260,  263,  660,  569,  569,  662,  662,  260,  258,
    1025       257,  662,  571,  571,  664,  664,  256,  235,  229,  664,
    1026       573,  573,  666,  666,   84,   84,   86,  666,  575,  575,
    1027        85,   85,  202,  200,   84,   85,  577,  577,  478,  478,
    1028       140,  121,  116,  478,  672,  672,   86,  850,   69,  672,
    1029       589,  589,  674,  674,   69,  850,  850,  674,  591,  591,
    1030       676,  676,  850,  850,  850,  676,  593,  593,  139,  139,
    1031       850,  850,  850,  139,  595,  595,  679,  679,  597,  597,
    1032        85,  850,  850,   85,   85,   85,   85,   85,   85,  599,
    1033       599,  652,  652,  652,  652,  652,  652,  652,  652,  652,
    1034 
    1035       652,  652,  652,  718,  718,  850,  850,  850,  718,  654,
    1036       654,  201,  201,  850,  850,  850,  201,  656,  656,  721,
    1037       721,  658,  658,  201,  850,  850,  201,  201,  201,  201,
    1038       201,  201,  660,  660,  722,  722,  662,  662,  664,  664,
    1039       723,  723,  666,  666,   85,   85,  725,  725,  850,  850,
    1040       850,  725,  672,  672,  264,  264,  850,  850,  850,  264,
    1041       674,  674,  728,  728,  676,  676,  139,  139,  729,  729,
    1042       850,  850,  850,  729,   85,  850,  850,   85,   85,   85,
    1043        85,   85,   85,  761,  761,  718,  718,  762,  762,  850,
    1044       850,  850,  762,  764,  764,  850,  850,  850,  764,  766,
    1045 
    1046       766,  850,  850,  850,  766,  768,  768,  769,  769,  850,
    1047       850,  850,  769,  771,  771,  850,  850,  850,  771,  791,
    1048       791,  850,  850,  850,  791,  793,  793,  850,  850,  850,
    1049       793,  795,  795,  850,  850,  850,  795,  797,  797,  850,
    1050       850,  850,  797,  799,  799,  850,  850,  850,  799,  801,
    1051       801,  850,  850,  850,  801,  599,  599,  850,  850,  850,
    1052       599,  819,  819,  850,  850,  850,  819,  660,  660,  850,
    1053       850,  850,  660,  664,  664,  850,  850,  850,  664,   85,
    1054        85,  850,  850,  850,   85,  824,  824,  850,  850,  850,
    1055       824,  139,  139,  850,  850,  850,  139,  201,  201,  850,
    1056 
    1057       850,  850,  201,   11,  850,  850,  850,  850,  850,  850,
    1058       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1059       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1060       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1061       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1062       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1063       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1064       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1065       850,  850,  850,  850,  850,  850,  850,  850,  850
     780       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
     781       71,   71,   71,   70,   70,   70,   70,   75,   75,   78,
     782       78,  122,  123,   89,   86,   78,   78,  608,   75,   75,
     783       79,   80,   81,   81,   81,   79,   81,   80,   82,   82,
     784
     785       82,   81,   90,   92,  158,  144,   86,   97,   94,   98,
     786       98,   98,   98,   98,   98,   86,   86,   93,   99,   84,
     787       95,   96,   84,  100,  173,  117,   76,   76,   76,   76,
     788      141,  145,   86,  101,  102,  142,  103,  103,  103,  103,
     789      104,  104,  118,   86,  119,  120,  256,   86,  257,   86,
     790      176,   86,  159,  105,  190,   86,  177,  106,  162,  160,
     791      178,  201,  107,  108,  156,  161,  157,  163,  109,   86,
     792      165,  164,  166,   86,  105,   86,  143,  225,   86,  174,
     793      110,  167,  243,  251,   86,   86,  175,  202,  107,   86,
     794      189,  108,  102,  188,  111,  111,  111,  111,  111,  111,
     795
     796      245,  183,  241,  226,  191,  244,  252,  242,  256,  184,
     797      257,  105,  147,  148,  149,  112,  185,   86,  150,  151,
     798      113,  152,   86,  153,  154,   86,  114,  168,   86,  179,
     799      180,  155,  105,  242,  247,  169,  264,  170,  115,  181,
     800      171,  256,  182,  257,  172,  141,  113,  124,  249,   86,
     801      142,  125,  126,  250,  127,  825,  128,  129,  256,  130,
     802      257,  131,  265,  186,   79,   80,   81,   81,   81,   79,
     803      132,  133,  134,  192,   80,   81,   81,   81,  192,  250,
     804       86,  193,   81,   80,   81,   81,   81,   81,   86,  253,
     805      135,  143,  278,  136,   81,   80,   82,   82,   82,   81,
     806
     807      258,  195,  196,  258,   86,  187,  195,  235,  235,  235,
     808      235,  256,   86,  257,  256,  256,  257,  257,  416,  825,
     809      137,  138,  197,  197,  197,  197,  197,  197,  204,  205,
     810      256,  260,  257,  204,  825,  206,  238,   86,  238,  236,
     811      206,  239,  239,  239,  239,  239,  239,   86,  825,  207,
     812      207,  207,  207,  248,  242,  259,  256,  306,  257,  250,
     813      206,  825,  825,  102,  296,  104,  104,  104,  104,  104,
     814      104,   86,  241,  240,   86,  208,  825,  249,  206,  256,
     815      242,  257,  105,  206,  206,  250,  270,  206,  206,  256,
     816       86,  257,  272,  271,  141,  206,   86,  237,  206,  142,
     817
     818      206,  209,  206,  105,  210,  212,   86,   86,  273,  213,
     819      214,   86,  275,   86,  215,  216,  274,  217,   86,  218,
     820       86,   86,   86,   86,  276,  825,   86,  291,  219,  220,
     821      221,   86,  297,  277,   86,  290,  289,   86,   86,  279,
     822       86,  280,  300,  281,  282,   86,  298,  283,  222,  284,
     823      294,  223,  292,  293,  285,  286,  287,   86,  288,   86,
     824       86,   86,  302,  295,   86,  299,  347,   86,  348,   86,
     825       86,   86,  303,   86,  312,  825,  304,   86,  305,  224,
     826      228,  228,  228,  228,  228,  228,  309,  301,  307,  308,
     827      311,   86,   86,  310,   86,  316,  319,  229,  230,   86,
     828
     829       86,  230,   86,  313,   86,  317,  141,  333,   86,  360,
     830      825,  320,  231,  314,  315,  321,   86,  386,  229,  230,
     831      322,  330,  318,   86,  230,   98,   98,   98,   98,   98,
     832       98,  323,   86,  334,   86,  324,  326,  347,  347,  348,
     833      348,  363,  229,  230,  327,  328,  230,  329,   86,   86,
     834      204,  205,  325,  390,  348,  204,  347,  234,  348,  545,
     835      195,  196,   86,  229,  230,  195,  347,  363,  348,  230,
     836      192,   80,   81,   81,   81,  192,  349,  347,  193,  348,
     837      373,  197,  197,  197,  197,  197,  197,  195,  196,  405,
     838       86,  348,  195,  331,  196,  347,  825,  348,  331,  403,
     839
     840      332,  339,  339,  339,  339,  347,  373,  348,  197,  197,
     841      197,  197,  197,  197,  197,  197,  197,  197,  197,  197,
     842      347,  350,  348,  347,  347,  348,  348,  104,  104,  104,
     843      104,  104,  104,  340,  228,  228,  228,  228,  228,  228,
     844      356,  256,  356,  257,  105,  357,  357,  357,  357,  357,
     845      357,  229,  230,  229,  230,  230,  256,  230,  257,  248,
     846       86,   86,   86,   86,   86,  105,  231,  392,  375,  402,
     847      630,   86,  229,  230,  229,  230,  385,  358,  230,  387,
     848      230,  239,  239,  239,  239,  239,  239,  361,  361,  361,
     849      361,  361,  361,  238,  376,  238,   86,  398,  239,  239,
     850
     851      239,  239,  239,  239,  366,  230,  813,  825,  230,  104,
     852      104,  104,  104,  104,  104,   86,  391,   86,   86,  362,
     853      111,  111,  111,  111,  111,  111,  230,  368,   86,  369,
     854      394,  230,  370,  388,   86,  389,  395,  396,  371,   86,
     855       86,  248,   86,   86,   86,   86,   86,  408,  393,  399,
     856      372,   86,  253,  404,  369,  409,   86,  397,  370,  400,
     857      401,   86,  406,  407,   86,   86,   86,   86,  410,   86,
     858      415,  411,   86,   86,  412,  418,   86,   86,  422,   86,
     859       86,  420,  423,  419,  424,  413,  414,   86,  417,   86,
     860       86,  421,   86,   86,   86,   86,   86,   86,   86,  426,
     861
     862       86,  425,  428,  429,   86,  427,   86,  431,  430,  436,
     863       86,   86,  432,  141,  435,   86,  434,   86,  433,  441,
     864      437,   86,   86,   86,   86,   86,  445,  438,  439,  440,
     865      443,  444,  196,  442,  331,  196,  494,  446,  194,  331,
     866      495,  332,  206,  206,  206,  206,  339,  339,  339,  339,
     867      347,  347,  348,  348,   86,  825,   86,  357,  357,  357,
     868      357,  357,  357,  467,  467,  467,  467,  467,  467,  479,
     869      356,   86,  356,  497,  456,  357,  357,  357,  357,  357,
     870      357,  230,   86,   86,  230,  228,  228,  228,  228,  228,
     871      228,  498,  480,  501,  499,  468,  235,  235,  235,  235,
     872
     873      104,  104,  230,   86,  825,  471,  471,  230,  361,  361,
     874      361,  361,  361,  361,  472,  473,  475,  359,  361,  361,
     875      361,  361,  361,  361,  514,   86,  230,   86,  360,  230,
     876      471,  471,  474,  366,  474,   86,  230,  475,   86,  230,
     877      362,  504,  475,   86,  500,   86,   86,  230,  510,  505,
     878      469,  825,  230,  496,  502,  812,  368,  230,  369,  503,
     879       86,  370,  230,  475,  476,  825,  476,  371,   86,  477,
     880      477,  477,  477,  477,  477,   86,  506,  507,   86,  372,
     881       86,   86,   86,  369,  513,   86,  509,  370,  368,   86,
     882      369,   86,  515,  370,   86,  511,  518,  508,   86,  481,
     883
     884       86,  478,  512,   86,  516,   86,  517,   86,   86,   86,
     885      519,  372,  524,   86,  522,  369,  521,  526,  523,  370,
     886       86,  520,  525,  527,   86,   86,   86,   86,  529,   86,
     887       86,  528,   86,   86,   86,  533,   86,   86,   86,  531,
     888       86,  540,  530,   86,  534,  532,   86,  543,   86,  549,
     889       86,  536,  535,  537,  538,  541,  542,  544,  539,   86,
     890       86,   86,  196,  548,  600,  471,  471,  546,  552,  551,
     891      550,  206,  206,  206,  206,  472,   86,  547,  467,  467,
     892      467,  467,  467,  467,  467,  467,  467,  467,  467,  467,
     893      471,  471,  574,  591,  471,   86,  230,   86,   86,  230,
     894
     895       86,   86,  230,  573,   86,  230,   86,   86,  592,   86,
     896      468,  595,  593,   86,  597,   86,  569,  230,  574,  471,
     897      594,   86,  230,  230,  599,  602,  596,  601,  230,  361,
     898      361,  361,  361,  361,  361,  570,  603,  570,  611,   86,
     899      571,  571,  571,  571,  571,  571,  477,  477,  477,  477,
     900      477,  477,  575,  575,  575,  575,  575,  575,  476,   86,
     901      476,  469,   86,  477,  477,  477,  477,  477,  477,   86,
     902      576,  604,  572,  576,  598,   86,   86,   86,   86,   86,
     903      605,  610,   86,   86,  577,   86,   86,  606,  609,   86,
     904      607,  576,  612,   86,  613,  614,  576,   86,   86,  616,
     905
     906      617,   86,  618,   86,  615,   86,   86,   86,   86,   86,
     907      620,  623,   86,   86,  619,   86,  621,  624,  622,   86,
     908      627,  625,   86,  629,   86,   86,  628,  626,   86,  631,
     909       86,  633,   86,  634,   86,  632,   86,   86,  635,  668,
     910       86,  673,  636,  637,  467,  467,  467,  467,  467,  467,
     911      571,  571,  571,  571,  571,  571,  655,  655,  655,  655,
     912      655,  655,  570,  672,  570,   86,   86,  571,  571,  571,
     913      571,  571,  571,   86,  576,  669,  569,  576,  575,  575,
     914      575,  575,  575,  575,   86,  686,  670,   86,  656,   86,
     915      676,   86,   86,   86,   86,  576,  576,  674,  666,  576,
     916
     917      576,  671,  575,  575,  575,  575,  575,  575,  675,  678,
     918      577,  667,   86,   86,  679,   86,   86,  576,   86,  682,
     919      576,  684,  576,  576,   86,  677,   86,   86,   86,   86,
     920      680,   86,   86,   86,  657,  683,  687,  681,   86,  685,
     921       86,  576,   86,   86,  688,   86,  576,   86,   86,  697,
     922      689,  690,  693,  698,  691,  692,  696,  695,   86,   86,
     923      700,   86,   86,   86,   86,  694,  720,  699,  655,  655,
     924      655,  655,  655,  655,  655,  655,  655,  655,  655,  655,
     925      714,   86,  719,   86,   86,  726,  576,  716,   86,  576,
     926      717,  715,  576,  718,   86,  576,   86,  721,   86,  727,
     927
     928      656,   86,  722,  730,  723,  724,  707,  576,   86,   86,
     929      729,  725,  576,  576,   86,   86,  766,  728,  576,  575,
     930      575,  575,  575,  575,  575,   86,   86,   86,   86,  731,
     931       86,   86,   86,   86,   86,  738,   86,   86,  732,  733,
     932      734,   86,  736,   86,   86,  735,  741,   86,   86,  740,
     933       86,  657,   86,   86,  758,  756,   86,  737,  739,  655,
     934      655,  655,  655,  655,  655,  755,  759,  754,  757,   86,
     935       86,  763,  761,   86,   86,   86,  764,  765,  760,   86,
     936       86,   86,  767,  762,  768,   86,   86,   86,  790,   86,
     937      769,  707,  786,   86,   86,   86,  788,   86,   86,   86,
     938
     939      791,   86,  793,   86,  785,   86,  784,  783,  794,  787,
     940      795,   86,  789,   86,   86,   86,   86,  792,  805,  806,
     941      825,  825,   86,  807,  804,  808,   86,   86,   86,  810,
     942      811,   86,  809,   86,   86,   86,  815,  814,  816,   86,
     943       86,   86,  817,  818,  819,   86,   86,   86,  822,  821,
     944      823,  803,  825,  820,  802,  825,  800,  825,  799,  825,
     945      798,  825,  797,   86,   86,   86,  825,  782,  824,   68,
     946       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
     947       68,   74,   74,   74,   74,   74,   74,   74,   74,   74,
     948       74,   74,   74,   77,   77,   77,   77,   77,   77,   77,
     949
     950       77,   77,   77,   77,   77,   85,  825,  781,   85,   85,
     951       85,   85,   85,   85,  139,  779,  825,  777,  139,  139,
     952      139,  139,  139,  194,  194,  194,  194,  194,  194,  194,
     953      194,  194,  194,  194,  194,  199,  825,  775,  199,  199,
     954      199,  199,  199,  199,  203,  825,  203,  203,  773,  203,
     955      203,  203,  203,  203,  771,  203,  211,   86,   86,  211,
     956      211,  211,  211,  211,  211,  211,   86,  211,  232,  232,
     957      232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
     958      246,  246,  246,   86,   86,   86,  246,  262,   86,   86,
     959      262,  262,  262,  262,  262,  262,  266,  266,   86,   86,
     960
     961       86,  266,  268,  268,   86,  825,  753,  268,  335,  335,
     962      751,  825,  825,  335,  337,  337,  748,  746,  744,  337,
     963      341,  341,  825,   86,   86,  341,  343,  343,   86,   86,
     964       86,  343,  345,  345,   86,   86,  713,  345,  352,  352,
     965      710,  709,  200,  352,  354,  354,  703,  702,  639,  354,
     966      232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
     967      232,  232,  365,  365,  367,  367,  367,  367,  367,   86,
     968      367,  246,  246,  246,  377,  377,   86,   86,   86,  377,
     969      379,  379,   86,   86,   86,  379,  381,  381,   86,   86,
     970       86,  381,  266,  266,  383,  383,   86,   86,   86,  383,
     971
     972      268,  268,   85,   86,  664,   85,   85,   85,   85,   85,
     973       85,  194,  194,  194,  194,  194,  194,  194,  194,  194,
     974      194,  194,  194,  447,  447,  447,  447,  447,  447,  447,
     975      447,  447,  447,  447,  447,  448,  448,  663,  661,  659,
     976      448,  450,  450,  573,  654,  653,  450,  452,  452,  651,
     977      649,  647,  452,  335,  335,  454,  454,  645,  643,  641,
     978      454,  337,  337,  457,  457,  639,   86,   86,  457,  341,
     979      341,  459,  459,   86,   86,   86,  459,  343,  343,  461,
     980      461,   86,   86,   86,  461,  345,  345,  463,  463,   86,
     981       86,   86,  463,  352,  352,  465,  465,  590,  588,  586,
     982
     983      465,  354,  354,  470,  470,  584,  470,  582,  470,  365,
     984      365,  580,  365,  481,  365,  367,  367,  367,  367,  367,
     985      578,  367,  482,  482,  578,  568,  566,  482,  484,  484,
     986      462,  462,  564,  484,  486,  486,  562,  560,  558,  486,
     987      377,  377,  488,  488,  556,  554,   86,  488,  379,  379,
     988      490,  490,   86,   86,   86,  490,  381,  381,  492,  492,
     989       86,   86,   86,  492,  383,  383,   85,   86,  493,   85,
     990       85,   85,   85,   85,   85,  447,  447,  447,  447,  447,
     991      447,  447,  447,  447,  447,  447,  447,  553,  553,  491,
     992      489,  487,  553,  448,  448,  555,  555,  485,  483,  466,
     993
     994      555,  450,  450,  557,  557,  464,  348,  348,  557,  452,
     995      452,  559,  559,  462,  460,  458,  559,  454,  454,  561,
     996      561,  455,  453,  451,  561,  457,  457,  563,  563,  449,
     997       86,   86,  563,  459,  459,  461,  461,   86,  384,  382,
     998      461,  565,  565,  380,  378,  263,  565,  463,  463,  567,
     999      567,  258,  257,  374,  567,  465,  465,  470,  470,  374,
     1000      470,  245,  470,  367,  367,  364,  364,  233,  367,  579,
     1001      579,  359,  355,  353,  579,  482,  482,  581,  581,  351,
     1002      347,  346,  581,  484,  484,  583,  583,  344,  342,  338,
     1003      583,  486,  486,  585,  585,  336,  200,  196,  585,  488,
     1004
     1005      488,  587,  587,   86,  269,  267,  587,  490,  490,  589,
     1006      589,  263,  258,  261,  589,  492,  492,   85,  258,  256,
     1007       85,   85,   85,   85,   85,   85,  638,  638,  638,  638,
     1008      638,  638,  638,  638,  638,  638,  638,  638,  640,  640,
     1009      255,  254,  233,  640,  553,  553,  642,  642,  227,   84,
     1010       84,  642,  555,  555,  644,  644,   86,  200,  198,  644,
     1011      557,  557,  646,  646,   84,  146,  140,  646,  559,  559,
     1012      648,  648,  121,  116,   86,  648,  561,  561,  650,  650,
     1013      825,   69,   69,  650,  563,  563,  652,  652,  825,  825,
     1014      825,  652,  565,  565,   85,   85,  825,  825,  825,   85,
     1015
     1016      567,  567,  470,  470,  825,  825,  825,  470,  658,  658,
     1017      825,  825,  825,  658,  579,  579,  660,  660,  825,  825,
     1018      825,  660,  581,  581,  662,  662,  825,  825,  825,  662,
     1019      583,  583,  139,  139,  825,  825,  825,  139,  585,  585,
     1020      665,  665,  587,  587,   85,  825,  825,   85,   85,   85,
     1021       85,   85,   85,  589,  589,  638,  638,  638,  638,  638,
     1022      638,  638,  638,  638,  638,  638,  638,  701,  701,  825,
     1023      825,  825,  701,  640,  640,  199,  199,  825,  825,  825,
     1024      199,  642,  642,  704,  704,  644,  644,  199,  825,  825,
     1025      199,  199,  199,  199,  199,  199,  646,  646,  705,  705,
     1026
     1027      648,  648,  650,  650,  706,  706,  652,  652,   85,   85,
     1028      708,  708,  825,  825,  825,  708,  658,  658,  262,  262,
     1029      825,  825,  825,  262,  660,  660,  711,  711,  662,  662,
     1030      139,  139,  712,  712,  825,  825,  825,  712,   85,  825,
     1031      825,   85,   85,   85,   85,   85,   85,  742,  742,  701,
     1032      701,  743,  743,  825,  825,  825,  743,  745,  745,  825,
     1033      825,  825,  745,  747,  747,  825,  825,  825,  747,  749,
     1034      749,  750,  750,  825,  825,  825,  750,  752,  752,  825,
     1035      825,  825,  752,  770,  770,  825,  825,  825,  770,  772,
     1036      772,  825,  825,  825,  772,  774,  774,  825,  825,  825,
     1037
     1038      774,  776,  776,  825,  825,  825,  776,  778,  778,  825,
     1039      825,  825,  778,  780,  780,  825,  825,  825,  780,  589,
     1040      589,  825,  825,  825,  589,  796,  796,  825,  825,  825,
     1041      796,  646,  646,  825,  825,  825,  646,  650,  650,  825,
     1042      825,  825,  650,   85,   85,  825,  825,  825,   85,  801,
     1043      801,  825,  825,  825,  801,  139,  139,  825,  825,  825,
     1044      139,  199,  199,  825,  825,  825,  199,   11,  825,  825,
     1045      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1046      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1047      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1048
     1049      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1050      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1051      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1052      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1053      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1054      825,  825
    10661055    } ;
    10671056
    1068 static yyconst flex_int16_t yy_chk[2690] =
     1057static yyconst flex_int16_t yy_chk[2653] =
    10691058    {   0,
    10701059        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    10761065        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    10771066        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    1078         1,    1,    1,    1,    1,    2,   16,   24,   16,   24,
    1079         2,   19,   19,    2,    5,    5,    5,    5,    5,    5,
     1067        1,    1,    1,    1,    2,   16,   24,   16,   24,    2,
     1068       19,   19,    2,    5,    5,    5,    5,    5,    5,    5,
    10801069
    10811070        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
     
    10861075        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    10871076        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    1088         5,    5,    5,    5,    5,    5,    5,    5,    5,    7,
    1089         8,    9,   10,   37,   37,   20,   48,    9,   10,   53,
    1090         7,    8,   13,   13,   13,   13,   13,   13,   15,   15,
    1091 
    1092        15,   15,   15,   15,   20,   25,   48,   53,   42,   28,
    1093        27,   28,   28,   28,   28,   28,   28,   56,  849,   25,
    1094        29,   25,   27,   27,   27,   29,   56,   35,   40,    7,
    1095         8,    9,   10,   40,   42,   29,   30,   47,   30,   30,
    1096        30,   30,   30,   30,   35,   61,   35,   35,   44,  108,
    1097        44,  848,  847,   72,   86,   30,   63,   61,   47,   30,
    1098        47,   45,   45,   45,   49,   30,   30,   45,   45,   49,
    1099        45,   30,   40,   45,   45,   40,   49,   30,   45,   72,
    1100        86,   45,   49,   30,  108,  296,  107,   55,  846,   51,
    1101        60,   30,  296,  114,   30,   31,  113,   31,   31,   31,
    1102 
    1103        31,   31,   31,   50,   51,   55,   51,   63,   60,   54,
    1104       107,   55,   50,  109,   31,   51,   50,  106,   31,   54,
    1105       113,   50,   52,  106,   31,   50,   54,   52,  114,  125,
    1106        31,  125,  112,  173,  149,   52,   31,   52,  112,  844,
    1107        52,   59,   31,  109,   52,  126,   59,  126,  109,  106,
    1108        31,   38,  149,  173,  110,   38,   38,   57,   38,   59,
    1109        38,   38,  148,   38,  112,   38,   58,  302,  140,   57,
    1110        57,  109,  110,  302,   38,   38,   38,  148,   58,   57,
    1111       110,  151,   57,  115,  148,   59,   58,  128,   59,  128,
    1112       151,   67,   67,   58,  140,   38,   67,  131,   38,  131,
    1113 
    1114       163,  115,   59,   66,   66,   66,   66,   66,   66,  115,
    1115       163,   66,   67,   67,   67,   67,   67,   67,   79,   79,
    1116        79,   79,   79,   79,  843,   38,   38,   76,   76,  150,
    1117       132,  132,   76,  132,   76,  103,  103,  103,  103,   76,
    1118        81,   81,   81,   81,   81,   81,  129,  150,   76,   76,
    1119        76,   76,   82,   82,   82,   82,   82,   82,  130,   76,
    1120       129,  152,  129,  103,  133,  136,  133,  136,  103,  138,
    1121       130,  138,  130,  155,  154,   76,  153,  152,   76,  134,
    1122       134,  134,  162,   76,   76,  155,  158,   76,   76,  169,
    1123       157,  103,  143,  165,  153,   76,  154,  143,   76,  162,
    1124 
    1125        76,   76,   76,  159,   76,   84,  157,  838,  158,   84,
    1126        84,  169,  159,  164,   84,   84,  165,   84,  104,   84,
    1127       104,  104,  104,  104,  104,  104,  160,  161,   84,   84,
    1128        84,  166,  161,  105,  164,  105,  143,  104,  105,  105,
    1129       105,  105,  105,  105,  171,  161,  167,  160,  160,   84,
    1130       184,  168,   84,  104,  170,  156,  168,  330,  166,  104,
    1131       156,  171,  156,  184,  156,  156,  174,  167,  156,  170,
    1132       156,  105,  172,  175,  168,  156,  156,  156,  186,  156,
    1133        84,   98,   98,   98,   98,   98,   98,  178,  177,  179,
    1134       172,  181,  185,  174,  179,  175,  180,  182,   98,   98,
    1135 
    1136       191,  330,   98,  177,  178,  186,  188,  180,  182,  181,
    1137       177,  202,  185,  191,   98,  187,  238,  180,  180,  183,
    1138        98,   98,  189,  190,  183,  182,   98,  102,  102,  102,
    1139       102,  102,  102,  837,  187,  189,  190,  202,  190,  183,
    1140       409,  206,  206,  189,  102,  102,  206,  215,  102,  215,
    1141       188,  238,  243,  188,  194,  194,  194,  194,  194,  194,
    1142       102,  409,  194,  195,  195,  836,  102,  102,  195,  197,
    1143       197,  216,  102,  216,  197,  199,  199,  217,  243,  217,
    1144       199,  220,  199,  220,  195,  195,  195,  195,  195,  195,
    1145       197,  197,  197,  197,  197,  197,  199,  199,  199,  199,
    1146 
    1147       199,  199,  209,  209,  209,  209,  218,  219,  221,  221,
    1148       222,  221,  222,  223,  223,  223,  225,  551,  225,  219,
    1149       218,  219,  218,  226,  231,  226,  231,  551,  276,  231,
    1150       231,  231,  231,  231,  231,  209,  230,  230,  230,  230,
    1151       230,  230,  236,  236,  276,  251,  236,  240,  240,  240,
    1152       240,  240,  240,  230,  230,  273,  261,  230,  261,  262,
    1153       274,  262,  231,  277,  236,  236,  316,  305,  273,  230,
    1154       236,  251,  265,  305,  278,  230,  230,  316,  274,  278,
    1155       277,  230,  239,  239,  239,  239,  239,  239,  248,  241,
    1156       241,  241,  241,  241,  241,  242,  275,  242,  265,  239,
    1157 
    1158       242,  242,  242,  242,  242,  242,  279,  241,  281,  283,
    1159       241,  248,  297,  248,  275,  239,  282,  248,  285,  280,
    1160       321,  239,  241,  248,  280,  286,  279,  283,  281,  241,
    1161       284,  282,  297,  285,  241,  248,  290,  282,  282,  248,
    1162       321,  286,  286,  248,  250,  250,  250,  250,  250,  250,
    1163       255,  255,  255,  255,  255,  255,  284,  287,  288,  289,
    1164       291,  293,  287,  290,  294,  295,  298,  288,  299,  294,
    1165       300,  301,  289,  303,  295,  300,  301,  250,  291,  293,
    1166       306,  313,  304,  255,  298,  307,  308,  312,  309,  299,
    1167       299,  304,  303,  309,  307,  310,  306,  311,  314,  313,
    1168 
    1169       310,  308,  311,  317,  318,  319,  312,  320,  322,  324,
    1170       325,  314,  323,  326,  327,  329,  331,  318,  317,  311,
    1171       333,  323,  835,  332,  329,  322,  335,  319,  333,  393,
    1172       320,  324,  327,  325,  331,  326,  332,  334,  336,  336,
    1173       337,  335,  334,  336,  393,  336,  337,  344,  344,  344,
    1174       344,  345,  345,  345,  345,  354,  355,  354,  355,  361,
    1175       361,  361,  361,  361,  361,  362,  362,  362,  362,  362,
    1176       362,  364,  364,  364,  364,  364,  364,  375,  392,  401,
    1177       344,  398,  363,  362,  363,  391,  362,  363,  363,  363,
    1178       363,  363,  363,  395,  392,  401,  391,  370,  362,  397,
    1179 
    1180       373,  375,  395,  398,  364,  362,  373,  370,  397,  412,
    1181       362,  365,  365,  365,  365,  365,  365,  366,  366,  366,
    1182       366,  366,  366,  370,  412,  367,  367,  367,  367,  367,
    1183       367,  372,  373,  377,  394,  366,  399,  371,  366,  402,
    1184       550,  396,  400,  367,  365,  399,  367,  371,  550,  404,
    1185       366,  377,  396,  394,  372,  400,  372,  366,  367,  377,
    1186       372,  402,  366,  371,  376,  367,  372,  374,  403,  374,
    1187       367,  404,  374,  374,  374,  374,  374,  374,  372,  405,
    1188       407,  410,  372,  406,  403,  403,  372,  376,  406,  376,
    1189       408,  411,  410,  376,  414,  407,  408,  405,  419,  376,
    1190 
    1191       416,  418,  407,  421,  420,  374,  423,  424,  414,  429,
    1192       411,  376,  416,  420,  426,  376,  424,  420,  422,  376,
    1193       419,  423,  418,  428,  422,  430,  421,  431,  433,  426,
    1194       432,  429,  434,  436,  438,  439,  444,  443,  440,  441,
    1195       430,  434,  442,  428,  446,  432,  443,  445,  433,  431,
    1196       436,  446,  448,  449,  444,  447,  439,  438,  440,  441,
    1197       445,  449,  447,  450,  442,  451,  453,  455,  527,  454,
    1198       502,  449,  831,  455,  527,  478,  451,  448,  454,  481,
    1199       450,  464,  464,  464,  464,  478,  482,  502,  453,  475,
    1200       475,  475,  475,  475,  475,  476,  476,  476,  476,  476,
    1201 
    1202       476,  478,  503,  505,  480,  481,  506,  475,  507,  508,
    1203       475,  509,  482,  476,  480,  503,  476,  513,  505,  829,
    1204       510,  507,  475,  634,  509,  510,  506,  511,  476,  475,
    1205       480,  508,  514,  512,  475,  476,  512,  513,  511,  516,
    1206       476,  477,  477,  477,  477,  477,  477,  479,  516,  479,
    1207       634,  514,  479,  479,  479,  479,  479,  479,  484,  484,
    1208       484,  484,  484,  484,  518,  485,  485,  485,  485,  485,
    1209       485,  486,  515,  486,  477,  518,  486,  486,  486,  486,
    1210       486,  486,  517,  485,  519,  479,  485,  517,  520,  522,
    1211       521,  523,  524,  515,  528,  525,  530,  519,  485,  521,
    1212 
    1213       525,  524,  531,  528,  534,  485,  532,  536,  523,  533,
    1214       485,  522,  537,  534,  538,  539,  536,  520,  541,  531,
    1215       542,  532,  530,  544,  533,  542,  538,  545,  546,  537,
    1216       539,  547,  544,  541,  548,  552,  545,  553,  556,  555,
    1217       554,  559,  552,  557,  547,  555,  603,  556,  560,  602,
    1218       546,  548,  554,  557,  691,  603,  602,  605,  559,  553,
    1219       691,  560,  579,  579,  579,  579,  579,  579,  580,  580,
    1220       580,  580,  580,  580,  605,  581,  581,  581,  581,  581,
    1221       581,  582,  606,  582,  604,  607,  582,  582,  582,  582,
    1222       582,  582,  607,  581,  611,  579,  581,  604,  585,  585,
    1223 
    1224       585,  585,  585,  585,  609,  606,  826,  611,  581,  587,
    1225       587,  587,  587,  587,  587,  581,  585,  601,  608,  585,
    1226       581,  609,  601,  613,  612,  610,  608,  587,  610,  614,
    1227       587,  585,  618,  615,  616,  601,  617,  616,  585,  612,
    1228       622,  619,  587,  585,  620,  613,  614,  623,  621,  587,
    1229       624,  626,  627,  617,  587,  615,  619,  621,  622,  624,
    1230       618,  628,  629,  636,  620,  633,  680,  639,  648,  623,
    1231       640,  629,  647,  626,  651,  627,  639,  640,  648,  650,
    1232       636,  647,  825,  628,  683,  633,  694,  680,  650,  651,
    1233       669,  669,  669,  669,  669,  669,  670,  670,  670,  670,
    1234 
    1235       670,  670,  681,  689,  685,  686,  684,  694,  669,  685,
    1236       683,  669,  681,  684,  670,  687,  688,  670,  687,  688,
    1237       695,  689,  692,  669,  693,  686,  698,  693,  737,  670,
    1238       669,  692,  701,  737,  696,  669,  670,  696,  700,  697,
    1239       701,  670,  671,  671,  671,  671,  671,  671,  697,  695,
    1240       699,  700,  698,  699,  702,  703,  704,  706,  709,  712,
    1241       713,  716,  714,  717,  702,  738,  706,  741,  703,  716,
    1242       735,  740,  717,  742,  736,  671,  742,  704,  744,  712,
    1243       738,  709,  713,  714,  724,  724,  724,  724,  724,  724,
    1244       735,  736,  739,  741,  740,  743,  746,  748,  749,  746,
    1245 
    1246       748,  750,  739,  752,  750,  749,  744,  751,  743,  753,
    1247       751,  758,  773,  776,  775,  778,  777,  724,  752,  777,
    1248       779,  782,  781,  779,  783,  786,  785,  783,  786,  788,
    1249       787,  776,  753,  787,  758,  775,  789,  778,  788,  773,
    1250       781,  790,  805,  806,  808,  810,  807,  782,  785,  807,
    1251       806,  809,  789,  808,  809,  813,  816,  790,  813,  816,
    1252       817,  818,  810,  805,  827,  830,  828,  839,  830,  817,
    1253       818,  828,  832,  827,  833,  832,  834,  833,  840,  834,
    1254       841,  842,  845,  841,  842,  824,  823,  839,  822,  821,
    1255       820,  819,  815,  840,  814,  812,  811,  804,  803,  802,
    1256 
    1257       801,  800,  799,  798,  845,  851,  851,  851,  851,  851,
    1258       851,  851,  851,  851,  851,  851,  851,  852,  852,  852,
    1259       852,  852,  852,  852,  852,  852,  852,  852,  852,  853,
    1260       853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
    1261       853,  854,  797,  796,  854,  854,  854,  854,  854,  854,
    1262       855,  795,  794,  793,  855,  855,  855,  855,  855,  856,
    1263       856,  856,  856,  856,  856,  856,  856,  856,  856,  856,
    1264       856,  857,  792,  791,  857,  857,  857,  857,  857,  857,
    1265       858,  784,  858,  858,  780,  858,  858,  858,  858,  858,
    1266       774,  858,  859,  772,  771,  859,  859,  859,  859,  859,
    1267 
    1268       859,  859,  770,  859,  860,  860,  860,  860,  860,  860,
    1269       860,  860,  860,  860,  860,  860,  861,  861,  861,  769,
    1270       768,  767,  861,  862,  766,  765,  862,  862,  862,  862,
    1271       862,  862,  863,  863,  764,  763,  762,  863,  864,  864,
    1272       761,  760,  759,  864,  865,  865,  757,  756,  755,  865,
    1273       866,  866,  754,  747,  745,  866,  867,  867,  734,  733,
    1274       732,  867,  868,  868,  731,  730,  729,  868,  869,  869,
    1275       728,  727,  726,  869,  870,  870,  723,  722,  721,  870,
    1276       871,  871,  720,  715,  711,  871,  872,  872,  872,  872,
    1277       872,  872,  872,  872,  872,  872,  872,  872,  873,  873,
    1278 
    1279       874,  874,  874,  874,  874,  710,  874,  875,  875,  875,
    1280       876,  876,  708,  707,  705,  876,  877,  877,  690,  682,
    1281       679,  877,  878,  878,  674,  672,  660,  878,  879,  879,
    1282       880,  880,  656,  654,  652,  880,  881,  881,  882,  649,
    1283       646,  882,  882,  882,  882,  882,  882,  883,  883,  883,
    1284       883,  883,  883,  883,  883,  883,  883,  883,  883,  884,
    1285       884,  884,  884,  884,  884,  884,  884,  884,  884,  884,
    1286       884,  885,  885,  645,  644,  643,  885,  886,  886,  642,
    1287       641,  638,  886,  887,  887,  637,  635,  632,  887,  888,
    1288       888,  889,  889,  631,  630,  625,  889,  890,  890,  891,
    1289 
    1290       891,  599,  595,  593,  891,  892,  892,  893,  893,  591,
    1291       589,  583,  893,  894,  894,  895,  895,  577,  575,  573,
    1292       895,  896,  896,  897,  897,  571,  569,  567,  897,  898,
    1293       898,  899,  899,  565,  563,  562,  899,  900,  900,  901,
    1294       901,  561,  901,  558,  901,  902,  902,  549,  902,  543,
    1295       902,  903,  903,  903,  903,  903,  540,  903,  904,  904,
    1296       535,  529,  526,  904,  905,  905,  504,  500,  498,  905,
    1297       906,  906,  496,  494,  492,  906,  907,  907,  908,  908,
    1298       490,  489,  488,  908,  909,  909,  910,  910,  487,  473,
    1299       471,  910,  911,  911,  912,  912,  470,  469,  467,  912,
    1300 
    1301       913,  913,  914,  465,  462,  914,  914,  914,  914,  914,
    1302       914,  915,  915,  915,  915,  915,  915,  915,  915,  915,
    1303       915,  915,  915,  916,  916,  460,  458,  456,  916,  917,
    1304       917,  918,  918,  452,  437,  435,  918,  919,  919,  920,
    1305       920,  427,  425,  417,  920,  921,  921,  922,  922,  415,
    1306       413,  388,  922,  923,  923,  924,  924,  386,  384,  382,
    1307       924,  925,  925,  926,  926,  381,  380,  359,  926,  927,
    1308       927,  928,  928,  357,  356,  352,  928,  929,  929,  350,
    1309       348,  346,  929,  930,  930,  931,  931,  342,  340,  339,
    1310       931,  932,  932,  933,  933,  338,  933,  328,  933,  934,
    1311 
    1312       934,  315,  292,  272,  934,  935,  935,  270,  268,  267,
    1313       935,  936,  936,  937,  937,  266,  264,  263,  937,  938,
    1314       938,  939,  939,  258,  254,  253,  939,  940,  940,  941,
    1315       941,  249,  246,  245,  941,  942,  942,  943,  943,  234,
    1316       233,  228,  943,  944,  944,  945,  945,  227,  224,  214,
    1317       945,  946,  946,  947,  212,  211,  947,  947,  947,  947,
    1318       947,  947,  948,  948,  948,  948,  948,  948,  948,  948,
    1319       948,  948,  948,  948,  949,  949,  210,  204,  203,  949,
    1320       950,  950,  951,  951,  201,  196,  176,  951,  952,  952,
    1321       953,  953,  147,  145,  144,  953,  954,  954,  955,  955,
    1322 
    1323       139,  137,  135,  955,  956,  956,  957,  957,  127,  124,
    1324       123,  957,  958,  958,  959,  959,  119,  100,   97,  959,
    1325       960,  960,  961,  961,   94,   92,   85,  961,  962,  962,
    1326       963,  963,   71,   69,   65,  963,  964,  964,  965,  965,
    1327        39,   36,   33,  965,  966,  966,   18,   11,    4,  966,
    1328       967,  967,  968,  968,    3,    0,    0,  968,  969,  969,
    1329       970,  970,    0,    0,    0,  970,  971,  971,  972,  972,
    1330         0,    0,    0,  972,  973,  973,  974,  974,  975,  975,
    1331       976,    0,    0,  976,  976,  976,  976,  976,  976,  977,
    1332       977,  978,  978,  978,  978,  978,  978,  978,  978,  978,
    1333 
    1334       978,  978,  978,  979,  979,    0,    0,    0,  979,  980,
    1335       980,  981,  981,    0,    0,    0,  981,  982,  982,  983,
    1336       983,  984,  984,  985,    0,    0,  985,  985,  985,  985,
    1337       985,  985,  986,  986,  987,  987,  988,  988,  989,  989,
    1338       990,  990,  991,  991,  992,  992,  993,  993,    0,    0,
    1339         0,  993,  994,  994,  995,  995,    0,    0,    0,  995,
    1340       996,  996,  997,  997,  998,  998,  999,  999, 1000, 1000,
    1341         0,    0,    0, 1000, 1001,    0,    0, 1001, 1001, 1001,
    1342      1001, 1001, 1001, 1002, 1002, 1003, 1003, 1004, 1004,    0,
    1343         0,    0, 1004, 1005, 1005,    0,    0,    0, 1005, 1006,
    1344 
    1345      1006,    0,    0,    0, 1006, 1007, 1007, 1008, 1008,    0,
    1346         0,    0, 1008, 1009, 1009,    0,    0,    0, 1009, 1010,
    1347      1010,    0,    0,    0, 1010, 1011, 1011,    0,    0,    0,
    1348      1011, 1012, 1012,    0,    0,    0, 1012, 1013, 1013,    0,
    1349         0,    0, 1013, 1014, 1014,    0,    0,    0, 1014, 1015,
    1350      1015,    0,    0,    0, 1015, 1016, 1016,    0,    0,    0,
    1351      1016, 1017, 1017,    0,    0,    0, 1017, 1018, 1018,    0,
    1352         0,    0, 1018, 1019, 1019,    0,    0,    0, 1019, 1020,
    1353      1020,    0,    0,    0, 1020, 1021, 1021,    0,    0,    0,
    1354      1021, 1022, 1022,    0,    0,    0, 1022, 1023, 1023,    0,
    1355 
    1356         0,    0, 1023,  850,  850,  850,  850,  850,  850,  850,
    1357       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1358       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1359       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1360       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1361       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1362       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1363       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1364       850,  850,  850,  850,  850,  850,  850,  850,  850
     1077        5,    5,    5,    5,    5,    5,    5,    7,    8,    9,
     1078       10,   37,   37,   20,   48,    9,   10,  512,    7,    8,
     1079       13,   13,   13,   13,   13,   13,   15,   15,   15,   15,
     1080
     1081       15,   15,   20,   25,   48,   42,   53,   28,   27,   28,
     1082       28,   28,   28,   28,   28,  512,  824,   25,   29,   25,
     1083       27,   27,   27,   29,   53,   35,    7,    8,    9,   10,
     1084       40,   42,   55,   29,   30,   40,   30,   30,   30,   30,
     1085       30,   30,   35,   47,   35,   35,  125,   49,  125,   50,
     1086       55,   56,   49,   30,   63,   51,   55,   30,   50,   49,
     1087       56,   72,   30,   30,   47,   49,   47,   50,   30,   54,
     1088       51,   50,   51,   40,   30,   60,   40,   86,   61,   54,
     1089       30,   51,  107,  113,  823,  822,   54,   72,   30,   58,
     1090       61,   30,   31,   60,   31,   31,   31,   31,   31,   31,
     1091
     1092      108,   58,  106,   86,   63,  107,  113,  106,  126,   58,
     1093      126,   31,   45,   45,   45,   31,   58,   57,   45,   45,
     1094       31,   45,   52,   45,   45,  821,   31,   52,   45,   57,
     1095       57,   45,   31,  106,  108,   52,  140,   52,   31,   57,
     1096       52,  128,   57,  128,   52,   59,   31,   38,  112,  819,
     1097       59,   38,   38,  112,   38,  114,   38,   38,  131,   38,
     1098      131,   38,  140,   59,   79,   79,   79,   79,   79,   79,
     1099       38,   38,   38,   66,   66,   66,   66,   66,   66,  112,
     1100      154,   66,   81,   81,   81,   81,   81,   81,   59,  114,
     1101       38,   59,  154,   38,   82,   82,   82,   82,   82,   82,
     1102
     1103      129,   67,   67,  130,  818,   59,   67,  103,  103,  103,
     1104      103,  133,  298,  133,  129,  130,  129,  130,  298,  109,
     1105       38,   38,   67,   67,   67,   67,   67,   67,   76,   76,
     1106      134,  134,  134,   76,  103,   76,  105,  171,  105,  103,
     1107       76,  105,  105,  105,  105,  105,  105,  161,  109,   76,
     1108       76,   76,   76,  109,  110,  132,  132,  171,  132,  115,
     1109       76,  813,  103,  104,  161,  104,  104,  104,  104,  104,
     1110      104,  147,  110,  105,  148,   76,  109,  115,   76,  136,
     1111      110,  136,  104,   76,   76,  115,  147,   76,   76,  138,
     1112      149,  138,  148,  147,  143,   76,  151,  104,   76,  143,
     1113
     1114       76,   76,   76,  104,   76,   84,  152,  150,  149,   84,
     1115       84,  153,  151,  157,   84,   84,  150,   84,  158,   84,
     1116      156,  165,  162,  163,  152,  812,  808,  158,   84,   84,
     1117       84,  159,  162,  153,  155,  157,  156,  143,  164,  155,
     1118      167,  155,  165,  155,  155,  160,  163,  155,   84,  155,
     1119      160,   84,  159,  159,  155,  155,  155,  168,  155,  169,
     1120      170,  172,  167,  160,  166,  164,  213,  173,  213,  177,
     1121      806,  175,  168,  176,  177,  236,  169,  179,  170,   84,
     1122       98,   98,   98,   98,   98,   98,  175,  166,  172,  173,
     1123      176,  181,  178,  175,  180,  179,  181,   98,   98,  271,
     1124
     1125      183,   98,  182,  178,  184,  180,  186,  200,  189,  236,
     1126      803,  181,   98,  178,  178,  182,  185,  271,   98,   98,
     1127      183,  189,  180,  187,   98,  102,  102,  102,  102,  102,
     1128      102,  184,  188,  200,  440,  185,  187,  214,  215,  214,
     1129      215,  241,  102,  102,  187,  188,  102,  188,  275,  186,
     1130      204,  204,  186,  275,  217,  204,  218,  102,  218,  440,
     1131      193,  193,  287,  102,  102,  193,  217,  241,  217,  102,
     1132      192,  192,  192,  192,  192,  192,  219,  219,  192,  219,
     1133      249,  193,  193,  193,  193,  193,  193,  195,  195,  287,
     1134      285,  216,  195,  197,  197,  220,  802,  220,  197,  285,
     1135
     1136      197,  207,  207,  207,  207,  216,  249,  216,  195,  195,
     1137      195,  195,  195,  195,  197,  197,  197,  197,  197,  197,
     1138      221,  221,  221,  223,  224,  223,  224,  237,  237,  237,
     1139      237,  237,  237,  207,  228,  228,  228,  228,  228,  228,
     1140      229,  259,  229,  259,  237,  229,  229,  229,  229,  229,
     1141      229,  228,  228,  234,  234,  228,  260,  234,  260,  237,
     1142      541,  272,  277,  270,  284,  237,  228,  277,  263,  284,
     1143      541,  281,  228,  228,  234,  234,  270,  229,  228,  272,
     1144      234,  238,  238,  238,  238,  238,  238,  239,  239,  239,
     1145      239,  239,  239,  240,  263,  240,  276,  281,  240,  240,
     1146
     1147      240,  240,  240,  240,  246,  239,  801,  800,  239,  248,
     1148      248,  248,  248,  248,  248,  279,  276,  273,  274,  239,
     1149      253,  253,  253,  253,  253,  253,  239,  246,  278,  246,
     1150      279,  239,  246,  273,  282,  274,  279,  279,  246,  280,
     1151      286,  248,  291,  283,  288,  290,  292,  291,  278,  282,
     1152      246,  294,  253,  286,  246,  292,  295,  280,  246,  283,
     1153      283,  293,  288,  290,  296,  297,  300,  301,  293,  299,
     1154      297,  294,  302,  304,  295,  300,  303,  305,  304,  306,
     1155      307,  302,  305,  301,  306,  296,  296,  308,  299,  309,
     1156      314,  303,  311,  312,  313,  315,  316,  317,  319,  307,
     1157
     1158      318,  306,  309,  311,  320,  308,  321,  313,  312,  318,
     1159      324,  322,  314,  325,  317,  326,  316,  327,  315,  324,
     1160      319,  329,  330,  328,  386,  385,  329,  320,  321,  322,
     1161      327,  328,  332,  326,  331,  331,  385,  330,  332,  331,
     1162      386,  331,  339,  339,  339,  339,  340,  340,  340,  340,
     1163      349,  350,  349,  350,  388,  799,  325,  356,  356,  356,
     1164      356,  356,  356,  357,  357,  357,  357,  357,  357,  370,
     1165      358,  392,  358,  388,  339,  358,  358,  358,  358,  358,
     1166      358,  357,  389,  390,  357,  359,  359,  359,  359,  359,
     1167      359,  389,  370,  392,  390,  357,  360,  360,  360,  360,
     1168
     1169      360,  360,  357,  403,  798,  365,  366,  357,  361,  361,
     1170      361,  361,  361,  361,  365,  366,  372,  359,  362,  362,
     1171      362,  362,  362,  362,  403,  395,  361,  396,  360,  361,
     1172      365,  366,  368,  367,  372,  391,  362,  368,  387,  362,
     1173      361,  395,  372,  400,  391,  393,  394,  361,  400,  396,
     1174      362,  797,  361,  387,  393,  796,  367,  362,  367,  394,
     1175      397,  367,  362,  368,  369,  371,  369,  367,  399,  369,
     1176      369,  369,  369,  369,  369,  398,  397,  397,  402,  367,
     1177      401,  404,  408,  367,  402,  405,  399,  367,  371,  415,
     1178      371,  406,  404,  371,  413,  401,  408,  398,  410,  371,
     1179
     1180      412,  369,  401,  420,  405,  414,  406,  416,  417,  421,
     1181      410,  371,  415,  422,  414,  371,  413,  417,  414,  371,
     1182      423,  412,  416,  420,  424,  425,  426,  428,  422,  430,
     1183      431,  421,  435,  432,  433,  426,  434,  436,  443,  424,
     1184      438,  435,  423,  437,  428,  425,  442,  438,  445,  443,
     1185      439,  431,  430,  432,  433,  436,  437,  439,  434,  441,
     1186      446,  504,  447,  442,  504,  473,  470,  441,  447,  446,
     1187      445,  456,  456,  456,  456,  470,  494,  441,  467,  467,
     1188      467,  467,  467,  467,  468,  468,  468,  468,  468,  468,
     1189      473,  470,  474,  494,  472,  495,  467,  497,  499,  467,
     1190
     1191      498,  501,  468,  472,  500,  468,  506,  505,  495,  794,
     1192      467,  499,  497,  503,  501,  507,  468,  467,  474,  472,
     1193      498,  515,  467,  468,  503,  506,  500,  505,  468,  469,
     1194      469,  469,  469,  469,  469,  471,  507,  471,  515,  793,
     1195      471,  471,  471,  471,  471,  471,  476,  476,  476,  476,
     1196      476,  476,  477,  477,  477,  477,  477,  477,  478,  514,
     1197      478,  469,  508,  478,  478,  478,  478,  478,  478,  502,
     1198      477,  508,  471,  477,  502,  509,  510,  511,  522,  513,
     1199      509,  514,  523,  516,  477,  524,  520,  510,  513,  517,
     1200      511,  477,  516,  525,  517,  520,  477,  527,  528,  523,
     1201
     1202      524,  529,  525,  531,  522,  536,  532,  537,  534,  538,
     1203      528,  532,  535,  543,  527,  540,  529,  534,  531,  544,
     1204      537,  535,  542,  540,  546,  549,  538,  536,  547,  542,
     1205      550,  544,  592,  546,  597,  543,  791,  790,  547,  592,
     1206      596,  597,  549,  550,  569,  569,  569,  569,  569,  569,
     1207      570,  570,  570,  570,  570,  570,  571,  571,  571,  571,
     1208      571,  571,  572,  596,  572,  610,  593,  572,  572,  572,
     1209      572,  572,  572,  594,  571,  593,  569,  571,  575,  575,
     1210      575,  575,  575,  575,  595,  610,  594,  600,  571,  598,
     1211      600,  599,  603,  591,  602,  571,  575,  598,  591,  575,
     1212
     1213      571,  595,  577,  577,  577,  577,  577,  577,  599,  602,
     1214      575,  591,  601,  604,  603,  605,  606,  575,  607,  606,
     1215      577,  608,  575,  577,  609,  601,  612,  611,  613,  615,
     1216      604,  616,  620,  617,  577,  607,  611,  605,  621,  609,
     1217      623,  577,  627,  634,  612,  637,  577,  626,  608,  627,
     1218      613,  615,  620,  634,  616,  617,  626,  623,  636,  666,
     1219      637,  669,  672,  673,  680,  621,  673,  636,  655,  655,
     1220      655,  655,  655,  655,  656,  656,  656,  656,  656,  656,
     1221      666,  667,  672,  670,  675,  680,  655,  669,  671,  655,
     1222      670,  667,  656,  671,  674,  656,  678,  674,  677,  681,
     1223
     1224      655,  683,  675,  684,  677,  678,  656,  655,  679,  732,
     1225      683,  679,  655,  656,  682,  696,  732,  682,  656,  657,
     1226      657,  657,  657,  657,  657,  686,  685,  681,  684,  685,
     1227      688,  687,  689,  691,  693,  696,  697,  700,  686,  687,
     1228      688,  699,  691,  723,  722,  689,  700,  718,  719,  699,
     1229      720,  657,  724,  721,  722,  720,  783,  693,  697,  707,
     1230      707,  707,  707,  707,  707,  719,  723,  718,  721,  725,
     1231      726,  727,  725,  729,  731,  735,  729,  731,  724,  733,
     1232      754,  734,  733,  726,  734,  756,  757,  759,  763,  758,
     1233      735,  707,  758,  760,  762,  766,  760,  764,  727,  767,
     1234
     1235      764,  769,  767,  784,  757,  768,  756,  754,  768,  759,
     1236      769,  785,  762,  763,  787,  789,  786,  766,  785,  786,
     1237      782,  781,  788,  787,  784,  788,  792,  795,  804,  792,
     1238      795,  805,  789,  814,  815,  807,  805,  804,  807,  809,
     1239      810,  811,  809,  810,  811,  816,  820,  817,  816,  815,
     1240      817,  780,  779,  814,  778,  777,  776,  775,  774,  773,
     1241      772,  771,  770,  765,  761,  755,  753,  752,  820,  826,
     1242      826,  826,  826,  826,  826,  826,  826,  826,  826,  826,
     1243      826,  827,  827,  827,  827,  827,  827,  827,  827,  827,
     1244      827,  827,  827,  828,  828,  828,  828,  828,  828,  828,
     1245
     1246      828,  828,  828,  828,  828,  829,  751,  750,  829,  829,
     1247      829,  829,  829,  829,  830,  749,  748,  747,  830,  830,
     1248      830,  830,  830,  831,  831,  831,  831,  831,  831,  831,
     1249      831,  831,  831,  831,  831,  832,  746,  745,  832,  832,
     1250      832,  832,  832,  832,  833,  744,  833,  833,  743,  833,
     1251      833,  833,  833,  833,  742,  833,  834,  741,  740,  834,
     1252      834,  834,  834,  834,  834,  834,  739,  834,  835,  835,
     1253      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
     1254      836,  836,  836,  738,  737,  736,  836,  837,  730,  728,
     1255      837,  837,  837,  837,  837,  837,  838,  838,  717,  716,
     1256
     1257      715,  838,  839,  839,  714,  713,  712,  839,  840,  840,
     1258      711,  710,  709,  840,  841,  841,  706,  705,  704,  841,
     1259      842,  842,  703,  698,  695,  842,  843,  843,  694,  692,
     1260      690,  843,  844,  844,  676,  668,  665,  844,  845,  845,
     1261      660,  658,  646,  845,  846,  846,  642,  640,  638,  846,
     1262      847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
     1263      847,  847,  848,  848,  849,  849,  849,  849,  849,  635,
     1264      849,  850,  850,  850,  851,  851,  633,  632,  631,  851,
     1265      852,  852,  630,  629,  628,  852,  853,  853,  625,  624,
     1266      622,  853,  854,  854,  855,  855,  619,  618,  614,  855,
     1267
     1268      856,  856,  857,  589,  585,  857,  857,  857,  857,  857,
     1269      857,  858,  858,  858,  858,  858,  858,  858,  858,  858,
     1270      858,  858,  858,  859,  859,  859,  859,  859,  859,  859,
     1271      859,  859,  859,  859,  859,  860,  860,  583,  581,  579,
     1272      860,  861,  861,  573,  567,  565,  861,  862,  862,  563,
     1273      561,  559,  862,  863,  863,  864,  864,  557,  555,  553,
     1274      864,  865,  865,  866,  866,  552,  551,  548,  866,  867,
     1275      867,  868,  868,  545,  539,  533,  868,  869,  869,  870,
     1276      870,  530,  526,  521,  870,  871,  871,  872,  872,  519,
     1277      518,  496,  872,  873,  873,  874,  874,  492,  490,  488,
     1278
     1279      874,  875,  875,  876,  876,  486,  876,  484,  876,  877,
     1280      877,  482,  877,  481,  877,  878,  878,  878,  878,  878,
     1281      480,  878,  879,  879,  479,  465,  463,  879,  880,  880,
     1282      462,  461,  459,  880,  881,  881,  457,  454,  452,  881,
     1283      882,  882,  883,  883,  450,  448,  444,  883,  884,  884,
     1284      885,  885,  429,  427,  419,  885,  886,  886,  887,  887,
     1285      418,  411,  409,  887,  888,  888,  889,  407,  383,  889,
     1286      889,  889,  889,  889,  889,  890,  890,  890,  890,  890,
     1287      890,  890,  890,  890,  890,  890,  890,  891,  891,  381,
     1288      379,  377,  891,  892,  892,  893,  893,  376,  375,  354,
     1289
     1290      893,  894,  894,  895,  895,  352,  351,  347,  895,  896,
     1291      896,  897,  897,  345,  343,  341,  897,  898,  898,  899,
     1292      899,  337,  335,  334,  899,  900,  900,  901,  901,  333,
     1293      323,  310,  901,  902,  902,  903,  903,  289,  268,  266,
     1294      903,  904,  904,  265,  264,  262,  904,  905,  905,  906,
     1295      906,  261,  256,  252,  906,  907,  907,  908,  908,  251,
     1296      908,  247,  908,  909,  909,  244,  243,  232,  909,  910,
     1297      910,  231,  226,  225,  910,  911,  911,  912,  912,  222,
     1298      212,  210,  912,  913,  913,  914,  914,  209,  208,  202,
     1299      914,  915,  915,  916,  916,  201,  199,  194,  916,  917,
     1300
     1301      917,  918,  918,  174,  145,  144,  918,  919,  919,  920,
     1302      920,  139,  137,  135,  920,  921,  921,  922,  127,  124,
     1303      922,  922,  922,  922,  922,  922,  923,  923,  923,  923,
     1304      923,  923,  923,  923,  923,  923,  923,  923,  924,  924,
     1305      123,  119,  100,  924,  925,  925,  926,  926,   97,   94,
     1306       92,  926,  927,  927,  928,  928,   85,   71,   69,  928,
     1307      929,  929,  930,  930,   65,   44,   39,  930,  931,  931,
     1308      932,  932,   36,   33,   18,  932,  933,  933,  934,  934,
     1309       11,    4,    3,  934,  935,  935,  936,  936,    0,    0,
     1310        0,  936,  937,  937,  938,  938,    0,    0,    0,  938,
     1311
     1312      939,  939,  940,  940,    0,    0,    0,  940,  941,  941,
     1313        0,    0,    0,  941,  942,  942,  943,  943,    0,    0,
     1314        0,  943,  944,  944,  945,  945,    0,    0,    0,  945,
     1315      946,  946,  947,  947,    0,    0,    0,  947,  948,  948,
     1316      949,  949,  950,  950,  951,    0,    0,  951,  951,  951,
     1317      951,  951,  951,  952,  952,  953,  953,  953,  953,  953,
     1318      953,  953,  953,  953,  953,  953,  953,  954,  954,    0,
     1319        0,    0,  954,  955,  955,  956,  956,    0,    0,    0,
     1320      956,  957,  957,  958,  958,  959,  959,  960,    0,    0,
     1321      960,  960,  960,  960,  960,  960,  961,  961,  962,  962,
     1322
     1323      963,  963,  964,  964,  965,  965,  966,  966,  967,  967,
     1324      968,  968,    0,    0,    0,  968,  969,  969,  970,  970,
     1325        0,    0,    0,  970,  971,  971,  972,  972,  973,  973,
     1326      974,  974,  975,  975,    0,    0,    0,  975,  976,    0,
     1327        0,  976,  976,  976,  976,  976,  976,  977,  977,  978,
     1328      978,  979,  979,    0,    0,    0,  979,  980,  980,    0,
     1329        0,    0,  980,  981,  981,    0,    0,    0,  981,  982,
     1330      982,  983,  983,    0,    0,    0,  983,  984,  984,    0,
     1331        0,    0,  984,  985,  985,    0,    0,    0,  985,  986,
     1332      986,    0,    0,    0,  986,  987,  987,    0,    0,    0,
     1333
     1334      987,  988,  988,    0,    0,    0,  988,  989,  989,    0,
     1335        0,    0,  989,  990,  990,    0,    0,    0,  990,  991,
     1336      991,    0,    0,    0,  991,  992,  992,    0,    0,    0,
     1337      992,  993,  993,    0,    0,    0,  993,  994,  994,    0,
     1338        0,    0,  994,  995,  995,    0,    0,    0,  995,  996,
     1339      996,    0,    0,    0,  996,  997,  997,    0,    0,    0,
     1340      997,  998,  998,    0,    0,    0,  998,  825,  825,  825,
     1341      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1342      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1343      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1344
     1345      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1346      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1347      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1348      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1349      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1350      825,  825
    13651351    } ;
    13661352
    13671353/* Table of booleans, true if rule could match eol. */
    1368 static yyconst flex_int32_t yy_rule_can_match_eol[178] =
     1354static yyconst flex_int32_t yy_rule_can_match_eol[172] =
    13691355    {   0,
    137013561, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     
    13731359    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    13741360    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1375     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1,
     1361    0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
    13761362    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    13771363    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1378     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,     };
     1364    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,     };
    13791365
    13801366static yy_state_type yy_last_accepting_state;
     
    14041390 * Created On       : Sat Sep 22 08:58:10 2001
    14051391 * Last Modified By : Peter A. Buhr
    1406  * Last Modified On : Mon Sep 28 17:07:48 2015
    1407  * Update Count     : 402
     1392 * Last Modified On : Fri Jun 19 11:10:14 2015
     1393 * Update Count     : 392
    14081394 */
    14091395#line 20 "lex.ll"
     
    14621448
    14631449
    1464 #line 1465 "Parser/lex.cc"
     1450#line 1451 "Parser/lex.cc"
    14651451
    14661452#define INITIAL 0
     
    16571643
    16581644                                   /* line directives */
    1659 #line 1660 "Parser/lex.cc"
     1645#line 1646 "Parser/lex.cc"
    16601646
    16611647        if ( !(yy_init) )
     
    17111697                                {
    17121698                                yy_current_state = (int) yy_def[yy_current_state];
    1713                                 if ( yy_current_state >= 851 )
     1699                                if ( yy_current_state >= 826 )
    17141700                                        yy_c = yy_meta[(unsigned int) yy_c];
    17151701                                }
     
    17171703                        ++yy_cp;
    17181704                        }
    1719                 while ( yy_base[yy_current_state] != 2604 );
     1705                while ( yy_base[yy_current_state] != 2568 );
    17201706
    17211707yy_find_action:
     
    18641850YY_RULE_SETUP
    18651851#line 184 "lex.ll"
    1866 { KEYWORD_RETURN(AT); }                                 // CFA
     1852{ KEYWORD_RETURN(ATOMIC); }                             // C11
    18671853        YY_BREAK
    18681854case 18:
    18691855YY_RULE_SETUP
    18701856#line 185 "lex.ll"
    1871 { KEYWORD_RETURN(ATOMIC); }                             // C11
     1857{ KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
    18721858        YY_BREAK
    18731859case 19:
     
    18791865YY_RULE_SETUP
    18801866#line 187 "lex.ll"
    1881 { KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
     1867{ KEYWORD_RETURN(AUTO); }
    18821868        YY_BREAK
    18831869case 21:
    18841870YY_RULE_SETUP
    18851871#line 188 "lex.ll"
    1886 { KEYWORD_RETURN(AUTO); }
     1872{ KEYWORD_RETURN(BOOL); }                               // C99
    18871873        YY_BREAK
    18881874case 22:
    18891875YY_RULE_SETUP
    18901876#line 189 "lex.ll"
    1891 { KEYWORD_RETURN(BOOL); }                               // C99
     1877{ KEYWORD_RETURN(BREAK); }
    18921878        YY_BREAK
    18931879case 23:
    18941880YY_RULE_SETUP
    18951881#line 190 "lex.ll"
    1896 { KEYWORD_RETURN(BREAK); }
     1882{ KEYWORD_RETURN(CASE); }
    18971883        YY_BREAK
    18981884case 24:
    18991885YY_RULE_SETUP
    19001886#line 191 "lex.ll"
    1901 { KEYWORD_RETURN(CASE); }
     1887{ KEYWORD_RETURN(CATCH); }                              // CFA
    19021888        YY_BREAK
    19031889case 25:
    19041890YY_RULE_SETUP
    19051891#line 192 "lex.ll"
    1906 { KEYWORD_RETURN(CATCH); }                              // CFA
     1892{ KEYWORD_RETURN(CHAR); }
    19071893        YY_BREAK
    19081894case 26:
    19091895YY_RULE_SETUP
    19101896#line 193 "lex.ll"
    1911 { KEYWORD_RETURN(CATCHRESUME); }                // CFA
     1897{ KEYWORD_RETURN(CHOOSE); }                             // CFA
    19121898        YY_BREAK
    19131899case 27:
    19141900YY_RULE_SETUP
    19151901#line 194 "lex.ll"
    1916 { KEYWORD_RETURN(CHAR); }
     1902{ KEYWORD_RETURN(COMPLEX); }                    // C99
    19171903        YY_BREAK
    19181904case 28:
    19191905YY_RULE_SETUP
    19201906#line 195 "lex.ll"
    1921 { KEYWORD_RETURN(CHOOSE); }                             // CFA
     1907{ KEYWORD_RETURN(COMPLEX); }                    // GCC
    19221908        YY_BREAK
    19231909case 29:
    19241910YY_RULE_SETUP
    19251911#line 196 "lex.ll"
    1926 { KEYWORD_RETURN(COMPLEX); }                    // C99
     1912{ KEYWORD_RETURN(COMPLEX); }                    // GCC
    19271913        YY_BREAK
    19281914case 30:
    19291915YY_RULE_SETUP
    19301916#line 197 "lex.ll"
    1931 { KEYWORD_RETURN(COMPLEX); }                    // GCC
     1917{ KEYWORD_RETURN(CONST); }
    19321918        YY_BREAK
    19331919case 31:
    19341920YY_RULE_SETUP
    19351921#line 198 "lex.ll"
    1936 { KEYWORD_RETURN(COMPLEX); }                    // GCC
     1922{ KEYWORD_RETURN(CONST); }                              // GCC
    19371923        YY_BREAK
    19381924case 32:
    19391925YY_RULE_SETUP
    19401926#line 199 "lex.ll"
    1941 { KEYWORD_RETURN(CONST); }
     1927{ KEYWORD_RETURN(CONST); }                              // GCC
    19421928        YY_BREAK
    19431929case 33:
    19441930YY_RULE_SETUP
    19451931#line 200 "lex.ll"
    1946 { KEYWORD_RETURN(CONST); }                              // GCC
     1932{ KEYWORD_RETURN(CONTEXT); }                    // CFA
    19471933        YY_BREAK
    19481934case 34:
    19491935YY_RULE_SETUP
    19501936#line 201 "lex.ll"
    1951 { KEYWORD_RETURN(CONST); }                              // GCC
     1937{ KEYWORD_RETURN(CONTINUE); }
    19521938        YY_BREAK
    19531939case 35:
    19541940YY_RULE_SETUP
    19551941#line 202 "lex.ll"
    1956 { KEYWORD_RETURN(CONTEXT); }                    // CFA
     1942{ KEYWORD_RETURN(DEFAULT); }
    19571943        YY_BREAK
    19581944case 36:
    19591945YY_RULE_SETUP
    19601946#line 203 "lex.ll"
    1961 { KEYWORD_RETURN(CONTINUE); }
     1947{ KEYWORD_RETURN(DO); }
    19621948        YY_BREAK
    19631949case 37:
    19641950YY_RULE_SETUP
    19651951#line 204 "lex.ll"
    1966 { KEYWORD_RETURN(DEFAULT); }
     1952{ KEYWORD_RETURN(DOUBLE); }
    19671953        YY_BREAK
    19681954case 38:
    19691955YY_RULE_SETUP
    19701956#line 205 "lex.ll"
    1971 { KEYWORD_RETURN(DISABLE); }                    // CFA
     1957{ KEYWORD_RETURN(DTYPE); }                              // CFA
    19721958        YY_BREAK
    19731959case 39:
    19741960YY_RULE_SETUP
    19751961#line 206 "lex.ll"
    1976 { KEYWORD_RETURN(DO); }
     1962{ KEYWORD_RETURN(ELSE); }
    19771963        YY_BREAK
    19781964case 40:
    19791965YY_RULE_SETUP
    19801966#line 207 "lex.ll"
    1981 { KEYWORD_RETURN(DOUBLE); }
     1967{ KEYWORD_RETURN(ENUM); }
    19821968        YY_BREAK
    19831969case 41:
    19841970YY_RULE_SETUP
    19851971#line 208 "lex.ll"
    1986 { KEYWORD_RETURN(DTYPE); }                              // CFA
     1972{ KEYWORD_RETURN(EXTENSION); }                  // GCC
    19871973        YY_BREAK
    19881974case 42:
    19891975YY_RULE_SETUP
    19901976#line 209 "lex.ll"
    1991 { KEYWORD_RETURN(ELSE); }
     1977{ KEYWORD_RETURN(EXTERN); }
    19921978        YY_BREAK
    19931979case 43:
    19941980YY_RULE_SETUP
    19951981#line 210 "lex.ll"
    1996 { KEYWORD_RETURN(ENABLE); }                             // CFA
     1982{ KEYWORD_RETURN(FALLTHRU); }                   // CFA
    19971983        YY_BREAK
    19981984case 44:
    19991985YY_RULE_SETUP
    20001986#line 211 "lex.ll"
    2001 { KEYWORD_RETURN(ENUM); }
     1987{ KEYWORD_RETURN(FINALLY); }                    // CFA
    20021988        YY_BREAK
    20031989case 45:
    20041990YY_RULE_SETUP
    20051991#line 212 "lex.ll"
    2006 { KEYWORD_RETURN(EXTENSION); }                  // GCC
     1992{ KEYWORD_RETURN(FLOAT); }
    20071993        YY_BREAK
    20081994case 46:
    20091995YY_RULE_SETUP
    20101996#line 213 "lex.ll"
    2011 { KEYWORD_RETURN(EXTERN); }
     1997{ KEYWORD_RETURN(FLOAT); }                              // GCC
    20121998        YY_BREAK
    20131999case 47:
    20142000YY_RULE_SETUP
    20152001#line 214 "lex.ll"
    2016 { KEYWORD_RETURN(FALLTHRU); }                   // CFA
     2002{ KEYWORD_RETURN(FOR); }
    20172003        YY_BREAK
    20182004case 48:
    20192005YY_RULE_SETUP
    20202006#line 215 "lex.ll"
    2021 { KEYWORD_RETURN(FINALLY); }                    // CFA
     2007{ KEYWORD_RETURN(FORALL); }                             // CFA
    20222008        YY_BREAK
    20232009case 49:
    20242010YY_RULE_SETUP
    20252011#line 216 "lex.ll"
    2026 { KEYWORD_RETURN(FLOAT); }
     2012{ KEYWORD_RETURN(FORTRAN); }
    20272013        YY_BREAK
    20282014case 50:
    20292015YY_RULE_SETUP
    20302016#line 217 "lex.ll"
    2031 { KEYWORD_RETURN(FLOAT); }                              // GCC
     2017{ KEYWORD_RETURN(FTYPE); }                              // CFA
    20322018        YY_BREAK
    20332019case 51:
    20342020YY_RULE_SETUP
    20352021#line 218 "lex.ll"
    2036 { KEYWORD_RETURN(FOR); }
     2022{ KEYWORD_RETURN(GENERIC); }                    // C11
    20372023        YY_BREAK
    20382024case 52:
    20392025YY_RULE_SETUP
    20402026#line 219 "lex.ll"
    2041 { KEYWORD_RETURN(FORALL); }                             // CFA
     2027{ KEYWORD_RETURN(GOTO); }
    20422028        YY_BREAK
    20432029case 53:
    20442030YY_RULE_SETUP
    20452031#line 220 "lex.ll"
    2046 { KEYWORD_RETURN(FORTRAN); }
     2032{ KEYWORD_RETURN(IF); }
    20472033        YY_BREAK
    20482034case 54:
    20492035YY_RULE_SETUP
    20502036#line 221 "lex.ll"
    2051 { KEYWORD_RETURN(FTYPE); }                              // CFA
     2037{ KEYWORD_RETURN(IMAGINARY); }                  // C99
    20522038        YY_BREAK
    20532039case 55:
    20542040YY_RULE_SETUP
    20552041#line 222 "lex.ll"
    2056 { KEYWORD_RETURN(GENERIC); }                    // C11
     2042{ KEYWORD_RETURN(IMAGINARY); }                  // GCC
    20572043        YY_BREAK
    20582044case 56:
    20592045YY_RULE_SETUP
    20602046#line 223 "lex.ll"
    2061 { KEYWORD_RETURN(GOTO); }
     2047{ KEYWORD_RETURN(IMAGINARY); }                  // GCC
    20622048        YY_BREAK
    20632049case 57:
    20642050YY_RULE_SETUP
    20652051#line 224 "lex.ll"
    2066 { KEYWORD_RETURN(IF); }
     2052{ KEYWORD_RETURN(INLINE); }                             // C99
    20672053        YY_BREAK
    20682054case 58:
    20692055YY_RULE_SETUP
    20702056#line 225 "lex.ll"
    2071 { KEYWORD_RETURN(IMAGINARY); }                  // C99
     2057{ KEYWORD_RETURN(INLINE); }                             // GCC
    20722058        YY_BREAK
    20732059case 59:
    20742060YY_RULE_SETUP
    20752061#line 226 "lex.ll"
    2076 { KEYWORD_RETURN(IMAGINARY); }                  // GCC
     2062{ KEYWORD_RETURN(INLINE); }                             // GCC
    20772063        YY_BREAK
    20782064case 60:
    20792065YY_RULE_SETUP
    20802066#line 227 "lex.ll"
    2081 { KEYWORD_RETURN(IMAGINARY); }                  // GCC
     2067{ KEYWORD_RETURN(INT); }
    20822068        YY_BREAK
    20832069case 61:
    20842070YY_RULE_SETUP
    20852071#line 228 "lex.ll"
    2086 { KEYWORD_RETURN(INLINE); }                             // C99
     2072{ KEYWORD_RETURN(INT); }                                // GCC
    20872073        YY_BREAK
    20882074case 62:
    20892075YY_RULE_SETUP
    20902076#line 229 "lex.ll"
    2091 { KEYWORD_RETURN(INLINE); }                             // GCC
     2077{ KEYWORD_RETURN(LABEL); }                              // GCC
    20922078        YY_BREAK
    20932079case 63:
    20942080YY_RULE_SETUP
    20952081#line 230 "lex.ll"
    2096 { KEYWORD_RETURN(INLINE); }                             // GCC
     2082{ KEYWORD_RETURN(LONG); }
    20972083        YY_BREAK
    20982084case 64:
    20992085YY_RULE_SETUP
    21002086#line 231 "lex.ll"
    2101 { KEYWORD_RETURN(INT); }
     2087{ KEYWORD_RETURN(LVALUE); }                             // CFA
    21022088        YY_BREAK
    21032089case 65:
    21042090YY_RULE_SETUP
    21052091#line 232 "lex.ll"
    2106 { KEYWORD_RETURN(INT); }                                // GCC
     2092{ KEYWORD_RETURN(NORETURN); }                   // C11
    21072093        YY_BREAK
    21082094case 66:
    21092095YY_RULE_SETUP
    21102096#line 233 "lex.ll"
    2111 { KEYWORD_RETURN(LABEL); }                              // GCC
     2097{ KEYWORD_RETURN(REGISTER); }
    21122098        YY_BREAK
    21132099case 67:
    21142100YY_RULE_SETUP
    21152101#line 234 "lex.ll"
    2116 { KEYWORD_RETURN(LONG); }
     2102{ KEYWORD_RETURN(RESTRICT); }                   // C99
    21172103        YY_BREAK
    21182104case 68:
    21192105YY_RULE_SETUP
    21202106#line 235 "lex.ll"
    2121 { KEYWORD_RETURN(LVALUE); }                             // CFA
     2107{ KEYWORD_RETURN(RESTRICT); }                   // GCC
    21222108        YY_BREAK
    21232109case 69:
    21242110YY_RULE_SETUP
    21252111#line 236 "lex.ll"
    2126 { KEYWORD_RETURN(NORETURN); }                   // C11
     2112{ KEYWORD_RETURN(RESTRICT); }                   // GCC
    21272113        YY_BREAK
    21282114case 70:
    21292115YY_RULE_SETUP
    21302116#line 237 "lex.ll"
    2131 { KEYWORD_RETURN(REGISTER); }
     2117{ KEYWORD_RETURN(RETURN); }
    21322118        YY_BREAK
    21332119case 71:
    21342120YY_RULE_SETUP
    21352121#line 238 "lex.ll"
    2136 { KEYWORD_RETURN(RESTRICT); }                   // C99
     2122{ KEYWORD_RETURN(SHORT); }
    21372123        YY_BREAK
    21382124case 72:
    21392125YY_RULE_SETUP
    21402126#line 239 "lex.ll"
    2141 { KEYWORD_RETURN(RESTRICT); }                   // GCC
     2127{ KEYWORD_RETURN(SIGNED); }
    21422128        YY_BREAK
    21432129case 73:
    21442130YY_RULE_SETUP
    21452131#line 240 "lex.ll"
    2146 { KEYWORD_RETURN(RESTRICT); }                   // GCC
     2132{ KEYWORD_RETURN(SIGNED); }                             // GCC
    21472133        YY_BREAK
    21482134case 74:
    21492135YY_RULE_SETUP
    21502136#line 241 "lex.ll"
    2151 { KEYWORD_RETURN(RETURN); }
     2137{ KEYWORD_RETURN(SIGNED); }                             // GCC
    21522138        YY_BREAK
    21532139case 75:
    21542140YY_RULE_SETUP
    21552141#line 242 "lex.ll"
    2156 { KEYWORD_RETURN(SHORT); }
     2142{ KEYWORD_RETURN(SIZEOF); }
    21572143        YY_BREAK
    21582144case 76:
    21592145YY_RULE_SETUP
    21602146#line 243 "lex.ll"
    2161 { KEYWORD_RETURN(SIGNED); }
     2147{ KEYWORD_RETURN(STATIC); }
    21622148        YY_BREAK
    21632149case 77:
    21642150YY_RULE_SETUP
    21652151#line 244 "lex.ll"
    2166 { KEYWORD_RETURN(SIGNED); }                             // GCC
     2152{ KEYWORD_RETURN(STATICASSERT); }               // C11
    21672153        YY_BREAK
    21682154case 78:
    21692155YY_RULE_SETUP
    21702156#line 245 "lex.ll"
    2171 { KEYWORD_RETURN(SIGNED); }                             // GCC
     2157{ KEYWORD_RETURN(STRUCT); }
    21722158        YY_BREAK
    21732159case 79:
    21742160YY_RULE_SETUP
    21752161#line 246 "lex.ll"
    2176 { KEYWORD_RETURN(SIZEOF); }
     2162{ KEYWORD_RETURN(SWITCH); }
    21772163        YY_BREAK
    21782164case 80:
    21792165YY_RULE_SETUP
    21802166#line 247 "lex.ll"
    2181 { KEYWORD_RETURN(STATIC); }
     2167{ KEYWORD_RETURN(THREADLOCAL); }                // C11
    21822168        YY_BREAK
    21832169case 81:
    21842170YY_RULE_SETUP
    21852171#line 248 "lex.ll"
    2186 { KEYWORD_RETURN(STATICASSERT); }               // C11
     2172{ KEYWORD_RETURN(THROW); }                              // CFA
    21872173        YY_BREAK
    21882174case 82:
    21892175YY_RULE_SETUP
    21902176#line 249 "lex.ll"
    2191 { KEYWORD_RETURN(STRUCT); }
     2177{ KEYWORD_RETURN(TRY); }                                // CFA
    21922178        YY_BREAK
    21932179case 83:
    21942180YY_RULE_SETUP
    21952181#line 250 "lex.ll"
    2196 { KEYWORD_RETURN(SWITCH); }
     2182{ KEYWORD_RETURN(TYPE); }                               // CFA
    21972183        YY_BREAK
    21982184case 84:
    21992185YY_RULE_SETUP
    22002186#line 251 "lex.ll"
    2201 { KEYWORD_RETURN(THREADLOCAL); }                // C11
     2187{ KEYWORD_RETURN(TYPEDEF); }
    22022188        YY_BREAK
    22032189case 85:
    22042190YY_RULE_SETUP
    22052191#line 252 "lex.ll"
    2206 { KEYWORD_RETURN(THROW); }                              // CFA
     2192{ KEYWORD_RETURN(TYPEOF); }                             // GCC
    22072193        YY_BREAK
    22082194case 86:
    22092195YY_RULE_SETUP
    22102196#line 253 "lex.ll"
    2211 { KEYWORD_RETURN(THROWRESUME); }                // CFA
     2197{ KEYWORD_RETURN(TYPEOF); }                             // GCC
    22122198        YY_BREAK
    22132199case 87:
    22142200YY_RULE_SETUP
    22152201#line 254 "lex.ll"
    2216 { KEYWORD_RETURN(TRY); }                                // CFA
     2202{ KEYWORD_RETURN(TYPEOF); }                             // GCC
    22172203        YY_BREAK
    22182204case 88:
    22192205YY_RULE_SETUP
    22202206#line 255 "lex.ll"
    2221 { KEYWORD_RETURN(TYPE); }                               // CFA
     2207{ KEYWORD_RETURN(UNION); }
    22222208        YY_BREAK
    22232209case 89:
    22242210YY_RULE_SETUP
    22252211#line 256 "lex.ll"
    2226 { KEYWORD_RETURN(TYPEDEF); }
     2212{ KEYWORD_RETURN(UNSIGNED); }
    22272213        YY_BREAK
    22282214case 90:
    22292215YY_RULE_SETUP
    22302216#line 257 "lex.ll"
    2231 { KEYWORD_RETURN(TYPEOF); }                             // GCC
     2217{ KEYWORD_RETURN(VOID); }
    22322218        YY_BREAK
    22332219case 91:
    22342220YY_RULE_SETUP
    22352221#line 258 "lex.ll"
    2236 { KEYWORD_RETURN(TYPEOF); }                             // GCC
     2222{ KEYWORD_RETURN(VOLATILE); }
    22372223        YY_BREAK
    22382224case 92:
    22392225YY_RULE_SETUP
    22402226#line 259 "lex.ll"
    2241 { KEYWORD_RETURN(TYPEOF); }                             // GCC
     2227{ KEYWORD_RETURN(VOLATILE); }                   // GCC
    22422228        YY_BREAK
    22432229case 93:
    22442230YY_RULE_SETUP
    22452231#line 260 "lex.ll"
    2246 { KEYWORD_RETURN(UNION); }
     2232{ KEYWORD_RETURN(VOLATILE); }                   // GCC
    22472233        YY_BREAK
    22482234case 94:
    22492235YY_RULE_SETUP
    22502236#line 261 "lex.ll"
    2251 { KEYWORD_RETURN(UNSIGNED); }
    2252         YY_BREAK
     2237{ KEYWORD_RETURN(WHILE); }
     2238        YY_BREAK
     2239/* identifier */
    22532240case 95:
    22542241YY_RULE_SETUP
    2255 #line 262 "lex.ll"
    2256 { KEYWORD_RETURN(VOID); }
     2242#line 264 "lex.ll"
     2243{ IDENTIFIER_RETURN(); }
    22572244        YY_BREAK
    22582245case 96:
    22592246YY_RULE_SETUP
    2260 #line 263 "lex.ll"
    2261 { KEYWORD_RETURN(VOLATILE); }
     2247#line 265 "lex.ll"
     2248{ ATTRIBUTE_RETURN(); }
    22622249        YY_BREAK
    22632250case 97:
    22642251YY_RULE_SETUP
    2265 #line 264 "lex.ll"
    2266 { KEYWORD_RETURN(VOLATILE); }                   // GCC
     2252#line 266 "lex.ll"
     2253{ BEGIN BKQUOTE; }
    22672254        YY_BREAK
    22682255case 98:
    22692256YY_RULE_SETUP
    2270 #line 265 "lex.ll"
    2271 { KEYWORD_RETURN(VOLATILE); }                   // GCC
     2257#line 267 "lex.ll"
     2258{ IDENTIFIER_RETURN(); }
    22722259        YY_BREAK
    22732260case 99:
    22742261YY_RULE_SETUP
    2275 #line 266 "lex.ll"
    2276 { KEYWORD_RETURN(WHILE); }
    2277         YY_BREAK
    2278 /* identifier */
     2262#line 268 "lex.ll"
     2263{ BEGIN 0; }
     2264        YY_BREAK
     2265/* numeric constants */
    22792266case 100:
    22802267YY_RULE_SETUP
    2281 #line 269 "lex.ll"
    2282 { IDENTIFIER_RETURN(); }
     2268#line 271 "lex.ll"
     2269{ NUMERIC_RETURN(ZERO); }                               // CFA
    22832270        YY_BREAK
    22842271case 101:
    22852272YY_RULE_SETUP
    2286 #line 270 "lex.ll"
    2287 { ATTRIBUTE_RETURN(); }
     2273#line 272 "lex.ll"
     2274{ NUMERIC_RETURN(ONE); }                                // CFA
    22882275        YY_BREAK
    22892276case 102:
    22902277YY_RULE_SETUP
    2291 #line 271 "lex.ll"
    2292 { BEGIN BKQUOTE; }
     2278#line 273 "lex.ll"
     2279{ NUMERIC_RETURN(INTEGERconstant); }
    22932280        YY_BREAK
    22942281case 103:
    22952282YY_RULE_SETUP
    2296 #line 272 "lex.ll"
    2297 { IDENTIFIER_RETURN(); }
     2283#line 274 "lex.ll"
     2284{ NUMERIC_RETURN(INTEGERconstant); }
    22982285        YY_BREAK
    22992286case 104:
    23002287YY_RULE_SETUP
    2301 #line 273 "lex.ll"
    2302 { BEGIN 0; }
    2303         YY_BREAK
    2304 /* numeric constants */
     2288#line 275 "lex.ll"
     2289{ NUMERIC_RETURN(INTEGERconstant); }
     2290        YY_BREAK
    23052291case 105:
    23062292YY_RULE_SETUP
    23072293#line 276 "lex.ll"
    2308 { NUMERIC_RETURN(ZERO); }                               // CFA
     2294{ NUMERIC_RETURN(FLOATINGconstant); }
    23092295        YY_BREAK
    23102296case 106:
    23112297YY_RULE_SETUP
    23122298#line 277 "lex.ll"
    2313 { NUMERIC_RETURN(ONE); }                                // CFA
    2314         YY_BREAK
     2299{ NUMERIC_RETURN(FLOATINGconstant); }
     2300        YY_BREAK
     2301/* character constant, allows empty value */
    23152302case 107:
    23162303YY_RULE_SETUP
    2317 #line 278 "lex.ll"
    2318 { NUMERIC_RETURN(INTEGERconstant); }
     2304#line 280 "lex.ll"
     2305{ BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    23192306        YY_BREAK
    23202307case 108:
    23212308YY_RULE_SETUP
    2322 #line 279 "lex.ll"
    2323 { NUMERIC_RETURN(INTEGERconstant); }
     2309#line 281 "lex.ll"
     2310{ *strtext += std::string( yytext ); }
    23242311        YY_BREAK
    23252312case 109:
    2326 YY_RULE_SETUP
    2327 #line 280 "lex.ll"
    2328 { NUMERIC_RETURN(INTEGERconstant); }
    2329         YY_BREAK
     2313/* rule 109 can match eol */
     2314YY_RULE_SETUP
     2315#line 282 "lex.ll"
     2316{ BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); }
     2317        YY_BREAK
     2318/* ' stop highlighting */
     2319/* string constant */
    23302320case 110:
    23312321YY_RULE_SETUP
    2332 #line 281 "lex.ll"
    2333 { NUMERIC_RETURN(FLOATINGconstant); }
     2322#line 286 "lex.ll"
     2323{ BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    23342324        YY_BREAK
    23352325case 111:
    23362326YY_RULE_SETUP
    2337 #line 282 "lex.ll"
    2338 { NUMERIC_RETURN(FLOATINGconstant); }
    2339         YY_BREAK
    2340 /* character constant, allows empty value */
     2327#line 287 "lex.ll"
     2328{ *strtext += std::string( yytext ); }
     2329        YY_BREAK
    23412330case 112:
    2342 YY_RULE_SETUP
    2343 #line 285 "lex.ll"
    2344 { BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    2345         YY_BREAK
     2331/* rule 112 can match eol */
     2332YY_RULE_SETUP
     2333#line 288 "lex.ll"
     2334{ BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); }
     2335        YY_BREAK
     2336/* " stop highlighting */
     2337/* common character/string constant */
    23462338case 113:
    23472339YY_RULE_SETUP
    2348 #line 286 "lex.ll"
    2349 { *strtext += std::string( yytext ); }
     2340#line 292 "lex.ll"
     2341{ rm_underscore(); *strtext += std::string( yytext ); }
    23502342        YY_BREAK
    23512343case 114:
    23522344/* rule 114 can match eol */
    23532345YY_RULE_SETUP
    2354 #line 287 "lex.ll"
    2355 { BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); }
    2356         YY_BREAK
    2357 /* ' stop highlighting */
    2358 /* string constant */
     2346#line 293 "lex.ll"
     2347{}                                              // continuation (ALSO HANDLED BY CPP)
     2348        YY_BREAK
    23592349case 115:
    23602350YY_RULE_SETUP
    2361 #line 291 "lex.ll"
    2362 { BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    2363         YY_BREAK
     2351#line 294 "lex.ll"
     2352{ *strtext += std::string( yytext ); } // unknown escape character
     2353        YY_BREAK
     2354/* punctuation */
    23642355case 116:
    23652356YY_RULE_SETUP
    2366 #line 292 "lex.ll"
    2367 { *strtext += std::string( yytext ); }
     2357#line 297 "lex.ll"
     2358{ ASCIIOP_RETURN(); }
    23682359        YY_BREAK
    23692360case 117:
    2370 /* rule 117 can match eol */
    2371 YY_RULE_SETUP
    2372 #line 293 "lex.ll"
    2373 { BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); }
    2374         YY_BREAK
    2375 /* " stop highlighting */
    2376 /* common character/string constant */
     2361YY_RULE_SETUP
     2362#line 298 "lex.ll"
     2363{ ASCIIOP_RETURN(); }
     2364        YY_BREAK
    23772365case 118:
    23782366YY_RULE_SETUP
    2379 #line 297 "lex.ll"
    2380 { rm_underscore(); *strtext += std::string( yytext ); }
     2367#line 299 "lex.ll"
     2368{ ASCIIOP_RETURN(); }
    23812369        YY_BREAK
    23822370case 119:
    2383 /* rule 119 can match eol */
    2384 YY_RULE_SETUP
    2385 #line 298 "lex.ll"
    2386 {}                                              // continuation (ALSO HANDLED BY CPP)
     2371YY_RULE_SETUP
     2372#line 300 "lex.ll"
     2373{ ASCIIOP_RETURN(); }
    23872374        YY_BREAK
    23882375case 120:
    23892376YY_RULE_SETUP
    2390 #line 299 "lex.ll"
    2391 { *strtext += std::string( yytext ); } // unknown escape character
    2392         YY_BREAK
    2393 /* punctuation */
     2377#line 301 "lex.ll"
     2378{ ASCIIOP_RETURN(); }
     2379        YY_BREAK
    23942380case 121:
    23952381YY_RULE_SETUP
     
    24002386YY_RULE_SETUP
    24012387#line 303 "lex.ll"
    2402 { ASCIIOP_RETURN(); }
     2388{ ASCIIOP_RETURN(); }                                   // also operator
    24032389        YY_BREAK
    24042390case 123:
     
    24152401YY_RULE_SETUP
    24162402#line 306 "lex.ll"
     2403{ ASCIIOP_RETURN(); }                                   // also operator
     2404        YY_BREAK
     2405case 126:
     2406YY_RULE_SETUP
     2407#line 307 "lex.ll"
     2408{ NAMEDOP_RETURN(ELLIPSIS); }
     2409        YY_BREAK
     2410/* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */
     2411case 127:
     2412YY_RULE_SETUP
     2413#line 310 "lex.ll"
     2414{ RETURN_VAL('['); }
     2415        YY_BREAK
     2416case 128:
     2417YY_RULE_SETUP
     2418#line 311 "lex.ll"
     2419{ RETURN_VAL(']'); }
     2420        YY_BREAK
     2421case 129:
     2422YY_RULE_SETUP
     2423#line 312 "lex.ll"
     2424{ RETURN_VAL('{'); }
     2425        YY_BREAK
     2426case 130:
     2427YY_RULE_SETUP
     2428#line 313 "lex.ll"
     2429{ RETURN_VAL('}'); }
     2430        YY_BREAK
     2431/* operators */
     2432case 131:
     2433YY_RULE_SETUP
     2434#line 316 "lex.ll"
    24172435{ ASCIIOP_RETURN(); }
    24182436        YY_BREAK
    2419 case 126:
    2420 YY_RULE_SETUP
    2421 #line 307 "lex.ll"
     2437case 132:
     2438YY_RULE_SETUP
     2439#line 317 "lex.ll"
    24222440{ ASCIIOP_RETURN(); }
    24232441        YY_BREAK
    2424 case 127:
    2425 YY_RULE_SETUP
    2426 #line 308 "lex.ll"
    2427 { ASCIIOP_RETURN(); }                                   // also operator
    2428         YY_BREAK
    2429 case 128:
    2430 YY_RULE_SETUP
    2431 #line 309 "lex.ll"
     2442case 133:
     2443YY_RULE_SETUP
     2444#line 318 "lex.ll"
    24322445{ ASCIIOP_RETURN(); }
    24332446        YY_BREAK
    2434 case 129:
    2435 YY_RULE_SETUP
    2436 #line 310 "lex.ll"
     2447case 134:
     2448YY_RULE_SETUP
     2449#line 319 "lex.ll"
    24372450{ ASCIIOP_RETURN(); }
    24382451        YY_BREAK
    2439 case 130:
    2440 YY_RULE_SETUP
    2441 #line 311 "lex.ll"
    2442 { ASCIIOP_RETURN(); }                                   // also operator
    2443         YY_BREAK
    2444 case 131:
    2445 YY_RULE_SETUP
    2446 #line 312 "lex.ll"
    2447 { NAMEDOP_RETURN(ELLIPSIS); }
    2448         YY_BREAK
    2449 /* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */
    2450 case 132:
    2451 YY_RULE_SETUP
    2452 #line 315 "lex.ll"
    2453 { RETURN_VAL('['); }
    2454         YY_BREAK
    2455 case 133:
    2456 YY_RULE_SETUP
    2457 #line 316 "lex.ll"
    2458 { RETURN_VAL(']'); }
    2459         YY_BREAK
    2460 case 134:
    2461 YY_RULE_SETUP
    2462 #line 317 "lex.ll"
    2463 { RETURN_VAL('{'); }
    2464         YY_BREAK
    24652452case 135:
    24662453YY_RULE_SETUP
    2467 #line 318 "lex.ll"
    2468 { RETURN_VAL('}'); }
    2469         YY_BREAK
    2470 /* operators */
     2454#line 320 "lex.ll"
     2455{ ASCIIOP_RETURN(); }
     2456        YY_BREAK
    24712457case 136:
    24722458YY_RULE_SETUP
     
    25162502case 145:
    25172503YY_RULE_SETUP
    2518 #line 330 "lex.ll"
    2519 { ASCIIOP_RETURN(); }
     2504#line 331 "lex.ll"
     2505{ NAMEDOP_RETURN(ICR); }
    25202506        YY_BREAK
    25212507case 146:
    25222508YY_RULE_SETUP
    2523 #line 331 "lex.ll"
    2524 { ASCIIOP_RETURN(); }
     2509#line 332 "lex.ll"
     2510{ NAMEDOP_RETURN(DECR); }
    25252511        YY_BREAK
    25262512case 147:
    25272513YY_RULE_SETUP
    2528 #line 332 "lex.ll"
    2529 { ASCIIOP_RETURN(); }
     2514#line 333 "lex.ll"
     2515{ NAMEDOP_RETURN(EQ); }
    25302516        YY_BREAK
    25312517case 148:
    25322518YY_RULE_SETUP
    2533 #line 333 "lex.ll"
    2534 { ASCIIOP_RETURN(); }
     2519#line 334 "lex.ll"
     2520{ NAMEDOP_RETURN(NE); }
    25352521        YY_BREAK
    25362522case 149:
    25372523YY_RULE_SETUP
    2538 #line 334 "lex.ll"
    2539 { ASCIIOP_RETURN(); }
     2524#line 335 "lex.ll"
     2525{ NAMEDOP_RETURN(LS); }
    25402526        YY_BREAK
    25412527case 150:
    25422528YY_RULE_SETUP
    25432529#line 336 "lex.ll"
    2544 { NAMEDOP_RETURN(ICR); }
     2530{ NAMEDOP_RETURN(RS); }
    25452531        YY_BREAK
    25462532case 151:
    25472533YY_RULE_SETUP
    25482534#line 337 "lex.ll"
    2549 { NAMEDOP_RETURN(DECR); }
     2535{ NAMEDOP_RETURN(LE); }
    25502536        YY_BREAK
    25512537case 152:
    25522538YY_RULE_SETUP
    25532539#line 338 "lex.ll"
    2554 { NAMEDOP_RETURN(EQ); }
     2540{ NAMEDOP_RETURN(GE); }
    25552541        YY_BREAK
    25562542case 153:
    25572543YY_RULE_SETUP
    25582544#line 339 "lex.ll"
    2559 { NAMEDOP_RETURN(NE); }
     2545{ NAMEDOP_RETURN(ANDAND); }
    25602546        YY_BREAK
    25612547case 154:
    25622548YY_RULE_SETUP
    25632549#line 340 "lex.ll"
    2564 { NAMEDOP_RETURN(LS); }
     2550{ NAMEDOP_RETURN(OROR); }
    25652551        YY_BREAK
    25662552case 155:
    25672553YY_RULE_SETUP
    25682554#line 341 "lex.ll"
    2569 { NAMEDOP_RETURN(RS); }
     2555{ NAMEDOP_RETURN(ARROW); }
    25702556        YY_BREAK
    25712557case 156:
    25722558YY_RULE_SETUP
    25732559#line 342 "lex.ll"
    2574 { NAMEDOP_RETURN(LE); }
     2560{ NAMEDOP_RETURN(PLUSassign); }
    25752561        YY_BREAK
    25762562case 157:
    25772563YY_RULE_SETUP
    25782564#line 343 "lex.ll"
    2579 { NAMEDOP_RETURN(GE); }
     2565{ NAMEDOP_RETURN(MINUSassign); }
    25802566        YY_BREAK
    25812567case 158:
    25822568YY_RULE_SETUP
    25832569#line 344 "lex.ll"
    2584 { NAMEDOP_RETURN(ANDAND); }
     2570{ NAMEDOP_RETURN(MULTassign); }
    25852571        YY_BREAK
    25862572case 159:
    25872573YY_RULE_SETUP
    25882574#line 345 "lex.ll"
    2589 { NAMEDOP_RETURN(OROR); }
     2575{ NAMEDOP_RETURN(DIVassign); }
    25902576        YY_BREAK
    25912577case 160:
    25922578YY_RULE_SETUP
    25932579#line 346 "lex.ll"
    2594 { NAMEDOP_RETURN(ARROW); }
     2580{ NAMEDOP_RETURN(MODassign); }
    25952581        YY_BREAK
    25962582case 161:
    25972583YY_RULE_SETUP
    25982584#line 347 "lex.ll"
    2599 { NAMEDOP_RETURN(PLUSassign); }
     2585{ NAMEDOP_RETURN(ANDassign); }
    26002586        YY_BREAK
    26012587case 162:
    26022588YY_RULE_SETUP
    26032589#line 348 "lex.ll"
    2604 { NAMEDOP_RETURN(MINUSassign); }
     2590{ NAMEDOP_RETURN(ORassign); }
    26052591        YY_BREAK
    26062592case 163:
    26072593YY_RULE_SETUP
    26082594#line 349 "lex.ll"
    2609 { NAMEDOP_RETURN(MULTassign); }
     2595{ NAMEDOP_RETURN(ERassign); }
    26102596        YY_BREAK
    26112597case 164:
    26122598YY_RULE_SETUP
    26132599#line 350 "lex.ll"
    2614 { NAMEDOP_RETURN(DIVassign); }
     2600{ NAMEDOP_RETURN(LSassign); }
    26152601        YY_BREAK
    26162602case 165:
    26172603YY_RULE_SETUP
    26182604#line 351 "lex.ll"
    2619 { NAMEDOP_RETURN(MODassign); }
    2620         YY_BREAK
     2605{ NAMEDOP_RETURN(RSassign); }
     2606        YY_BREAK
     2607/* CFA, operator identifier */
    26212608case 166:
    26222609YY_RULE_SETUP
    2623 #line 352 "lex.ll"
    2624 { NAMEDOP_RETURN(ANDassign); }
     2610#line 354 "lex.ll"
     2611{ IDENTIFIER_RETURN(); }                                // unary
    26252612        YY_BREAK
    26262613case 167:
    26272614YY_RULE_SETUP
    2628 #line 353 "lex.ll"
    2629 { NAMEDOP_RETURN(ORassign); }
     2615#line 355 "lex.ll"
     2616{ IDENTIFIER_RETURN(); }
    26302617        YY_BREAK
    26312618case 168:
    26322619YY_RULE_SETUP
    2633 #line 354 "lex.ll"
    2634 { NAMEDOP_RETURN(ERassign); }
    2635         YY_BREAK
    2636 case 169:
    2637 YY_RULE_SETUP
    2638 #line 355 "lex.ll"
    2639 { NAMEDOP_RETURN(LSassign); }
    2640         YY_BREAK
    2641 case 170:
    2642 YY_RULE_SETUP
    26432620#line 356 "lex.ll"
    2644 { NAMEDOP_RETURN(RSassign); }
    2645         YY_BREAK
    2646 /* CFA, operator identifier */
    2647 case 171:
    2648 YY_RULE_SETUP
    2649 #line 359 "lex.ll"
    2650 { IDENTIFIER_RETURN(); }                                // unary
    2651         YY_BREAK
    2652 case 172:
    2653 YY_RULE_SETUP
    2654 #line 360 "lex.ll"
    2655 { IDENTIFIER_RETURN(); }
    2656         YY_BREAK
    2657 case 173:
    2658 YY_RULE_SETUP
    2659 #line 361 "lex.ll"
    2660 { IDENTIFIER_RETURN(); }
    2661         YY_BREAK
    2662 case 174:
    2663 YY_RULE_SETUP
    2664 #line 362 "lex.ll"
    26652621{ IDENTIFIER_RETURN(); }                // binary
    26662622        YY_BREAK
     
    26912647          an argument list.
    26922648        */
    2693 case 175:
    2694 YY_RULE_SETUP
    2695 #line 389 "lex.ll"
     2649case 169:
     2650YY_RULE_SETUP
     2651#line 383 "lex.ll"
    26962652{
    26972653        // 1 or 2 character unary operator ?
     
    27062662        YY_BREAK
    27072663/* unknown characters */
    2708 case 176:
    2709 YY_RULE_SETUP
    2710 #line 401 "lex.ll"
     2664case 170:
     2665YY_RULE_SETUP
     2666#line 395 "lex.ll"
    27112667{ printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
    27122668        YY_BREAK
    2713 case 177:
    2714 YY_RULE_SETUP
    2715 #line 403 "lex.ll"
     2669case 171:
     2670YY_RULE_SETUP
     2671#line 397 "lex.ll"
    27162672ECHO;
    27172673        YY_BREAK
    2718 #line 2719 "Parser/lex.cc"
     2674#line 2675 "Parser/lex.cc"
    27192675case YY_STATE_EOF(INITIAL):
    27202676case YY_STATE_EOF(COMMENT):
     
    30132969                        {
    30142970                        yy_current_state = (int) yy_def[yy_current_state];
    3015                         if ( yy_current_state >= 851 )
     2971                        if ( yy_current_state >= 826 )
    30162972                                yy_c = yy_meta[(unsigned int) yy_c];
    30172973                        }
     
    30412997                {
    30422998                yy_current_state = (int) yy_def[yy_current_state];
    3043                 if ( yy_current_state >= 851 )
     2999                if ( yy_current_state >= 826 )
    30443000                        yy_c = yy_meta[(unsigned int) yy_c];
    30453001                }
    30463002        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    3047         yy_is_jam = (yy_current_state == 850);
     3003        yy_is_jam = (yy_current_state == 825);
    30483004
    30493005        return yy_is_jam ? 0 : yy_current_state;
     
    36913647#define YYTABLES_NAME "yytables"
    36923648
    3693 #line 403 "lex.ll"
     3649#line 397 "lex.ll"
    36943650
    36953651
Note: See TracChangeset for help on using the changeset viewer.