Changeset 73a28e2


Ignore:
Timestamp:
Jan 29, 2016, 3:00:04 PM (7 years ago)
Author:
Aaron Moss <a3moss@…>
Branches:
aaron-thesis, arm-eh, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
Children:
ae8b942
Parents:
8488c71 (diff), f3fc8cbe (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg.uwaterloo.ca:software/cfa/cfa-cc

Location:
src
Files:
2 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/ParseNode.h

    r8488c71 r73a28e2  
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Sat May 16 13:28:16 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Wed Aug 12 13:27:11 2015
    13 // Update Count     : 172
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Fri Jan 15 17:24:30 2016
     13// Update Count     : 174
    1414//
    1515
     
    108108
    109109        ConstantNode( Type, std::string * );
     110        ConstantNode( const ConstantNode &other ) : value( *new std::string( other.value ) ) {};
    110111        ~ConstantNode() { delete &value; }
    111112
  • src/Parser/TypeData.h

    r8488c71 r73a28e2  
    1010// Created On       : Sat May 16 15:18:36 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jun 26 23:39:03 2015
    13 // Update Count     : 16
     12// Last Modified On : Thu Jan 14 23:31:15 2016
     13// Update Count     : 17
    1414//
    1515
     
    2929        ~TypeData();
    3030        void print( std::ostream &, int indent = 0 ) const;
    31         TypeData *clone() const;
     31        TypeData * clone() const;
    3232
    33         Type *build() const;
    34         FunctionType *buildFunction() const;
     33        Type * build() const;
     34        FunctionType * buildFunction() const;
    3535
    36         TypeData *base;
     36        TypeData * base;
    3737        std::list< DeclarationNode::Qualifier > qualifiers;
    38         DeclarationNode *forall;
     38        DeclarationNode * forall;
    3939
    4040        struct Basic_t {
     
    4646                DeclarationNode::Aggregate kind;
    4747                std::string name;
    48                 DeclarationNode *params;
    49                 ExpressionNode  *actuals;                                               // holds actual parameters later applied to AggInst
    50                 DeclarationNode *fields;
     48                DeclarationNode * params;
     49                ExpressionNode  * actuals;                                              // holds actual parameters later applied to AggInst
     50                DeclarationNode * fields;
    5151        };
    5252
    5353        struct AggInst_t {
    54                 TypeData *aggregate;
    55                 ExpressionNode *params;
     54                TypeData * aggregate;
     55                ExpressionNode * params;
    5656        };
    5757
    5858        struct Array_t {
    59                 ExpressionNode *dimension;
     59                ExpressionNode * dimension;
    6060                bool isVarLen;
    6161                bool isStatic;
     
    6464        struct Enumeration_t {
    6565                std::string name;
    66                 DeclarationNode *constants;
     66                DeclarationNode * constants;
    6767        };
    6868
    6969        struct Function_t {
    70                 DeclarationNode *params;
    71                 DeclarationNode *idList;                                                // old-style
    72                 DeclarationNode *oldDeclList;
    73                 StatementNode *body;
     70                DeclarationNode * params;
     71                DeclarationNode * idList;                                               // old-style
     72                DeclarationNode * oldDeclList;
     73                StatementNode * body;
    7474                bool hasBody;
    7575                bool newStyle;
     
    7979                std::string name;
    8080                bool isTypedef;                                                                 // false => TYPEGENname, true => TYPEDEFname
    81                 DeclarationNode *params;
    82                 ExpressionNode *actuals;
    83                 DeclarationNode *assertions;
     81                DeclarationNode * params;
     82                ExpressionNode * actuals;
     83                DeclarationNode * assertions;
    8484        };
    8585
     
    8787                DeclarationNode::TypeClass tyClass;
    8888                std::string name;
    89                 DeclarationNode *assertions;
     89                DeclarationNode * assertions;
    9090        };
    9191
    9292        struct Tuple_t {
    93                 DeclarationNode *members;
     93                DeclarationNode * members;
    9494        };
    9595 
    9696        struct Typeof_t {
    97                 ExpressionNode *expr;
     97                ExpressionNode * expr;
    9898        };
    9999
    100100        struct Attr_t {
    101101                std::string name;
    102                 ExpressionNode *expr;
    103                 DeclarationNode *type;
     102                ExpressionNode * expr;
     103                DeclarationNode * type;
    104104        };
    105105
    106106        union {
    107                 Basic_t *basic;
    108                 Aggregate_t *aggregate;
    109                 AggInst_t *aggInst;
    110                 Array_t *array;
    111                 Enumeration_t *enumeration;
    112                 Function_t *function;
    113                 Symbolic_t *symbolic;
    114                 Variable_t *variable;
    115                 Tuple_t *tuple;
    116                 Typeof_t *typeexpr;
    117                 Attr_t *attr;
     107                Basic_t * basic;
     108                Aggregate_t * aggregate;
     109                AggInst_t * aggInst;
     110                Array_t * array;
     111                Enumeration_t * enumeration;
     112                Function_t * function;
     113                Symbolic_t * symbolic;
     114                Variable_t * variable;
     115                Tuple_t * tuple;
     116                Typeof_t * typeexpr;
     117                Attr_t * attr;
    118118        };
    119119
    120         TypeData *extractAggregate( bool toplevel = true ) const;
     120        TypeData * extractAggregate( bool toplevel = true ) const;
    121121        // helper function for DeclNodeImpl::build
    122         Declaration * buildDecl( std::string name, DeclarationNode::StorageClass sc, Expression *bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec::Type linkage, Initializer *init = 0 ) const;
     122        Declaration * buildDecl( std::string name, DeclarationNode::StorageClass sc, Expression * bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec::Type linkage, Initializer * init = 0 ) const;
    123123        // helper functions for build()
    124124        Type::Qualifiers buildQualifiers() const;
  • src/Parser/lex.cc

    r8488c71 r73a28e2  
    391391        flex_int32_t yy_nxt;
    392392        };
    393 static yyconst flex_int16_t yy_accept[852] =
     393static yyconst flex_int16_t yy_accept[862] =
    394394    {   0,
    395395        0,    0,    0,    0,    0,    0,  113,  113,  116,  116,
     
    418418        0,    0,    0,  116,    0,    0,    0,    0,    0,    0,
    419419        0,    0,    0,    0,    0,    0,    0,    0,    0,  131,
    420       110,    0,  110,    0,    0,    6,    0,  108,    0,    0,
    421         0,  110,    0,  108,  108,  108,  108,    0,  109,    0,
    422         0,  107,  107,  107,  107,    0,  169,  170,    0,  175,
    423       173,    0,    0,    0,  101,    0,    0,    0,    0,    0,
    424         0,    0,    0,  100,   17,  100,  100,  100,  100,  100,
     420      110,  110,    0,  110,  110,    0,    0,    6,    0,  108,
     421        0,    0,    0,  110,    0,  108,  108,  108,  108,    0,
     422      109,    0,    0,  107,  107,  107,  107,    0,  169,  170,
     423        0,  175,  173,    0,    0,    0,  101,    0,    0,    0,
     424        0,    0,    0,    0,    0,  100,   17,  100,  100,  100,
    425425      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    426       100,  100,   14,  100,  100,  100,  100,  100,  100,  100,
     426      100,  100,  100,  100,   14,  100,  100,  100,  100,  100,
    427427
    428428      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    429       100,   51,  100,  100,  100,   64,  100,  100,  100,  100,
    430       100,  100,  100,  100,  100,  100,  100,  100,   87,  100,
    431       100,  100,  100,  100,  100,  100,    0,    0,    0,    0,
     429      100,  100,  100,   51,  100,  100,  100,   64,  100,  100,
     430      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
     431       87,  100,  100,  100,  100,  100,  100,  100,    0,    0,
     432        0,    0,    0,    0,    0,    0,  118,    0,    0,    0,
     433        0,    0,  118,    0,    0,  176,    0,    0,    0,    0,
     434        0,    0,    0,  110,    0,  110,    0,  110,  110,    0,
     435        0,  110,    0,  108,  108,    0,    0,  109,  109,    0,
     436      109,    0,  109,  107,  107,    0,    0,    0,    0,    0,
     437        0,    0,    0,    0,    0,  174,  100,  100,  100,  100,
     438
     439      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
     440      100,  100,  100,  100,  100,  100,  100,  100,   21,  100,
     441       24,  100,   27,  100,  100,  100,  100,  100,  100,  100,
     442       42,  100,   44,  100,  100,  100,  100,  100,  100,  100,
     443       56,  100,   67,  100,  100,  100,  100,  100,  100,  100,
     444      100,  100,  100,  100,   88,  100,  100,   95,  100,  100,
     445        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    432446        0,    0,    0,    0,  118,    0,    0,    0,    0,    0,
    433       118,    0,    0,  176,    0,    0,    0,    0,    0,    0,
    434         0,    0,  110,    0,    0,    0,  110,    0,  108,  108,
    435         0,    0,  109,  109,    0,  109,    0,  109,  107,  107,
     447      110,    0,    0,    0,    0,    0,    0,  109,  109,    0,
     448      111,    0,  109,  109,    0,    0,    0,    0,    0,    0,
     449
     450        0,    0,    0,    0,    0,    0,    0,  100,  100,   22,
     451      100,  100,  100,  100,  100,  100,  100,   15,  100,  100,
     452      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
     453      100,   23,   25,  100,   32,  100,  100,  100,  100,  100,
     454       41,  100,  100,  100,  100,   49,  100,  100,   54,  100,
     455      100,  100,  100,  100,   75,  100,  100,  100,  100,  100,
     456       85,  100,  100,   93,  100,  100,   99,    0,    0,    0,
    436457        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    437       174,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    438 
     458        0,    0,    0,    0,    0,    0,  111,    0,    0,  109,
     459      111,  111,  111,  111,    0,  109,    0,    0,    0,    0,
     460
     461        0,    0,    0,    0,    0,    0,  100,    0,  100,  100,
    439462      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    440       100,  100,  100,   21,  100,   24,  100,   27,  100,  100,
    441       100,  100,  100,  100,  100,   42,  100,   44,  100,  100,
    442       100,  100,  100,  100,  100,   56,  100,   67,  100,  100,
    443       100,  100,  100,  100,  100,  100,  100,  100,  100,   88,
    444       100,  100,   95,  100,  100,    0,    0,    0,    0,    0,
    445         0,    0,    0,    0,    0,    0,    0,    0,    0,  118,
    446         0,    0,    0,    0,    0,  110,    0,    0,    0,    0,
    447         0,    0,  109,  109,    0,  111,    0,  109,  109,    0,
    448         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    449 
    450         0,    0,  100,  100,   22,  100,  100,  100,  100,  100,
    451       100,  100,   15,  100,  100,  100,  100,  100,  100,  100,
    452       100,  100,  100,  100,  100,  100,   23,   25,  100,   32,
    453       100,  100,  100,  100,  100,   41,  100,  100,  100,  100,
    454        49,  100,  100,   54,  100,  100,  100,  100,  100,   75,
    455       100,  100,  100,  100,  100,   85,  100,  100,   93,  100,
    456       100,   99,    0,    0,    0,    0,    0,    0,    0,    0,
    457         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    458         0,  111,    0,    0,  109,  111,  111,    0,  109,    0,
    459         0,    0,    0,    0,    0,    0,    0,    0,    0,  100,
    460 
    461         0,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    462       100,  100,  100,  100,  100,  100,   59,  100,  100,  100,
    463       100,  100,  100,  100,  100,   28,  100,  100,  100,  100,
    464        40,   43,   46,  100,  100,   52,  100,   61,   68,  100,
    465       100,   74,   76,   79,   80,   82,   83,  100,  100,   90,
    466       100,  100,    0,    1,    0,    0,    0,    0,    0,    0,
    467       103,    0,    0,    0,  118,    0,    0,    0,    0,  111,
    468         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     463      100,  100,  100,   59,  100,  100,  100,  100,  100,  100,
     464      100,  100,   28,  100,  100,  100,  100,   40,   43,   46,
     465      100,  100,   52,  100,   61,   68,  100,  100,   74,   76,
     466       79,   80,   82,   83,  100,  100,   90,  100,  100,    0,
     467        1,    0,    0,    0,    0,    0,    0,  103,    0,    0,
     468        0,  118,    0,    0,    0,    0,  111,    0,  111,  111,
     469      111,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    469470      100,  100,   18,  100,  100,  100,  100,  100,  100,  100,
     471
    470472       16,  100,  100,   33,  100,  100,  100,  100,  100,  100,
    471 
    472473      100,  100,  100,  100,  100,   35,  100,   37,   38,  100,
    473474       48,   53,  100,  100,  100,   89,  100,  100,    0,    0,
     
    479480        0,    0,    0,  100,   69,  100,  100,   12,  100,   30,
    480481       34,  100,  100,  100,   66,  100,  100,  100,  100,  100,
     482
    481483      100,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    482 
    483484        0,    0,    0,    0,   58,  100,  100,  100,  100,  100,
    484485      100,   50,   63,   72,   78,   92,   97,  100,  100,    0,
     
    497498       16,   17,   18,   19,   20,   21,   22,   23,   24,   25,
    498499       26,   26,   26,   26,   26,   27,   28,   29,   30,   31,
    499        32,   33,   34,   35,   36,   37,   38,   39,   40,   41,
    500        42,   11,   43,   11,   11,   44,   11,   45,   11,   46,
    501        11,   47,   48,   49,   50,   11,   11,   51,   11,   11,
    502        52,   53,   54,   55,   56,   57,   58,   59,   60,   61,
    503 
    504        62,   63,   64,   65,   66,   11,   67,   68,   69,   70,
    505        71,   72,   11,   73,   74,   75,   76,   77,   78,   79,
    506        80,   81,   82,   83,   84,   85,    1,    1,    1,    1,
     500       32,   33,   34,   35,   36,   37,   38,   39,   40,   39,
     501       41,   11,   42,   11,   11,   43,   11,   44,   11,   45,
     502       11,   46,   47,   48,   49,   11,   11,   50,   11,   11,
     503       51,   52,   53,   54,   55,   56,   57,   58,   59,   60,
     504
     505       61,   62,   63,   64,   65,   11,   66,   67,   68,   69,
     506       70,   71,   11,   72,   73,   74,   75,   76,   77,   78,
     507       79,   80,   81,   82,   83,   84,    1,    1,    1,    1,
    507508        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    508509        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    521522    } ;
    522523
    523 static yyconst flex_int32_t yy_meta[86] =
     524static yyconst flex_int32_t yy_meta[85] =
    524525    {   0,
    525526        1,    1,    2,    1,    1,    1,    1,    1,    3,    1,
     
    527528        6,    1,    7,    7,    7,    7,    7,    7,    1,    1,
    528529        1,    8,    1,    1,    1,    9,    9,    9,    9,    9,
    529         9,    4,    4,   10,    4,   11,    4,    4,    4,   10,
    530         4,    1,   12,    1,    1,   13,    1,    9,    9,    9,
    531         9,    9,    9,    4,    4,    4,    4,   10,    4,    4,
    532         4,   11,    4,    4,    4,   10,    4,    4,    4,    4,
    533         4,    1,    1,    1,    1
     530        4,    4,   10,    4,   11,    4,    4,    4,   10,    4,
     531        1,   12,    1,    1,   13,    1,    9,    9,    9,    9,
     532        9,    9,    4,    4,    4,    4,   10,    4,    4,    4,
     533       11,    4,    4,    4,   10,    4,    4,    4,    4,    4,
     534        1,    1,    1,    1
    534535    } ;
    535536
    536 static yyconst flex_int16_t yy_base[1025] =
     537static yyconst flex_int16_t yy_base[1036] =
    537538    {   0,
    538         0,   84, 2247, 2245,   94,    0,  177,  178,  179,  180,
    539      2259, 2762,  191, 2762,  197,   55, 2762, 2203,   60,  173,
    540      2762, 2762, 2762,   56,  188, 2762,  191,  189,  204,  216,
    541       275,    0, 2222, 2762,  216, 2222,  152,  344,  155,  220,
    542      2762,  159, 2762,  217,  226, 2762,  185,  154,  212,  251,
    543       237,  270,  235,  257,  241,  193,  305,  314,  333,  238,
    544       228, 2762,  225, 2762, 2218,  402,  390, 2762, 2227, 2762,
    545      2193,  204, 2762,    0, 2762,  426,    0, 2762,  417, 2762,
    546       439,  451, 2762,  498, 2192,  235, 2762, 2762, 2762, 2762,
    547      2762, 2210, 2762, 2208, 2762, 2762, 2218,  559, 2762, 2235,
    548 
    549      2762,  605,  413,  498,  516,  289,  253,  197,  293,  305,
    550         0,  319,  280,  231,  334, 2762, 2762, 2762, 2205, 2762,
    551      2762, 2762, 2203, 2200,  298,  356, 2213,  366,  429,  439,
    552       398,  434,  438,  448, 2194,  443, 2143,  459, 2172, 2762,
    553       335, 2762, 2762,  495, 2166, 2163, 2762, 2136,  460,  282,
    554       297,  329,  409,  437,  442,  281,  503,  414,  474,  372,
    555       484,  493,  378,  434,  433,  325,  494,  459,  499,  492,
    556       502,  509,  461,  301,  515,  535, 2164,  536,  520,  538,
    557       544,  541,  545,  567,  539,  421,  554,  563,  597,  570,
    558       571,  548, 2762, 2762,  652,  662, 2212,  668, 2762,  674,
    559 
    560      2762, 2159,  567, 2153, 2152,    0,  645, 2762, 2762,  680,
    561      2151, 2149, 2146,    0, 2167,  466,  640,  646,  689,  688,
    562       650,  678,  679,  682, 2164,  685,  692, 2141, 2139, 2762,
    563       714,  707, 2762, 2136, 2186, 2762,  703,    0,  697,  760,
    564       766,  779,  801,  696, 2762, 2144, 2119,    0,  787, 2164,
    565       825,  698, 2762, 2138, 2111,  841, 2762, 2762, 2144, 2762,
    566      2762,  717,  718, 2123, 2122,  719, 2099, 2097, 2096,    0,
    567      2093,    0, 2062,  585,  589,  704,  610,  675,  703,  540,
    568       706,  707,  743,  726,  720,  745,  787,  709,  748,  715,
    569       756,  759, 2092,  761,  781,  792,  817,  785,  791,  808,
    570 
    571       788,  818,  819,  807,  822,  821,  820,  832,  833,  834,
    572       835,  837,  838,  843,  845, 2091,  276,  847,  850,  846,
    573       849,  851,  852,  855,  853,  854,  856,  865, 2089,  867,
    574       904,  866,  873,  197,  874,  870,  938,  939, 2083, 2080,
    575      2079,    0, 2078,    0,  926,  930, 2076,    0, 2073,    0,
    576      2070,    0, 2091, 2762,  901,  912, 2070, 2066,    0, 2063,
    577         0,  935,  942,  953,  964,  976,  989,  998, 2762, 2762,
    578       939,  962, 1014,  987, 1023,  928, 1041, 1005, 2762, 2762,
    579      2060, 2059, 2058,    0, 2056,    0, 2053,    0, 2052,    0,
    580      2762,  911,  940,  976,  966,  881, 1003,  944, 1000,  974,
    581 
    582       941, 1015, 1018, 1019, 1021, 1006, 1025, 1027, 1039, 1041,
    583      1012, 1046, 1048, 2054, 1047, 2052,  975, 2049, 1050, 1051,
    584      1057, 1052, 1053, 1054, 1058, 2048, 1068, 2047, 1072, 1055,
    585      1074, 1076, 1078, 1079, 1081, 2045, 1080, 2042, 1082, 1085,
    586      1084, 1087, 1086, 1091, 1094, 1088, 1095, 1096,  588, 1109,
    587      1111, 1110, 2038, 1113, 1114, 1166, 2031,    0, 2029,    0,
    588      2027,    0, 2024,    0, 1159, 2022,    0, 2020,    0, 2017,
    589      2014, 2013,    0, 2012,    0, 1166, 1172, 1218, 1131, 1229,
    590      1155, 1132, 1129, 2762, 1235, 1242, 1253, 2022, 1995, 2004,
    591      2003,    0, 2002,    0, 2000,    0, 1997,    0, 1994,    0,
    592 
    593      1993,    0, 1149, 1120, 1995, 1153, 1159, 1164, 1156, 1167,
    594      1165, 1161,  233, 1211, 1219, 1162, 1186, 1229, 1173, 1185,
    595       166, 1235, 1236, 1222, 1237, 1242, 1993, 1249, 1241, 1990,
    596      1171, 1248, 1240, 1251, 1253, 1987, 1254, 1256, 1259, 1260,
    597      1986, 1261, 1264, 1985, 1268, 1270, 1267, 1272, 1274, 1983,
    598      1278,  921, 1280, 1281, 1282, 1290, 1283, 1288, 1980, 1293,
    599      1295, 1977, 2026, 1972,    0, 1970,    0, 1967,    0, 1964,
    600         0, 1963,    0, 1962,    0, 1960,    0, 1957,    0, 1341,
    601      1347, 1354, 1365, 1954, 2762, 1377, 2762, 1388, 2762, 1953,
    602         0, 1952,    0, 1950,    0, 1947,    0,    0,    0, 1949,
    603 
    604         0, 1366, 1297, 1296, 1333, 1306, 1331, 1300, 1301, 1353,
    605      1115, 1343, 1367, 1355, 1372, 1373, 1299, 1383, 1402, 1375,
    606      1381, 1385, 1378, 1386, 1388, 1948, 1393, 1399, 1404, 1405,
    607      1946, 1943, 1942, 1407, 1406, 1941, 1411, 1939, 1906, 1409,
    608      1334, 1904, 1903, 1900, 1897, 1896, 1895, 1410, 1413, 1893,
    609      1412, 1416, 1940, 2762, 1884,    0, 1883,    0,    0,    0,
    610      1885,    0,    0,    0, 2762,    0,    0,    0,    0, 1464,
    611      1470, 1516, 1880,    0, 1877,    0,    0,    0,    0, 1876,
    612      1425, 1420, 1878, 1424, 1447, 1448, 1429, 1456, 1457, 1451,
    613      1876, 1462, 1463, 1475, 1471, 1493, 1481, 1494, 1496, 1495,
    614 
    615      1497, 1499, 1466, 1500, 1483, 1873, 1502, 1872, 1871, 1482,
    616      1869, 1866, 1501, 1506, 1508, 1862, 1509, 1514,    0,    0,
    617      1855, 1851, 1835, 1834, 1560,    0, 1833, 1831, 1828, 1827,
    618      1826, 1827, 1824, 1823, 1822, 1516, 1520, 1522, 1417, 1515,
    619      1518, 1512, 1539, 1540, 1552, 1820, 1543, 1817, 1544, 1548,
    620      1551, 1556, 1545, 1526, 1816, 1815, 1813, 1810, 1550, 1809,
    621      1808, 1803, 1800, 1799, 1798, 1796, 1793, 1792, 1791, 1789,
    622      1786, 1785, 1784, 1557, 1785, 1558, 1562, 1561, 1565, 1566,
    623      1782, 1567, 1594, 1571, 1781, 1570, 1572, 1578, 1577, 1582,
    624      1583, 1777, 1775, 1768, 1766, 1765, 1762, 1761, 1760, 1758,
    625 
    626      1741, 1732, 1731, 1728, 1724, 1576, 1588, 1590, 1591, 1601,
    627      1589, 1721, 1714, 1602, 1712, 1711, 1607, 1603, 1608, 1687,
    628      1686, 1685, 1678, 1676, 1675, 1633, 1632, 1609, 1611, 1632,
    629      1619, 1626, 1620, 1621, 1625, 1596, 1477, 1462, 1152, 1613,
    630      1614, 1627, 1631, 1119, 1016, 1615,  762,  725,  676,  549,
    631      2762, 1690, 1703, 1716, 1726, 1736, 1749, 1759, 1772, 1785,
    632      1798, 1806, 1816, 1823, 1830, 1837, 1844, 1851, 1858, 1865,
    633      1872, 1879, 1892, 1899, 1903, 1911, 1914, 1921, 1928, 1935,
    634      1938, 1945, 1951, 1964, 1977, 1984, 1991, 1998, 2005, 2008,
    635      2015, 2018, 2025, 2028, 2035, 2038, 2045, 2048, 2055, 2058,
    636 
    637      2065, 2068, 2075, 2083, 2090, 2097, 2104, 2111, 2114, 2121,
    638      2124, 2131, 2134, 2141, 2147, 2160, 2167, 2174, 2177, 2184,
    639      2187, 2194, 2197, 2204, 2207, 2214, 2217, 2224, 2227, 2234,
    640      2241, 2244, 2251, 2254, 2261, 2268, 2275, 2278, 2285, 2288,
    641      2295, 2298, 2305, 2308, 2315, 2318, 2325, 2331, 2344, 2351,
    642      2358, 2361, 2368, 2371, 2378, 2381, 2388, 2391, 2398, 2401,
    643      2408, 2411, 2418, 2421, 2428, 2431, 2438, 2445, 2448, 2455,
    644      2458, 2465, 2468, 2475, 2478, 2481, 2487, 2494, 2503, 2510,
    645      2517, 2520, 2527, 2530, 2533, 2539, 2546, 2549, 2552, 2555,
    646      2558, 2561, 2564, 2567, 2574, 2577, 2584, 2587, 2590, 2593,
    647 
    648      2596, 2606, 2613, 2616, 2619, 2626, 2633, 2640, 2643, 2650,
    649      2657, 2664, 2671, 2678, 2685, 2692, 2699, 2706, 2713, 2720,
    650      2727, 2734, 2741, 2748
     539        0,   83, 2200, 2197,   93,    0,  175,  176,  177,  178,
     540     2213, 2760,  189, 2760,  195,   54, 2760, 2160,   59,  171,
     541     2760, 2760, 2760,   55,  186, 2760,  189,  187,  202,  214,
     542      272,    0, 2177, 2760,  214, 2175,  150,  340,  153,  222,
     543     2760,  157, 2760,  215,  224, 2760,  207,  181,  221,  249,
     544      235,  289,  155,  255,  218,  206,  266,  256,  323,  259,
     545      192, 2760,  223, 2760, 2170,  377,  342, 2760, 2181, 2760,
     546     2150,  234, 2760,    0, 2760,  421,    0, 2760,  393, 2760,
     547      399,  405, 2760,  492, 2148,  241, 2760, 2760, 2760, 2760,
     548     2760, 2163, 2760, 2160, 2760, 2760, 2172,  552, 2760, 2189,
     549
     550     2760,  413,  393,  437,  493,  377,  318,  195,  430,  382,
     551        0,  384,  321,  196,  427, 2760, 2760, 2760, 2158, 2760,
     552     2760, 2760, 2155, 2152,  252,  302, 2167,  342,  435,  422,
     553      381,  455,  400,  494, 2148,  440, 2097,  469, 2125, 2760,
     554      276, 2760, 2760,  520, 2119, 2118, 2760, 2091,  414,  463,
     555      470,  325,  254,  479,  432,  274,  480,  423,  483,  498,
     556      492,  503,  499,  509,  341,  455,  484,  377,  510,  512,
     557      517,  518,  529,  486,  530,  531, 2118,  536,  537,  541,
     558      548,  538,  552,  544,  566,  568,  545,  571,  593,  573,
     559      574,  578, 2760, 2760,  647,  653, 2147,  659, 2760,  665,
     560
     561     2760, 2096,  584, 2092, 2089,    0,  662, 2760, 2760,  671,
     562     2086, 2085, 2084,    0, 2105,  595,  602,  603,  680,  679,
     563      639,  669,  670,  673, 2100,  676,  683, 2076, 2075, 2760,
     564        0,  666,  704,  677,  680, 2074, 2124, 2760,  706,    0,
     565      697,  730,  737,  769,  754,  595, 2760, 2081, 2054,    0,
     566      755, 2099,  790,  672, 2760, 2076, 2050,  814, 2760, 2760,
     567     2080, 2760, 2760,  691,  702, 2058, 2058,  694, 2054, 2052,
     568     2049,    0, 2048,    0, 2019,  686,  731,  732,  595,  606,
     569      768,  734,  771,  735,  780,  751,  757,  683,  775,  794,
     570      738,  723,  781,  796, 2048,  797,  798,  800,  804,  805,
     571
     572      806,  807,  813,  816,  820,  812,  810,  827,  737,  823,
     573      822,  830,  834,  836,  838,  842,  840, 2045,  843,  844,
     574      848,  845,  846,  850,  847,  856,  849,  851,  855,  862,
     575     2044,  863,  895,  866,  868,  875,  873,  876,  935,  931,
     576     2040, 2038, 2035,    0, 2031,    0,  925,  929, 2027,    0,
     577     2025,    0, 2023,    0, 2041, 2760,  907,  924, 2020, 2016,
     578        0, 2013,    0, 2760,  936,  958,  947, 2760, 2760,  964,
     579      979, 1003, 2010, 2760, 2760,  923,  924,  990,  965, 1023,
     580      950, 1017,  949, 2760, 2760, 2009, 2008, 2006,    0, 2003,
     581        0, 2000,    0, 1999,    0, 2760,  894,  944,  969,  985,
     582
     583      992,  914, 1002,  958, 1003,  957,  947, 1000, 1007, 1015,
     584     1016, 1025, 1027, 1029, 1017, 1028, 1031, 1018, 2001,  879,
     585     1999, 1041, 1996, 1043, 1044, 1045, 1046, 1051, 1047, 1052,
     586     1993, 1048, 1992, 1055, 1056, 1059, 1060, 1065, 1067, 1068,
     587     1991, 1071, 1989, 1070, 1073, 1072, 1076, 1079, 1081, 1084,
     588     1085, 1097, 1099, 1083, 1095, 1100, 1105, 1986, 1089, 1109,
     589     1163, 1980,    0, 1979,    0, 1978,    0, 1976,    0, 1150,
     590     1973,    0, 1970,    0, 1969, 1968, 1966,    0, 1963,    0,
     591     1154, 1960, 1160, 1146, 1180, 1147, 1093, 1145, 2760, 1199,
     592     1213, 1239, 1971, 1946, 1956, 1953,    0, 1950,    0, 1949,
     593
     594        0, 1948,    0, 1946,    0, 1943,    0, 1143, 1177, 1945,
     595     1161, 1138, 1178, 1115, 1179, 1193, 1195, 1107, 1181, 1180,
     596     1196, 1209, 1197, 1208, 1220, 1119, 1222, 1224, 1225, 1227,
     597     1229, 1944, 1238, 1230, 1942, 1235, 1237, 1240, 1241, 1243,
     598     1939, 1244, 1245, 1147, 1248, 1938, 1249, 1260, 1937, 1250,
     599     1257, 1247, 1258, 1251, 1935, 1267, 1270, 1272, 1273, 1182,
     600     1282, 1274, 1277, 1902, 1281, 1278, 1900, 1948, 1893,    0,
     601     1890,    0, 1889,    0, 1888,    0, 1886,    0, 1883,    0,
     602     1880,    0, 1879,    0, 1328, 1334, 1361, 1345, 1878, 2760,
     603     1351, 1297, 1351, 1352, 1876, 2760, 1873,    0, 1872,    0,
     604
     605     1871,    0, 1869,    0,    0,    0, 1869,    0, 1340, 1285,
     606     1284, 1315, 1297, 1330, 1289, 1286, 1329, 1341, 1343, 1350,
     607     1355, 1363, 1357, 1367, 1368, 1399, 1373, 1375, 1378, 1382,
     608     1381, 1383, 1868, 1384, 1386, 1389, 1393, 1867, 1865, 1862,
     609     1390, 1391, 1858, 1396, 1854, 1850, 1398, 1394, 1834, 1833,
     610     1832, 1830, 1827, 1826, 1405, 1412, 1825, 1408, 1404, 1872,
     611     2760, 1817,    0, 1816,    0,    0,    0, 1818,    0,    0,
     612        0, 2760,    0,    0,    0,    0, 1452, 1813, 2760, 2760,
     613     2760, 1458, 1810,    0, 1809,    0,    0,    0,    0, 1808,
     614     1415, 1435, 1809, 1420, 1437, 1416, 1438, 1447, 1448, 1441,
     615
     616     1806, 1457, 1440, 1453, 1452, 1482, 1466, 1468, 1489, 1471,
     617     1470, 1472, 1475, 1478, 1476, 1805, 1479, 1804, 1802, 1481,
     618     1799, 1798, 1486, 1487, 1484, 1797, 1490, 1492,    0,    0,
     619        0, 1792, 1789, 1788, 1539,    0, 1787, 1785, 1782, 1781,
     620     1780, 1781, 1778, 1777, 1776, 1496, 1500, 1494, 1493, 1518,
     621     1502, 1495, 1519, 1507, 1530, 1774, 1523, 1767, 1524, 1529,
     622     1531, 1532, 1533, 1537, 1765, 1764, 1761, 1760, 1538, 1759,
     623     1757, 1737, 1728, 1727, 1724, 1717, 1714, 1707, 1705, 1704,
     624     1683, 1682, 1681, 1539, 1677, 1541, 1540, 1543, 1545, 1544,
     625     1675, 1550, 1574, 1551, 1674, 1553, 1552, 1556, 1563, 1557,
     626
     627     1564, 1629, 1628, 1627, 1626, 1625, 1624, 1623, 1621, 1619,
     628     1618, 1617, 1616, 1615, 1617, 1565, 1569, 1578, 1570, 1582,
     629     1571, 1616, 1615, 1584, 1614, 1583, 1589, 1590, 1591, 1574,
     630     1394, 1346, 1344, 1287, 1018, 1016,  987, 1593, 1596,  924,
     631     1594,  767, 1595, 1603, 1604,  689,  576,  370,  335, 1605,
     632     1608, 1609, 1610,  337,  290, 1611,  251,  200,  196,  136,
     633     2760, 1685, 1698, 1711, 1721, 1731, 1744, 1754, 1767, 1780,
     634     1793, 1801, 1811, 1818, 1825, 1832, 1839, 1846, 1853, 1860,
     635     1867, 1874, 1887, 1894, 1898, 1906, 1909, 1916, 1923, 1930,
     636     1933, 1940, 1946, 1959, 1972, 1979, 1986, 1993, 2000, 2003,
     637
     638     2010, 2013, 2020, 2023, 2030, 2033, 2040, 2043, 2050, 2053,
     639     2060, 2063, 2070, 2078, 2085, 2092, 2099, 2106, 2109, 2116,
     640     2119, 2126, 2129, 2136, 2142, 2155, 2162, 2169, 2172, 2179,
     641     2182, 2189, 2192, 2199, 2202, 2209, 2212, 2219, 2222, 2229,
     642     2236, 2239, 2246, 2249, 2256, 2263, 2270, 2273, 2280, 2283,
     643     2290, 2293, 2300, 2303, 2310, 2313, 2320, 2326, 2339, 2346,
     644     2353, 2356, 2363, 2366, 2373, 2376, 2383, 2386, 2393, 2396,
     645     2403, 2406, 2413, 2416, 2423, 2426, 2433, 2440, 2443, 2450,
     646     2453, 2460, 2463, 2470, 2473, 2476, 2482, 2489, 2498, 2505,
     647     2512, 2515, 2522, 2525, 2528, 2534, 2541, 2544, 2547, 2550,
     648
     649     2553, 2556, 2559, 2562, 2569, 2572, 2579, 2582, 2585, 2588,
     650     2591, 2601, 2608, 2611, 2614, 2617, 2624, 2631, 2638, 2641,
     651     2648, 2655, 2662, 2669, 2676, 2683, 2690, 2697, 2704, 2711,
     652     2718, 2725, 2732, 2739, 2746
    651653    } ;
    652654
    653 static yyconst flex_int16_t yy_def[1025] =
     655static yyconst flex_int16_t yy_def[1036] =
    654656    {   0,
    655       851,    1,  852,  852,  851,    5,  853,  853,  854,  854,
    656       851,  851,  851,  851,  851,  851,  851,  855,  851,  851,
    657       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    658       851,   31,  851,  851,  851,  851,  851,  851,  856,  855,
    659       851,  851,  851,  851,  855,  851,  855,  855,  855,  855,
    660       855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
    661       855,  851,  851,  851,  851,  851,  857,  851,  851,  851,
    662       858,  851,  851,  859,  851,  851,  860,  851,  851,  851,
    663       851,  851,  851,  851,  855,  851,  851,  851,  851,  851,
    664       851,  851,  851,  851,  851,  851,  851,  851,  851,  861,
    665 
    666       851,  851,   30,  851,  851,  851,  851,  862,   30,  851,
    667        31,  851,  851,   31,  851,  851,  851,  851,  851,  851,
    668       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    669       851,  851,  851,  851,  851,  851,  851,  851,  863,  851,
    670       851,  851,  851,  855,  864,  865,  851,  851,  855,  855,
    671       855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
    672       855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
    673       855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
    674       855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
    675       855,  855,  851,  851,  851,  857,  857,  857,  851,  857,
    676 
    677       851,  858,  851,  866,  867,  859,  851,  851,  851,  851,
    678       868,  869,  870,  860,  851,  851,  851,  851,  851,  851,
    679       851,  851,  851,  851,  851,  851,  851,  871,  872,  851,
    680       851,  851,  851,  231,  873,  851,  851,  103,  103,  851,
    681       851,  851,  851,  851,  851,  851,  851,  874,  875,  876,
    682       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    683       851,  851,  851,  851,  863,  851,  877,  878,  879,  880,
    684       881,  882,  851,  883,  883,  883,  883,  883,  883,  883,
    685       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    686       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    687 
    688       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    689       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    690       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    691       883,  883,  883,  883,  883,  883,  884,  885,  886,  887,
    692       888,  889,  890,  891,  851,  851,  892,  893,  894,  895,
    693       896,  897,  851,  851,  851,  851,  851,  898,  899,  900,
    694       901,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    695       902,  903,  904,  851,  851,  851,  904,  851,  851,  851,
    696       905,  906,  907,  908,  909,  910,  911,  912,  913,  914,
    697       851,  915,  915,  915,  915,  915,  915,  915,  915,  915,
    698 
    699       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
    700       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
    701       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
    702       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
    703       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
    704       915,  915,  915,  915,  915,  916,  917,  918,  919,  920,
    705       921,  922,  923,  924,  851,  925,  926,  927,  928,  929,
    706       929,  930,  931,  932,  933,  851,  851,  851,  934,  851,
    707       934,  851,  851,  851,  851,  851,  851,  851,  851,  935,
    708       936,  937,  938,  939,  940,  941,  942,  943,  944,  945,
    709 
    710       946,  947,  948,  948,  948,  948,  948,  948,  948,  948,
    711       948,  948,  948,  948,  948,  948,  948,  948,  948,  948,
    712       948,  948,  948,  948,  948,  948,  948,  948,  948,  948,
    713       948,  948,  948,  948,  948,  948,  948,  948,  948,  948,
    714       948,  948,  948,  948,  948,  948,  948,  948,  948,  948,
    715       948,  948,  948,  948,  948,  948,  948,  948,  948,  948,
    716       948,  948,  949,  950,  951,  952,  953,  954,  955,  956,
    717       957,  958,  959,  960,  961,  962,  963,  964,  965,  851,
    718       851,  851,  851,  966,  851,  851,  851,  851,  851,  967,
    719       968,  969,  970,  971,  972,  973,  974,  975,  976,  977,
    720 
    721       978,  977,  977,  977,  977,  977,  977,  977,  977,  977,
    722       977,  977,  977,  977,  977,  977,  977,  977,  977,  977,
    723       977,  977,  977,  977,  977,  977,  977,  977,  977,  977,
    724       977,  977,  977,  977,  977,  977,  977,  977,  977,  977,
    725       977,  977,  977,  977,  977,  977,  977,  977,  977,  977,
    726       977,  977,  979,  851,  980,  981,  982,  983,  984,  985,
    727       986,  987,  988,  989,  851,  990,  991,  992,  993,  851,
    728       851,  851,  994,  995,  996,  997,  998,  999, 1000, 1001,
    729      1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
    730      1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
    731 
    732      1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
    733      1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1003, 1004,
    734       982, 1005, 1006, 1007,  851, 1008,  994,  996, 1009, 1010,
    735      1001, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
    736      1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
    737      1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
    738      1002, 1011, 1012, 1005, 1013, 1006, 1014, 1007, 1015, 1016,
    739      1009, 1017, 1010, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
    740      1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
    741      1002, 1018, 1011, 1019, 1012, 1020, 1013, 1021, 1014, 1022,
    742 
    743      1015, 1023, 1016, 1017, 1002, 1002, 1002, 1002, 1002, 1002,
    744      1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1024,
    745      1018, 1019, 1020, 1021,  996, 1022, 1023, 1002, 1002, 1002,
    746      1002, 1002, 1002, 1002, 1002, 1002, 1002, 1024,  996, 1002,
    747      1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
    748         0,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    749       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    750       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    751       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    752       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    753 
    754       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    755       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    756       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    757       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    758       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    759       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    760       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    761       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    762       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    763       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    764 
    765       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    766       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    767       851,  851,  851,  851
     657      861,    1,  862,  862,  861,    5,  863,  863,  864,  864,
     658      861,  861,  861,  861,  861,  861,  861,  865,  861,  861,
     659      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     660      861,   31,  861,  861,  861,  861,  861,  861,  866,  865,
     661      861,  861,  861,  861,  865,  861,  865,  865,  865,  865,
     662      865,  865,  865,  865,  865,  865,  865,  865,  865,  865,
     663      865,  861,  861,  861,  861,  861,  867,  861,  861,  861,
     664      868,  861,  861,  869,  861,  861,  870,  861,  861,  861,
     665      861,  861,  861,  861,  865,  861,  861,  861,  861,  861,
     666      861,  861,  861,  861,  861,  861,  861,  861,  861,  871,
     667
     668      861,   98,   30,  861,  861,  861,  861,  872,   30,  861,
     669       31,  861,  861,   31,  861,  861,  861,  861,  861,  861,
     670      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     671      861,  861,  861,  861,  861,  861,  861,  861,  873,  861,
     672      861,  861,  861,  865,  874,  875,  861,  861,  865,  865,
     673      865,  865,  865,  865,  865,  865,  865,  865,  865,  865,
     674      865,  865,  865,  865,  865,  865,  865,  865,  865,  865,
     675      865,  865,  865,  865,  865,  865,  865,  865,  865,  865,
     676      865,  865,  865,  865,  865,  865,  865,  865,  865,  865,
     677      865,  865,  861,  861,  861,  867,  867,  867,  861,  867,
     678
     679      861,  868,  861,  876,  877,  869,  861,  861,  861,  861,
     680      878,  879,  880,  870,  861,  861,  861,  861,  861,  861,
     681      861,  861,  861,  861,  861,  861,  861,  881,  882,  861,
     682       98,  861,  861,  861,  861,   98,  883,  861,  861,  103,
     683      103,  861,  861,  861,  861,  861,  861,  861,  861,  884,
     684      885,  886,  861,  861,  861,  861,  861,  861,  861,  861,
     685      861,  861,  861,  861,  861,  861,  873,  861,  887,  888,
     686      889,  890,  891,  892,  861,  893,  893,  893,  893,  893,
     687      893,  893,  893,  893,  893,  893,  893,  893,  893,  893,
     688      893,  893,  893,  893,  893,  893,  893,  893,  893,  893,
     689
     690      893,  893,  893,  893,  893,  893,  893,  893,  893,  893,
     691      893,  893,  893,  893,  893,  893,  893,  893,  893,  893,
     692      893,  893,  893,  893,  893,  893,  893,  893,  893,  893,
     693      893,  893,  893,  893,  893,  893,  893,  893,  894,  895,
     694      896,  897,  898,  899,  900,  901,  861,  861,  902,  903,
     695      904,  905,  906,  907,  861,  861,  861,  861,  861,  908,
     696      909,  910,  911,  861,  861,  861,  861,  861,  861,  861,
     697      861,  366,  372,  861,  861,  912,  913,  914,  861,  861,
     698      861,  914,  861,  861,  861,  915,  916,  917,  918,  919,
     699      920,  921,  922,  923,  924,  861,  925,  925,  925,  925,
     700
     701      925,  925,  925,  925,  925,  925,  925,  925,  925,  925,
     702      925,  925,  925,  925,  925,  925,  925,  925,  925,  925,
     703      925,  925,  925,  925,  925,  925,  925,  925,  925,  925,
     704      925,  925,  925,  925,  925,  925,  925,  925,  925,  925,
     705      925,  925,  925,  925,  925,  925,  925,  925,  925,  925,
     706      925,  925,  925,  925,  925,  925,  925,  925,  925,  925,
     707      926,  927,  928,  929,  930,  931,  932,  933,  934,  861,
     708      935,  936,  937,  938,  939,  939,  940,  941,  942,  943,
     709      861,  481,  861,  944,  861,  944,  861,  861,  861,  861,
     710      861,  861,  861,  861,  945,  946,  947,  948,  949,  950,
     711
     712      951,  952,  953,  954,  955,  956,  957,  958,  958,  958,
     713      958,  958,  958,  958,  958,  958,  958,  958,  958,  958,
     714      958,  958,  958,  958,  958,  958,  958,  958,  958,  958,
     715      958,  958,  958,  958,  958,  958,  958,  958,  958,  958,
     716      958,  958,  958,  958,  958,  958,  958,  958,  958,  958,
     717      958,  958,  958,  958,  958,  958,  958,  958,  958,  958,
     718      958,  958,  958,  958,  958,  958,  958,  959,  960,  961,
     719      962,  963,  964,  965,  966,  967,  968,  969,  970,  971,
     720      972,  973,  974,  975,  861,  861,  861,  861,  976,  861,
     721      587,  861,  861,  861,  591,  861,  977,  978,  979,  980,
     722
     723      981,  982,  983,  984,  985,  986,  987,  988,  987,  987,
     724      987,  987,  987,  987,  987,  987,  987,  987,  987,  987,
     725      987,  987,  987,  987,  987,  987,  987,  987,  987,  987,
     726      987,  987,  987,  987,  987,  987,  987,  987,  987,  987,
     727      987,  987,  987,  987,  987,  987,  987,  987,  987,  987,
     728      987,  987,  987,  987,  987,  987,  987,  987,  987,  989,
     729      861,  990,  991,  992,  993,  994,  995,  996,  997,  998,
     730      999,  861, 1000, 1001, 1002, 1003,  861,  677,  861,  861,
     731      861,  861, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011,
     732     1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
     733
     734     1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
     735     1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
     736     1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1013, 1014,
     737     1015, 1016, 1017, 1018,  861, 1019, 1004, 1006, 1020, 1021,
     738     1011, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
     739     1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
     740     1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
     741     1012, 1022, 1023, 1016, 1024, 1017, 1025, 1018, 1026, 1027,
     742     1020, 1028, 1021, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
     743     1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
     744
     745     1012, 1029, 1022, 1030, 1023, 1031, 1024, 1032, 1025, 1033,
     746     1026, 1034, 1027, 1028, 1012, 1012, 1012, 1012, 1012, 1012,
     747     1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1035,
     748     1029, 1030, 1031, 1032, 1006, 1033, 1034, 1012, 1012, 1012,
     749     1012, 1012, 1012, 1012, 1012, 1012, 1012, 1035, 1006, 1012,
     750     1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
     751        0,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     752      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     753      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     754      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     755
     756      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     757      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     758      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     759      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     760      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     761      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     762      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     763      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     764      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     765      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     766
     767      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     768      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     769      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     770      861,  861,  861,  861,  861
    768771    } ;
    769772
    770 static yyconst flex_int16_t yy_nxt[2848] =
     773static yyconst flex_int16_t yy_nxt[2845] =
    771774    {   0,
    772775       12,   13,   14,   15,   15,   15,   13,   16,   17,   12,
     
    774777       28,   29,   30,   31,   32,   32,   32,   32,   33,   34,
    775778       35,   36,   37,   38,   39,   18,   18,   18,   18,   18,
    776        18,   18,   18,   40,   18,   18,   18,   18,   18,   40,
    777        18,   41,   42,   43,   44,   45,   46,   47,   48,   49,
    778        50,   51,   52,   53,   18,   54,   18,   55,   18,   18,
    779        18,   18,   56,   57,   58,   59,   60,   61,   18,   18,
    780        18,   62,   63,   64,   65,   66,   83,   91,   84,   84,
    781        66,   87,   88,   67,   70,   70,   70,   70,   70,   70,
    782 
    783        70,   70,   70,   70,   71,   70,   70,   70,   70,   70,
     779       18,   18,   40,   18,   18,   18,   18,   18,   40,   18,
     780       41,   42,   43,   44,   45,   46,   47,   48,   49,   50,
     781       51,   52,   53,   18,   54,   18,   55,   18,   18,   18,
     782       18,   56,   57,   58,   59,   60,   61,   18,   18,   18,
     783       62,   63,   64,   65,   66,   83,   91,   84,   84,   66,
     784       87,   88,   67,   70,   70,   70,   70,   70,   70,   70,
     785
     786       70,   70,   70,   71,   70,   70,   70,   70,   70,   70,
    784787       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
    785        70,   70,   70,   70,   70,   70,   70,   70,   70,   71,
     788       70,   70,   70,   70,   70,   70,   70,   70,   71,   71,
    786789       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
    787        71,   71,   71,   71,   71,   70,   72,   70,   70,   71,
    788        73,   71,   71,   71,   71,   71,   71,   71,   71,   71,
     790       71,   71,   71,   70,   72,   70,   70,   71,   73,   71,
    789791       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
    790        71,   71,   71,   71,   71,   70,   70,   70,   70,   75,
    791        75,   78,   78,  122,  123,   89,  140,   78,   78,  619,
    792        75,   75,   79,   80,   81,   81,   81,   79,   81,   80,
    793 
    794        82,   82,   82,   81,   90,   92,   86,  141,  145,   97,
    795        94,   98,   98,   98,   98,   98,   98,  248,   86,   93,
    796        99,   84,   95,   96,   84,  100,  160,  117,  142,   76,
    797        76,   76,   76,  143,  146,  101,  102,   86,  103,  103,
    798       103,  103,  104,  104,  118,   86,  119,  120,  147,   86,
    799       148,  851,  250,  204,  181,  105,  193,  453,  158,  106,
    800       159,  149,  150,  151,   86,  107,  108,  152,  153,  161,
    801       154,  109,   86,  155,  156,  144,  162,  105,   86,  205,
    802        86,  157,  163,  110,  228,   86,  256,   86,  611,   86,
    803        86,  107,  192,   86,  108,  102,  246,  111,  111,  111,
    804 
    805       111,  111,  111,   86,  168,  176,  169,  194,  191,   86,
    806       229,  179,  164,  851,  105,  170,  165,  180,  112,  177,
    807       247,  166,   86,  254,  113,  167,  178,  171,   86,  259,
    808       114,  260,  244,   86,   86,  172,  105,  173,  245,  438,
    809       174,  142,  115,  851,  175,  282,  143,  255,  251,   86,
    810       113,  124,  276,   86,  245,  125,  126,   86,  127,  189,
    811       128,  129,  252,  130,  245,  131,   86,  277,  253,  182,
    812       183,  851,  244,  312,  132,  133,  134,   86,  186,  184,
    813       245,   86,  185,  253,  267,   86,  187,  259,  144,  260,
    814       278,  198,  199,  188,  253,  135,  198,  259,  136,  260,
    815 
    816       303,  252,  190,  195,   80,   81,   81,   81,  195,  253,
    817       268,  196,  200,  200,  200,  200,  200,  200,   79,   80,
    818        81,   81,   81,   79,   86,  137,  138,  207,  208,  259,
    819        86,  260,  207,  295,  209,  238,  238,  238,  238,  209,
    820        81,   80,   81,   81,   81,   81,  261,  300,  210,  210,
    821       210,  210,   81,   80,   82,   82,   82,   81,  261,  209,
    822       259,   86,  260,  851,  262,  259,   86,  260,  239,  259,
    823       259,  260,  260,   86,  259,  211,  260,  279,  209,  259,
    824       263,  260,  293,  209,  209,   86,   86,  209,  209,   86,
    825       259,  851,  260,  328,   86,  209,  301,  353,  209,  354,
    826 
    827       209,  212,  209,  142,  213,  215,  302,  280,  143,  216,
    828       217,   86,   86,   86,  218,  219,  281,  220,  102,  221,
    829       104,  104,  104,  104,  104,  104,   86,  274,  222,  223,
    830       224,  311,  305,  241,  275,  241,   86,  105,  242,  242,
    831       242,  242,  242,  242,   86,   86,   86,   86,  294,  225,
    832       298,   86,  226,  240,   86,   86,  306,  296,  297,  105,
    833       283,   86,  284,  299,  285,  286,  308,   86,  287,  309,
    834       288,  243,   86,  304,  307,  289,  290,  291,  310,  292,
    835       227,  231,  231,  231,  231,  231,  231,   86,   86,  317,
    836        86,   86,   86,   86,  313,  318,   86,   86,  232,  233,
    837 
    838        86,   86,  233,  315,  327,  142,   86,  319,  323,  314,
    839       316,  322,  398,  336,  234,   86,  339,  320,  321,   86,
    840       232,  233,   86,   86,  325,  324,  233,   98,   98,   98,
    841        98,   98,   98,  329,  330,  332,  334,   86,  335,  326,
    842        86,   86,  340,  333,  232,  233,  207,  208,  233,   86,
    843       392,  207,  331,  195,   80,   81,   81,   81,  195,  393,
    844       237,  196,   86,  198,  199,  556,  232,  233,  198,  198,
    845       199,  353,  233,  354,  198,  337,  199,  353,  395,  354,
    846       337,  353,  338,  354,  200,  200,  200,  200,  200,  200,
     792       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
     793       71,   71,   71,   70,   70,   70,   70,   75,   75,   78,
     794       78,  122,  123,   89,  140,   78,   78,   86,   75,   75,
     795       79,   80,   81,   81,   81,   79,   81,   80,   82,   82,
     796
     797       82,   81,   90,   92,  141,  145,   86,   97,   94,   98,
     798       98,   98,   98,   98,   98,  250,  861,   93,   99,   84,
     799       95,   96,   84,  100,  176,  117,   76,   76,   76,   76,
     800      142,  146,   86,  101,  102,  143,  103,  103,  103,  103,
     801      104,  104,  118,   86,  119,  120,  147,   86,  148,  252,
     802      258,   86,  160,  105,  193,  192,  106,   86,   86,  149,
     803      150,  151,  107,  108,  152,  153,  181,  154,  109,   86,
     804      155,  156,   86,   86,  105,   86,  144,  161,  157,  158,
     805      110,  159,  204,  261,  162,  262,   86,  179,  107,  228,
     806      163,  108,  102,  180,  111,  111,  111,  111,  111,  111,
     807
     808       86,  168,   86,  169,  194,   86,   86,   86,  205,  164,
     809       86,  105,  170,  165,  112,  229,  177,   86,  166,  186,
     810      113,  281,  167,  178,  269,   86,  114,  187,  191,  182,
     811      183,  142,  105,  261,  188,  262,  143,  284,  115,  184,
     812       86,   86,  185,  198,  199,  171,  113,  124,  198,  189,
     813      270,  125,  126,  172,  127,  173,  128,  129,  174,  130,
     814      248,  131,  175,  256,  200,  200,  200,  200,  200,  200,
     815      132,  133,  134,  261,   86,  262,   86,  144,  195,   80,
     816       81,   81,   81,  195,  249,  280,  196,  257,   86,  861,
     817      135,  190,   86,  136,   79,   80,   81,   81,   81,   79,
     818
     819       81,   80,   81,   81,   81,   81,   81,   80,   82,   82,
     820       82,   81,  261,  304,  262,  240,  240,  240,  240,  246,
     821      137,  138,  207,  208,  861,  247,  254,  207,   86,  209,
     822      247,  261,  255,  262,  209,   98,   98,   98,   98,   98,
     823       98,  263,  861,  210,  210,  210,  210,  241,  246,  307,
     824      861,  247,  263,  261,  209,  262,  247,  102,  255,  104,
     825      104,  104,  104,  104,  104,   86,  261,  239,  262,  211,
     826      861,  261,  209,  262,   86,  255,  105,  209,  209,  861,
     827      276,  209,  209,   86,  253,  264,  261,  277,  262,  209,
     828      295,  242,  209,  254,  209,  212,  209,  105,  213,  215,
     829
     830      261,  255,  262,  216,  217,  283,   86,  861,  218,  219,
     831      243,  220,  243,  221,   86,  244,  244,  244,  244,  244,
     832      244,   86,  222,  223,  224,  261,  265,  262,  142,  305,
     833       86,   86,  278,  143,   86,   86,  285,   86,  286,  279,
     834      287,  288,  225,   86,  289,  226,  290,  245,  282,   86,
     835       86,  291,  292,  293,   86,  294,  296,  314,  297,  300,
     836       86,   86,  306,   86,  298,  299,  308,  302,   86,   86,
     837      303,   86,  301,  227,  231,  231,  231,  231,  231,  231,
     838       86,   86,   86,  311,  309,  310,  312,   86,   86,   86,
     839      232,  233,   86,  234,  235,   86,   86,  320,  313,   86,
     840
     841      327,  142,  317,   86,  316,  319,  236,  324,  315,  318,
     842      321,  232,  233,  232,  325,  328,  234,   86,  235,   86,
     843      322,  323,   86,  331,   86,   86,  355,   86,  356,   86,
     844      329,  326,  341,  355,  355,  356,  356,  334,  336,  330,
     845      337,  332,  338,  374,   86,  335,   86,  333,  195,   80,
     846       81,   81,   81,  195,  198,  199,  196,   86,  342,  198,
     847      198,  199,  400,  207,  208,  198,  339,  199,  207,  374,
     848      355,  339,  356,  340,  401,  200,  200,  200,  200,  200,
    847849      200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
    848 
    849       200,  200,  345,  345,  345,  345,  354,  354,  355,  353,
    850       353,  354,  354,  353,  356,  354,  353,  851,  354,  353,
    851       353,  354,  354,  353,  362,  354,  362,   86,   86,  363,
    852       363,  363,  363,  363,  363,  346,  231,  231,  231,  231,
    853       231,  231,  232,  233,  396,  369,  233,  379,  259,  259,
    854       260,  260,  366,  232,  233,   86,   86,  233,   86,   86,
    855       397,   86,  364,  399,  232,  233,  409,   86,  381,  234,
    856       233,  369,   86,  379,  394,  232,  233,   86,   86,  400,
    857       411,  233,  104,  104,  104,  104,  104,  104,  242,  242,
    858       242,  242,  242,  242,  382,   86,  404,   86,  405,  105,
    859 
    860        86,  367,  367,  367,  367,  367,  367,  372,   86,  410,
    861       401,   86,  406,   86,   86,  251,  402,  403,  241,  233,
    862       241,  105,  233,  242,  242,  242,  242,  242,  242,  413,
    863       374,  414,  375,   86,  368,  412,  376,   86,  415,   86,
    864        86,  233,  377,   86,   86,  422,  233,  104,  104,  104,
    865       104,  104,  104,  416,  378,  407,  408,  418,  375,   86,
    866        86,  419,  376,  111,  111,  111,  111,  111,  111,   86,
    867        86,   86,   86,   86,   86,  423,  417,  424,  425,  427,
    868       251,  420,  421,  426,   86,   86,   86,   86,  428,   86,
    869        86,  431,  432,  429,  433,   86,  256,   86,   86,   86,
    870 
    871       430,   86,   86,   86,   86,   86,   86,   86,   86,  435,
    872       437,  434,  142,  436,  439,  440,  445,   86,   86,   86,
    873       441,  444,   86,  443,  442,   86,   86,  446,  450,  447,
    874       448,  454,  353,   86,  354,  449,  451,  455,  452,  337,
    875       199,  199,  507,  353,  337,  354,  338,  197,  209,  209,
    876       209,  209,  345,  345,  345,  345,   86,  363,  363,  363,
    877       363,  363,  363,   86,  476,  476,  476,  476,  476,  476,
    878       362,  488,  362,   86,  503,  363,  363,  363,  363,  363,
    879       363,  465,  233,  644,  480,  233,  231,  231,  231,  231,
    880       231,  231,   86,   86,  481,  489,   86,  477,  238,  238,
    881 
    882       238,  238,  104,  104,  233,  509,  512,  480,  504,  233,
    883       480,  367,  367,  367,  367,  367,  367,  482,   86,  365,
    884       367,  367,  367,  367,  367,  367,   86,   86,   86,  233,
    885       483,  366,  233,  480,  372,  511,  484,  506,  233,  528,
    886       485,  233,  485,  505,  368,  486,  486,  486,  486,  486,
    887       486,  233,   86,  478,  484,   86,  233,  374,   86,  375,
    888       233,  851,  484,  376,   86,  233,  508,   86,   86,  377,
    889        86,   86,  483,   86,  510,  524,  518,   86,  487,   86,
    890       484,  378,  519,  513,  374,  375,  375,  515,  516,  376,
    891       376,   86,  514,   86,  520,  517,  490,  522,   86,   86,
    892 
    893        86,  521,   86,   86,   86,   86,   86,   86,  378,   86,
    894        86,  534,  375,  527,  523,  526,  376,  525,  531,  536,
    895        86,  535,  532,  529,   86,  530,   86,  533,   86,  539,
    896        86,   86,   86,   86,   86,  537,   86,   86,   86,   86,
    897        86,  540,  544,   86,  538,  542,   86,   86,   86,  545,
    898       541,  543,  551,  553,  554,  555,  548,  546,  547,  549,
    899       550,   86,   86,   86,  552,   86,   86,   86,  199,  557,
    900       691,   86,   86,  560,  563,  562,  480,  480,  585,  558,
    901       559,  209,  209,  209,  209,  603,  481,  561,  476,  476,
    902       476,  476,  476,  476,  476,  476,  476,  476,  476,  476,
    903 
    904       480,   86,  480,  480,  585,   86,  233,  851,   86,  233,
    905       584,   86,  233,   86,   86,  233,   86,   86,  602,   86,
    906       604,  477,  609,   86,  610,   86,  480,  580,  233,  606,
    907       607,  605,  608,  233,  233,  614,  617,   86,   86,  233,
    908       367,  367,  367,  367,  367,  367,  581,  615,  581,  627,
    909       618,  582,  582,  582,  582,  582,  582,  486,  486,  486,
    910       486,  486,  486,   86,  586,  586,  586,  586,  586,  586,
    911       485,   86,  485,  478,   86,  486,  486,  486,  486,  486,
    912       486,   86,  587,  612,  583,  587,  616,   86,   86,   86,
    913       613,  622,   86,   86,   86,  625,  620,  588,  623,  624,
    914 
    915        86,   86,  626,   86,  587,   86,   86,  629,   86,  587,
    916       621,   86,   86,   86,  631,  632,   86,  628,  630,   86,
    917        86,  637,   86,  634,   86,  633,   86,  635,  636,  638,
    918        86,  639,   86,   86,   86,   86,  648,  641,  643,  645,
    919        86,  640,   86,  642,  649,   86,  647,   86,   86,   86,
    920       650,   86,   86,   86,  697,  646,  683,  684,   86,  688,
    921       652,  689,  651,  476,  476,  476,  476,  476,  476,  582,
    922       582,  582,  582,  582,  582,  686,  670,  670,  670,  670,
    923       670,  670,  581,   86,  581,   86,   86,  582,  582,  582,
    924       582,  582,  582,  714,  587,   86,  580,  587,  685,  586,
    925 
    926       586,  586,  586,  586,  586,   86,  687,   86,  692,  671,
    927       586,  586,  586,  586,  586,  586,  587,  587,   86,   86,
    928       587,  587,  690,  681,   86,   86,  699,   86,  587,  694,
    929        86,  587,  588,   86,  693,   86,  682,   86,   86,  587,
    930        86,  695,  700,  672,  587,   86,  702,  696,  703,  705,
    931       587,   86,  698,  701,   86,  587,   86,   86,   86,   86,
    932       704,   86,   86,   86,   86,   86,  709,  706,   86,   86,
    933       713,  715,   86,  717,  707,  716,   86,   86,  708,  710,
    934       712,   86,  733,  718,  777,  711,  670,  670,  670,  670,
    935       670,  670,  670,  670,  670,  670,  670,  670,  732,   86,
    936 
    937        86,  737,  734,   86,  587,  736,  735,  587,   86,   86,
    938       587,  738,  739,  587,   86,   86,  745,  851,   86,  671,
    939       741,  740,  748,   86,  742,  725,  587,   86,  752,   86,
    940       743,  587,  587,   86,   86,   86,  746,  587,  586,  586,
    941       586,  586,  586,  586,  744,   86,   86,   86,   86,   86,
    942       749,   86,   86,   86,   86,  747,  754,  756,   86,  751,
    943        86,   86,  750,  755,   86,  753,   86,   86,   86,  760,
    944        86,  672,   86,  757,   86,  761,  783,  778,   86,  776,
    945       758,  759,  670,  670,  670,  670,  670,  670,  774,  775,
    946       780,   86,   86,  779,  781,   86,   86,   86,  784,  785,
    947 
    948        86,  790,   86,   86,   86,  782,  787,  786,   86,   86,
    949        86,  788,  789,   86,   86,  725,  808,   86,   86,   86,
    950       812,  810,   86,   86,   86,  791,  813,  815,   86,   86,
    951        86,  806,  807,  816,   86,   86,  805,  811,  817,  809,
    952        86,   86,   86,   86,  814,  830,   86,  829,   86,  828,
    953       818,  819,  831,   86,   86,   86,  832,  834,  833,   86,
    954        86,   86,  835,   86,  836,   86,   86,   86,  841,  837,
    955       840,   86,   86,   86,  842,  843,  844,   86,   86,   86,
    956       845,  847,  848,   86,   86,  846,  849,  851,  851,  850,
    957        68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
    958 
    959        68,   68,   68,   74,   74,   74,   74,   74,   74,   74,
    960        74,   74,   74,   74,   74,   74,   77,   77,   77,   77,
    961        77,   77,   77,   77,   77,   77,   77,   77,   77,   85,
    962       839,  851,   85,  851,   85,   85,   85,   85,   85,  139,
    963       851,  851,  838,  139,  139,  139,  139,  139,  139,  197,
     850      200,  200,  200,  347,  347,  347,  347,  356,  356,  357,
     851
     852      355,  355,  356,  356,  355,  358,  356,  355,  364,  356,
     853      355,  355,  356,  356,  355,  368,  356,  861,  369,  368,
     854      384,  365,  261,  365,  262,  348,  366,  366,  366,  366,
     855      366,  366,  364,  261,   86,  262,  368,   86,  368,  369,
     856       86,  369,  386,  368,  232,  233,  384,  234,  235,  411,
     857      397,  371,  104,  104,  104,  104,  104,  104,  367,  244,
     858      244,  244,  244,  244,  244,  232,  233,  232,  387,  105,
     859      234,  243,  235,  243,   86,  377,  244,  244,  244,  244,
     860      244,  244,   86,   86,  253,   86,   86,  416,   86,   86,
     861      105,  372,  372,  372,  372,  372,  372,  379,  415,  380,
     862
     863      398,  399,   86,  381,  433,  403,  405,  232,   86,  382,
     864      234,  235,  104,  104,  104,  104,  104,  104,   86,   86,
     865      409,  383,   86,  373,  402,  380,   86,  404,  232,  381,
     866      232,   86,   86,  234,  410,  235,  111,  111,  111,  111,
     867      111,  111,  412,  413,  253,   86,  406,   86,   86,   86,
     868      414,   86,  407,  408,  420,   86,   86,   86,   86,  417,
     869      421,   86,  422,   86,   86,  418,  419,   86,  258,  427,
     870      431,   86,  428,   86,   86,  424,  423,  429,   86,  425,
     871      426,   86,  430,  434,  432,   86,  436,   86,  435,   86,
     872      437,   86,  438,   86,   86,   86,   86,   86,   86,   86,
     873
     874       86,   86,   86,  142,  442,  443,   86,   86,  440,  439,
     875      444,  441,  445,   86,   86,  449,  450,   86,  446,   86,
     876      447,  448,  451,  455,   86,  452,   86,   86,  453,  459,
     877       86,  454,  457,  199,  458,  456,  339,  199,  355,  197,
     878      356,  339,  460,  340,  532,   86,   86,  209,  209,  209,
     879      209,  347,  347,  347,  347,  355,  508,  356,  366,  366,
     880      366,  366,  366,  366,  365,   86,  365,  485,  485,  366,
     881      366,  366,  366,  366,  366,   86,  513,  486,  487,  470,
     882      481,  481,  481,  481,  481,  481,  231,  231,  231,  231,
     883      231,  231,  493,  485,  485,   86,  232,  489,   86,  234,
     884
     885      235,  240,  240,  240,  240,  104,  104,  488,   86,   86,
     886      377,  509,  482,  489,  518,  488,  494,  232,  370,  232,
     887       86,  517,  234,  489,  235,  372,  372,  372,  372,  372,
     888      372,  515,  379,  371,  380,  510,   86,  861,  381,  489,
     889      490,  861,  490,   86,  382,  491,  491,  491,  491,  491,
     890      491,   86,  512,   86,   86,  511,  383,  373,   86,  379,
     891      380,  380,  514,  516,  381,  381,   86,   86,   86,   86,
     892      861,  495,  849,  519,  520,  521,   86,  492,   86,   86,
     893       86,  524,   86,  383,  531,  523,  527,  380,  522,  528,
     894      529,  381,   86,  525,   86,   86,   86,   86,   86,   86,
     895
     896      526,  530,   86,   86,  533,  536,   86,   86,  539,  537,
     897       86,   86,  541,  540,  542,  534,   86,  535,   86,   86,
     898      538,   86,   86,   86,   86,  545,  543,   86,  549,  544,
     899       86,  547,   86,  546,   86,   86,   86,  485,  548,  550,
     900       86,  556,  626,  553,  551,  552,   86,  554,   86,  558,
     901       86,   86,  555,  557,  562,  559,   86,  560,   86,  561,
     902       86,  618,  566,  485,  563,  199,   86,  565,  564,  567,
     903       86,  568,  209,  209,  209,  209,  481,  481,  481,  481,
     904      481,  481,  372,  372,  372,  372,  372,  372,  614,   86,
     905      485,  485,  232,  590,   86,  234,  235,  586,   86,  586,
     906
     907      486,  589,  587,  587,  587,  587,  587,  587,  482,  612,
     908      641,  609,   86,  232,  483,  232,  485,  485,  234,  590,
     909      235,  491,  491,  491,  491,  491,  491,  611,   86,   86,
     910       86,   86,   86,   86,  588,  591,  591,  591,  591,  591,
     911      591,  610,  613,  615,   86,  654,   86,   86,   86,  616,
     912      620,  592,  619,  623,  593,  594,  490,  617,  490,   86,
     913       86,  491,  491,  491,  491,  491,  491,  595,  621,  622,
     914      624,   86,  592,   86,  592,   86,   86,  593,   86,  594,
     915       86,   86,  627,  632,  625,  631,   86,  630,   86,   86,
     916      633,   86,   86,  629,   86,   86,   86,  628,   86,   86,
     917
     918       86,   86,   86,  638,  639,  635,  636,  637,   86,   86,
     919      645,   86,  634,  640,  642,  643,  644,  646,   86,  649,
     920      647,   86,  648,   86,   86,   86,  650,  655,   86,   86,
     921      652,  651,   86,   86,  656,   86,   86,   86,  657,  679,
     922       86,  861,  659,  693,  694,  699,  653,  698,   86,  658,
     923      481,  481,  481,  481,  481,  481,  587,  587,  587,  587,
     924      587,  587,  586,  679,  586,  696,   86,  587,  587,  587,
     925      587,  587,  587,  591,  591,  591,  591,  591,  591,  695,
     926       86,   86,  585,  677,  677,  677,  677,  677,  677,  680,
     927      681,   86,   86,  680,   86,  701,  691,  700,  861,  592,
     928
     929      861,   86,  593,  594,  697,  595,   86,  702,   86,  692,
     930      680,  681,  680,  681,   86,  678,  703,  680,   86,   86,
     931      592,  707,  592,  709,   86,  593,   86,  594,  704,   86,
     932      706,  705,   86,   86,   86,   86,  708,   86,  712,  710,
     933       86,   86,   86,  715,   86,   86,  711,   86,  861,   86,
     934       86,  713,  724,  719,  714,   86,   86,  716,  723,   86,
     935      717,  720,  718,   86,  722,  725,   86,   86,  727,  721,
     936      728,   86,  746,  726,  677,  677,  677,  677,  677,  677,
     937      591,  591,  591,  591,  591,  591,   86,  742,   86,   86,
     938      592,   86,   86,  593,  594,  745,  743,  744,   86,   86,
     939
     940      752,  748,  749,   86,   86,  755,  678,  753,   86,  747,
     941      750,  592,  682,  592,  751,  758,  593,   86,  594,   86,
     942      756,   86,   86,   86,  754,  759,   86,   86,  757,   86,
     943       86,  761,   86,   86,  760,   86,  762,   86,   86,  765,
     944       86,   86,  763,   86,   86,   86,   86,   86,  764,  770,
     945      786,   86,  771,   86,  793,  766,  769,  767,   86,  787,
     946      768,  677,  677,  677,  677,  677,  677,  784,  785,   86,
     947       86,  792,  790,  791,   86,   86,  789,  794,  795,  788,
     948       86,   86,   86,   86,   86,  797,  798,  796,   86,   86,
     949       86,   86,   86,  735,   86,   86,   86,  818,  820,  799,
     950
     951      822,   86,   86,   86,   86,  823,  825,   86,   86,  817,
     952      826,  800,  801,  816,   86,   86,   86,  815,  819,  821,
     953       86,   86,   86,  827,  828,   86,  824,  839,  848,   86,
     954      841,  829,  840,   86,   86,   86,  842,  838,  844,  843,
     955       86,   86,   86,  845,   86,   86,   86,   86,  852,  853,
     956      846,  847,  851,  850,   86,   86,   86,  854,  855,   86,
     957       86,   86,   86,  858,  859,   86,   86,   86,   86,  861,
     958      861,  837,  861,  836,  857,  861,  856,  834,  861,  833,
     959      861,  832,  861,  831,  860,   68,   68,   68,   68,   68,
     960       68,   68,   68,   68,   68,   68,   68,   68,   74,   74,
     961
     962       74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
     963       74,   77,   77,   77,   77,   77,   77,   77,   77,   77,
     964       77,   77,   77,   77,   85,   86,   86,   85,   86,   85,
     965       85,   85,   85,   85,  139,  861,  814,  861,  139,  139,
     966      139,  139,  139,  139,  197,  197,  197,  197,  197,  197,
     967      197,  197,  197,  197,  197,  197,  197,  202,  813,  811,
     968      202,  861,  202,  202,  202,  202,  202,  206,  809,  206,
     969      206,  861,  206,  206,  206,  206,  206,  206,  807,  206,
     970      214,  861,  805,  214,  214,  214,  214,  214,  214,  214,
     971      214,  803,  214,  237,  237,  237,  237,  237,  237,  237,
     972
     973      237,  237,  237,  237,  237,  237,  251,  251,   86,  251,
     974       86,   86,   86,  251,  267,   86,   86,  267,   86,  267,
     975      267,  267,  267,  267,  271,   86,  271,   86,   86,   86,
     976      271,  273,   86,  273,  861,  783,  781,  273,  343,  861,
     977      343,  861,  778,  776,  343,  345,  774,  345,   86,   86,
     978       86,  345,  349,   86,  349,   86,   86,   86,  349,  351,
     979       86,  351,  741,  738,  737,  351,  353,  735,  353,  203,
     980      731,  730,  353,  360,  661,  360,   86,   86,   86,  360,
     981      362,   86,  362,   86,   86,   86,  362,  237,  237,  237,
     982      237,  237,  237,  237,  237,  237,  237,  237,  237,  237,
     983
     984      376,   86,  376,  378,  378,   86,  378,  378,  378,   86,
     985      378,  251,  251,   86,  251,  388,   86,  388,   86,   86,
     986       86,  388,  390,  689,  390,  688,  686,  684,  390,  392,
     987      682,  392,  589,  676,  675,  392,  271,  673,  271,  394,
     988      671,  394,  669,  667,  665,  394,  273,  663,  273,   85,
     989      661,   86,   85,   86,   85,   85,   85,   85,   85,  197,
    964990      197,  197,  197,  197,  197,  197,  197,  197,  197,  197,
    965       197,  197,  202,   86,   86,  202,   86,  202,  202,  202,
    966       202,  202,  206,   86,  206,  206,   86,  206,  206,  206,
    967       206,  206,  206,  851,  206,  214,  851,  827,  214,  214,
    968       214,  214,  214,  214,  214,  214,  851,  214,  235,  235,
    969 
    970       235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
    971       235,  249,  249,  826,  249,  851,  824,  851,  249,  265,
    972       823,  851,  265,  822,  265,  265,  265,  265,  265,  269,
    973       851,  269,  821,   86,   86,  269,  271,   86,  271,  851,
    974       804,  851,  271,  341,  803,  341,  801,  851,  799,  341,
    975       343,  851,  343,  797,  851,  795,  343,  347,  793,  347,
    976        86,   86,   86,  347,  349,   86,  349,   86,   86,   86,
    977       349,  351,   86,  351,   86,   86,   86,  351,  358,   86,
    978       358,  851,  773,  771,  358,  360,  851,  360,  851,  768,
    979       766,  360,  235,  235,  235,  235,  235,  235,  235,  235,
    980 
    981       235,  235,  235,  235,  235,  371,  764,  371,  373,  373,
    982       851,  373,  373,  373,   86,  373,  249,  249,   86,  249,
    983       383,   86,  383,   86,   86,   86,  383,  385,   86,  385,
    984        86,  731,  728,  385,  387,  727,  387,  203,  721,  720,
    985       387,  269,  654,  269,  389,   86,  389,   86,   86,   86,
    986       389,  271,   86,  271,   85,   86,   86,   85,   86,   85,
    987        85,   85,   85,   85,  197,  197,  197,  197,  197,  197,
    988       197,  197,  197,  197,  197,  197,  197,  456,  456,  456,
    989       456,  456,  456,  456,  456,  456,  456,  456,  456,  456,
    990       457,   86,  457,   86,   86,   86,  457,  459,   86,  459,
    991 
    992        86,   86,  679,  459,  461,  678,  461,  676,  674,  584,
    993       461,  341,  669,  341,  463,  668,  463,  666,  664,  662,
    994       463,  343,  660,  343,  466,  658,  466,  656,  654,   86,
    995       466,  347,   86,  347,  468,   86,  468,   86,   86,   86,
    996       468,  349,   86,  349,  470,   86,  470,   86,  601,  599,
    997       470,  351,  597,  351,  472,  595,  472,  593,  591,  490,
    998       472,  358,  589,  358,  474,  589,  474,  579,  577,  471,
    999       474,  360,  471,  360,  479,  575,  479,  573,  479,  571,
    1000       479,  371,  569,  371,  567,  371,  565,  371,  373,  373,
    1001        86,  373,  373,  373,   86,  373,  491,   86,  491,   86,
    1002 
    1003        86,   86,  491,  493,   86,  493,   86,  502,  500,  493,
    1004       495,  498,  495,  496,  494,  492,  495,  383,  475,  383,
    1005       497,  473,  497,  354,  354,  471,  497,  385,  469,  385,
    1006       499,  467,  499,  464,  462,  460,  499,  387,  458,  387,
    1007       501,   86,  501,   86,   86,  391,  501,  389,  390,  389,
    1008        85,  388,  386,   85,  384,   85,   85,   85,   85,   85,
    1009       456,  456,  456,  456,  456,  456,  456,  456,  456,  456,
    1010       456,  456,  456,  564,  266,  564,  261,  260,  380,  564,
    1011       457,  380,  457,  566,  248,  566,  370,  370,  236,  566,
    1012       459,  365,  459,  568,  361,  568,  359,  357,  353,  568,
    1013 
    1014       461,  352,  461,  570,  350,  570,  348,  344,  342,  570,
    1015       463,  203,  463,  572,  199,  572,   86,  273,  272,  572,
    1016       466,  270,  466,  574,  266,  574,  261,  264,  261,  574,
    1017       468,  259,  468,  470,  258,  470,  257,  236,  230,  470,
    1018       576,   84,  576,   84,   86,  203,  576,  472,  201,  472,
    1019       578,   84,  578,  121,  116,   86,  578,  474,  851,  474,
    1020       479,   69,  479,   69,  479,  851,  479,  373,  851,  373,
    1021       851,  851,  851,  373,  590,  851,  590,  851,  851,  851,
    1022       590,  491,  851,  491,  592,  851,  592,  851,  851,  851,
    1023       592,  493,  851,  493,  594,  851,  594,  851,  851,  851,
    1024 
    1025       594,  495,  851,  495,  596,  851,  596,  851,  851,  851,
    1026       596,  497,  851,  497,  598,  851,  598,  851,  851,  851,
    1027       598,  499,  851,  499,  600,  851,  600,  851,  851,  851,
    1028       600,  501,  851,  501,   85,  851,  851,   85,  851,   85,
    1029        85,   85,   85,   85,  653,  653,  653,  653,  653,  653,
    1030       653,  653,  653,  653,  653,  653,  653,  655,  851,  655,
    1031       851,  851,  851,  655,  564,  851,  564,  657,  851,  657,
    1032       851,  851,  851,  657,  566,  851,  566,  659,  851,  659,
    1033       851,  851,  851,  659,  568,  851,  568,  661,  851,  661,
    1034       851,  851,  851,  661,  570,  851,  570,  663,  851,  663,
    1035 
    1036       851,  851,  851,  663,  572,  851,  572,  665,  851,  665,
    1037       851,  851,  851,  665,  574,  851,  574,  667,  851,  667,
    1038       851,  851,  851,  667,  576,  851,  576,   85,  851,   85,
    1039       851,  851,  851,   85,  578,  851,  578,  479,  851,  479,
    1040       851,  851,  851,  479,  673,  851,  673,  851,  851,  851,
    1041       673,  590,  851,  590,  675,  851,  675,  851,  851,  851,
    1042       675,  592,  851,  592,  677,  851,  677,  851,  851,  851,
    1043       677,  594,  851,  594,  139,  851,  139,  851,  851,  851,
    1044       139,  596,  851,  596,  680,  851,  680,  598,  851,  598,
    1045        85,  851,  851,   85,  851,   85,   85,   85,   85,   85,
    1046 
    1047       600,  851,  600,  653,  653,  653,  653,  653,  653,  653,
    1048       653,  653,  653,  653,  653,  653,  719,  851,  719,  851,
    1049       851,  851,  719,  655,  851,  655,  202,  851,  202,  851,
    1050       851,  851,  202,  657,  851,  657,  722,  851,  722,  659,
    1051       851,  659,  202,  851,  851,  202,  851,  202,  202,  202,
    1052       202,  202,  661,  851,  661,  723,  851,  723,  663,  851,
    1053       663,  665,  851,  665,  724,  851,  724,  667,  851,  667,
    1054        85,  851,   85,  726,  851,  726,  851,  851,  851,  726,
    1055       673,  851,  673,  265,  851,  265,  851,  851,  851,  265,
    1056       675,  851,  675,  729,  851,  729,  677,  851,  677,  139,
    1057 
    1058       851,  139,  730,  851,  730,  851,  851,  851,  730,   85,
    1059       851,  851,   85,  851,   85,   85,   85,   85,   85,  762,
    1060       851,  762,  719,  851,  719,  763,  851,  763,  851,  851,
    1061       851,  763,  765,  851,  765,  851,  851,  851,  765,  767,
    1062       851,  767,  851,  851,  851,  767,  769,  851,  769,  770,
    1063       851,  770,  851,  851,  851,  770,  772,  851,  772,  851,
    1064       851,  851,  772,  792,  851,  792,  851,  851,  851,  792,
    1065       794,  851,  794,  851,  851,  851,  794,  796,  851,  796,
    1066       851,  851,  851,  796,  798,  851,  798,  851,  851,  851,
    1067       798,  800,  851,  800,  851,  851,  851,  800,  802,  851,
    1068 
    1069       802,  851,  851,  851,  802,  600,  851,  600,  851,  851,
    1070       851,  600,  820,  851,  820,  851,  851,  851,  820,  661,
    1071       851,  661,  851,  851,  851,  661,  665,  851,  665,  851,
    1072       851,  851,  665,   85,  851,   85,  851,  851,  851,   85,
    1073       825,  851,  825,  851,  851,  851,  825,  139,  851,  139,
    1074       851,  851,  851,  139,  202,  851,  202,  851,  851,  851,
    1075       202,   11,  851,  851,  851,  851,  851,  851,  851,  851,
    1076       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    1077       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    1078       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    1079 
    1080       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    1081       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    1082       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    1083       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    1084       851,  851,  851,  851,  851,  851,  851
     991      197,  197,  461,  461,  461,  461,  461,  461,  461,  461,
     992      461,  461,  461,  461,  461,  462,   86,  462,   86,   86,
     993       86,  462,  464,   86,  464,   86,   86,  608,  464,  466,
     994
     995      606,  466,  604,  602,  600,  466,  343,  598,  343,  468,
     996      495,  468,  596,  596,  585,  468,  345,  584,  345,  471,
     997      582,  471,  476,  476,  580,  471,  349,  578,  349,  473,
     998      576,  473,  574,  572,  570,  473,  351,   86,  351,  475,
     999       86,  475,   86,   86,   86,  475,  353,   86,  353,  477,
     1000       86,  477,   86,  507,  505,  477,  360,  503,  360,  479,
     1001      501,  479,  499,  497,  483,  479,  362,  480,  362,  484,
     1002      478,  484,  356,  484,  356,  484,  376,  476,  376,  474,
     1003      376,  472,  376,  378,  378,  469,  378,  378,  378,  467,
     1004      378,  496,  465,  496,  463,   86,   86,  496,  498,   86,
     1005
     1006      498,  396,  395,  393,  498,  500,  391,  500,  389,  268,
     1007      263,  500,  388,  262,  388,  502,  385,  502,  385,  250,
     1008      375,  502,  390,  375,  390,  504,  238,  504,  370,  363,
     1009      361,  504,  392,  359,  392,  506,  355,  506,  354,  352,
     1010      350,  506,  394,  346,  394,   85,  344,  203,   85,  199,
     1011       85,   85,   85,   85,   85,  461,  461,  461,  461,  461,
     1012      461,  461,  461,  461,  461,  461,  461,  461,  569,   86,
     1013      569,  275,  274,  272,  569,  462,  268,  462,  571,  263,
     1014      571,  266,  263,  261,  571,  464,  260,  464,  573,  259,
     1015      573,  238,  230,   84,  573,  466,   84,  466,  575,   86,
     1016
     1017      575,  203,  201,   84,  575,  468,  121,  468,  577,  116,
     1018      577,   86,  861,   69,  577,  471,   69,  471,  579,  861,
     1019      579,  861,  861,  861,  579,  473,  861,  473,  475,  861,
     1020      475,  861,  861,  861,  475,  581,  861,  581,  861,  861,
     1021      861,  581,  477,  861,  477,  583,  861,  583,  861,  861,
     1022      861,  583,  479,  861,  479,  484,  861,  484,  861,  484,
     1023      861,  484,  378,  861,  378,  861,  861,  861,  378,  597,
     1024      861,  597,  861,  861,  861,  597,  496,  861,  496,  599,
     1025      861,  599,  861,  861,  861,  599,  498,  861,  498,  601,
     1026      861,  601,  861,  861,  861,  601,  500,  861,  500,  603,
     1027
     1028      861,  603,  861,  861,  861,  603,  502,  861,  502,  605,
     1029      861,  605,  861,  861,  861,  605,  504,  861,  504,  607,
     1030      861,  607,  861,  861,  861,  607,  506,  861,  506,   85,
     1031      861,  861,   85,  861,   85,   85,   85,   85,   85,  660,
     1032      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
     1033      660,  660,  662,  861,  662,  861,  861,  861,  662,  569,
     1034      861,  569,  664,  861,  664,  861,  861,  861,  664,  571,
     1035      861,  571,  666,  861,  666,  861,  861,  861,  666,  573,
     1036      861,  573,  668,  861,  668,  861,  861,  861,  668,  575,
     1037      861,  575,  670,  861,  670,  861,  861,  861,  670,  577,
     1038
     1039      861,  577,  672,  861,  672,  861,  861,  861,  672,  579,
     1040      861,  579,  674,  861,  674,  861,  861,  861,  674,  581,
     1041      861,  581,   85,  861,   85,  861,  861,  861,   85,  583,
     1042      861,  583,  484,  861,  484,  861,  861,  861,  484,  683,
     1043      861,  683,  861,  861,  861,  683,  597,  861,  597,  685,
     1044      861,  685,  861,  861,  861,  685,  599,  861,  599,  687,
     1045      861,  687,  861,  861,  861,  687,  601,  861,  601,  139,
     1046      861,  139,  861,  861,  861,  139,  603,  861,  603,  690,
     1047      861,  690,  605,  861,  605,   85,  861,  861,   85,  861,
     1048       85,   85,   85,   85,   85,  607,  861,  607,  660,  660,
     1049
     1050      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
     1051      660,  729,  861,  729,  861,  861,  861,  729,  662,  861,
     1052      662,  202,  861,  202,  861,  861,  861,  202,  664,  861,
     1053      664,  732,  861,  732,  666,  861,  666,  202,  861,  861,
     1054      202,  861,  202,  202,  202,  202,  202,  668,  861,  668,
     1055      733,  861,  733,  670,  861,  670,  672,  861,  672,  734,
     1056      861,  734,  674,  861,  674,   85,  861,   85,  736,  861,
     1057      736,  861,  861,  861,  736,  683,  861,  683,  267,  861,
     1058      267,  861,  861,  861,  267,  685,  861,  685,  739,  861,
     1059      739,  687,  861,  687,  139,  861,  139,  740,  861,  740,
     1060
     1061      861,  861,  861,  740,   85,  861,  861,   85,  861,   85,
     1062       85,   85,   85,   85,  772,  861,  772,  729,  861,  729,
     1063      202,  861,  202,  773,  861,  773,  861,  861,  861,  773,
     1064      775,  861,  775,  861,  861,  861,  775,  777,  861,  777,
     1065      861,  861,  861,  777,  779,  861,  779,  780,  861,  780,
     1066      861,  861,  861,  780,  782,  861,  782,  861,  861,  861,
     1067      782,  802,  861,  802,  861,  861,  861,  802,  804,  861,
     1068      804,  861,  861,  861,  804,  806,  861,  806,  861,  861,
     1069      861,  806,  808,  861,  808,  861,  861,  861,  808,  810,
     1070      861,  810,  861,  861,  861,  810,  812,  861,  812,  861,
     1071
     1072      861,  861,  812,  607,  861,  607,  861,  861,  861,  607,
     1073      830,  861,  830,  861,  861,  861,  830,  668,  861,  668,
     1074      861,  861,  861,  668,  672,  861,  672,  861,  861,  861,
     1075      672,   85,  861,   85,  861,  861,  861,   85,  835,  861,
     1076      835,  861,  861,  861,  835,  139,  861,  139,  861,  861,
     1077      861,  139,  202,  861,  202,  861,  861,  861,  202,   11,
     1078      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     1079      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     1080      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     1081      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     1082
     1083      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     1084      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     1085      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     1086      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     1087      861,  861,  861,  861
    10851088    } ;
    10861089
    1087 static yyconst flex_int16_t yy_chk[2848] =
     1090static yyconst flex_int16_t yy_chk[2845] =
    10881091    {   0,
    10891092        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    10951098        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    10961099        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    1097         1,    1,    1,    1,    1,    2,   16,   24,   16,   24,
    1098         2,   19,   19,    2,    5,    5,    5,    5,    5,    5,
     1100        1,    1,    1,    1,    2,   16,   24,   16,   24,    2,
     1101       19,   19,    2,    5,    5,    5,    5,    5,    5,    5,
    10991102
    11001103        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
     
    11051108        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    11061109        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    1107         5,    5,    5,    5,    5,    5,    5,    5,    5,    7,
    1108         8,    9,   10,   37,   37,   20,   39,    9,   10,  521,
    1109         7,    8,   13,   13,   13,   13,   13,   13,   15,   15,
    1110 
    1111        15,   15,   15,   15,   20,   25,   48,   39,   42,   28,
    1112        27,   28,   28,   28,   28,   28,   28,  108,  521,   25,
    1113        29,   25,   27,   27,   27,   29,   48,   35,   40,    7,
    1114         8,    9,   10,   40,   42,   29,   30,   47,   30,   30,
    1115        30,   30,   30,   30,   35,   56,   35,   35,   44,  334,
    1116        44,  114,  108,   72,   56,   30,   63,  334,   47,   30,
    1117        47,   45,   45,   45,   49,   30,   30,   45,   45,   49,
    1118        45,   30,   40,   45,   45,   40,   49,   30,   45,   72,
    1119        61,   45,   49,   30,   86,  513,  114,   53,  513,   51,
    1120        60,   30,   61,   55,   30,   31,  107,   31,   31,   31,
    1121 
    1122        31,   31,   31,   50,   51,   53,   51,   63,   60,   54,
    1123        86,   55,   50,  109,   31,   51,   50,   55,   31,   54,
    1124       107,   50,   52,  113,   31,   50,   54,   52,  317,  125,
    1125        31,  125,  106,  156,  150,   52,   31,   52,  106,  317,
    1126        52,   59,   31,  109,   52,  156,   59,  113,  109,  151,
    1127        31,   38,  150,  174,  110,   38,   38,   57,   38,   59,
    1128        38,   38,  112,   38,  106,   38,   58,  151,  112,   57,
    1129        57,  109,  110,  174,   38,   38,   38,  166,   58,   57,
    1130       110,  152,   57,  115,  141,   59,   58,  126,   59,  126,
    1131       152,   67,   67,   58,  112,   38,   67,  128,   38,  128,
    1132 
    1133       166,  115,   59,   66,   66,   66,   66,   66,   66,  115,
    1134       141,   66,   67,   67,   67,   67,   67,   67,   79,   79,
    1135        79,   79,   79,   79,  160,   38,   38,   76,   76,  131,
    1136       163,  131,   76,  160,   76,  103,  103,  103,  103,   76,
    1137        81,   81,   81,   81,   81,   81,  129,  163,   76,   76,
    1138        76,   76,   82,   82,   82,   82,   82,   82,  130,   76,
    1139       129,  153,  129,  103,  132,  132,  158,  132,  103,  133,
    1140       130,  133,  130,  186,  136,   76,  136,  153,   76,  134,
    1141       134,  134,  158,   76,   76,  165,  164,   76,   76,  154,
    1142       138,  103,  138,  186,  155,   76,  164,  216,   76,  216,
    1143 
    1144        76,   76,   76,  144,   76,   84,  165,  154,  144,   84,
    1145        84,  168,  149,  173,   84,   84,  155,   84,  104,   84,
    1146       104,  104,  104,  104,  104,  104,  159,  149,   84,   84,
    1147        84,  173,  168,  105,  149,  105,  161,  104,  105,  105,
    1148       105,  105,  105,  105,  170,  162,  167,  144,  159,   84,
    1149       162,  169,   84,  104,  171,  157,  169,  161,  161,  104,
    1150       157,  172,  157,  162,  157,  157,  170,  175,  157,  171,
    1151       157,  105,  179,  167,  169,  157,  157,  157,  172,  157,
    1152        84,   98,   98,   98,   98,   98,   98,  176,  178,  179,
    1153       180,  185,  280,  182,  175,  180,  181,  183,   98,   98,
    1154 
    1155       192,  850,   98,  178,  185,  189,  187,  181,  183,  176,
    1156       178,  182,  280,  192,   98,  188,  203,  181,  181,  184,
    1157        98,   98,  190,  191,  184,  183,   98,  102,  102,  102,
    1158       102,  102,  102,  187,  188,  190,  191,  274,  191,  184,
    1159       449,  275,  203,  190,  102,  102,  207,  207,  102,  189,
    1160       274,  207,  189,  195,  195,  195,  195,  195,  195,  275,
    1161       102,  195,  277,  196,  196,  449,  102,  102,  196,  198,
    1162       198,  217,  102,  217,  198,  200,  200,  218,  277,  218,
    1163       200,  221,  200,  221,  196,  196,  196,  196,  196,  196,
    1164       198,  198,  198,  198,  198,  198,  200,  200,  200,  200,
    1165 
    1166       200,  200,  210,  210,  210,  210,  219,  220,  222,  222,
    1167       223,  222,  223,  224,  224,  224,  226,  239,  226,  220,
    1168       219,  220,  219,  227,  232,  227,  232,  278,  849,  232,
    1169       232,  232,  232,  232,  232,  210,  231,  231,  231,  231,
    1170       231,  231,  237,  237,  278,  244,  237,  252,  262,  263,
    1171       262,  263,  239,  231,  231,  279,  276,  231,  281,  282,
    1172       279,  288,  232,  281,  237,  237,  288,  290,  266,  231,
    1173       237,  244,  285,  252,  276,  231,  231,  848,  284,  282,
    1174       290,  231,  240,  240,  240,  240,  240,  240,  241,  241,
    1175       241,  241,  241,  241,  266,  283,  284,  286,  285,  240,
    1176 
    1177       289,  242,  242,  242,  242,  242,  242,  249,  291,  289,
    1178       283,  292,  286,  294,  847,  240,  283,  283,  243,  242,
    1179       243,  240,  242,  243,  243,  243,  243,  243,  243,  292,
    1180       249,  294,  249,  295,  242,  291,  249,  298,  295,  287,
    1181       301,  242,  249,  299,  296,  301,  242,  251,  251,  251,
    1182       251,  251,  251,  296,  249,  287,  287,  298,  249,  304,
    1183       300,  299,  249,  256,  256,  256,  256,  256,  256,  297,
    1184       302,  303,  307,  306,  305,  302,  297,  303,  304,  306,
    1185       251,  300,  300,  305,  308,  309,  310,  311,  307,  312,
    1186       313,  310,  311,  308,  312,  314,  256,  315,  320,  318,
    1187 
    1188       309,  321,  319,  322,  323,  325,  326,  324,  327,  313,
    1189       315,  312,  331,  314,  318,  319,  324,  328,  332,  330,
    1190       320,  323,  336,  322,  321,  333,  335,  325,  330,  326,
    1191       327,  335,  355,  396,  355,  328,  332,  336,  333,  337,
    1192       337,  338,  396,  356,  337,  356,  337,  338,  345,  345,
    1193       345,  345,  346,  346,  346,  346,  331,  362,  362,  362,
    1194       362,  362,  362,  392,  363,  363,  363,  363,  363,  363,
    1195       364,  376,  364,  552,  392,  364,  364,  364,  364,  364,
    1196       364,  345,  363,  552,  371,  363,  365,  365,  365,  365,
    1197       365,  365,  393,  401,  371,  376,  398,  363,  366,  366,
    1198 
    1199       366,  366,  366,  366,  363,  398,  401,  372,  393,  363,
    1200       371,  367,  367,  367,  367,  367,  367,  372,  395,  365,
    1201       368,  368,  368,  368,  368,  368,  400,  417,  394,  367,
    1202       374,  366,  367,  372,  373,  400,  374,  395,  368,  417,
    1203       375,  368,  375,  394,  367,  375,  375,  375,  375,  375,
    1204       375,  367,  399,  368,  378,  397,  367,  373,  406,  373,
    1205       368,  377,  374,  373,  411,  368,  397,  402,  845,  373,
    1206       403,  404,  378,  405,  399,  411,  406,  407,  375,  408,
    1207       378,  373,  407,  402,  377,  373,  377,  404,  404,  373,
    1208       377,  409,  403,  410,  408,  405,  377,  409,  412,  415,
    1209 
    1210       413,  408,  419,  420,  422,  423,  424,  430,  377,  421,
    1211       425,  423,  377,  415,  410,  413,  377,  412,  421,  425,
    1212       427,  424,  421,  419,  429,  420,  431,  422,  432,  430,
    1213       433,  434,  437,  435,  439,  427,  441,  440,  443,  442,
    1214       446,  431,  435,  444,  429,  433,  445,  447,  448,  437,
    1215       432,  434,  444,  446,  447,  448,  441,  439,  440,  442,
    1216       443,  450,  452,  451,  445,  454,  455,  611,  456,  450,
    1217       611,  844,  504,  452,  456,  455,  479,  482,  483,  450,
    1218       451,  465,  465,  465,  465,  504,  479,  454,  476,  476,
    1219       476,  476,  476,  476,  477,  477,  477,  477,  477,  477,
    1220 
    1221       481,  503,  479,  482,  483,  506,  476,  839,  509,  476,
    1222       481,  507,  477,  512,  516,  477,  508,  511,  503,  510,
    1223       506,  476,  511,  531,  512,  519,  481,  477,  476,  508,
    1224       509,  507,  510,  476,  477,  516,  519,  520,  517,  477,
    1225       478,  478,  478,  478,  478,  478,  480,  517,  480,  531,
    1226       520,  480,  480,  480,  480,  480,  480,  485,  485,  485,
    1227       485,  485,  485,  514,  486,  486,  486,  486,  486,  486,
    1228       487,  515,  487,  478,  524,  487,  487,  487,  487,  487,
    1229       487,  518,  486,  514,  480,  486,  518,  522,  523,  525,
    1230       515,  524,  533,  529,  526,  528,  522,  486,  525,  526,
    1231 
    1232       532,  528,  529,  534,  486,  535,  537,  533,  538,  486,
    1233       523,  539,  540,  542,  535,  537,  543,  532,  534,  547,
    1234       545,  543,  546,  539,  548,  538,  549,  540,  542,  545,
    1235       551,  546,  553,  554,  555,  557,  556,  548,  551,  553,
    1236       558,  547,  556,  549,  557,  560,  555,  561,  604,  603,
    1237       558,  617,  608,  609,  617,  554,  603,  604,  606,  608,
    1238       561,  609,  560,  580,  580,  580,  580,  580,  580,  581,
    1239       581,  581,  581,  581,  581,  606,  582,  582,  582,  582,
    1240       582,  582,  583,  607,  583,  605,  641,  583,  583,  583,
    1241       583,  583,  583,  641,  582,  612,  580,  582,  605,  586,
    1242 
    1243       586,  586,  586,  586,  586,  610,  607,  614,  612,  582,
    1244       588,  588,  588,  588,  588,  588,  582,  586,  602,  613,
    1245       586,  582,  610,  602,  615,  616,  619,  620,  588,  614,
    1246       623,  588,  586,  621,  613,  618,  602,  622,  624,  586,
    1247       625,  615,  620,  588,  586,  627,  622,  616,  623,  625,
    1248       588,  628,  618,  621,  619,  588,  629,  630,  635,  634,
    1249       624,  640,  648,  637,  651,  649,  630,  627,  652,  739,
    1250       640,  648,  682,  651,  628,  649,  684,  681,  629,  634,
    1251       637,  687,  682,  652,  739,  635,  670,  670,  670,  670,
    1252       670,  670,  671,  671,  671,  671,  671,  671,  681,  685,
    1253 
    1254       686,  687,  684,  690,  670,  686,  685,  670,  688,  689,
    1255       671,  688,  689,  671,  692,  693,  696,  838,  703,  670,
    1256       692,  690,  699,  695,  693,  671,  670,  694,  703,  837,
    1257       694,  670,  671,  697,  710,  705,  697,  671,  672,  672,
    1258       672,  672,  672,  672,  695,  696,  698,  700,  699,  701,
    1259       700,  702,  704,  713,  707,  698,  705,  710,  714,  702,
    1260       715,  717,  701,  707,  742,  704,  718,  740,  736,  717,
    1261       741,  672,  737,  713,  738,  718,  745,  740,  754,  738,
    1262       714,  715,  725,  725,  725,  725,  725,  725,  736,  737,
    1263       742,  743,  744,  741,  743,  747,  749,  753,  747,  749,
    1264 
    1265       750,  754,  759,  751,  745,  744,  751,  750,  752,  774,
    1266       776,  752,  753,  778,  777,  725,  778,  779,  780,  782,
    1267       783,  780,  786,  784,  787,  759,  784,  787,  806,  789,
    1268       788,  776,  777,  788,  790,  791,  774,  782,  789,  779,
    1269       807,  811,  808,  809,  786,  808,  783,  807,  836,  806,
    1270       790,  791,  809,  810,  814,  818,  810,  814,  811,  817,
    1271       819,  828,  817,  829,  818,  840,  841,  846,  829,  819,
    1272       828,  831,  833,  834,  831,  833,  834,  835,  832,  842,
    1273       835,  841,  842,  843,  830,  840,  843,  827,  826,  846,
    1274       852,  852,  852,  852,  852,  852,  852,  852,  852,  852,
    1275 
    1276       852,  852,  852,  853,  853,  853,  853,  853,  853,  853,
    1277       853,  853,  853,  853,  853,  853,  854,  854,  854,  854,
    1278       854,  854,  854,  854,  854,  854,  854,  854,  854,  855,
    1279       825,  824,  855,  823,  855,  855,  855,  855,  855,  856,
    1280       822,  821,  820,  856,  856,  856,  856,  856,  856,  857,
    1281       857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
    1282       857,  857,  858,  816,  815,  858,  813,  858,  858,  858,
    1283       858,  858,  859,  812,  859,  859,  805,  859,  859,  859,
    1284       859,  859,  859,  804,  859,  860,  803,  802,  860,  860,
    1285       860,  860,  860,  860,  860,  860,  801,  860,  861,  861,
    1286 
     1110        5,    5,    5,    5,    5,    5,    5,    7,    8,    9,
     1111       10,   37,   37,   20,   39,    9,   10,  860,    7,    8,
     1112       13,   13,   13,   13,   13,   13,   15,   15,   15,   15,
     1113
     1114       15,   15,   20,   25,   39,   42,   53,   28,   27,   28,
     1115       28,   28,   28,   28,   28,  108,  114,   25,   29,   25,
     1116       27,   27,   27,   29,   53,   35,    7,    8,    9,   10,
     1117       40,   42,   48,   29,   30,   40,   30,   30,   30,   30,
     1118       30,   30,   35,   61,   35,   35,   44,  859,   44,  108,
     1119      114,  858,   48,   30,   63,   61,   30,   56,   47,   45,
     1120       45,   45,   30,   30,   45,   45,   56,   45,   30,   55,
     1121       45,   45,   49,   40,   30,   45,   40,   49,   45,   47,
     1122       30,   47,   72,  125,   49,  125,   51,   55,   30,   86,
     1123       49,   30,   31,   55,   31,   31,   31,   31,   31,   31,
     1124
     1125       50,   51,  857,   51,   63,  153,   54,   58,   72,   50,
     1126       60,   31,   51,   50,   31,   86,   54,   57,   50,   58,
     1127       31,  153,   50,   54,  141,  156,   31,   58,   60,   57,
     1128       57,   59,   31,  126,   58,  126,   59,  156,   31,   57,
     1129       52,  855,   57,   67,   67,   52,   31,   38,   67,   59,
     1130      141,   38,   38,   52,   38,   52,   38,   38,   52,   38,
     1131      107,   38,   52,  113,   67,   67,   67,   67,   67,   67,
     1132       38,   38,   38,  128,   59,  128,  152,   59,   66,   66,
     1133       66,   66,   66,   66,  107,  152,   66,  113,  854,  849,
     1134       38,   59,  165,   38,   79,   79,   79,   79,   79,   79,
     1135
     1136       81,   81,   81,   81,   81,   81,   82,   82,   82,   82,
     1137       82,   82,  131,  165,  131,  103,  103,  103,  103,  106,
     1138       38,   38,   76,   76,  848,  106,  112,   76,  168,   76,
     1139      110,  133,  112,  133,   76,  102,  102,  102,  102,  102,
     1140      102,  130,  103,   76,   76,   76,   76,  103,  110,  168,
     1141      109,  106,  129,  130,   76,  130,  110,  104,  112,  104,
     1142      104,  104,  104,  104,  104,  149,  129,  102,  129,   76,
     1143      103,  136,   76,  136,  158,  115,  104,   76,   76,  109,
     1144      149,   76,   76,  155,  109,  132,  132,  149,  132,   76,
     1145      158,  104,   76,  115,   76,   76,   76,  104,   76,   84,
     1146
     1147      138,  115,  138,   84,   84,  155,  166,  109,   84,   84,
     1148      105,   84,  105,   84,  150,  105,  105,  105,  105,  105,
     1149      105,  151,   84,   84,   84,  134,  134,  134,  144,  166,
     1150      154,  157,  150,  144,  159,  167,  157,  174,  157,  151,
     1151      157,  157,   84,  161,  157,   84,  157,  105,  154,  160,
     1152      163,  157,  157,  157,  162,  157,  159,  174,  160,  162,
     1153      164,  169,  167,  170,  161,  161,  169,  163,  171,  172,
     1154      164,  144,  162,   84,   98,   98,   98,   98,   98,   98,
     1155      173,  175,  176,  171,  169,  170,  172,  178,  179,  182,
     1156       98,   98,  180,   98,   98,  184,  187,  180,  173,  181,
     1157
     1158      184,  189,  178,  183,  176,  179,   98,  182,  175,  178,
     1159      181,   98,   98,   98,  183,  184,   98,  185,   98,  186,
     1160      181,  181,  188,  187,  190,  191,  216,  847,  216,  192,
     1161      185,  183,  203,  217,  218,  217,  218,  190,  191,  186,
     1162      191,  188,  192,  246,  189,  190,  279,  189,  195,  195,
     1163      195,  195,  195,  195,  196,  196,  195,  280,  203,  196,
     1164      198,  198,  279,  207,  207,  198,  200,  200,  207,  246,
     1165      221,  200,  221,  200,  280,  196,  196,  196,  196,  196,
     1166      196,  198,  198,  198,  198,  198,  198,  200,  200,  200,
     1167      200,  200,  200,  210,  210,  210,  210,  219,  220,  222,
     1168
     1169      222,  223,  222,  223,  224,  224,  224,  226,  232,  226,
     1170      220,  219,  220,  219,  227,  234,  227,  241,  235,  234,
     1171      254,  233,  264,  233,  264,  210,  233,  233,  233,  233,
     1172      233,  233,  232,  265,  288,  265,  234,  276,  234,  235,
     1173      846,  235,  268,  234,  239,  239,  254,  239,  239,  288,
     1174      276,  241,  242,  242,  242,  242,  242,  242,  233,  243,
     1175      243,  243,  243,  243,  243,  239,  239,  239,  268,  242,
     1176      239,  245,  239,  245,  292,  251,  245,  245,  245,  245,
     1177      245,  245,  277,  278,  242,  282,  284,  292,  309,  291,
     1178      242,  244,  244,  244,  244,  244,  244,  251,  291,  251,
     1179
     1180      277,  278,  286,  251,  309,  282,  284,  244,  287,  251,
     1181      244,  244,  253,  253,  253,  253,  253,  253,  842,  281,
     1182      286,  251,  283,  244,  281,  251,  289,  283,  244,  251,
     1183      244,  285,  293,  244,  287,  244,  258,  258,  258,  258,
     1184      258,  258,  289,  289,  253,  290,  285,  294,  296,  297,
     1185      290,  298,  285,  285,  297,  299,  300,  301,  302,  293,
     1186      298,  307,  299,  306,  303,  294,  296,  304,  258,  303,
     1187      307,  305,  304,  311,  310,  301,  300,  305,  308,  302,
     1188      302,  312,  306,  310,  308,  313,  312,  314,  311,  315,
     1189      313,  317,  314,  316,  319,  320,  322,  323,  325,  321,
     1190
     1191      327,  324,  328,  333,  317,  319,  329,  326,  315,  314,
     1192      320,  316,  321,  330,  332,  325,  326,  334,  322,  335,
     1193      323,  324,  327,  332,  337,  328,  336,  338,  329,  337,
     1194      420,  330,  335,  340,  336,  334,  339,  339,  357,  340,
     1195      357,  339,  338,  339,  420,  397,  333,  347,  347,  347,
     1196      347,  348,  348,  348,  348,  358,  397,  358,  365,  365,
     1197      365,  365,  365,  365,  367,  402,  367,  376,  377,  367,
     1198      367,  367,  367,  367,  367,  840,  402,  376,  377,  347,
     1199      366,  366,  366,  366,  366,  366,  370,  370,  370,  370,
     1200      370,  370,  381,  376,  377,  398,  366,  383,  407,  366,
     1201
     1202      366,  371,  371,  371,  371,  371,  371,  379,  406,  404,
     1203      378,  398,  366,  379,  407,  383,  381,  366,  370,  366,
     1204      399,  406,  366,  383,  366,  372,  372,  372,  372,  372,
     1205      372,  404,  378,  371,  378,  399,  400,  382,  378,  379,
     1206      380,  837,  380,  401,  378,  380,  380,  380,  380,  380,
     1207      380,  408,  401,  403,  405,  400,  378,  372,  409,  382,
     1208      378,  382,  403,  405,  378,  382,  410,  411,  415,  418,
     1209      836,  382,  835,  408,  409,  409,  412,  380,  413,  416,
     1210      414,  412,  417,  382,  418,  411,  414,  382,  410,  415,
     1211      416,  382,  422,  413,  424,  425,  426,  427,  429,  432,
     1212
     1213      413,  417,  428,  430,  422,  426,  434,  435,  428,  426,
     1214      436,  437,  430,  429,  432,  424,  438,  425,  439,  440,
     1215      427,  444,  442,  446,  445,  436,  434,  447,  440,  435,
     1216      448,  438,  449,  437,  454,  450,  451,  487,  439,  442,
     1217      459,  449,  526,  446,  444,  445,  455,  447,  452,  451,
     1218      453,  456,  448,  450,  455,  452,  457,  453,  518,  454,
     1219      460,  518,  459,  487,  455,  461,  514,  457,  456,  460,
     1220      526,  461,  470,  470,  470,  470,  481,  481,  481,  481,
     1221      481,  481,  483,  483,  483,  483,  483,  483,  514,  512,
     1222      484,  486,  481,  488,  508,  481,  481,  485,  544,  485,
     1223
     1224      484,  486,  485,  485,  485,  485,  485,  485,  481,  512,
     1225      544,  508,  511,  481,  483,  481,  484,  486,  481,  488,
     1226      481,  490,  490,  490,  490,  490,  490,  511,  509,  513,
     1227      515,  520,  519,  560,  485,  491,  491,  491,  491,  491,
     1228      491,  509,  513,  515,  516,  560,  517,  521,  523,  516,
     1229      520,  491,  519,  523,  491,  491,  492,  517,  492,  524,
     1230      522,  492,  492,  492,  492,  492,  492,  491,  521,  522,
     1231      524,  525,  491,  527,  491,  528,  529,  491,  530,  491,
     1232      531,  534,  527,  533,  525,  531,  536,  530,  537,  533,
     1233      534,  538,  539,  529,  540,  542,  543,  528,  552,  545,
     1234
     1235      547,  550,  554,  540,  542,  537,  538,  539,  551,  553,
     1236      550,  548,  536,  543,  545,  547,  548,  551,  556,  554,
     1237      552,  557,  553,  558,  559,  562,  556,  561,  563,  566,
     1238      558,  557,  565,  561,  562,  611,  610,  616,  563,  592,
     1239      615,  834,  566,  610,  611,  616,  559,  615,  613,  565,
     1240      585,  585,  585,  585,  585,  585,  586,  586,  586,  586,
     1241      586,  586,  588,  592,  588,  613,  612,  588,  588,  588,
     1242      588,  588,  588,  591,  591,  591,  591,  591,  591,  612,
     1243      617,  614,  585,  587,  587,  587,  587,  587,  587,  593,
     1244      594,  609,  618,  593,  619,  618,  609,  617,  833,  587,
     1245
     1246      832,  620,  587,  587,  614,  591,  621,  619,  623,  609,
     1247      593,  594,  593,  594,  622,  587,  620,  593,  624,  625,
     1248      587,  624,  587,  626,  627,  587,  628,  587,  621,  629,
     1249      623,  622,  631,  630,  632,  634,  625,  635,  629,  627,
     1250      636,  641,  642,  632,  637,  648,  628,  644,  831,  647,
     1251      626,  630,  648,  637,  631,  659,  655,  634,  647,  658,
     1252      635,  641,  636,  656,  644,  655,  691,  696,  658,  642,
     1253      659,  694,  696,  656,  677,  677,  677,  677,  677,  677,
     1254      682,  682,  682,  682,  682,  682,  692,  691,  695,  697,
     1255      677,  703,  700,  677,  677,  695,  692,  694,  698,  699,
     1256
     1257      703,  698,  699,  705,  704,  706,  677,  704,  702,  697,
     1258      700,  677,  682,  677,  702,  709,  677,  707,  677,  708,
     1259      707,  711,  710,  712,  705,  710,  713,  715,  708,  714,
     1260      717,  712,  720,  706,  711,  725,  713,  723,  724,  717,
     1261      709,  727,  714,  728,  749,  748,  752,  746,  715,  727,
     1262      748,  747,  728,  751,  755,  720,  725,  723,  754,  749,
     1263      724,  735,  735,  735,  735,  735,  735,  746,  747,  750,
     1264      753,  754,  752,  753,  757,  759,  751,  757,  759,  750,
     1265      760,  755,  761,  762,  763,  761,  762,  760,  764,  769,
     1266      784,  787,  786,  735,  788,  790,  789,  788,  790,  763,
     1267
     1268      793,  792,  794,  797,  796,  794,  797,  798,  800,  787,
     1269      798,  764,  769,  786,  799,  801,  816,  784,  789,  792,
     1270      817,  819,  821,  799,  800,  793,  796,  817,  830,  818,
     1271      819,  801,  818,  820,  826,  824,  820,  816,  824,  821,
     1272      827,  828,  829,  827,  838,  841,  843,  839,  841,  843,
     1273      828,  829,  839,  838,  844,  845,  850,  844,  845,  851,
     1274      852,  853,  856,  852,  853,  825,  823,  822,  815,  814,
     1275      813,  812,  811,  810,  851,  809,  850,  808,  807,  806,
     1276      805,  804,  803,  802,  856,  862,  862,  862,  862,  862,
     1277      862,  862,  862,  862,  862,  862,  862,  862,  863,  863,
     1278
     1279      863,  863,  863,  863,  863,  863,  863,  863,  863,  863,
     1280      863,  864,  864,  864,  864,  864,  864,  864,  864,  864,
     1281      864,  864,  864,  864,  865,  795,  791,  865,  785,  865,
     1282      865,  865,  865,  865,  866,  783,  782,  781,  866,  866,
     1283      866,  866,  866,  866,  867,  867,  867,  867,  867,  867,
     1284      867,  867,  867,  867,  867,  867,  867,  868,  780,  779,
     1285      868,  778,  868,  868,  868,  868,  868,  869,  777,  869,
     1286      869,  776,  869,  869,  869,  869,  869,  869,  775,  869,
     1287      870,  774,  773,  870,  870,  870,  870,  870,  870,  870,
     1288      870,  772,  870,  871,  871,  871,  871,  871,  871,  871,
     1289
     1290      871,  871,  871,  871,  871,  871,  872,  872,  771,  872,
     1291      770,  768,  767,  872,  873,  766,  765,  873,  758,  873,
     1292      873,  873,  873,  873,  874,  756,  874,  745,  744,  743,
     1293      874,  875,  742,  875,  741,  740,  739,  875,  876,  738,
     1294      876,  737,  734,  733,  876,  877,  732,  877,  726,  722,
     1295      721,  877,  878,  719,  878,  718,  716,  701,  878,  879,
     1296      693,  879,  690,  685,  683,  879,  880,  678,  880,  668,
     1297      664,  662,  880,  881,  660,  881,  657,  654,  653,  881,
     1298      882,  652,  882,  651,  650,  649,  882,  883,  883,  883,
     1299      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     1300
     1301      884,  646,  884,  885,  885,  645,  885,  885,  885,  643,
     1302      885,  886,  886,  640,  886,  887,  639,  887,  638,  633,
     1303      607,  887,  888,  603,  888,  601,  599,  597,  888,  889,
     1304      595,  889,  589,  583,  581,  889,  890,  579,  890,  891,
     1305      577,  891,  575,  573,  571,  891,  892,  569,  892,  893,
     1306      568,  567,  893,  564,  893,  893,  893,  893,  893,  894,
     1307      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1308      894,  894,  895,  895,  895,  895,  895,  895,  895,  895,
     1309      895,  895,  895,  895,  895,  896,  555,  896,  549,  546,
     1310      541,  896,  897,  535,  897,  532,  510,  506,  897,  898,
     1311
     1312      504,  898,  502,  500,  498,  898,  899,  496,  899,  900,
     1313      495,  900,  494,  493,  482,  900,  901,  479,  901,  902,
     1314      477,  902,  476,  475,  473,  902,  903,  471,  903,  904,
     1315      468,  904,  466,  464,  462,  904,  905,  458,  905,  906,
     1316      443,  906,  441,  433,  431,  906,  907,  423,  907,  908,
     1317      421,  908,  419,  394,  392,  908,  909,  390,  909,  910,
     1318      388,  910,  387,  386,  373,  910,  911,  362,  911,  912,
     1319      360,  912,  359,  912,  355,  912,  913,  353,  913,  351,
     1320      913,  349,  913,  914,  914,  345,  914,  914,  914,  343,
     1321      914,  915,  342,  915,  341,  331,  318,  915,  916,  295,
     1322
     1323      916,  275,  273,  271,  916,  917,  270,  917,  269,  267,
     1324      266,  917,  918,  261,  918,  919,  257,  919,  256,  252,
     1325      249,  919,  920,  248,  920,  921,  237,  921,  236,  229,
     1326      228,  921,  922,  225,  922,  923,  215,  923,  213,  212,
     1327      211,  923,  924,  205,  924,  925,  204,  202,  925,  197,
     1328      925,  925,  925,  925,  925,  926,  926,  926,  926,  926,
     1329      926,  926,  926,  926,  926,  926,  926,  926,  927,  177,
     1330      927,  148,  146,  145,  927,  928,  139,  928,  929,  137,
     1331      929,  135,  127,  124,  929,  930,  123,  930,  931,  119,
     1332      931,  100,   97,   94,  931,  932,   92,  932,  933,   85,
     1333
     1334      933,   71,   69,   65,  933,  934,   36,  934,  935,   33,
     1335      935,   18,   11,    4,  935,  936,    3,  936,  937,    0,
     1336      937,    0,    0,    0,  937,  938,    0,  938,  939,    0,
     1337      939,    0,    0,    0,  939,  940,    0,  940,    0,    0,
     1338        0,  940,  941,    0,  941,  942,    0,  942,    0,    0,
     1339        0,  942,  943,    0,  943,  944,    0,  944,    0,  944,
     1340        0,  944,  945,    0,  945,    0,    0,    0,  945,  946,
     1341        0,  946,    0,    0,    0,  946,  947,    0,  947,  948,
     1342        0,  948,    0,    0,    0,  948,  949,    0,  949,  950,
     1343        0,  950,    0,    0,    0,  950,  951,    0,  951,  952,
     1344
     1345        0,  952,    0,    0,    0,  952,  953,    0,  953,  954,
     1346        0,  954,    0,    0,    0,  954,  955,    0,  955,  956,
     1347        0,  956,    0,    0,    0,  956,  957,    0,  957,  958,
     1348        0,    0,  958,    0,  958,  958,  958,  958,  958,  959,
     1349      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
     1350      959,  959,  960,    0,  960,    0,    0,    0,  960,  961,
     1351        0,  961,  962,    0,  962,    0,    0,    0,  962,  963,
     1352        0,  963,  964,    0,  964,    0,    0,    0,  964,  965,
     1353        0,  965,  966,    0,  966,    0,    0,    0,  966,  967,
     1354        0,  967,  968,    0,  968,    0,    0,    0,  968,  969,
     1355
     1356        0,  969,  970,    0,  970,    0,    0,    0,  970,  971,
     1357        0,  971,  972,    0,  972,    0,    0,    0,  972,  973,
     1358        0,  973,  974,    0,  974,    0,    0,    0,  974,  975,
     1359        0,  975,  976,    0,  976,    0,    0,    0,  976,  977,
     1360        0,  977,    0,    0,    0,  977,  978,    0,  978,  979,
     1361        0,  979,    0,    0,    0,  979,  980,    0,  980,  981,
     1362        0,  981,    0,    0,    0,  981,  982,    0,  982,  983,
     1363        0,  983,    0,    0,    0,  983,  984,    0,  984,  985,
     1364        0,  985,  986,    0,  986,  987,    0,    0,  987,    0,
     1365      987,  987,  987,  987,  987,  988,    0,  988,  989,  989,
     1366
     1367      989,  989,  989,  989,  989,  989,  989,  989,  989,  989,
     1368      989,  990,    0,  990,    0,    0,    0,  990,  991,    0,
     1369      991,  992,    0,  992,    0,    0,    0,  992,  993,    0,
     1370      993,  994,    0,  994,  995,    0,  995,  996,    0,    0,
     1371      996,    0,  996,  996,  996,  996,  996,  997,    0,  997,
     1372      998,    0,  998,  999,    0,  999, 1000,    0, 1000, 1001,
     1373        0, 1001, 1002,    0, 1002, 1003,    0, 1003, 1004,    0,
     1374     1004,    0,    0,    0, 1004, 1005,    0, 1005, 1006,    0,
     1375     1006,    0,    0,    0, 1006, 1007,    0, 1007, 1008,    0,
     1376     1008, 1009,    0, 1009, 1010,    0, 1010, 1011,    0, 1011,
     1377
     1378        0,    0,    0, 1011, 1012,    0,    0, 1012,    0, 1012,
     1379     1012, 1012, 1012, 1012, 1013,    0, 1013, 1014,    0, 1014,
     1380     1015,    0, 1015, 1016,    0, 1016,    0,    0,    0, 1016,
     1381     1017,    0, 1017,    0,    0,    0, 1017, 1018,    0, 1018,
     1382        0,    0,    0, 1018, 1019,    0, 1019, 1020,    0, 1020,
     1383        0,    0,    0, 1020, 1021,    0, 1021,    0,    0,    0,
     1384     1021, 1022,    0, 1022,    0,    0,    0, 1022, 1023,    0,
     1385     1023,    0,    0,    0, 1023, 1024,    0, 1024,    0,    0,
     1386        0, 1024, 1025,    0, 1025,    0,    0,    0, 1025, 1026,
     1387        0, 1026,    0,    0,    0, 1026, 1027,    0, 1027,    0,
     1388
     1389        0,    0, 1027, 1028,    0, 1028,    0,    0,    0, 1028,
     1390     1029,    0, 1029,    0,    0,    0, 1029, 1030,    0, 1030,
     1391        0,    0,    0, 1030, 1031,    0, 1031,    0,    0,    0,
     1392     1031, 1032,    0, 1032,    0,    0,    0, 1032, 1033,    0,
     1393     1033,    0,    0,    0, 1033, 1034,    0, 1034,    0,    0,
     1394        0, 1034, 1035,    0, 1035,    0,    0,    0, 1035,  861,
    12871395      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
    1288       861,  862,  862,  800,  862,  799,  798,  797,  862,  863,
    1289       796,  795,  863,  794,  863,  863,  863,  863,  863,  864,
    1290       793,  864,  792,  785,  781,  864,  865,  775,  865,  773,
    1291       772,  771,  865,  866,  770,  866,  769,  768,  767,  866,
    1292       867,  766,  867,  765,  764,  763,  867,  868,  762,  868,
    1293       761,  760,  758,  868,  869,  757,  869,  756,  755,  748,
    1294       869,  870,  746,  870,  735,  734,  733,  870,  871,  732,
    1295       871,  731,  730,  729,  871,  872,  728,  872,  727,  724,
    1296       723,  872,  873,  873,  873,  873,  873,  873,  873,  873,
    1297 
    1298       873,  873,  873,  873,  873,  874,  722,  874,  875,  875,
    1299       721,  875,  875,  875,  716,  875,  876,  876,  712,  876,
    1300       877,  711,  877,  709,  708,  706,  877,  878,  691,  878,
    1301       683,  680,  675,  878,  879,  673,  879,  661,  657,  655,
    1302       879,  880,  653,  880,  881,  650,  881,  647,  646,  645,
    1303       881,  882,  644,  882,  883,  643,  642,  883,  639,  883,
    1304       883,  883,  883,  883,  884,  884,  884,  884,  884,  884,
    1305       884,  884,  884,  884,  884,  884,  884,  885,  885,  885,
    1306       885,  885,  885,  885,  885,  885,  885,  885,  885,  885,
    1307       886,  638,  886,  636,  633,  632,  886,  887,  631,  887,
    1308 
    1309       626,  600,  596,  887,  888,  594,  888,  592,  590,  584,
    1310       888,  889,  578,  889,  890,  576,  890,  574,  572,  570,
    1311       890,  891,  568,  891,  892,  566,  892,  564,  563,  562,
    1312       892,  893,  559,  893,  894,  550,  894,  544,  541,  536,
    1313       894,  895,  530,  895,  896,  527,  896,  505,  501,  499,
    1314       896,  897,  497,  897,  898,  495,  898,  493,  491,  490,
    1315       898,  899,  489,  899,  900,  488,  900,  474,  472,  471,
    1316       900,  901,  470,  901,  902,  468,  902,  466,  902,  463,
    1317       902,  903,  461,  903,  459,  903,  457,  903,  904,  904,
    1318       453,  904,  904,  904,  438,  904,  905,  436,  905,  428,
    1319 
    1320       426,  418,  905,  906,  416,  906,  414,  389,  387,  906,
    1321       907,  385,  907,  383,  382,  381,  907,  908,  360,  908,
    1322       909,  358,  909,  357,  353,  351,  909,  910,  349,  910,
    1323       911,  347,  911,  343,  341,  340,  911,  912,  339,  912,
    1324       913,  329,  913,  316,  293,  273,  913,  914,  271,  914,
    1325       915,  269,  268,  915,  267,  915,  915,  915,  915,  915,
    1326       916,  916,  916,  916,  916,  916,  916,  916,  916,  916,
    1327       916,  916,  916,  917,  265,  917,  264,  259,  255,  917,
    1328       918,  254,  918,  919,  250,  919,  247,  246,  235,  919,
    1329       920,  234,  920,  921,  229,  921,  228,  225,  215,  921,
    1330 
    1331       922,  213,  922,  923,  212,  923,  211,  205,  204,  923,
    1332       924,  202,  924,  925,  197,  925,  177,  148,  146,  925,
    1333       926,  145,  926,  927,  139,  927,  137,  135,  127,  927,
    1334       928,  124,  928,  929,  123,  929,  119,  100,   97,  929,
    1335       930,   94,  930,   92,   85,   71,  930,  931,   69,  931,
    1336       932,   65,  932,   36,   33,   18,  932,  933,   11,  933,
    1337       934,    4,  934,    3,  934,    0,  934,  935,    0,  935,
    1338         0,    0,    0,  935,  936,    0,  936,    0,    0,    0,
    1339       936,  937,    0,  937,  938,    0,  938,    0,    0,    0,
    1340       938,  939,    0,  939,  940,    0,  940,    0,    0,    0,
    1341 
    1342       940,  941,    0,  941,  942,    0,  942,    0,    0,    0,
    1343       942,  943,    0,  943,  944,    0,  944,    0,    0,    0,
    1344       944,  945,    0,  945,  946,    0,  946,    0,    0,    0,
    1345       946,  947,    0,  947,  948,    0,    0,  948,    0,  948,
    1346       948,  948,  948,  948,  949,  949,  949,  949,  949,  949,
    1347       949,  949,  949,  949,  949,  949,  949,  950,    0,  950,
    1348         0,    0,    0,  950,  951,    0,  951,  952,    0,  952,
    1349         0,    0,    0,  952,  953,    0,  953,  954,    0,  954,
    1350         0,    0,    0,  954,  955,    0,  955,  956,    0,  956,
    1351         0,    0,    0,  956,  957,    0,  957,  958,    0,  958,
    1352 
    1353         0,    0,    0,  958,  959,    0,  959,  960,    0,  960,
    1354         0,    0,    0,  960,  961,    0,  961,  962,    0,  962,
    1355         0,    0,    0,  962,  963,    0,  963,  964,    0,  964,
    1356         0,    0,    0,  964,  965,    0,  965,  966,    0,  966,
    1357         0,    0,    0,  966,  967,    0,  967,    0,    0,    0,
    1358       967,  968,    0,  968,  969,    0,  969,    0,    0,    0,
    1359       969,  970,    0,  970,  971,    0,  971,    0,    0,    0,
    1360       971,  972,    0,  972,  973,    0,  973,    0,    0,    0,
    1361       973,  974,    0,  974,  975,    0,  975,  976,    0,  976,
    1362       977,    0,    0,  977,    0,  977,  977,  977,  977,  977,
    1363 
    1364       978,    0,  978,  979,  979,  979,  979,  979,  979,  979,
    1365       979,  979,  979,  979,  979,  979,  980,    0,  980,    0,
    1366         0,    0,  980,  981,    0,  981,  982,    0,  982,    0,
    1367         0,    0,  982,  983,    0,  983,  984,    0,  984,  985,
    1368         0,  985,  986,    0,    0,  986,    0,  986,  986,  986,
    1369       986,  986,  987,    0,  987,  988,    0,  988,  989,    0,
    1370       989,  990,    0,  990,  991,    0,  991,  992,    0,  992,
    1371       993,    0,  993,  994,    0,  994,    0,    0,    0,  994,
    1372       995,    0,  995,  996,    0,  996,    0,    0,    0,  996,
    1373       997,    0,  997,  998,    0,  998,  999,    0,  999, 1000,
    1374 
    1375         0, 1000, 1001,    0, 1001,    0,    0,    0, 1001, 1002,
    1376         0,    0, 1002,    0, 1002, 1002, 1002, 1002, 1002, 1003,
    1377         0, 1003, 1004,    0, 1004, 1005,    0, 1005,    0,    0,
    1378         0, 1005, 1006,    0, 1006,    0,    0,    0, 1006, 1007,
    1379         0, 1007,    0,    0,    0, 1007, 1008,    0, 1008, 1009,
    1380         0, 1009,    0,    0,    0, 1009, 1010,    0, 1010,    0,
    1381         0,    0, 1010, 1011,    0, 1011,    0,    0,    0, 1011,
    1382      1012,    0, 1012,    0,    0,    0, 1012, 1013,    0, 1013,
    1383         0,    0,    0, 1013, 1014,    0, 1014,    0,    0,    0,
    1384      1014, 1015,    0, 1015,    0,    0,    0, 1015, 1016,    0,
    1385 
    1386      1016,    0,    0,    0, 1016, 1017,    0, 1017,    0,    0,
    1387         0, 1017, 1018,    0, 1018,    0,    0,    0, 1018, 1019,
    1388         0, 1019,    0,    0,    0, 1019, 1020,    0, 1020,    0,
    1389         0,    0, 1020, 1021,    0, 1021,    0,    0,    0, 1021,
    1390      1022,    0, 1022,    0,    0,    0, 1022, 1023,    0, 1023,
    1391         0,    0,    0, 1023, 1024,    0, 1024,    0,    0,    0,
    1392      1024,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    1393       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    1394       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    1395       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    1396 
    1397       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    1398       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    1399       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    1400       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
    1401       851,  851,  851,  851,  851,  851,  851
     1396      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     1397      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     1398      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     1399
     1400      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     1401      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     1402      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     1403      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     1404      861,  861,  861,  861
    14021405    } ;
    14031406
     
    14411444 * Created On       : Sat Sep 22 08:58:10 2001
    14421445 * Last Modified By : Peter A. Buhr
    1443  * Last Modified On : Thu Oct  8 16:13:07 2015
    1444  * Update Count     : 404
     1446 * Last Modified On : Thu Jan 21 21:53:38 2016
     1447 * Update Count     : 417
    14451448 */
    14461449#line 20 "lex.ll"
     
    14911494// attribute identifier, GCC: $ in identifier
    14921495// numeric constants, CFA: '_' in constant
     1496// GCC: D (double), LD (long double) and iI (imaginary) suffixes
    14931497// character escape sequence, GCC: \e => esc character
    14941498// ' stop highlighting
     
    14991503
    15001504
    1501 #line 1502 "Parser/lex.cc"
     1505#line 1506 "Parser/lex.cc"
    15021506
    15031507#define INITIAL 0
     
    16911695        register int yy_act;
    16921696   
    1693 #line 136 "lex.ll"
     1697#line 137 "lex.ll"
    16941698
    16951699                                   /* line directives */
    1696 #line 1697 "Parser/lex.cc"
     1700#line 1701 "Parser/lex.cc"
    16971701
    16981702        if ( !(yy_init) )
     
    17481752                                {
    17491753                                yy_current_state = (int) yy_def[yy_current_state];
    1750                                 if ( yy_current_state >= 852 )
     1754                                if ( yy_current_state >= 862 )
    17511755                                        yy_c = yy_meta[(unsigned int) yy_c];
    17521756                                }
     
    17541758                        ++yy_cp;
    17551759                        }
    1756                 while ( yy_base[yy_current_state] != 2762 );
     1760                while ( yy_base[yy_current_state] != 2760 );
    17571761
    17581762yy_find_action:
     
    17911795/* rule 1 can match eol */
    17921796YY_RULE_SETUP
    1793 #line 138 "lex.ll"
     1797#line 139 "lex.ll"
    17941798{
    17951799        /* " stop highlighting */
     
    18181822/* rule 2 can match eol */
    18191823YY_RULE_SETUP
    1820 #line 161 "lex.ll"
     1824#line 162 "lex.ll"
    18211825;
    18221826        YY_BREAK
     
    18241828case 3:
    18251829YY_RULE_SETUP
    1826 #line 164 "lex.ll"
     1830#line 165 "lex.ll"
    18271831{ BEGIN COMMENT; }
    18281832        YY_BREAK
     
    18301834/* rule 4 can match eol */
    18311835YY_RULE_SETUP
    1832 #line 165 "lex.ll"
     1836#line 166 "lex.ll"
    18331837;
    18341838        YY_BREAK
    18351839case 5:
    18361840YY_RULE_SETUP
    1837 #line 166 "lex.ll"
     1841#line 167 "lex.ll"
    18381842{ BEGIN 0; }
    18391843        YY_BREAK
     
    18421846/* rule 6 can match eol */
    18431847YY_RULE_SETUP
    1844 #line 169 "lex.ll"
     1848#line 170 "lex.ll"
    18451849;
    18461850        YY_BREAK
     
    18481852case 7:
    18491853YY_RULE_SETUP
    1850 #line 172 "lex.ll"
    1851 { WHITE_RETURN(' '); }
    1852         YY_BREAK
    1853 case 8:
    1854 YY_RULE_SETUP
    18551854#line 173 "lex.ll"
    18561855{ WHITE_RETURN(' '); }
    18571856        YY_BREAK
     1857case 8:
     1858YY_RULE_SETUP
     1859#line 174 "lex.ll"
     1860{ WHITE_RETURN(' '); }
     1861        YY_BREAK
    18581862case 9:
    18591863/* rule 9 can match eol */
    18601864YY_RULE_SETUP
    1861 #line 174 "lex.ll"
     1865#line 175 "lex.ll"
    18621866{ NEWLINE_RETURN(); }
    18631867        YY_BREAK
     
    18651869case 10:
    18661870YY_RULE_SETUP
    1867 #line 177 "lex.ll"
     1871#line 178 "lex.ll"
    18681872{ KEYWORD_RETURN(ALIGNAS); }                    // C11
    18691873        YY_BREAK
    18701874case 11:
    18711875YY_RULE_SETUP
    1872 #line 178 "lex.ll"
     1876#line 179 "lex.ll"
    18731877{ KEYWORD_RETURN(ALIGNOF); }                    // C11
    18741878        YY_BREAK
    18751879case 12:
    1876 YY_RULE_SETUP
    1877 #line 179 "lex.ll"
    1878 { KEYWORD_RETURN(ALIGNOF); }                    // GCC
    1879         YY_BREAK
    1880 case 13:
    18811880YY_RULE_SETUP
    18821881#line 180 "lex.ll"
    18831882{ KEYWORD_RETURN(ALIGNOF); }                    // GCC
    18841883        YY_BREAK
     1884case 13:
     1885YY_RULE_SETUP
     1886#line 181 "lex.ll"
     1887{ KEYWORD_RETURN(ALIGNOF); }                    // GCC
     1888        YY_BREAK
    18851889case 14:
    18861890YY_RULE_SETUP
    1887 #line 181 "lex.ll"
     1891#line 182 "lex.ll"
    18881892{ KEYWORD_RETURN(ASM); }
    18891893        YY_BREAK
    18901894case 15:
    1891 YY_RULE_SETUP
    1892 #line 182 "lex.ll"
    1893 { KEYWORD_RETURN(ASM); }                                // GCC
    1894         YY_BREAK
    1895 case 16:
    18961895YY_RULE_SETUP
    18971896#line 183 "lex.ll"
    18981897{ KEYWORD_RETURN(ASM); }                                // GCC
    18991898        YY_BREAK
     1899case 16:
     1900YY_RULE_SETUP
     1901#line 184 "lex.ll"
     1902{ KEYWORD_RETURN(ASM); }                                // GCC
     1903        YY_BREAK
    19001904case 17:
    19011905YY_RULE_SETUP
    1902 #line 184 "lex.ll"
     1906#line 185 "lex.ll"
    19031907{ KEYWORD_RETURN(AT); }                                 // CFA
    19041908        YY_BREAK
    19051909case 18:
    19061910YY_RULE_SETUP
    1907 #line 185 "lex.ll"
     1911#line 186 "lex.ll"
    19081912{ KEYWORD_RETURN(ATOMIC); }                             // C11
    19091913        YY_BREAK
    19101914case 19:
    1911 YY_RULE_SETUP
    1912 #line 186 "lex.ll"
    1913 { KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
    1914         YY_BREAK
    1915 case 20:
    19161915YY_RULE_SETUP
    19171916#line 187 "lex.ll"
    19181917{ KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
    19191918        YY_BREAK
     1919case 20:
     1920YY_RULE_SETUP
     1921#line 188 "lex.ll"
     1922{ KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
     1923        YY_BREAK
    19201924case 21:
    19211925YY_RULE_SETUP
    1922 #line 188 "lex.ll"
     1926#line 189 "lex.ll"
    19231927{ KEYWORD_RETURN(AUTO); }
    19241928        YY_BREAK
    19251929case 22:
    19261930YY_RULE_SETUP
    1927 #line 189 "lex.ll"
     1931#line 190 "lex.ll"
    19281932{ KEYWORD_RETURN(BOOL); }                               // C99
    19291933        YY_BREAK
    19301934case 23:
    19311935YY_RULE_SETUP
    1932 #line 190 "lex.ll"
     1936#line 191 "lex.ll"
    19331937{ KEYWORD_RETURN(BREAK); }
    19341938        YY_BREAK
    19351939case 24:
    19361940YY_RULE_SETUP
    1937 #line 191 "lex.ll"
     1941#line 192 "lex.ll"
    19381942{ KEYWORD_RETURN(CASE); }
    19391943        YY_BREAK
    19401944case 25:
    19411945YY_RULE_SETUP
    1942 #line 192 "lex.ll"
     1946#line 193 "lex.ll"
    19431947{ KEYWORD_RETURN(CATCH); }                              // CFA
    19441948        YY_BREAK
    19451949case 26:
    19461950YY_RULE_SETUP
    1947 #line 193 "lex.ll"
     1951#line 194 "lex.ll"
    19481952{ KEYWORD_RETURN(CATCHRESUME); }                // CFA
    19491953        YY_BREAK
    19501954case 27:
    19511955YY_RULE_SETUP
    1952 #line 194 "lex.ll"
     1956#line 195 "lex.ll"
    19531957{ KEYWORD_RETURN(CHAR); }
    19541958        YY_BREAK
    19551959case 28:
    19561960YY_RULE_SETUP
    1957 #line 195 "lex.ll"
     1961#line 196 "lex.ll"
    19581962{ KEYWORD_RETURN(CHOOSE); }                             // CFA
    19591963        YY_BREAK
    19601964case 29:
    19611965YY_RULE_SETUP
    1962 #line 196 "lex.ll"
     1966#line 197 "lex.ll"
    19631967{ KEYWORD_RETURN(COMPLEX); }                    // C99
    19641968        YY_BREAK
    19651969case 30:
    1966 YY_RULE_SETUP
    1967 #line 197 "lex.ll"
    1968 { KEYWORD_RETURN(COMPLEX); }                    // GCC
    1969         YY_BREAK
    1970 case 31:
    19711970YY_RULE_SETUP
    19721971#line 198 "lex.ll"
    19731972{ KEYWORD_RETURN(COMPLEX); }                    // GCC
    19741973        YY_BREAK
     1974case 31:
     1975YY_RULE_SETUP
     1976#line 199 "lex.ll"
     1977{ KEYWORD_RETURN(COMPLEX); }                    // GCC
     1978        YY_BREAK
    19751979case 32:
    19761980YY_RULE_SETUP
    1977 #line 199 "lex.ll"
     1981#line 200 "lex.ll"
    19781982{ KEYWORD_RETURN(CONST); }
    19791983        YY_BREAK
    19801984case 33:
    1981 YY_RULE_SETUP
    1982 #line 200 "lex.ll"
    1983 { KEYWORD_RETURN(CONST); }                              // GCC
    1984         YY_BREAK
    1985 case 34:
    19861985YY_RULE_SETUP
    19871986#line 201 "lex.ll"
    19881987{ KEYWORD_RETURN(CONST); }                              // GCC
    19891988        YY_BREAK
     1989case 34:
     1990YY_RULE_SETUP
     1991#line 202 "lex.ll"
     1992{ KEYWORD_RETURN(CONST); }                              // GCC
     1993        YY_BREAK
    19901994case 35:
    19911995YY_RULE_SETUP
    1992 #line 202 "lex.ll"
     1996#line 203 "lex.ll"
    19931997{ KEYWORD_RETURN(CONTEXT); }                    // CFA
    19941998        YY_BREAK
    19951999case 36:
    19962000YY_RULE_SETUP
    1997 #line 203 "lex.ll"
     2001#line 204 "lex.ll"
    19982002{ KEYWORD_RETURN(CONTINUE); }
    19992003        YY_BREAK
    20002004case 37:
    20012005YY_RULE_SETUP
    2002 #line 204 "lex.ll"
     2006#line 205 "lex.ll"
    20032007{ KEYWORD_RETURN(DEFAULT); }
    20042008        YY_BREAK
    20052009case 38:
    20062010YY_RULE_SETUP
    2007 #line 205 "lex.ll"
     2011#line 206 "lex.ll"
    20082012{ KEYWORD_RETURN(DISABLE); }                    // CFA
    20092013        YY_BREAK
    20102014case 39:
    20112015YY_RULE_SETUP
    2012 #line 206 "lex.ll"
     2016#line 207 "lex.ll"
    20132017{ KEYWORD_RETURN(DO); }
    20142018        YY_BREAK
    20152019case 40:
    20162020YY_RULE_SETUP
    2017 #line 207 "lex.ll"
     2021#line 208 "lex.ll"
    20182022{ KEYWORD_RETURN(DOUBLE); }
    20192023        YY_BREAK
    20202024case 41:
    20212025YY_RULE_SETUP
    2022 #line 208 "lex.ll"
     2026#line 209 "lex.ll"
    20232027{ KEYWORD_RETURN(DTYPE); }                              // CFA
    20242028        YY_BREAK
    20252029case 42:
    20262030YY_RULE_SETUP
    2027 #line 209 "lex.ll"
     2031#line 210 "lex.ll"
    20282032{ KEYWORD_RETURN(ELSE); }
    20292033        YY_BREAK
    20302034case 43:
    20312035YY_RULE_SETUP
    2032 #line 210 "lex.ll"
     2036#line 211 "lex.ll"
    20332037{ KEYWORD_RETURN(ENABLE); }                             // CFA
    20342038        YY_BREAK
    20352039case 44:
    20362040YY_RULE_SETUP
    2037 #line 211 "lex.ll"
     2041#line 212 "lex.ll"
    20382042{ KEYWORD_RETURN(ENUM); }
    20392043        YY_BREAK
    20402044case 45:
    20412045YY_RULE_SETUP
    2042 #line 212 "lex.ll"
     2046#line 213 "lex.ll"
    20432047{ KEYWORD_RETURN(EXTENSION); }                  // GCC
    20442048        YY_BREAK
    20452049case 46:
    20462050YY_RULE_SETUP
    2047 #line 213 "lex.ll"
     2051#line 214 "lex.ll"
    20482052{ KEYWORD_RETURN(EXTERN); }
    20492053        YY_BREAK
    20502054case 47:
    20512055YY_RULE_SETUP
    2052 #line 214 "lex.ll"
     2056#line 215 "lex.ll"
    20532057{ KEYWORD_RETURN(FALLTHRU); }                   // CFA
    20542058        YY_BREAK
    20552059case 48:
    20562060YY_RULE_SETUP
    2057 #line 215 "lex.ll"
     2061#line 216 "lex.ll"
    20582062{ KEYWORD_RETURN(FINALLY); }                    // CFA
    20592063        YY_BREAK
    20602064case 49:
    20612065YY_RULE_SETUP
    2062 #line 216 "lex.ll"
     2066#line 217 "lex.ll"
    20632067{ KEYWORD_RETURN(FLOAT); }
    20642068        YY_BREAK
    20652069case 50:
    20662070YY_RULE_SETUP
    2067 #line 217 "lex.ll"
     2071#line 218 "lex.ll"
    20682072{ KEYWORD_RETURN(FLOAT); }                              // GCC
    20692073        YY_BREAK
    20702074case 51:
    20712075YY_RULE_SETUP
    2072 #line 218 "lex.ll"
     2076#line 219 "lex.ll"
    20732077{ KEYWORD_RETURN(FOR); }
    20742078        YY_BREAK
    20752079case 52:
    20762080YY_RULE_SETUP
    2077 #line 219 "lex.ll"
     2081#line 220 "lex.ll"
    20782082{ KEYWORD_RETURN(FORALL); }                             // CFA
    20792083        YY_BREAK
    20802084case 53:
    20812085YY_RULE_SETUP
    2082 #line 220 "lex.ll"
     2086#line 221 "lex.ll"
    20832087{ KEYWORD_RETURN(FORTRAN); }
    20842088        YY_BREAK
    20852089case 54:
    20862090YY_RULE_SETUP
    2087 #line 221 "lex.ll"
     2091#line 222 "lex.ll"
    20882092{ KEYWORD_RETURN(FTYPE); }                              // CFA
    20892093        YY_BREAK
    20902094case 55:
    20912095YY_RULE_SETUP
    2092 #line 222 "lex.ll"
     2096#line 223 "lex.ll"
    20932097{ KEYWORD_RETURN(GENERIC); }                    // C11
    20942098        YY_BREAK
    20952099case 56:
    20962100YY_RULE_SETUP
    2097 #line 223 "lex.ll"
     2101#line 224 "lex.ll"
    20982102{ KEYWORD_RETURN(GOTO); }
    20992103        YY_BREAK
    21002104case 57:
    21012105YY_RULE_SETUP
    2102 #line 224 "lex.ll"
     2106#line 225 "lex.ll"
    21032107{ KEYWORD_RETURN(IF); }
    21042108        YY_BREAK
    21052109case 58:
    21062110YY_RULE_SETUP
    2107 #line 225 "lex.ll"
     2111#line 226 "lex.ll"
    21082112{ KEYWORD_RETURN(IMAGINARY); }                  // C99
    21092113        YY_BREAK
    21102114case 59:
    2111 YY_RULE_SETUP
    2112 #line 226 "lex.ll"
    2113 { KEYWORD_RETURN(IMAGINARY); }                  // GCC
    2114         YY_BREAK
    2115 case 60:
    21162115YY_RULE_SETUP
    21172116#line 227 "lex.ll"
    21182117{ KEYWORD_RETURN(IMAGINARY); }                  // GCC
    21192118        YY_BREAK
     2119case 60:
     2120YY_RULE_SETUP
     2121#line 228 "lex.ll"
     2122{ KEYWORD_RETURN(IMAGINARY); }                  // GCC
     2123        YY_BREAK
    21202124case 61:
    21212125YY_RULE_SETUP
    2122 #line 228 "lex.ll"
     2126#line 229 "lex.ll"
    21232127{ KEYWORD_RETURN(INLINE); }                             // C99
    21242128        YY_BREAK
    21252129case 62:
    2126 YY_RULE_SETUP
    2127 #line 229 "lex.ll"
    2128 { KEYWORD_RETURN(INLINE); }                             // GCC
    2129         YY_BREAK
    2130 case 63:
    21312130YY_RULE_SETUP
    21322131#line 230 "lex.ll"
    21332132{ KEYWORD_RETURN(INLINE); }                             // GCC
    21342133        YY_BREAK
     2134case 63:
     2135YY_RULE_SETUP
     2136#line 231 "lex.ll"
     2137{ KEYWORD_RETURN(INLINE); }                             // GCC
     2138        YY_BREAK
    21352139case 64:
    21362140YY_RULE_SETUP
    2137 #line 231 "lex.ll"
     2141#line 232 "lex.ll"
    21382142{ KEYWORD_RETURN(INT); }
    21392143        YY_BREAK
    21402144case 65:
    21412145YY_RULE_SETUP
    2142 #line 232 "lex.ll"
     2146#line 233 "lex.ll"
    21432147{ KEYWORD_RETURN(INT); }                                // GCC
    21442148        YY_BREAK
    21452149case 66:
    21462150YY_RULE_SETUP
    2147 #line 233 "lex.ll"
     2151#line 234 "lex.ll"
    21482152{ KEYWORD_RETURN(LABEL); }                              // GCC
    21492153        YY_BREAK
    21502154case 67:
    21512155YY_RULE_SETUP
    2152 #line 234 "lex.ll"
     2156#line 235 "lex.ll"
    21532157{ KEYWORD_RETURN(LONG); }
    21542158        YY_BREAK
    21552159case 68:
    21562160YY_RULE_SETUP
    2157 #line 235 "lex.ll"
     2161#line 236 "lex.ll"
    21582162{ KEYWORD_RETURN(LVALUE); }                             // CFA
    21592163        YY_BREAK
    21602164case 69:
    21612165YY_RULE_SETUP
    2162 #line 236 "lex.ll"
     2166#line 237 "lex.ll"
    21632167{ KEYWORD_RETURN(NORETURN); }                   // C11
    21642168        YY_BREAK
    21652169case 70:
    21662170YY_RULE_SETUP
    2167 #line 237 "lex.ll"
     2171#line 238 "lex.ll"
    21682172{ KEYWORD_RETURN(REGISTER); }
    21692173        YY_BREAK
    21702174case 71:
    21712175YY_RULE_SETUP
    2172 #line 238 "lex.ll"
     2176#line 239 "lex.ll"
    21732177{ KEYWORD_RETURN(RESTRICT); }                   // C99
    21742178        YY_BREAK
    21752179case 72:
    2176 YY_RULE_SETUP
    2177 #line 239 "lex.ll"
    2178 { KEYWORD_RETURN(RESTRICT); }                   // GCC
    2179         YY_BREAK
    2180 case 73:
    21812180YY_RULE_SETUP
    21822181#line 240 "lex.ll"
    21832182{ KEYWORD_RETURN(RESTRICT); }                   // GCC
    21842183        YY_BREAK
     2184case 73:
     2185YY_RULE_SETUP
     2186#line 241 "lex.ll"
     2187{ KEYWORD_RETURN(RESTRICT); }                   // GCC
     2188        YY_BREAK
    21852189case 74:
    21862190YY_RULE_SETUP
    2187 #line 241 "lex.ll"
     2191#line 242 "lex.ll"
    21882192{ KEYWORD_RETURN(RETURN); }
    21892193        YY_BREAK
    21902194case 75:
    21912195YY_RULE_SETUP
    2192 #line 242 "lex.ll"
     2196#line 243 "lex.ll"
    21932197{ KEYWORD_RETURN(SHORT); }
    21942198        YY_BREAK
    21952199case 76:
    21962200YY_RULE_SETUP
    2197 #line 243 "lex.ll"
     2201#line 244 "lex.ll"
    21982202{ KEYWORD_RETURN(SIGNED); }
    21992203        YY_BREAK
    22002204case 77:
    2201 YY_RULE_SETUP
    2202 #line 244 "lex.ll"
    2203 { KEYWORD_RETURN(SIGNED); }                             // GCC
    2204         YY_BREAK
    2205 case 78:
    22062205YY_RULE_SETUP
    22072206#line 245 "lex.ll"
    22082207{ KEYWORD_RETURN(SIGNED); }                             // GCC
    22092208        YY_BREAK
     2209case 78:
     2210YY_RULE_SETUP
     2211#line 246 "lex.ll"
     2212{ KEYWORD_RETURN(SIGNED); }                             // GCC
     2213        YY_BREAK
    22102214case 79:
    22112215YY_RULE_SETUP
    2212 #line 246 "lex.ll"
     2216#line 247 "lex.ll"
    22132217{ KEYWORD_RETURN(SIZEOF); }
    22142218        YY_BREAK
    22152219case 80:
    22162220YY_RULE_SETUP
    2217 #line 247 "lex.ll"
     2221#line 248 "lex.ll"
    22182222{ KEYWORD_RETURN(STATIC); }
    22192223        YY_BREAK
    22202224case 81:
    22212225YY_RULE_SETUP
    2222 #line 248 "lex.ll"
     2226#line 249 "lex.ll"
    22232227{ KEYWORD_RETURN(STATICASSERT); }               // C11
    22242228        YY_BREAK
    22252229case 82:
    22262230YY_RULE_SETUP
    2227 #line 249 "lex.ll"
     2231#line 250 "lex.ll"
    22282232{ KEYWORD_RETURN(STRUCT); }
    22292233        YY_BREAK
    22302234case 83:
    22312235YY_RULE_SETUP
    2232 #line 250 "lex.ll"
     2236#line 251 "lex.ll"
    22332237{ KEYWORD_RETURN(SWITCH); }
    22342238        YY_BREAK
    22352239case 84:
    22362240YY_RULE_SETUP
    2237 #line 251 "lex.ll"
     2241#line 252 "lex.ll"
    22382242{ KEYWORD_RETURN(THREADLOCAL); }                // C11
    22392243        YY_BREAK
    22402244case 85:
    22412245YY_RULE_SETUP
    2242 #line 252 "lex.ll"
     2246#line 253 "lex.ll"
    22432247{ KEYWORD_RETURN(THROW); }                              // CFA
    22442248        YY_BREAK
    22452249case 86:
    22462250YY_RULE_SETUP
    2247 #line 253 "lex.ll"
     2251#line 254 "lex.ll"
    22482252{ KEYWORD_RETURN(THROWRESUME); }                // CFA
    22492253        YY_BREAK
    22502254case 87:
    22512255YY_RULE_SETUP
    2252 #line 254 "lex.ll"
     2256#line 255 "lex.ll"
    22532257{ KEYWORD_RETURN(TRY); }                                // CFA
    22542258        YY_BREAK
    22552259case 88:
    22562260YY_RULE_SETUP
    2257 #line 255 "lex.ll"
     2261#line 256 "lex.ll"
    22582262{ KEYWORD_RETURN(TYPE); }                               // CFA
    22592263        YY_BREAK
    22602264case 89:
    22612265YY_RULE_SETUP
    2262 #line 256 "lex.ll"
     2266#line 257 "lex.ll"
    22632267{ KEYWORD_RETURN(TYPEDEF); }
    22642268        YY_BREAK
    22652269case 90:
    2266 YY_RULE_SETUP
    2267 #line 257 "lex.ll"
    2268 { KEYWORD_RETURN(TYPEOF); }                             // GCC
    2269         YY_BREAK
    2270 case 91:
    22712270YY_RULE_SETUP
    22722271#line 258 "lex.ll"
    22732272{ KEYWORD_RETURN(TYPEOF); }                             // GCC
    22742273        YY_BREAK
    2275 case 92:
     2274case 91:
    22762275YY_RULE_SETUP
    22772276#line 259 "lex.ll"
    22782277{ KEYWORD_RETURN(TYPEOF); }                             // GCC
    22792278        YY_BREAK
     2279case 92:
     2280YY_RULE_SETUP
     2281#line 260 "lex.ll"
     2282{ KEYWORD_RETURN(TYPEOF); }                             // GCC
     2283        YY_BREAK
    22802284case 93:
    22812285YY_RULE_SETUP
    2282 #line 260 "lex.ll"
     2286#line 261 "lex.ll"
    22832287{ KEYWORD_RETURN(UNION); }
    22842288        YY_BREAK
    22852289case 94:
    22862290YY_RULE_SETUP
    2287 #line 261 "lex.ll"
     2291#line 262 "lex.ll"
    22882292{ KEYWORD_RETURN(UNSIGNED); }
    22892293        YY_BREAK
    22902294case 95:
    22912295YY_RULE_SETUP
    2292 #line 262 "lex.ll"
     2296#line 263 "lex.ll"
    22932297{ KEYWORD_RETURN(VOID); }
    22942298        YY_BREAK
    22952299case 96:
    22962300YY_RULE_SETUP
    2297 #line 263 "lex.ll"
     2301#line 264 "lex.ll"
    22982302{ KEYWORD_RETURN(VOLATILE); }
    22992303        YY_BREAK
    23002304case 97:
    2301 YY_RULE_SETUP
    2302 #line 264 "lex.ll"
    2303 { KEYWORD_RETURN(VOLATILE); }                   // GCC
    2304         YY_BREAK
    2305 case 98:
    23062305YY_RULE_SETUP
    23072306#line 265 "lex.ll"
    23082307{ KEYWORD_RETURN(VOLATILE); }                   // GCC
    23092308        YY_BREAK
     2309case 98:
     2310YY_RULE_SETUP
     2311#line 266 "lex.ll"
     2312{ KEYWORD_RETURN(VOLATILE); }                   // GCC
     2313        YY_BREAK
    23102314case 99:
    23112315YY_RULE_SETUP
    2312 #line 266 "lex.ll"
     2316#line 267 "lex.ll"
    23132317{ KEYWORD_RETURN(WHILE); }
    23142318        YY_BREAK
     
    23162320case 100:
    23172321YY_RULE_SETUP
    2318 #line 269 "lex.ll"
     2322#line 270 "lex.ll"
    23192323{ IDENTIFIER_RETURN(); }
    23202324        YY_BREAK
    23212325case 101:
    23222326YY_RULE_SETUP
    2323 #line 270 "lex.ll"
     2327#line 271 "lex.ll"
    23242328{ ATTRIBUTE_RETURN(); }
    23252329        YY_BREAK
    23262330case 102:
    23272331YY_RULE_SETUP
    2328 #line 271 "lex.ll"
     2332#line 272 "lex.ll"
    23292333{ BEGIN BKQUOTE; }
    23302334        YY_BREAK
    23312335case 103:
    23322336YY_RULE_SETUP
    2333 #line 272 "lex.ll"
     2337#line 273 "lex.ll"
    23342338{ IDENTIFIER_RETURN(); }
    23352339        YY_BREAK
    23362340case 104:
    23372341YY_RULE_SETUP
    2338 #line 273 "lex.ll"
     2342#line 274 "lex.ll"
    23392343{ BEGIN 0; }
    23402344        YY_BREAK
     
    23422346case 105:
    23432347YY_RULE_SETUP
    2344 #line 276 "lex.ll"
     2348#line 277 "lex.ll"
    23452349{ NUMERIC_RETURN(ZERO); }                               // CFA
    23462350        YY_BREAK
    23472351case 106:
    23482352YY_RULE_SETUP
    2349 #line 277 "lex.ll"
     2353#line 278 "lex.ll"
    23502354{ NUMERIC_RETURN(ONE); }                                // CFA
    23512355        YY_BREAK
    23522356case 107:
    2353 YY_RULE_SETUP
    2354 #line 278 "lex.ll"
    2355 { NUMERIC_RETURN(INTEGERconstant); }
    2356         YY_BREAK
    2357 case 108:
    23582357YY_RULE_SETUP
    23592358#line 279 "lex.ll"
    23602359{ NUMERIC_RETURN(INTEGERconstant); }
    23612360        YY_BREAK
    2362 case 109:
     2361case 108:
    23632362YY_RULE_SETUP
    23642363#line 280 "lex.ll"
    23652364{ NUMERIC_RETURN(INTEGERconstant); }
    23662365        YY_BREAK
     2366case 109:
     2367YY_RULE_SETUP
     2368#line 281 "lex.ll"
     2369{ NUMERIC_RETURN(INTEGERconstant); }
     2370        YY_BREAK
    23672371case 110:
    2368 YY_RULE_SETUP
    2369 #line 281 "lex.ll"
    2370 { NUMERIC_RETURN(FLOATINGconstant); }
    2371         YY_BREAK
    2372 case 111:
    23732372YY_RULE_SETUP
    23742373#line 282 "lex.ll"
    23752374{ NUMERIC_RETURN(FLOATINGconstant); }
    23762375        YY_BREAK
     2376case 111:
     2377YY_RULE_SETUP
     2378#line 283 "lex.ll"
     2379{ NUMERIC_RETURN(FLOATINGconstant); }
     2380        YY_BREAK
    23772381/* character constant, allows empty value */
    23782382case 112:
    23792383YY_RULE_SETUP
    2380 #line 285 "lex.ll"
     2384#line 286 "lex.ll"
    23812385{ BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    23822386        YY_BREAK
    23832387case 113:
    23842388YY_RULE_SETUP
    2385 #line 286 "lex.ll"
     2389#line 287 "lex.ll"
    23862390{ *strtext += std::string( yytext ); }
    23872391        YY_BREAK
     
    23892393/* rule 114 can match eol */
    23902394YY_RULE_SETUP
    2391 #line 287 "lex.ll"
     2395#line 288 "lex.ll"
    23922396{ BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); }
    23932397        YY_BREAK
     
    23962400case 115:
    23972401YY_RULE_SETUP
    2398 #line 291 "lex.ll"
     2402#line 292 "lex.ll"
    23992403{ BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    24002404        YY_BREAK
    24012405case 116:
    24022406YY_RULE_SETUP
    2403 #line 292 "lex.ll"
     2407#line 293 "lex.ll"
    24042408{ *strtext += std::string( yytext ); }
    24052409        YY_BREAK
     
    24072411/* rule 117 can match eol */
    24082412YY_RULE_SETUP
    2409 #line 293 "lex.ll"
     2413#line 294 "lex.ll"
    24102414{ BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); }
    24112415        YY_BREAK
     
    24142418case 118:
    24152419YY_RULE_SETUP
    2416 #line 297 "lex.ll"
     2420#line 298 "lex.ll"
    24172421{ rm_underscore(); *strtext += std::string( yytext ); }
    24182422        YY_BREAK
     
    24202424/* rule 119 can match eol */
    24212425YY_RULE_SETUP
    2422 #line 298 "lex.ll"
     2426#line 299 "lex.ll"
    24232427{}                                              // continuation (ALSO HANDLED BY CPP)
    24242428        YY_BREAK
    24252429case 120:
    24262430YY_RULE_SETUP
    2427 #line 299 "lex.ll"
     2431#line 300 "lex.ll"
    24282432{ *strtext += std::string( yytext ); } // unknown escape character
    24292433        YY_BREAK
     
    24312435case 121:
    24322436YY_RULE_SETUP
    2433 #line 302 "lex.ll"
    2434 { ASCIIOP_RETURN(); }
    2435         YY_BREAK
    2436 case 122:
    2437 YY_RULE_SETUP
    24382437#line 303 "lex.ll"
    24392438{ ASCIIOP_RETURN(); }
    24402439        YY_BREAK
    2441 case 123:
     2440case 122:
    24422441YY_RULE_SETUP
    24432442#line 304 "lex.ll"
    24442443{ ASCIIOP_RETURN(); }
    24452444        YY_BREAK
    2446 case 124:
     2445case 123:
    24472446YY_RULE_SETUP
    24482447#line 305 "lex.ll"
    24492448{ ASCIIOP_RETURN(); }
    24502449        YY_BREAK
    2451 case 125:
     2450case 124:
    24522451YY_RULE_SETUP
    24532452#line 306 "lex.ll"
    24542453{ ASCIIOP_RETURN(); }
    24552454        YY_BREAK
    2456 case 126:
     2455case 125:
    24572456YY_RULE_SETUP
    24582457#line 307 "lex.ll"
    24592458{ ASCIIOP_RETURN(); }
    24602459        YY_BREAK
     2460case 126:
     2461YY_RULE_SETUP
     2462#line 308 "lex.ll"
     2463{ ASCIIOP_RETURN(); }
     2464        YY_BREAK
    24612465case 127:
    24622466YY_RULE_SETUP
    2463 #line 308 "lex.ll"
     2467#line 309 "lex.ll"
    24642468{ ASCIIOP_RETURN(); }                                   // also operator
    24652469        YY_BREAK
    24662470case 128:
    2467 YY_RULE_SETUP
    2468 #line 309 "lex.ll"
    2469 { ASCIIOP_RETURN(); }
    2470         YY_BREAK
    2471 case 129:
    24722471YY_RULE_SETUP
    24732472#line 310 "lex.ll"
    24742473{ ASCIIOP_RETURN(); }
    24752474        YY_BREAK
     2475case 129:
     2476YY_RULE_SETUP
     2477#line 311 "lex.ll"
     2478{ ASCIIOP_RETURN(); }
     2479        YY_BREAK
    24762480case 130:
    24772481YY_RULE_SETUP
    2478 #line 311 "lex.ll"
     2482#line 312 "lex.ll"
    24792483{ ASCIIOP_RETURN(); }                                   // also operator
    24802484        YY_BREAK
    24812485case 131:
    24822486YY_RULE_SETUP
    2483 #line 312 "lex.ll"
     2487#line 313 "lex.ll"
    24842488{ NAMEDOP_RETURN(ELLIPSIS); }
    24852489        YY_BREAK
     
    24872491case 132:
    24882492YY_RULE_SETUP
    2489 #line 315 "lex.ll"
     2493#line 316 "lex.ll"
    24902494{ RETURN_VAL('['); }
    24912495        YY_BREAK
    24922496case 133:
    24932497YY_RULE_SETUP
    2494 #line 316 "lex.ll"
     2498#line 317 "lex.ll"
    24952499{ RETURN_VAL(']'); }
    24962500        YY_BREAK
    24972501case 134:
    24982502YY_RULE_SETUP
    2499 #line 317 "lex.ll"
     2503#line 318 "lex.ll"
    25002504{ RETURN_VAL('{'); }
    25012505        YY_BREAK
    25022506case 135:
    25032507YY_RULE_SETUP
    2504 #line 318 "lex.ll"
     2508#line 319 "lex.ll"
    25052509{ RETURN_VAL('}'); }
    25062510        YY_BREAK
     
    25082512case 136:
    25092513YY_RULE_SETUP
    2510 #line 321 "lex.ll"
    2511 { ASCIIOP_RETURN(); }
    2512         YY_BREAK
    2513 case 137:
    2514 YY_RULE_SETUP
    25152514#line 322 "lex.ll"
    25162515{ ASCIIOP_RETURN(); }
    25172516        YY_BREAK
    2518 case 138:
     2517case 137:
    25192518YY_RULE_SETUP
    25202519#line 323 "lex.ll"
    25212520{ ASCIIOP_RETURN(); }
    25222521        YY_BREAK
    2523 case 139:
     2522case 138:
    25242523YY_RULE_SETUP
    25252524#line 324 "lex.ll"
    25262525{ ASCIIOP_RETURN(); }
    25272526        YY_BREAK
    2528 case 140:
     2527case 139:
    25292528YY_RULE_SETUP
    25302529#line 325 "lex.ll"
    25312530{ ASCIIOP_RETURN(); }
    25322531        YY_BREAK
    2533 case 141:
     2532case 140:
    25342533YY_RULE_SETUP
    25352534#line 326 "lex.ll"
    25362535{ ASCIIOP_RETURN(); }
    25372536        YY_BREAK
    2538 case 142:
     2537case 141:
    25392538YY_RULE_SETUP
    25402539#line 327 "lex.ll"
    25412540{ ASCIIOP_RETURN(); }
    25422541        YY_BREAK
    2543 case 143:
     2542case 142:
    25442543YY_RULE_SETUP
    25452544#line 328 "lex.ll"
    25462545{ ASCIIOP_RETURN(); }
    25472546        YY_BREAK
    2548 case 144:
     2547case 143:
    25492548YY_RULE_SETUP
    25502549#line 329 "lex.ll"
    25512550{ ASCIIOP_RETURN(); }
    25522551        YY_BREAK
    2553 case 145:
     2552case 144:
    25542553YY_RULE_SETUP
    25552554#line 330 "lex.ll"
    25562555{ ASCIIOP_RETURN(); }
    25572556        YY_BREAK
    2558 case 146:
     2557case 145:
    25592558YY_RULE_SETUP
    25602559#line 331 "lex.ll"
    25612560{ ASCIIOP_RETURN(); }
    25622561        YY_BREAK
    2563 case 147:
     2562case 146:
    25642563YY_RULE_SETUP
    25652564#line 332 "lex.ll"
    25662565{ ASCIIOP_RETURN(); }
    25672566        YY_BREAK
    2568 case 148:
     2567case 147:
    25692568YY_RULE_SETUP
    25702569#line 333 "lex.ll"
    25712570{ ASCIIOP_RETURN(); }
    25722571        YY_BREAK
    2573 case 149:
     2572case 148:
    25742573YY_RULE_SETUP
    25752574#line 334 "lex.ll"
    25762575{ ASCIIOP_RETURN(); }
    25772576        YY_BREAK
     2577case 149:
     2578YY_RULE_SETUP
     2579#line 335 "lex.ll"
     2580{ ASCIIOP_RETURN(); }
     2581        YY_BREAK
    25782582case 150:
    25792583YY_RULE_SETUP
    2580 #line 336 "lex.ll"
     2584#line 337 "lex.ll"
    25812585{ NAMEDOP_RETURN(ICR); }
    25822586        YY_BREAK
    25832587case 151:
    25842588YY_RULE_SETUP
    2585 #line 337 "lex.ll"
     2589#line 338 "lex.ll"
    25862590{ NAMEDOP_RETURN(DECR); }
    25872591        YY_BREAK
    25882592case 152:
    25892593YY_RULE_SETUP
    2590 #line 338 "lex.ll"
     2594#line 339 "lex.ll"
    25912595{ NAMEDOP_RETURN(EQ); }
    25922596        YY_BREAK
    25932597case 153:
    25942598YY_RULE_SETUP
    2595 #line 339 "lex.ll"
     2599#line 340 "lex.ll"
    25962600{ NAMEDOP_RETURN(NE); }
    25972601        YY_BREAK
    25982602case 154:
    25992603YY_RULE_SETUP
    2600 #line 340 "lex.ll"
     2604#line 341 "lex.ll"
    26012605{ NAMEDOP_RETURN(LS); }
    26022606        YY_BREAK
    26032607case 155:
    26042608YY_RULE_SETUP
    2605 #line 341 "lex.ll"
     2609#line 342 "lex.ll"
    26062610{ NAMEDOP_RETURN(RS); }
    26072611        YY_BREAK
    26082612case 156:
    26092613YY_RULE_SETUP
    2610 #line 342 "lex.ll"
     2614#line 343 "lex.ll"
    26112615{ NAMEDOP_RETURN(LE); }
    26122616        YY_BREAK
    26132617case 157:
    26142618YY_RULE_SETUP
    2615 #line 343 "lex.ll"
     2619#line 344 "lex.ll"
    26162620{ NAMEDOP_RETURN(GE); }
    26172621        YY_BREAK
    26182622case 158:
    26192623YY_RULE_SETUP
    2620 #line 344 "lex.ll"
     2624#line 345 "lex.ll"
    26212625{ NAMEDOP_RETURN(ANDAND); }
    26222626        YY_BREAK
    26232627case 159:
    26242628YY_RULE_SETUP
    2625 #line 345 "lex.ll"
     2629#line 346 "lex.ll"
    26262630{ NAMEDOP_RETURN(OROR); }
    26272631        YY_BREAK
    26282632case 160:
    26292633YY_RULE_SETUP
    2630 #line 346 "lex.ll"
     2634#line 347 "lex.ll"
    26312635{ NAMEDOP_RETURN(ARROW); }
    26322636        YY_BREAK
    26332637case 161:
    26342638YY_RULE_SETUP
    2635 #line 347 "lex.ll"
     2639#line 348 "lex.ll"
    26362640{ NAMEDOP_RETURN(PLUSassign); }
    26372641        YY_BREAK
    26382642case 162:
    26392643YY_RULE_SETUP
    2640 #line 348 "lex.ll"
     2644#line 349 "lex.ll"
    26412645{ NAMEDOP_RETURN(MINUSassign); }
    26422646        YY_BREAK
    26432647case 163:
    26442648YY_RULE_SETUP
    2645 #line 349 "lex.ll"
     2649#line 350 "lex.ll"
    26462650{ NAMEDOP_RETURN(MULTassign); }
    26472651        YY_BREAK
    26482652case 164:
    26492653YY_RULE_SETUP
    2650 #line 350 "lex.ll"
     2654#line 351 "lex.ll"
    26512655{ NAMEDOP_RETURN(DIVassign); }
    26522656        YY_BREAK
    26532657case 165:
    26542658YY_RULE_SETUP
    2655 #line 351 "lex.ll"
     2659#line 352 "lex.ll"
    26562660{ NAMEDOP_RETURN(MODassign); }
    26572661        YY_BREAK
    26582662case 166:
    26592663YY_RULE_SETUP
    2660 #line 352 "lex.ll"
     2664#line 353 "lex.ll"
    26612665{ NAMEDOP_RETURN(ANDassign); }
    26622666        YY_BREAK
    26632667case 167:
    26642668YY_RULE_SETUP
    2665 #line 353 "lex.ll"
     2669#line 354 "lex.ll"
    26662670{ NAMEDOP_RETURN(ORassign); }
    26672671        YY_BREAK
    26682672case 168:
    26692673YY_RULE_SETUP
    2670 #line 354 "lex.ll"
     2674#line 355 "lex.ll"
    26712675{ NAMEDOP_RETURN(ERassign); }
    26722676        YY_BREAK
    26732677case 169:
    26742678YY_RULE_SETUP
    2675 #line 355 "lex.ll"
     2679#line 356 "lex.ll"
    26762680{ NAMEDOP_RETURN(LSassign); }
    26772681        YY_BREAK
    26782682case 170:
    26792683YY_RULE_SETUP
    2680 #line 356 "lex.ll"
     2684#line 357 "lex.ll"
    26812685{ NAMEDOP_RETURN(RSassign); }
    26822686        YY_BREAK
    26832687case 171:
    26842688YY_RULE_SETUP
    2685 #line 358 "lex.ll"
     2689#line 359 "lex.ll"
    26862690{ NAMEDOP_RETURN(ATassign); }
    26872691        YY_BREAK
     
    26892693case 172:
    26902694YY_RULE_SETUP
    2691 #line 361 "lex.ll"
     2695#line 362 "lex.ll"
    26922696{ IDENTIFIER_RETURN(); }                                // unary
    26932697        YY_BREAK
    26942698case 173:
    2695 YY_RULE_SETUP
    2696 #line 362 "lex.ll"
    2697 { IDENTIFIER_RETURN(); }
    2698         YY_BREAK
    2699 case 174:
    27002699YY_RULE_SETUP
    27012700#line 363 "lex.ll"
    27022701{ IDENTIFIER_RETURN(); }
    27032702        YY_BREAK
     2703case 174:
     2704YY_RULE_SETUP
     2705#line 364 "lex.ll"
     2706{ IDENTIFIER_RETURN(); }
     2707        YY_BREAK
    27042708case 175:
    27052709YY_RULE_SETUP
    2706 #line 364 "lex.ll"
     2710#line 365 "lex.ll"
    27072711{ IDENTIFIER_RETURN(); }                // binary
    27082712        YY_BREAK
     
    27352739case 176:
    27362740YY_RULE_SETUP
    2737 #line 391 "lex.ll"
     2741#line 392 "lex.ll"
    27382742{
    27392743        // 1 or 2 character unary operator ?
     
    27502754case 177:
    27512755YY_RULE_SETUP
    2752 #line 403 "lex.ll"
     2756#line 404 "lex.ll"
    27532757{ printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
    27542758        YY_BREAK
    27552759case 178:
    27562760YY_RULE_SETUP
    2757 #line 405 "lex.ll"
     2761#line 406 "lex.ll"
    27582762ECHO;
    27592763        YY_BREAK
    2760 #line 2761 "Parser/lex.cc"
     2764#line 2765 "Parser/lex.cc"
    27612765case YY_STATE_EOF(INITIAL):
    27622766case YY_STATE_EOF(COMMENT):
     
    30553059                        {
    30563060                        yy_current_state = (int) yy_def[yy_current_state];
    3057                         if ( yy_current_state >= 852 )
     3061                        if ( yy_current_state >= 862 )
    30583062                                yy_c = yy_meta[(unsigned int) yy_c];
    30593063                        }
     
    30833087                {
    30843088                yy_current_state = (int) yy_def[yy_current_state];
    3085                 if ( yy_current_state >= 852 )
     3089                if ( yy_current_state >= 862 )
    30863090                        yy_c = yy_meta[(unsigned int) yy_c];
    30873091                }
    30883092        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    3089         yy_is_jam = (yy_current_state == 851);
     3093        yy_is_jam = (yy_current_state == 861);
    30903094
    30913095        return yy_is_jam ? 0 : yy_current_state;
     
    37333737#define YYTABLES_NAME "yytables"
    37343738
    3735 #line 405 "lex.ll"
     3739#line 406 "lex.ll"
    37363740
    37373741
  • src/Parser/lex.ll

    r8488c71 r73a28e2  
    1010 * Created On       : Sat Sep 22 08:58:10 2001
    1111 * Last Modified By : Peter A. Buhr
    12  * Last Modified On : Thu Oct  8 16:13:07 2015
    13  * Update Count     : 404
     12 * Last Modified On : Thu Jan 21 21:53:38 2016
     13 * Update Count     : 417
    1414 */
    1515
     
    9595fractional_constant ({decimal_digits}?"."{decimal_digits})|({decimal_digits}".")
    9696exponent "_"?[eE]"_"?[+-]?{decimal_digits}
    97 floating_suffix "_"?[flFL]
     97                                // GCC: D (double), LD (long double) and iI (imaginary) suffixes
     98floating_suffix "_"?(([fFdD][lL]?)|([lL][fFdD]?)|([iI][lLfFdD]?))
    9899floating_constant (({fractional_constant}{exponent}?)|({decimal_digits}{exponent})){floating_suffix}?
    99100
  • src/SymTab/IdTable.cc

    r8488c71 r73a28e2  
    99// Author           : Richard C. Bilson
    1010// Created On       : Sun May 17 17:04:02 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Wed Oct 07 12:21:13 2015
    13 // Update Count     : 73
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Fri Jan  8 22:59:23 2016
     13// Update Count     : 74
    1414//
    1515
     
    5454                        manglename = name;
    5555                } else if ( LinkageSpec::isOverridable( decl->get_linkage() ) ) {
    56                         // mangle the name without including the appropriate suffix
    57                         // this will make it so that overridable routines are placed
    58                         // into the same "bucket" as their user defined versions.
     56                        // mangle the name without including the appropriate suffix, so overridable routines are placed into the
     57                        // same "bucket" as their user defined versions.
    5958                        manglename = Mangler::mangle( decl, false );
    6059                } else {
     
    7170                        std::stack< DeclEntry >& entry = it->second;
    7271                        if ( ! entry.empty() && entry.top().second == scopeLevel ) {
    73                                 // if we're giving the same name mangling to things of
    74                                 //  different types then there is something wrong
     72                                // if we're giving the same name mangling to things of different types then there is something wrong
    7573                                Declaration *old = entry.top().first;
    7674                                assert( (dynamic_cast<ObjectDecl*>( decl ) && dynamic_cast<ObjectDecl*>( old ) )
Note: See TracChangeset for help on using the changeset viewer.