Changeset 984dce6


Ignore:
Timestamp:
Mar 22, 2016, 9:57:47 PM (9 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, 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:
94980502
Parents:
a752883
Message:

only implicitly generate typedef for structures if name not in use and overwrite typedef name if explicit name appears, upate parser symbol table

Location:
src/Parser
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/DeclarationNode.cc

    ra752883 r984dce6  
    1010// Created On       : Sat May 16 12:34:05 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Mar  2 17:26:24 2016
    13 // Update Count     : 134
     12// Last Modified On : Mon Mar 21 21:04:23 2016
     13// Update Count     : 142
    1414//
    1515
     
    4242UniqueName DeclarationNode::anonymous( "__anonymous" );
    4343
    44 extern LinkageSpec::Type linkage;               /* defined in cfa.y */
     44extern LinkageSpec::Type linkage;                                               // defined in parser.yy
    4545
    4646DeclarationNode *DeclarationNode::clone() const {
     
    5555        newnode->linkage = linkage;
    5656        return newnode;
    57 }
     57} // DeclarationNode::clone
    5858
    5959DeclarationNode::DeclarationNode() : type( 0 ), bitfieldWidth( 0 ), initializer( 0 ), hasEllipsis( false ), linkage( ::linkage ) {
     
    117117        newnode->type->function->newStyle = newStyle;
    118118        newnode->type->function->body = body;
     119        typedefTable.addToEnclosingScope( newnode->name, TypedefTable::ID );
    119120
    120121        if ( body ) {
     
    129130
    130131        return newnode;
    131 }
     132} // DeclarationNode::newFunction
    132133
    133134DeclarationNode *DeclarationNode::newQualifier( Qualifier q ) {
     
    136137        newnode->type->qualifiers.push_back( q );
    137138        return newnode;
    138 }
     139} // DeclarationNode::newQualifier
    139140
    140141DeclarationNode *DeclarationNode::newStorageClass( DeclarationNode::StorageClass sc ) {
     
    142143        newnode->storageClasses.push_back( sc );
    143144        return newnode;
    144 }
     145} // DeclarationNode::newStorageClass
    145146
    146147DeclarationNode *DeclarationNode::newBasicType( BasicType bt ) {
     
    149150        newnode->type->basic->typeSpec.push_back( bt );
    150151        return newnode;
    151 }
     152} // DeclarationNode::newBasicType
    152153
    153154DeclarationNode *DeclarationNode::newBuiltinType( BuiltinType bt ) {
     
    156157        newnode->type->builtin->type = bt;
    157158        return newnode;
    158 }
     159} // DeclarationNode::newBuiltinType
    159160
    160161DeclarationNode *DeclarationNode::newModifier( Modifier mod ) {
     
    163164        newnode->type->basic->modifiers.push_back( mod );
    164165        return newnode;
    165 }
     166} // DeclarationNode::newModifier
    166167
    167168DeclarationNode *DeclarationNode::newForall( DeclarationNode *forall ) {
     
    170171        newnode->type->forall = forall;
    171172        return newnode;
    172 }
     173} // DeclarationNode::newForall
    173174
    174175DeclarationNode *DeclarationNode::newFromTypedef( std::string *name ) {
     
    179180        newnode->type->symbolic->params = 0;
    180181        return newnode;
    181 }
     182} // DeclarationNode::newFromTypedef
    182183
    183184DeclarationNode *DeclarationNode::newAggregate( Aggregate kind, const std::string *name, ExpressionNode *actuals, DeclarationNode *fields ) {
     
    188189        if ( newnode->type->aggregate->name == "" ) {           // anonymous aggregate ?
    189190                newnode->type->aggregate->name = DeclarationNode::anonymous.newName();
    190         } else {
    191                 // SKULLDUGGERY: generate a typedef for the aggregate name so that the aggregate does not have to be qualified
    192                 // by "struct"
     191        } else if ( ! typedefTable.exists( newnode->type->aggregate->name ) ) {
     192                // SKULLDUGGERY: Generate a typedef for the aggregate name so the aggregate does not have to be qualified by
     193                // "struct". Only generate the typedef, if the name is not in use. The typedef is implicitly (silently) removed
     194                // if the name is explicitly used.
    193195                typedefTable.addToEnclosingScope( newnode->type->aggregate->name, TypedefTable::TD );
    194196                DeclarationNode *typedf = new DeclarationNode;
     
    199201        newnode->type->aggregate->fields = fields;
    200202        return newnode;
    201 }
     203} // DeclarationNode::newAggregate
    202204
    203205DeclarationNode *DeclarationNode::newEnum( std::string *name, DeclarationNode *constants ) {
     
    208210        if ( newnode->type->enumeration->name == "" ) {         // anonymous enumeration ?
    209211                newnode->type->enumeration->name = DeclarationNode::anonymous.newName();
    210         } else {
    211                 // SKULLDUGGERY: generate a typedef for the enumeration name so that the enumeration does not have to be
    212                 // qualified by "enum"
     212        } else if ( ! typedefTable.exists( newnode->type->enumeration->name ) ) {
     213                // SKULLDUGGERY: Generate a typedef for the enumeration name so the enumeration does not have to be qualified by
     214                // "enum". Only generate the typedef, if the name is not in use. The typedef is implicitly (silently) removed if
     215                // the name is explicitly used.
    213216                typedefTable.addToEnclosingScope( newnode->type->enumeration->name, TypedefTable::TD );
    214217                DeclarationNode *typedf = new DeclarationNode;
     
    218221        newnode->type->enumeration->constants = constants;
    219222        return newnode;
    220 }
     223} // DeclarationNode::newEnum
    221224
    222225DeclarationNode *DeclarationNode::newEnumConstant( std::string *name, ExpressionNode *constant ) {
     
    224227        newnode->name = assign_strptr( name );
    225228        newnode->enumeratorValue = constant;
    226         return newnode;
    227 }
     229        typedefTable.addToEnclosingScope( newnode->name, TypedefTable::ID );
     230        return newnode;
     231} // DeclarationNode::newEnumConstant
    228232
    229233DeclarationNode *DeclarationNode::newName( std::string *name ) {
     
    231235        newnode->name = assign_strptr( name );
    232236        return newnode;
    233 }
     237} // DeclarationNode::newName
    234238
    235239DeclarationNode *DeclarationNode::newFromTypeGen( std::string *name, ExpressionNode *params ) {
     
    240244        newnode->type->symbolic->actuals = params;
    241245        return newnode;
    242 }
     246} // DeclarationNode::newFromTypeGen
    243247
    244248DeclarationNode *DeclarationNode::newTypeParam( TypeClass tc, std::string *name ) {
     
    249253        newnode->type->variable->name = newnode->name;
    250254        return newnode;
    251 }
     255} // DeclarationNode::newTypeParam
    252256
    253257DeclarationNode *DeclarationNode::newTrait( std::string *name, DeclarationNode *params, DeclarationNode *asserts ) {
     
    259263        newnode->type->aggregate->name = assign_strptr( name );
    260264        return newnode;
    261 }
     265} // DeclarationNode::newTrait
    262266
    263267DeclarationNode *DeclarationNode::newTraitUse( std::string *name, ExpressionNode *params ) {
     
    269273        newnode->type->aggInst->params = params;
    270274        return newnode;
    271 }
     275} // DeclarationNode::newTraitUse
    272276
    273277DeclarationNode *DeclarationNode::newTypeDecl( std::string *name, DeclarationNode *typeParams ) {
     
    279283        newnode->type->symbolic->name = newnode->name;
    280284        return newnode;
    281 }
     285} // DeclarationNode::newTypeDecl
    282286
    283287DeclarationNode *DeclarationNode::newPointer( DeclarationNode *qualifiers ) {
     
    285289        newnode->type = new TypeData( TypeData::Pointer );
    286290        return newnode->addQualifiers( qualifiers );
    287 }
     291} // DeclarationNode::newPointer
    288292
    289293DeclarationNode *DeclarationNode::newArray( ExpressionNode *size, DeclarationNode *qualifiers, bool isStatic ) {
     
    298302        } // if
    299303        return newnode->addQualifiers( qualifiers );
    300 }
     304} // DeclarationNode::newArray
    301305
    302306DeclarationNode *DeclarationNode::newVarArray( DeclarationNode *qualifiers ) {
  • src/Parser/ExpressionNode.cc

    ra752883 r984dce6  
    1010// Created On       : Sat May 16 13:17:07 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Feb  1 13:32:30 2016
    13 // Update Count     : 271
     12// Last Modified On : Sun Mar 13 12:34:38 2016
     13// Update Count     : 272
    1414//
    1515
     
    487487                args.front() = new AddressExpr( args.front() );
    488488                break;
    489           default:
    490                 /* do nothing */
     489          default:              // do nothing
    491490                ;
    492         }
     491        } // switch
    493492
    494493        switch ( op->get_type() ) {
  • src/Parser/Parser.cc

    ra752883 r984dce6  
    1010// Created On       : Sat May 16 14:54:28 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun May 31 23:45:19 2015
    13 // Update Count     : 4
     12// Last Modified On : Mon Mar 21 18:04:47 2016
     13// Update Count     : 5
    1414//
    1515
    1616#include "Parser.h"
    17 #include "TypedefTable.h"
    1817#include "lex.h"
    1918#include "parser.h"
     19#include "TypedefTable.h"
    2020
    2121// global variables in cfa.y
  • src/Parser/TypedefTable.cc

    ra752883 r984dce6  
    1010// Created On       : Sat May 16 15:20:13 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Mar  2 17:25:55 2016
    13 // Update Count     : 20
     12// Last Modified On : Mon Mar 21 18:18:58 2016
     13// Update Count     : 23
    1414//
    1515
    1616#include <map>
    1717#include <list>
     18#include <cassert>
    1819#include "TypedefTable.h"
    19 #include <cassert>
    2020using namespace std;
    2121
     
    2929TypedefTable::TypedefTable() : currentScope( 0 ) {}
    3030
     31bool TypedefTable::exists( const string &identifier ) {
     32        return table.count( identifier ) > 0;
     33}
     34
    3135void TypedefTable::changeKind( const string &identifier, kind_t kind ) {
    3236        tableType::iterator id_pos = table.find( identifier );
    33         if ( id_pos == table.end() ) {
    34                 return;
    35         } else {
    36                 (*((*id_pos ).second.begin())).kind = kind;
    37                 return;
    38         } // if
     37        if ( id_pos == table.end() ) return;
     38        id_pos->second.begin()->kind = kind;
    3939}
    4040
    41 bool TypedefTable::isKind( const string &identifier, kind_t kind ) const {
     41int TypedefTable::isKind( const string &identifier ) const {
    4242        tableType::const_iterator id_pos = table.find( identifier );
    43         if ( id_pos == table.end() ) {
    44                 return true;
    45         } else {
    46                 return (*((*id_pos ).second.begin())).kind == kind;
    47         } // if
    48 }
    49 
    50 bool TypedefTable::isIdentifier( const string &identifier ) const {
    51         return isKind( identifier, ID );
    52 }
    53 
    54 bool TypedefTable::isTypedef( const string &identifier ) const {
    55         return isKind( identifier, TD );
    56 }
    57 
    58 bool TypedefTable::isTypegen( const string &identifier ) const {
    59         return isKind( identifier, TG );
     43        // Name lookup defaults to identifier, and then the identifier's kind is set by the parser.
     44        if ( id_pos == table.end() ) return IDENTIFIER;
     45        return id_pos->second.begin()->kind;
    6046}
    6147
  • src/Parser/TypedefTable.h

    ra752883 r984dce6  
    1010// Created On       : Sat May 16 15:24:36 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Mar  2 17:26:54 2016
    13 // Update Count     : 12
     12// Last Modified On : Mon Mar 21 18:17:36 2016
     13// Update Count     : 24
    1414//
    1515
     
    2222#include <stack>
    2323
     24#include "lex.h"
     25#include "parser.h"
     26
    2427class TypedefTable {
    2528  public:
    26         enum kind_t { ID, TD, TG };
     29        enum kind_t { ID = IDENTIFIER, TD = TYPEDEFname, TG = TYPEGENname };
    2730  private:
    2831        struct Entry {
     
    4952        std::stack< std::string > nextIdentifiers;
    5053
    51         bool isKind( const std::string &identifier, kind_t kind ) const;
    5254        void addToScope( const std::string &identifier, kind_t kind, int scope );
    5355  public:
    5456        TypedefTable();
    5557
    56         bool isIdentifier( const std::string &identifier ) const;
    57         bool isTypedef( const std::string &identifier ) const;
    58         bool isTypegen( const std::string &identifier ) const;
    59 
     58        bool exists( const std::string &identifier );
     59        int isKind( const std::string &identifier ) const;
    6060        void changeKind( const std::string &identifier, kind_t kind );
    6161       
  • src/Parser/lex.cc

    ra752883 r984dce6  
    418418      120,  120,    0,    0,    0,  118,    0,    0,    0,    0,
    419419        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    420         0,  133,  112,  112,    0,  112,  112,  112,    0,    6,
    421       112,  110,    0,    0,    0,  112,    0,  110,  110,  110,
     420        0,  133,  112,  112,    0,  112,  112,    0,    0,    6,
     421        0,  110,    0,    0,    0,  112,    0,  110,  110,  110,
    422422      110,    0,  111,    0,    0,  109,  109,  109,  109,    0,
    423423      171,  172,    0,  177,  175,    0,    0,    0,  103,    0,
     
    433433        0,  120,    0,    0,    0,    0,    0,  120,    0,    0,
    434434      178,    0,    0,    0,    0,    0,    0,    0,  112,    0,
    435       112,    0,  112,    0,    0,  112,  112,  110,  110,    0,
     435      112,    0,  112,    0,    0,  112,    0,  110,  110,    0,
    436436        0,  111,  111,    0,  111,    0,  111,  109,  109,    0,
    437437        0,    0,    0,    0,    0,    0,    0,    0,    0,  176,
     
    445445      102,  102,  102,  102,   97,  102,  102,    0,    0,    0,
    446446        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    447         0,  120,    0,    0,    0,    0,    0,  112,  112,    0,
     447        0,  120,    0,    0,    0,    0,    0,  112,    0,    0,
    448448        0,    0,    0,    0,  111,  111,    0,  113,    0,  111,
    449449
     
    459459        0,    0,    0,    0,    0,  113,    0,    0,  111,  113,
    460460
    461       113,  113,  113,  113,  111,    0,    0,    0,    0,    0,
     461      113,  113,  113,    0,  111,    0,    0,    0,    0,    0,
    462462        0,    0,    0,    0,    0,  102,    0,  102,  102,  102,
    463463      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     
    467467       81,   83,   84,  102,  102,   91,  102,  102,    0,    1,
    468468        0,    0,    0,    0,    0,    0,  105,    0,    0,    0,
    469       120,    0,    0,    0,    0,  113,  113,  113,  113,    0,
     469      120,    0,    0,    0,    0,  113,    0,  113,  113,    0,
    470470        0,    0,    0,    0,    0,    0,    0,    0,  102,  102,
    471471
     
    500500       16,   17,   18,   19,   20,   21,   22,   23,   24,   25,
    501501       26,   26,   26,   26,   26,   27,   28,   29,   30,   31,
    502        32,   33,   34,   35,   36,   37,   38,   39,   40,   39,
    503        41,   11,   42,   11,   11,   43,   11,   44,   11,   45,
    504        11,   46,   47,   48,   49,   11,   11,   50,   11,   11,
    505        51,   52,   53,   54,   55,   56,   57,   58,   59,   60,
    506 
    507        61,   62,   63,   64,   65,   11,   66,   67,   68,   69,
    508        70,   71,   11,   72,   73,   74,   75,   76,   77,   78,
    509        79,   80,   81,   82,   83,   84,    1,    1,    1,    1,
     502       32,   33,   34,   35,   36,   37,   38,   39,   40,   41,
     503       42,   11,   43,   11,   11,   44,   11,   45,   11,   46,
     504       11,   47,   48,   49,   50,   11,   11,   51,   11,   11,
     505       52,   53,   54,   55,   56,   57,   58,   59,   60,   61,
     506
     507       62,   63,   64,   65,   66,   11,   67,   68,   69,   70,
     508       71,   72,   11,   73,   74,   75,   76,   77,   78,   79,
     509       80,   81,   82,   83,   84,   85,    1,    1,    1,    1,
    510510        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    511511        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    524524    } ;
    525525
    526 static yyconst flex_int32_t yy_meta[85] =
     526static yyconst flex_int32_t yy_meta[86] =
    527527    {   0,
    528528        1,    1,    2,    1,    1,    1,    1,    1,    3,    1,
     
    530530        6,    1,    7,    7,    7,    7,    7,    7,    1,    1,
    531531        1,    8,    1,    1,    1,    9,    9,    9,    9,    9,
    532         4,    4,   10,    4,   11,    4,    4,    4,   10,    4,
    533         1,   12,    1,    1,   13,    1,    9,    9,    9,    9,
    534         9,    9,    4,    4,    4,    4,   10,    4,    4,    4,
    535        11,    4,    4,    4,   10,    4,    4,    4,    4,    4,
    536         1,    1,    1,    1
     532        9,    4,    4,   10,    4,   11,    4,    4,    4,   10,
     533        4,    1,   12,    1,    1,   13,    1,    9,    9,    9,
     534        9,    9,    9,    4,    4,    4,    4,   10,    4,    4,
     535        4,   11,    4,    4,    4,   10,    4,    4,    4,    4,
     536        4,    1,    1,    1,    1
    537537    } ;
    538538
    539539static yyconst flex_int16_t yy_base[1062] =
    540540    {   0,
    541         0,   83, 2268, 2265,   93,    0,  175,  176,  177,  178,
    542      2279, 2798,  189, 2798,  195,   54, 2798, 2226,   59,  171,
    543      2798, 2798, 2798,   55,  186, 2798,  189,  187,  202,  214,
    544       272,    0, 2244, 2798,  214, 2243,  150,  340,  153,  222,
    545      2798,  157, 2798,  215,  224, 2798,  207,  181,  221,  249,
    546       235,  289,  155,  255,  218,  231,  206,  266,  256,  323,
    547       259,  192, 2798,  252, 2798, 2238,  377,  342, 2798, 2249,
    548      2798, 2218,  241, 2798,    0, 2798,  421,    0, 2798,  393,
    549      2798,  399,  405, 2798,  492, 2216,  276, 2798, 2798, 2798,
    550      2798, 2798, 2231, 2798, 2228, 2798, 2798, 2240,  552, 2798,
    551 
    552      2257, 2798,  413,  393,  437,  493,  377,  318,  195,  430,
    553       382,    0,  384,  321,  196,  427, 2798, 2798, 2798, 2226,
    554      2798, 2798, 2798, 2223, 2220,  304,  342, 2235,  381,  435,
    555       422,  400,  455,  440,  494, 2216,  469, 2165,  497, 2193,
    556      2798,  432, 2798, 2798,  521, 2187, 2186, 2798, 2159,  470,
    557       414,  436,  325,  254,  463,  480,  486,  563,  274,  482,
    558       484,  487,  495,  234,  489,  341,  488,  490,  377,  507,
    559       497,  501,  503,  514,  515,  506,  529, 2186,  531,  537,
    560       505,  518,  536,  534,  538,  559,  575,  571,  577,  574,
    561       599,  590,  581,  592, 2798, 2798,  662,  668, 2232,  674,
    562 
    563      2798,  680, 2798, 2180,  583, 2176, 2175,    0,  671, 2798,
    564      2798,  686, 2173, 2170, 2167,    0, 2189,  568,  615,  618,
    565       695,  694,  627,  654,  628,  683, 2186,  686,  687, 2163,
    566      2160, 2798,    0,  680,  712,  703,  682, 2157, 2208, 2798,
    567       711,    0,  702,  756,  762,  795,  774,  604, 2798, 2167,
    568      2141,    0,  803, 2167,  780,  684, 2798, 2143, 2118,  804,
    569      2798, 2798, 2148, 2798, 2798,  724,  728, 2126, 2126,  694,
    570      2122, 2120, 2117,    0, 2114,    0, 2085,  679,  682,  696,
    571       423,  722,  757,  703,  758,  741,  799,  764,  725,  789,
    572       697,  774,  788,  792,  760,  784,  795, 2115,  809,  797,
    573 
    574       816,  196,  804,  812,  817,  823,  829,  632,  831,  832,
    575       836,  819,  837,  833,  840,  844,  847,  843,  853,  851,
    576      2113,  854,  855,  856,  859,  857,  858,  860,  861,  867,
    577       863,  866,  868,  873,  874, 2110,  877,  716,  882,  883,
    578       884,  888,  894,  947,  944, 2104, 2103, 2102,    0, 2100,
    579         0,  934,  939, 2097,    0, 2094,    0, 2093,    0, 2113,
    580      2798,  934,  935, 2092, 2087,    0, 2086,    0, 2798,  947,
    581       967,  958, 2798,  973,  988, 1012, 2085, 2798, 2798,  932,
    582       962,  999,  975, 1033,  912, 1020,  956, 2798, 2798, 2083,
    583      2080, 2079,    0, 2078,    0, 2076,    0, 2073,    0, 2798,
    584 
    585       956,  936,  978,  950,  994, 1010, 1016,  973, 1019, 1020,
    586      1024, 1012, 1029, 1030, 1026, 1027, 1032, 1038, 1044, 1031,
    587      1051, 1049, 1041, 2072, 1055, 2068, 1054, 2066, 1057, 1058,
    588      1059,  974, 1061, 1064, 1065, 2064, 1070, 2061, 1063, 1071,
    589      1073, 1075, 1076, 1081, 1077, 2059, 1082, 2057, 1084, 1087,
    590      1089, 1092, 1094, 1095, 1100, 1090, 1098, 1106, 1115, 1102,
    591      1103, 1116, 1104, 1118, 2054, 1119, 1123, 1169, 2048,    0,
    592      2047,    0, 2046,    0, 2044,    0, 1164, 2041,    0, 2038,
    593         0, 2037, 2036, 2034,    0, 2031,    0, 1171, 2028, 1177,
    594      1137, 1197, 1164, 1112, 1131, 2798, 1216, 1230, 1256, 2039,
    595 
    596      2014, 2024, 2021,    0, 2018,    0, 2017,    0, 2016,    0,
    597      2014,    0, 2011,    0, 1159, 1164, 2011, 1160, 1178, 1182,
    598      1133, 1194, 1208, 1185,  541, 1199, 1197, 1215, 1193, 1209,
    599      1211, 1225, 1210, 1254, 1235, 1237, 1239, 1241, 1242, 2010,
    600      1252, 1248, 2009, 1249, 1253, 1255, 1251, 2007, 1258, 1261,
    601      1262, 1264, 2004, 1265, 1271, 2001, 1263, 1273, 2000, 1269,
    602      1275, 1277, 1999, 1281, 1283, 1285, 1284, 1286, 1296, 1997,
    603      1295, 1287, 1994, 1299, 1300, 1991, 2039, 1986,    0, 1984,
    604         0, 1981,    0, 1980,    0, 1979,    0, 1977,    0, 1974,
    605         0, 1973,    0, 1336, 1346, 1369, 1357, 1972, 2798, 1375,
    606 
    607      1311, 1347, 1313, 1970, 2798, 1937,    0, 1935,    0, 1934,
    608         0, 1931,    0,    0,    0, 1931,    0, 1353, 1354, 1305,
    609      1302, 1335, 1363, 1366, 1367, 1364,  586, 1370, 1365, 1374,
    610      1368, 1376, 1369, 1385, 1380, 1166, 1392, 1394, 1327, 1395,
    611      1396, 1399, 1930, 1398, 1400, 1401, 1929, 1927, 1924, 1403,
    612      1402, 1921, 1409, 1920, 1919, 1406, 1404, 1917, 1914, 1913,
    613      1912, 1910, 1907, 1416, 1417, 1906, 1419, 1405, 1954, 2798,
    614      1900,    0, 1897,    0,    0,    0, 1896,    0,    0,    0,
    615      2798,    0,    0,    0,    0, 1459, 1889, 2798, 2798, 1465,
    616      1885,    0, 1869,    0,    0,    0,    0, 1868, 1424, 1442,
    617 
    618      1870, 1444, 1447, 1443, 1451, 1453, 1455, 1457, 1868, 1459,
    619      1460, 1476, 1461, 1463, 1494, 1477, 1478, 1504, 1483, 1482,
    620      1481, 1488, 1490, 1491, 1492, 1865, 1864, 1493, 1863, 1861,
    621      1497, 1496, 1499, 1858, 1500, 1502,    0,    0,    0, 1854,
    622      1853, 1851, 1550,    0, 1848, 1847, 1846, 1844, 1841, 1843,
    623      1842, 1840, 1837, 1507, 1513, 1505, 1514, 1509, 1515, 1528,
    624      1506, 1531, 1533, 1562, 1836, 1536, 1835, 1537, 1541, 1544,
    625      1549, 1542, 1543, 1833, 1830, 1829, 1828, 1550, 1826, 1823,
    626      1819, 1818, 1816, 1813, 1812, 1811, 1809, 1802, 1800, 1799,
    627      1796, 1795, 1551, 1797, 1554, 1556, 1555, 1559, 1560, 1561,
    628 
    629      1795, 1565, 1592, 1568, 1778, 1569, 1576, 1577, 1584, 1570,
    630      1572, 1766, 1765, 1762, 1755, 1752, 1745, 1743, 1742, 1721,
    631      1720, 1719, 1712, 1710, 1712, 1582, 1587, 1595, 1590, 1589,
    632      1597, 1585, 1670, 1669, 1601, 1666, 1665, 1605, 1606, 1609,
    633      1660, 1659, 1655, 1654, 1651, 1650, 1649, 1593, 1610, 1611,
    634      1412, 1614, 1612, 1620, 1337, 1621, 1623, 1627, 1000,  928,
    635       896,  778, 1628, 1629, 1631, 1632, 1633, 1635,  709,  628,
    636      1637,  373,  338, 1639, 1640,  337,  257, 1641, 1643, 1645,
    637      1647, 1646, 1649, 1651,  200,  136, 2798, 1723, 1736, 1749,
    638      1759, 1769, 1782, 1792, 1805, 1818, 1831, 1839, 1849, 1856,
    639 
    640      1863, 1870, 1877, 1884, 1891, 1898, 1905, 1912, 1925, 1932,
    641      1936, 1944, 1947, 1954, 1961, 1968, 1971, 1978, 1984, 1997,
    642      2010, 2017, 2024, 2031, 2038, 2041, 2048, 2051, 2058, 2061,
    643      2068, 2071, 2078, 2081, 2088, 2091, 2098, 2101, 2108, 2116,
    644      2123, 2130, 2137, 2144, 2147, 2154, 2157, 2164, 2167, 2174,
    645      2180, 2193, 2200, 2207, 2210, 2217, 2220, 2227, 2230, 2237,
    646      2240, 2247, 2250, 2257, 2260, 2267, 2274, 2277, 2284, 2287,
    647      2294, 2301, 2308, 2311, 2318, 2321, 2328, 2331, 2338, 2341,
    648      2348, 2351, 2358, 2364, 2377, 2384, 2391, 2394, 2401, 2404,
    649      2411, 2414, 2421, 2424, 2431, 2434, 2441, 2444, 2451, 2454,
    650 
    651      2461, 2464, 2471, 2478, 2481, 2488, 2491, 2498, 2501, 2508,
    652      2511, 2514, 2520, 2527, 2536, 2543, 2550, 2553, 2560, 2563,
    653      2566, 2572, 2579, 2582, 2585, 2588, 2591, 2594, 2597, 2600,
    654      2607, 2610, 2617, 2620, 2623, 2626, 2629, 2639, 2646, 2649,
    655      2652, 2655, 2662, 2669, 2676, 2679, 2686, 2693, 2700, 2707,
    656      2714, 2721, 2728, 2735, 2742, 2749, 2756, 2763, 2770, 2777,
    657      2784
     541        0,   84, 2272, 2269,   94,    0,  177,  178,  179,  180,
     542     2285, 2822,  191, 2822,  197,   55, 2822, 2231,   60,  173,
     543     2822, 2822, 2822,   56,  188, 2822,  191,  189,  204,  216,
     544      275,    0, 2249, 2822,  216, 2247,  152,  344,  155,  220,
     545     2822,  159, 2822,  217,  226, 2822,  185,  154,  212,  251,
     546      237,  270,  235,  257,  241,  205,  193,  305,  314,  333,
     547      238,  228, 2822,  225, 2822, 2242,  402,  390, 2822, 2253,
     548     2822, 2221,  235, 2822,    0, 2822,  426,    0, 2822,  417,
     549     2822,  439,  451, 2822,  498, 2219,  264, 2822, 2822, 2822,
     550     2822, 2822, 2235, 2822, 2232, 2822, 2822, 2244,  559, 2822,
     551
     552     2261, 2822,  438,  444,  511,  534,  289,  253,  197,  380,
     553      305,    0,  319,  280,  198,  322, 2822, 2822, 2822, 2230,
     554     2822, 2822, 2822, 2227, 2224,  218,  255, 2239,  298,  350,
     555      368,  312,  440,  398,  405, 2220,  441, 2168,  446, 2196,
     556     2822,  335, 2822, 2822,  468, 2190, 2189, 2822, 2162,  439,
     557      282,  433,  372,  281,  437,  434,  428,  570,  444,  466,
     558      464,  469,  475,  321,  492,  438,  471,  445,  474,  512,
     559      489,  503,  496,  521,  276,  515,  516, 2189,  526,  510,
     560      519,  525,  543,  522,  560,  553,  523,  561,  551,  544,
     561      599,  582,  593,  584, 2822, 2822,  660,  651, 2236,  666,
     562
     563     2822,  678, 2822, 2183,  607, 2179, 2178,    0,  693, 2822,
     564     2822,  684, 2176, 2156, 2154,    0, 2177,  578,  608,  617,
     565      654,  679,  650,  683,  684,  687, 2172,  690,  691, 2147,
     566     2146, 2822,    0,  683,  710,  686,  700, 2145, 2196, 2822,
     567      714,    0,  427,  746,  764,  786,  808,  621, 2822, 2152,
     568     2125,    0,  794, 2171,  795,  709, 2822, 2147, 2121,  832,
     569     2822, 2822, 2152, 2822, 2822,  711,  714, 2129, 2129,  717,
     570     2125, 2123, 2120,    0, 2117,    0, 2088,  694,  679,  712,
     571      709,  711,  698,  566,  726,  743,  771,  741,  790,  784,
     572      800,  795,  742,  744,  814,  816,  818, 2118,  819,  745,
     573
     574      820,  821,  822,  823,  824,  746,  825,  748,  659,  831,
     575      826,  833,  838,  839,  848,  850,  851,  844,  834,  857,
     576     2116,  858,  859,  860,  862,  861,  864,  865,  867,  868,
     577      866,  871,  876,  872,  878, 2113,  880,  689,  881,  882,
     578      892,  896,  893,  953,  954, 2109, 2108, 2106,    0, 2103,
     579        0,  941,  945, 2102,    0, 2101,    0, 2099,    0, 2118,
     580     2822,  940,  941, 2094, 2088,    0, 2086,    0, 2822,  953,
     581      975,  964, 2822,  981,  997, 1021, 2084, 2822, 2822,  939,
     582      940, 1006,  982, 1041,  310, 1039, 1004, 2822, 2822, 2081,
     583     2079, 2077,    0, 2074,    0, 2071,    0, 2070,    0, 2822,
     584
     585      886,  941,  960,  962,  977,  976,  980,  982, 1017, 1010,
     586     1002,  998, 1022, 1031, 1028, 1033, 1034, 1037, 1040, 1043,
     587     1038, 1041, 1053, 2072, 1055, 2070, 1045, 2067, 1056, 1061,
     588     1063, 1065, 1066, 1067, 1070, 2064, 1071, 2063, 1073, 1074,
     589     1075, 1078, 1080, 1081, 1085, 2062, 1087, 2060, 1084, 1089,
     590     1091, 1097, 1099, 1092, 1102, 1103, 1105, 1106, 1108,  905,
     591     1109, 1116, 1110, 1122, 2057, 1120, 1123, 1179, 2051,    0,
     592     2050,    0, 2049,    0, 2047,    0, 1166, 2044,    0, 2041,
     593        0, 2040, 2039, 2037,    0, 2034,    0, 1173, 2031, 1179,
     594     1137, 1195, 1181, 1178, 1176, 2822, 1219, 1231, 1253, 2042,
     595
     596     2017, 2027, 2024,    0, 2021,    0, 2020,    0, 2019,    0,
     597     2017,    0, 2014,    0, 1141, 1172, 2014, 1180, 1155, 1196,
     598     1157, 1216, 1207, 1231, 1125, 1210, 1232, 1214, 1187, 1236,
     599     1235, 1237, 1238, 1272, 1249, 1252, 1250, 1253, 1254, 2013,
     600     1261, 1256, 2012, 1260, 1263, 1264, 1257, 2010, 1271, 1268,
     601     1269, 1273, 2007, 1275, 1282, 2006, 1283, 1284, 2005, 1276,
     602     1286, 1289, 2003, 1294, 1291, 1296, 1295, 1297, 1310, 2000,
     603     1305, 1308, 1999, 1307, 1300, 1998, 2046, 1960,    0, 1958,
     604        0, 1957,    0, 1954,    0, 1951,    0, 1950,    0, 1949,
     605        0, 1947,    0, 1355, 1361, 1389, 1372, 1944, 2822, 1378,
     606
     607     1325, 1365, 1379, 1941, 2822, 1940,    0, 1939,    0, 1937,
     608        0, 1934,    0,    0,    0, 1936,    0, 1366, 1312, 1311,
     609     1341, 1323, 1368, 1369, 1374, 1356, 1383, 1372, 1388, 1390,
     610     1393, 1395, 1396, 1398, 1400, 1431, 1406, 1407, 1411, 1408,
     611     1413, 1414, 1935, 1409, 1416, 1419, 1933, 1930, 1929, 1422,
     612     1424, 1928, 1429, 1926, 1923, 1425, 1430, 1919, 1915, 1911,
     613     1895, 1894, 1893, 1436, 1433, 1891, 1439, 1440, 1938, 2822,
     614     1884,    0, 1883,    0,    0,    0, 1884,    0,    0,    0,
     615     2822,    0,    0,    0,    0, 1486, 1878, 2822, 2822, 1492,
     616     1877,    0, 1876,    0,    0,    0,    0, 1874, 1447, 1444,
     617
     618     1874, 1449, 1471, 1479, 1450, 1480, 1482, 1469, 1873, 1486,
     619     1490, 1488, 1502, 1452, 1510, 1504, 1491, 1519, 1506, 1498,
     620     1508, 1512, 1513, 1514, 1515, 1872, 1870, 1517, 1867, 1866,
     621     1518, 1520, 1523, 1865, 1521, 1525,    0,    0,    0, 1860,
     622     1857, 1856, 1575,    0, 1855, 1853, 1850, 1849, 1848, 1849,
     623     1846, 1845, 1844, 1531, 1536, 1527, 1528, 1552, 1533, 1537,
     624     1539, 1555, 1557, 1569, 1842, 1560, 1839, 1561, 1559, 1568,
     625     1572, 1567, 1573, 1838, 1837, 1835, 1828, 1574, 1826, 1825,
     626     1819, 1818, 1817, 1815, 1798, 1789, 1788, 1785, 1778, 1775,
     627     1768, 1766, 1576, 1768, 1577, 1581, 1580, 1579, 1584, 1585,
     628
     629     1747, 1586, 1615, 1590, 1746, 1591, 1592, 1602, 1600, 1594,
     630     1606, 1742, 1735, 1733, 1732, 1690, 1689, 1686, 1685, 1683,
     631     1682, 1678, 1677, 1674, 1676, 1607, 1611, 1614, 1612, 1608,
     632     1616, 1620, 1675, 1623, 1624, 1530, 1453, 1630, 1625, 1629,
     633     1438, 1354, 1319, 1318, 1267, 1212, 1210, 1208, 1631, 1636,
     634     1178, 1639, 1635, 1643, 1177, 1644, 1646, 1650, 1126,  964,
     635      937,  903, 1651, 1652, 1654, 1655, 1656, 1658,  788,  752,
     636     1660,  607,  487, 1662, 1663,  394,  357, 1664, 1666, 1668,
     637     1670, 1669, 1672, 1674,  233,  137, 2822, 1747, 1760, 1773,
     638     1783, 1793, 1806, 1816, 1829, 1842, 1855, 1863, 1873, 1880,
     639
     640     1887, 1894, 1901, 1908, 1915, 1922, 1929, 1936, 1949, 1956,
     641     1960, 1968, 1971, 1978, 1985, 1992, 1995, 2002, 2008, 2021,
     642     2034, 2041, 2048, 2055, 2062, 2065, 2072, 2075, 2082, 2085,
     643     2092, 2095, 2102, 2105, 2112, 2115, 2122, 2125, 2132, 2140,
     644     2147, 2154, 2161, 2168, 2171, 2178, 2181, 2188, 2191, 2198,
     645     2204, 2217, 2224, 2231, 2234, 2241, 2244, 2251, 2254, 2261,
     646     2264, 2271, 2274, 2281, 2284, 2291, 2298, 2301, 2308, 2311,
     647     2318, 2325, 2332, 2335, 2342, 2345, 2352, 2355, 2362, 2365,
     648     2372, 2375, 2382, 2388, 2401, 2408, 2415, 2418, 2425, 2428,
     649     2435, 2438, 2445, 2448, 2455, 2458, 2465, 2468, 2475, 2478,
     650
     651     2485, 2488, 2495, 2502, 2505, 2512, 2515, 2522, 2525, 2532,
     652     2535, 2538, 2544, 2551, 2560, 2567, 2574, 2577, 2584, 2587,
     653     2590, 2596, 2603, 2606, 2609, 2612, 2615, 2618, 2621, 2624,
     654     2631, 2634, 2641, 2644, 2647, 2650, 2653, 2663, 2670, 2673,
     655     2676, 2679, 2686, 2693, 2700, 2703, 2710, 2717, 2724, 2731,
     656     2738, 2745, 2752, 2759, 2766, 2773, 2780, 2787, 2794, 2801,
     657     2808
    658658    } ;
    659659
     
    779779    } ;
    780780
    781 static yyconst flex_int16_t yy_nxt[2883] =
     781static yyconst flex_int16_t yy_nxt[2908] =
    782782    {   0,
    783783       12,   13,   14,   15,   15,   15,   13,   16,   17,   12,
     
    785785       28,   29,   30,   31,   32,   32,   32,   32,   33,   34,
    786786       35,   36,   37,   38,   39,   18,   18,   18,   18,   18,
    787        18,   18,   40,   18,   18,   18,   18,   18,   40,   18,
    788        41,   42,   43,   44,   45,   46,   47,   48,   49,   50,
    789        51,   52,   53,   18,   54,   18,   55,   18,   18,   56,
    790        18,   57,   58,   59,   60,   61,   62,   18,   18,   18,
    791        63,   64,   65,   66,   67,   84,   92,   85,   85,   67,
    792        88,   89,   68,   71,   71,   71,   71,   71,   71,   71,
    793 
    794        71,   71,   71,   72,   71,   71,   71,   71,   71,   71,
     787       18,   18,   18,   40,   18,   18,   18,   18,   18,   40,
     788       18,   41,   42,   43,   44,   45,   46,   47,   48,   49,
     789       50,   51,   52,   53,   18,   54,   18,   55,   18,   18,
     790       56,   18,   57,   58,   59,   60,   61,   62,   18,   18,
     791       18,   63,   64,   65,   66,   67,   84,   92,   85,   85,
     792       67,   88,   89,   68,   71,   71,   71,   71,   71,   71,
     793
     794       71,   71,   71,   71,   72,   71,   71,   71,   71,   71,
    795795       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
    796        71,   71,   71,   71,   71,   71,   71,   71,   72,   72,
     796       71,   71,   71,   71,   71,   71,   71,   71,   71,   72,
    797797       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
    798        72,   72,   72,   71,   73,   71,   71,   72,   74,   72,
     798       72,   72,   72,   72,   72,   71,   73,   71,   71,   72,
     799       74,   72,   72,   72,   72,   72,   72,   72,   72,   72,
    799800       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
    800        72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
    801        72,   72,   72,   71,   71,   71,   71,   76,   76,   79,
    802        79,  123,  124,   90,  141,   79,   79,   87,   76,   76,
    803        80,   81,   82,   82,   82,   80,   82,   81,   83,   83,
    804 
    805        83,   82,   91,   93,  142,  146,   87,   98,   95,   99,
    806        99,   99,   99,   99,   99,  252,  887,   94,  100,   85,
    807        96,   97,   85,  101,  177,  118,   77,   77,   77,   77,
    808       143,  147,   87,  102,  103,  144,  104,  104,  104,  104,
    809       105,  105,  119,   87,  120,  121,  148,   87,  149,  254,
    810       260,   87,  161,  106,  427,  194,  107,   87,   87,  150,
    811       151,  152,  108,  109,  153,  154,  183,  155,  110,   87,
    812       156,  157,   87,   87,  106,   87,  145,  162,  158,  159,
    813       111,  160,   87,  195,  163,   87,   87,  180,  108,  206,
    814       164,  109,  103,  181,  112,  112,  112,  112,  112,  112,
    815 
    816        87,  169,  305,  170,  182,   87,   87,   87,   87,  165,
    817        87,  106,  171,  166,  113,  207,  178,   87,  167,  188,
    818       114,  283,  168,  179,  230,   87,  115,  189,  193,  184,
    819       185,  143,  106,  196,  190,  263,  144,  264,  116,  186,
    820        87,  298,  187,  200,  201,  172,  114,  125,  200,  191,
    821       231,  126,  127,  173,  128,  174,  129,  130,  175,  131,
    822       250,  132,  176,  258,  202,  202,  202,  202,  202,  202,
    823       133,  134,  135,  263,   87,  264,   87,  145,  197,   81,
    824        82,   82,   82,  197,  251,  282,  198,  259,   87,   87,
    825       136,  192,   87,  137,   80,   81,   82,   82,   82,   80,
    826 
    827        82,   81,   82,   82,   82,   82,   82,   81,   83,   83,
    828        83,   82,  263,  307,  264,  242,  242,  242,  242,  248,
    829       138,  139,  209,  210,   87,  249,  256,  209,   87,  211,
    830       249,  263,  257,  264,  211,   99,   99,   99,   99,   99,
    831        99,  265,  887,  212,  212,  212,  212,  243,  248,  310,
    832       887,  249,  265,  263,  211,  264,  249,  103,  257,  105,
    833       105,  105,  105,  105,  105,   87,  263,  241,  264,  213,
    834       887,  263,  211,  264,   87,  257,  106,  211,  211,  887,
    835       271,  211,  211,  280,  255,  266,  263,   87,  264,  211,
    836       404,  244,  211,  256,  211,  214,  211,  106,  215,  217,
    837 
    838       263,  257,  264,  218,  219,  281,  272,  887,  220,  221,
    839       245,  222,  245,  223,   87,  246,  246,  246,  246,  246,
    840       246,   87,  224,  225,  226,  263,  267,  264,  263,  143,
    841       264,   87,  284,   87,  144,   87,  278,   87,   87,   87,
    842        87,   87,  227,  279,  300,  228,   87,  247,   87,  286,
    843       306,  303,   87,  285,   87,  299,   87,   87,   87,  301,
    844       302,  323,  308,  311,  304,   87,   87,  314,  309,   87,
    845       313,  315,   87,  229,  233,  233,  233,  233,  233,  233,
    846        87,  312,   87,  316,  318,   87,  317,   87,   87,   87,
    847       234,  235,   87,  236,  237,  627,  324,  320,  325,  360,
    848 
    849       329,  361,  319,  328,  321,  322,  238,  143,  326,  327,
    850        87,  234,  235,  234,   87,  331,  236,  330,  237,  287,
    851       288,  289,   87,  290,  291,   87,   87,  292,   87,  293,
    852       332,  346,   87,  335,  294,  295,  296,   87,  297,  333,
    853       709,   87,  334,   87,  337,  341,  360,  342,  361,  360,
    854        87,  361,  378,  338,  339,  336,  343,  347,  360,  360,
    855       361,  361,  340,  197,   81,   82,   82,   82,  197,  200,
    856       201,  198,  209,  210,  200,  200,  201,  209,  378,   87,
    857       200,  344,  201,   87,  362,  360,  344,  361,  345,  434,
    858       202,  202,  202,  202,  202,  202,  202,  202,  202,  202,
    859 
    860       202,  202,  202,  202,  202,  202,  202,  202,  352,  352,
    861       352,  352,  361,  361,  360,  363,  361,  360,  360,  361,
    862       361,  369,  887,  369,  143,  360,  360,  361,  361,  370,
    863        87,  370,  388,   87,  371,  371,  371,  371,  371,  371,
    864       353,  373,  390,  401,  369,  373,  369,   87,   87,  234,
    865       235,  402,  236,  237,   87,  263,  375,  264,  388,  263,
    866        87,  264,  373,  416,  373,  403,  372,   87,  391,  373,
    867       234,  235,  234,   87,  407,  236,   87,  237,  105,  105,
    868       105,  105,  105,  105,  246,  246,  246,  246,  246,  246,
    869       405,  245,   87,  245,  414,  106,  246,  246,  246,  246,
    870 
    871       246,  246,  105,  105,  105,  105,  105,  105,   87,   87,
    872       255,   87,  409,  406,  408,   87,  106,  376,  376,  376,
    873       376,  376,  376,  381,  421,   87,  112,  112,  112,  112,
    874       112,  112,  887,  234,  255,   87,  236,  237,  413,   87,
    875        87,  417,  418,   87,  419,  383,   87,  384,   87,  377,
    876        87,  385,  420,  425,  234,   87,  234,  386,  260,  236,
    877        87,  237,  422,   87,  423,  410,  415,   87,   87,  387,
    878        87,  411,  412,  384,   87,  428,  426,  385,  424,  432,
    879        87,  429,   87,   87,   87,  433,  438,   87,   87,  430,
    880       431,   87,  436,  437,   87,   87,  441,  439,   87,  440,
    881 
    882       442,  435,   87,  443,   87,   87,   87,   87,   87,   87,
    883        87,   87,   87,  445,   87,  447,  448,   87,   87,   87,
    884       444,  449,  446,  451,   87,   87,  450,  456,   87,  455,
    885       452,  454,  453,   87,   87,   87,  457,  462,  461,   87,
    886       458,  459,  460,  465,  466,   87,  201,  464,  344,  201,
    887       887,  463,  199,  344,  500,  345,  211,  211,  211,  211,
    888       467,  352,  352,  352,  352,  360,  360,  361,  361,  371,
    889       371,  371,  371,  371,  371,  370,  492,  370,  501,   87,
    890       371,  371,  371,  371,  371,  371,  493,   87,  477,  488,
    891       488,  488,  488,  488,  488,  233,  233,  233,  233,  233,
    892 
    893       233,   87,  492,  516,  496,  234,  492,   87,  236,  237,
    894       242,  242,  242,  242,  105,  105,  494,  495,  515,  381,
    895       518,  489,  495,  496,   87,   87,  234,  374,  234,   87,
    896       496,  236,  492,  237,  376,  376,  376,  376,  376,  376,
    897       887,  383,  375,  384,  517,   87,  522,  385,  545,  496,
    898       497,   87,  497,  386,  519,  498,  498,  498,  498,  498,
    899       498,   87,  383,   87,  384,  387,  377,   87,  385,  384,
    900        87,   87,  520,  385,  502,   87,  521,   87,   87,  523,
    901        87,   87,   87,   87,  524,  526,  387,  499,  532,   87,
    902       384,  525,   87,  527,  385,   87,  531,  528,  529,  530,
    903 
    904        87,  535,   87,  536,  533,   87,   87,  539,   87,   87,
    905        87,  534,   87,  537,   87,   87,   87,  541,  546,  538,
    906       540,   87,   87,  544,   87,  548,   87,   87,   87,  542,
    907       547,  543,   87,   87,  550,   87,  549,  556,   87,  552,
    908        87,   87,  554,   87,  551,   87,   87,  559,  553,   87,
    909       557,   87,  555,   87,   87,   87,  492,   87,  558,  565,
    910       564,  560,  566,  561,  567,  562,   87,   87,  563,   87,
    911        87,  201,  573,  568,   87,  571,  570,  577,  569,  599,
    912       574,  492,  492,  576,   87,  572,  211,  211,  211,  211,
    913       718,  493,  575,  488,  488,  488,  488,  488,  488,  376,
    914 
    915       376,  376,  376,  376,  376,  599,  623,  492,  492,  234,
    916        87,   87,  236,  237,  595,   87,  595,   87,  598,  596,
    917       596,  596,  596,  596,  596,  489,  620,  618,  619,   87,
    918       234,  490,  234,   87,  492,  236,   87,  237,  498,  498,
    919       498,  498,  498,  498,   87,   87,  622,  626,   87,  621,
    920        87,  597,  600,  600,  600,  600,  600,  600,  624,   87,
    921        87,   87,   87,  629,  625,  631,   87,  633,  601,  632,
    922       628,  602,  603,  497,  635,  497,   87,  636,  498,  498,
    923       498,  498,  498,  498,  604,  630,   87,  634,   87,  601,
    924        87,  601,   87,   87,  602,  637,  603,  642,  641,   87,
    925 
    926        87,  640,   87,   87,   87,   87,   87,  639,  643,   87,
    927       638,  647,   87,   87,   87,   87,   87,  644,  648,  645,
    928        87,  646,   87,  654,   87,  650,   87,  653,   87,  649,
    929       651,  652,   87,  655,   87,   87,   87,   87,   87,  657,
    930       659,  664,  656,  661,  660,  658,   87,   87,  666,  663,
    931        87,   87,  688,   87,  688,  665,   87,  662,  488,  488,
    932       488,  488,  488,  488,  668,  702,  703,  667,  596,  596,
    933       596,  596,  596,  596,  595,  688,  595,  688,   87,  596,
    934       596,  596,  596,  596,  596,  689,   87,  721,   87,  689,
    935       594,  686,  686,  686,  686,  686,  686,  600,  600,  600,
    936 
    937       600,  600,  600,  704,   87,   87,  689,  601,  689,  699,
    938       602,  603,  701,  689,   87,   87,   87,   87,   87,   87,
    939        87,   87,  700,  687,  706,   87,  707,   87,  601,  604,
    940       601,   87,  708,  602,  710,  603,   87,  705,  711,  716,
    941       712,  713,  715,   87,  714,   87,   87,   87,  717,   87,
    942        87,   87,   87,   87,   87,   87,   87,   87,  719,  724,
    943        87,  727,  732,   87,  722,  720,  731,   87,   87,  723,
    944        87,  736,  725,  726,  728,   87,  733,  730,  734,  735,
    945       729,  686,  686,  686,  686,  686,  686,  600,  600,  600,
    946       600,  600,  600,   87,   87,   87,  750,  601,   87,  754,
    947 
    948       602,  603,   87,  751,   87,  753,   87,  756,   87,  757,
    949        87,   87,   87,  687,   87,  762,  759,  764,  601,  690,
    950       601,  752,  755,  602,  760,  603,  758,   87,   87,   87,
    951       767,  765,   87,   87,   87,  763,  761,  768,  766,   87,
    952       770,   87,   87,   87,   87,   87,  769,   87,   87,  771,
    953        87,   87,  774,   87,  772,   87,   87,   87,   87,  779,
    954        87,  795,  780,  773,   87,   87,   87,  775,  776,  777,
    955       797,  778,  686,  686,  686,  686,  686,  686,  793,   87,
    956       796,  794,   87,  800,   87,  801,  803,   87,   87,  798,
    957       804,  805,   87,   87,   87,   87,  799,  802,  807,  806,
    958 
    959        87,   87,   87,  808,  743,   87,   87,   87,  809,  828,
    960        87,   87,   87,   87,  830,  831,   87,  810,  833,   87,
    961        87,   87,  834,   87,  811,  827,  826,   87,   87,  825,
    962       836,  837,  829,   87,  832,   87,   87,  839,   87,  840,
    963        87,   87,  835,   87,  838,  850,   87,  887,   87,  851,
    964       852,  855,   87,  856,  849,  857,   87,   87,  853,  858,
    965        87,   87,   87,   87,  854,   87,  859,  864,  865,  860,
    966       863,   87,   87,  866,   87,  868,  867,  869,   87,   87,
    967        87,  870,   87,   87,   87,  873,   87,  875,   87,  876,
    968        87,   87,   87,  874,   87,  872,   87,   87,   87,  871,
    969 
    970        87,  880,   87,  887,  862,  887,  879,  881,  887,  887,
    971       877,  878,  886,  887,  861,  884,   87,   87,  882,  883,
    972        87,   87,  885,   69,   69,   69,   69,   69,   69,   69,
    973        69,   69,   69,   69,   69,   69,   75,   75,   75,   75,
    974        75,   75,   75,   75,   75,   75,   75,   75,   75,   78,
    975        78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
    976        78,   78,   86,   87,  887,   86,  887,   86,   86,   86,
    977        86,   86,  140,  848,  887,  847,  140,  140,  140,  140,
    978       140,  140,  199,  199,  199,  199,  199,  199,  199,  199,
    979       199,  199,  199,  199,  199,  204,  887,  845,  204,  887,
    980 
    981       204,  204,  204,  204,  204,  208,  844,  208,  208,  887,
    982       208,  208,  208,  208,  208,  208,  843,  208,  216,  887,
    983       842,  216,  216,  216,  216,  216,  216,  216,  216,   87,
    984       216,  239,  239,  239,  239,  239,  239,  239,  239,  239,
    985       239,  239,  239,  239,  253,  253,   87,  253,   87,  887,
    986       824,  253,  269,  887,  823,  269,  821,  269,  269,  269,
    987       269,  269,  273,  887,  273,  819,  887,  817,  273,  275,
    988       887,  275,  815,  813,   87,  275,  348,   87,  348,   87,
    989        87,   87,  348,  350,   87,  350,   87,   87,   87,  350,
    990       354,   87,  354,   87,   87,  887,  354,  356,  792,  356,
    991 
    992       790,  887,  887,  356,  358,  787,  358,  785,  783,   87,
    993       358,  365,   87,  365,   87,   87,   87,  365,  367,   87,
    994       367,   87,  749,  746,  367,  239,  239,  239,  239,  239,
    995       239,  239,  239,  239,  239,  239,  239,  239,  380,  745,
    996       380,  382,  382,  743,  382,  382,  382,  205,  382,  253,
    997       253,  739,  253,  392,  738,  392,  670,   87,   87,  392,
    998       394,   87,  394,   87,   87,   87,  394,  396,   87,  396,
    999        87,   87,   87,  396,  273,   87,  273,  398,   87,  398,
    1000        87,   87,   87,  398,  275,  697,  275,   86,  696,  694,
    1001        86,  692,   86,   86,   86,   86,   86,  199,  199,  199,
    1002 
    1003       199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
     801       72,   72,   72,   72,   72,   71,   71,   71,   71,   76,
     802       76,   79,   79,  123,  124,   90,  141,   79,   79,   87,
     803       76,   76,   80,   81,   82,   82,   82,   80,   82,   81,
     804
     805       83,   83,   83,   82,   91,   93,   87,  142,  146,   98,
     806       95,   99,   99,   99,   99,   99,   99,  252,  887,   94,
     807      100,   85,   96,   97,   85,  101,  161,  118,  143,   77,
     808       77,   77,   77,  144,  147,  102,  103,   87,  104,  104,
     809      104,  104,  105,  105,  119,   87,  120,  121,  148,  263,
     810      149,  264,  254,  260,  183,  106,  195,   87,  159,  107,
     811      160,  150,  151,  152,   87,  108,  109,  153,  154,  162,
     812      155,  110,   87,  156,  157,  145,  163,  106,   87,  182,
     813       87,  158,  164,  111,  206,   87,  263,   87,  264,   87,
     814       87,  108,  194,   87,  109,  103,  250,  112,  112,  112,
     815
     816      112,  112,  112,   87,  169,  177,  170,  196,  193,   87,
     817      207,  180,  165,  230,  106,  171,  166,  181,  113,  178,
     818      251,  167,   87,  258,  114,  168,  179,  172,   87,  263,
     819      115,  264,  248,   87,   87,  173,  106,  174,  249,  231,
     820      175,  143,  116,  263,  176,  264,  144,  259,  317,  283,
     821      114,  125,  280,  500,  249,  126,  127,   87,  128,  191,
     822      129,  130,  256,  131,  249,  132,   87,  265,  257,  184,
     823      185,  257,  248,   87,  133,  134,  135,  501,  188,  186,
     824      249,  263,  187,  264,  271,   87,  189,  265,  145,  256,
     825      305,  200,  201,  190,  257,  136,  200,  257,  137,  263,
     826
     827      887,  264,  192,  197,   81,   82,   82,   82,  197,   87,
     828      272,  198,  202,  202,  202,  202,  202,  202,   80,   81,
     829       82,   82,   82,   80,   87,  138,  139,  209,  210,  263,
     830      887,  264,  209,  282,  211,  255,  263,  267,  264,  211,
     831       82,   81,   82,   82,   82,   82,   87,  887,  212,  212,
     832      212,  212,   82,   81,   83,   83,   83,   82,  887,  211,
     833       99,   99,   99,   99,   99,   99,  242,  242,  242,  242,
     834      266,  263,  263,  264,  264,  213,  143,  263,  211,  264,
     835       87,  144,  375,  211,  211,   87,   87,  211,  211,   87,
     836       87,   87,  286,  241,  887,  211,   87,   87,  211,  243,
     837
     838      211,  214,  211,  281,  215,  217,  278,  284,  285,  218,
     839      219,  307,  298,  279,  220,  221,   87,  222,   87,  223,
     840       87,   87,  887,   87,  309,  300,   87,   87,  224,  225,
     841      226,  103,  303,  105,  105,  105,  105,  105,  105,   87,
     842      299,   87,  301,  302,   87,  304,  308,  310,   87,  227,
     843      106,  245,  228,  245,  306,   87,  246,  246,  246,  246,
     844      246,  246,   87,  313,   87,  315,  244,   87,   87,  311,
     845      314,   87,  106,   87,   87,   87,  323,   87,   87,  322,
     846      229,  233,  233,  233,  233,  233,  233,  312,  333,  247,
     847      319,  316,  328,  320,  318,   87,   87,  234,  235,  236,
     848
     849      321,  237,  236,   87,  324,   87,  325,  143,  335,  360,
     850      331,  361,   87,   87,  238,  337,  326,  327,   87,  236,
     851      235,  236,   87,  329,  237,  332,  236,  287,  288,  289,
     852      336,  290,  291,  334,   87,  292,   87,  293,  407,  360,
     853      330,  361,  294,  295,  296,   87,  297,  339,  360,  343,
     854      361,   87,  200,  201,  338,  340,  346,  200,  341,   87,
     855      342,  197,   81,   82,   82,   82,  197,  200,  201,  198,
     856      378,  361,  200,  202,  202,  202,  202,  202,  202,  344,
     857      201,  360,  347,  361,  344,  360,  345,  361,  202,  202,
     858      202,  202,  202,  202,  209,  210,  378,  143,  361,  209,
     859
     860      202,  202,  202,  202,  202,  202,  352,  352,  352,  352,
     861      360,   87,  361,  362,  360,  360,  361,  361,  360,  363,
     862      361,  360,  360,  361,  361,  369,  369,  370,  369,  370,
     863      435,   87,  371,  371,  371,  371,  371,  371,  373,  353,
     864      373,   87,  263,  373,  264,  263,   87,  264,  369,  402,
     865       87,  369,  234,  235,  236,  406,  237,  236,  388,  401,
     866      373,   87,  373,   87,   87,  372,  390,  373,  105,  105,
     867      105,  105,  105,  105,  236,  235,  236,  404,   87,  237,
     868      405,  236,  403,  408,  388,  106,  246,  246,  246,  246,
     869      246,  246,  391,   87,   87,   87,   87,   87,   87,  419,
     870
     871       87,  255,  425,  432,   87,  420,  434,  106,  376,  376,
     872      376,  376,  376,  376,  381,  409,  413,  105,  105,  105,
     873      105,  105,  105,   87,  234,  245,  236,  245,  237,  236,
     874      246,  246,  246,  246,  246,  246,   87,  383,  410,  384,
     875       87,  377,   87,  385,  411,  412,  236,   87,  236,  386,
     876      255,  237,   87,  236,  112,  112,  112,  112,  112,  112,
     877      414,  387,  415,  417,  418,  384,   87,  416,   87,  385,
     878       87,   87,   87,   87,   87,   87,   87,   87,   87,  421,
     879      427,  426,  433,   87,  437,   87,   87,  260,  423,  424,
     880       87,   87,  436,  429,  428,  422,   87,  430,  431,  439,
     881
     882       87,  438,   87,   87,  446,  441,  440,  442,  443,   87,
     883       87,   87,   87,   87,   87,  445,   87,   87,   87,   87,
     884       87,  448,  447,   87,   87,  444,  449,  451,   87,  456,
     885       87,  450,   87,   87,   87,  452,  455,  454,   87,  453,
     886      457,  462,  460,  461,   87,   87,  458,  464,   87,  515,
     887      459,  463,  465,  466,  344,  201,  201,   87,  887,  344,
     888      467,  345,  199,  211,  211,  211,  211,  352,  352,  352,
     889      352,  360,  360,  361,  361,  371,  371,  371,  371,  371,
     890      371,  370,  569,  370,  492,  492,  371,  371,  371,  371,
     891      371,  371,  887,   87,  493,  494,  477,  488,  488,  488,
     892
     893      488,  488,  488,  233,  233,  233,  233,  233,  233,  516,
     894      492,  492,   87,  234,   87,  236,   87,  237,  236,  242,
     895      242,  242,  242,  105,  105,  495,  381,  517,   87,   87,
     896      489,  496,   87,  518,   87,  236,  374,  236,  519,  520,
     897      237,  521,  236,  376,  376,  376,  376,  376,  376,  383,
     898       87,  384,  375,  496,   87,  385,  522,  496,  497,  887,
     899      497,  386,   87,  498,  498,  498,  498,  498,  498,   87,
     900      525,  495,  526,  387,   87,  524,  377,  384,  523,  496,
     901       87,  385,  383,   87,  384,   87,   87,  527,  385,   87,
     902       87,  532,   87,   87,  502,   87,  499,   87,  535,  528,
     903
     904      529,  537,  530,  531,  533,   87,  387,   87,   87,  541,
     905      384,  534,  538,   87,  385,   87,  536,   87,   87,   87,
     906      539,  540,   87,   87,  546,   87,   87,   87,  544,  542,
     907       87,  548,   87,   87,  547,  543,   87,   87,  549,   87,
     908      545,   87,  552,   87,   87,  550,  556,  554,  551,   87,
     909      559,   87,  553,  555,   87,   87,  557,   87,   87,  558,
     910       87,   87,   87,  564,  560,  567,  563,  568,   87,  561,
     911      566,  562,   87,  565,   87,   87,  571,   87,   87,  573,
     912      627,  201,  492,  570,  576,  574,  572,  577,  211,  211,
     913      211,  211,  493,   87,  575,  488,  488,  488,  488,  488,
     914
     915      488,  376,  376,  376,  376,  376,  376,   87,  492,   87,
     916      618,  234,  595,  236,  595,  237,  236,  596,  596,  596,
     917      596,  596,  596,  492,   87,  599,  492,  621,  489,   87,
     918       87,  623,   87,  236,  490,  236,  598,  619,  237,   87,
     919      236,  498,  498,  498,  498,  498,  498,  620,   87,  492,
     920      597,  599,  492,  600,  600,  600,  600,  600,  600,   87,
     921      631,  622,   87,  887,  625,  887,   87,  862,   87,  601,
     922      497,  602,  497,  603,  602,  498,  498,  498,  498,  498,
     923      498,  624,  628,   87,   87,  630,  604,   87,   87,   87,
     924       87,  602,  633,  602,  626,  636,  603,  632,  602,  629,
     925
     926      634,   87,   87,  635,   87,   87,   87,  642,   87,   87,
     927      637,  641,   87,   87,  640,   87,   87,  643,  647,  639,
     928       87,   87,  887,   87,   87,   87,  638,   87,   87,  644,
     929      645,  646,  648,  650,   87,   87,   87,  649,   87,  653,
     930      651,   87,  652,   87,  654,  655,   87,   87,   87,   87,
     931      656,  657,   87,  660,  659,  661,  664,   87,  658,   87,
     932       87,  663,   87,   87,   87,  668,  665,  688,  688,  662,
     933      666,  701,  702,  887,  887,   87,  667,  488,  488,  488,
     934      488,  488,  488,  596,  596,  596,  596,  596,  596,  595,
     935      688,  595,  704,   87,  596,  596,  596,  596,  596,  596,
     936
     937      600,  600,  600,  600,  600,  600,  703,  688,   87,  887,
     938      594,  686,  686,  686,  686,  686,  686,  689,   87,  689,
     939       87,   87,  689,  699,   87,  708,   87,  601,  706,  602,
     940      688,  603,  602,  604,  707,   87,  700,  710,  709,  689,
     941       87,  689,   87,  705,  687,   87,  689,   87,   87,  602,
     942       87,  602,   87,  716,  603,  718,  602,  712,   87,   87,
     943       87,   87,  711,   87,  714,   87,   87,  713,   87,  717,
     944      715,   87,  721,  719,   87,  724,   87,   87,  722,  720,
     945      727,   87,   87,   87,  725,   87,  731,  723,   87,  732,
     946      726,   87,   87,  861,  728,  734,   87,  733,  730,   87,
     947
     948      735,   87,   87,  729,   87,   87,  751,  736,  686,  686,
     949      686,  686,  686,  686,  600,  600,  600,  600,  600,  600,
     950      750,   87,  755,   87,  601,  763,  602,  752,  603,  602,
     951      753,   87,   87,  764,   87,  756,  754,  757,   87,  758,
     952       87,  687,   87,   87,  759,  767,  602,  690,  602,  761,
     953       87,  603,  766,  602,   87,  760,   87,  762,   87,  765,
     954       87,  768,   87,  769,   87,   87,   87,   87,  770,   87,
     955       87,   87,   87,   87,  771,   87,  774,   87,  772,   87,
     956       87,  779,   87,   87,  795,   87,  780,  773,   87,   87,
     957      776,   87,  775,  803,  777,  796,  778,  686,  686,  686,
     958
     959      686,  686,  686,  793,   87,  794,  799,   87,  798,   87,
     960      801,   87,   87,   87,  797,  804,  805,  800,  806,   87,
     961       87,   87,  802,  807,   87,   87,   87,  808,   87,   87,
     962      743,   87,   87,   87,  809,  828,   87,   87,   87,  830,
     963      831,  833,   87,   87,   87,  834,   87,  836,  810,  811,
     964      826,  827,   87,  829,   87,  825,  832,  837,   87,   87,
     965       87,  838,  839,   87,   87,  835,   87,   87,   87,  851,
     966      850,  855,   87,  852,  840,   87,   87,   87,  853,  857,
     967      849,   87,   87,   87,  854,  858,  859,   87,   87,  856,
     968      860,   87,  863,  864,  865,   87,   87,  866,   87,  868,
     969
     970      867,  869,   87,   87,   87,  870,   87,   87,   87,  873,
     971       87,  875,   87,  876,   87,   87,   87,  874,   87,  872,
     972       87,   87,   87,  871,   87,  880,   87,   87,   87,  887,
     973      879,  881,  887,  848,  877,  878,  886,  887,  847,  884,
     974      887,  845,  882,  883,  887,  844,  885,   69,   69,   69,
     975       69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
     976       75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
     977       75,   75,   75,   78,   78,   78,   78,   78,   78,   78,
     978       78,   78,   78,   78,   78,   78,   86,  887,  843,   86,
     979      887,   86,   86,   86,   86,   86,  140,  842,   87,   87,
     980
     981      140,  140,  140,  140,  140,  140,  199,  199,  199,  199,
     982      199,  199,  199,  199,  199,  199,  199,  199,  199,  204,
     983       87,  887,  204,  824,  204,  204,  204,  204,  204,  208,
     984      887,  208,  208,  823,  208,  208,  208,  208,  208,  208,
     985      821,  208,  216,  887,  819,  216,  216,  216,  216,  216,
     986      216,  216,  216,  887,  216,  239,  239,  239,  239,  239,
     987      239,  239,  239,  239,  239,  239,  239,  239,  253,  253,
     988      817,  253,  887,  815,  813,  253,  269,   87,   87,  269,
     989       87,  269,  269,  269,  269,  269,  273,   87,  273,   87,
     990       87,   87,  273,  275,   87,  275,   87,   87,   87,  275,
     991
     992      348,   87,  348,  887,  792,  790,  348,  350,  887,  350,
     993      887,  787,  785,  350,  354,  783,  354,   87,   87,   87,
     994      354,  356,   87,  356,   87,   87,   87,  356,  358,  749,
     995      358,  746,  745,  743,  358,  365,  205,  365,  739,  738,
     996      670,  365,  367,   87,  367,   87,   87,   87,  367,  239,
     997      239,  239,  239,  239,  239,  239,  239,  239,  239,  239,
     998      239,  239,  380,   87,  380,  382,  382,   87,  382,  382,
     999      382,   87,  382,  253,  253,   87,  253,  392,   87,  392,
     1000       87,   87,   87,  392,  394,   87,  394,   87,   87,  697,
     1001      394,  396,  696,  396,  694,  692,  690,  396,  273,  598,
     1002
     1003      273,  398,  685,  398,  684,  682,  680,  398,  275,  678,
     1004      275,   86,  676,  674,   86,  672,   86,   86,   86,   86,
     1005       86,  199,  199,  199,  199,  199,  199,  199,  199,  199,
     1006      199,  199,  199,  199,  468,  468,  468,  468,  468,  468,
     1007      468,  468,  468,  468,  468,  468,  468,  469,  670,  469,
     1008       87,   87,   87,  469,  471,   87,  471,   87,   87,   87,
     1009      471,  473,   87,  473,   87,   87,   87,  473,  348,  617,
     1010      348,  475,  615,  475,  613,  611,  609,  475,  350,  607,
     1011      350,  478,  502,  478,  605,  605,  594,  478,  354,  593,
     1012      354,  480,  591,  480,  483,  483,  589,  480,  356,  587,
     1013
     1014      356,  482,  585,  482,  583,  581,  579,  482,  358,   87,
     1015      358,  484,   87,  484,   87,   87,   87,  484,  365,   87,
     1016      365,  486,   87,  486,   87,  514,  512,  486,  367,  510,
     1017      367,  491,  508,  491,  506,  491,  504,  491,  380,  490,
     1018      380,  487,  380,  485,  380,  382,  382,  361,  382,  382,
     1019      382,  361,  382,  503,  483,  503,  481,  479,  476,  503,
     1020      505,  474,  505,  472,  470,   87,  505,  507,   87,  507,
     1021       87,  400,  399,  507,  392,  397,  392,  509,  395,  509,
     1022      393,  270,  265,  509,  394,  264,  394,  511,  389,  511,
     1023      389,  252,  379,  511,  396,  379,  396,  513,  240,  513,
     1024
     1025      374,  368,  366,  513,  398,  364,  398,   86,  360,  359,
     1026       86,  357,   86,   86,   86,   86,   86,  468,  468,  468,
    10041027      468,  468,  468,  468,  468,  468,  468,  468,  468,  468,
    1005       468,  468,  468,  469,  690,  469,  598,  685,  684,  469,
    1006       471,  682,  471,  680,  678,  676,  471,  473,  674,  473,
    1007       672,  670,   87,  473,  348,   87,  348,  475,   87,  475,
    1008        87,   87,   87,  475,  350,   87,  350,  478,   87,  478,
    1009        87,   87,   87,  478,  354,  617,  354,  480,  615,  480,
    1010       613,  611,  609,  480,  356,  607,  356,  482,  502,  482,
    1011       605,  605,  594,  482,  358,  593,  358,  484,  591,  484,
    1012       483,  483,  589,  484,  365,  587,  365,  486,  585,  486,
    1013 
    1014       583,  581,  579,  486,  367,   87,  367,  491,   87,  491,
    1015        87,  491,   87,  491,  380,   87,  380,   87,  380,   87,
    1016       380,  382,  382,   87,  382,  382,  382,  514,  382,  503,
    1017       512,  503,  510,  508,  506,  503,  505,  504,  505,  490,
    1018       487,  485,  505,  507,  361,  507,  361,  483,  481,  507,
    1019       392,  479,  392,  509,  476,  509,  474,  472,  470,  509,
    1020       394,   87,  394,  511,   87,  511,   87,  400,  399,  511,
    1021       396,  397,  396,  513,  395,  513,  393,  270,  265,  513,
    1022       398,  264,  398,   86,  389,  389,   86,  252,   86,   86,
    1023        86,   86,   86,  468,  468,  468,  468,  468,  468,  468,
    1024 
    1025       468,  468,  468,  468,  468,  468,  578,  379,  578,  379,
    1026       240,  374,  578,  469,  368,  469,  580,  366,  580,  364,
    1027       360,  359,  580,  471,  357,  471,  582,  355,  582,  351,
    1028       349,  205,  582,  473,  201,  473,  584,   87,  584,  277,
    1029       276,  274,  584,  475,  270,  475,  586,  265,  586,  268,
    1030       265,  263,  586,  478,  262,  478,  588,  261,  588,  240,
    1031       232,   85,  588,  480,   85,  480,  482,   87,  482,  205,
    1032       203,   85,  482,  590,  122,  590,  117,   87,  887,  590,
    1033       484,   70,  484,  592,   70,  592,  887,  887,  887,  592,
    1034       486,  887,  486,  491,  887,  491,  887,  491,  887,  491,
    1035 
    1036       382,  887,  382,  887,  887,  887,  382,  606,  887,  606,
    1037       887,  887,  887,  606,  503,  887,  503,  608,  887,  608,
    1038       887,  887,  887,  608,  505,  887,  505,  610,  887,  610,
    1039       887,  887,  887,  610,  507,  887,  507,  612,  887,  612,
    1040       887,  887,  887,  612,  509,  887,  509,  614,  887,  614,
    1041       887,  887,  887,  614,  511,  887,  511,  616,  887,  616,
    1042       887,  887,  887,  616,  513,  887,  513,   86,  887,  887,
    1043        86,  887,   86,   86,   86,   86,   86,  669,  669,  669,
     1028      578,  355,  578,  351,  349,  205,  578,  469,  201,  469,
     1029      580,   87,  580,  277,  276,  274,  580,  471,  270,  471,
     1030      582,  265,  582,  268,  265,  263,  582,  473,  262,  473,
     1031      584,  261,  584,  240,  232,   85,  584,  475,   85,  475,
     1032      586,   87,  586,  205,  203,   85,  586,  478,  122,  478,
     1033      588,  117,  588,   87,  887,   70,  588,  480,   70,  480,
     1034      482,  887,  482,  887,  887,  887,  482,  590,  887,  590,
     1035
     1036      887,  887,  887,  590,  484,  887,  484,  592,  887,  592,
     1037      887,  887,  887,  592,  486,  887,  486,  491,  887,  491,
     1038      887,  491,  887,  491,  382,  887,  382,  887,  887,  887,
     1039      382,  606,  887,  606,  887,  887,  887,  606,  503,  887,
     1040      503,  608,  887,  608,  887,  887,  887,  608,  505,  887,
     1041      505,  610,  887,  610,  887,  887,  887,  610,  507,  887,
     1042      507,  612,  887,  612,  887,  887,  887,  612,  509,  887,
     1043      509,  614,  887,  614,  887,  887,  887,  614,  511,  887,
     1044      511,  616,  887,  616,  887,  887,  887,  616,  513,  887,
     1045      513,   86,  887,  887,   86,  887,   86,   86,   86,   86,
     1046
     1047       86,  669,  669,  669,  669,  669,  669,  669,  669,  669,
     1048      669,  669,  669,  669,  671,  887,  671,  887,  887,  887,
     1049      671,  578,  887,  578,  673,  887,  673,  887,  887,  887,
     1050      673,  580,  887,  580,  675,  887,  675,  887,  887,  887,
     1051      675,  582,  887,  582,  677,  887,  677,  887,  887,  887,
     1052      677,  584,  887,  584,  679,  887,  679,  887,  887,  887,
     1053      679,  586,  887,  586,  681,  887,  681,  887,  887,  887,
     1054      681,  588,  887,  588,  683,  887,  683,  887,  887,  887,
     1055      683,  590,  887,  590,   86,  887,   86,  887,  887,  887,
     1056       86,  592,  887,  592,  491,  887,  491,  887,  887,  887,
     1057
     1058      491,  691,  887,  691,  887,  887,  887,  691,  606,  887,
     1059      606,  693,  887,  693,  887,  887,  887,  693,  608,  887,
     1060      608,  695,  887,  695,  887,  887,  887,  695,  610,  887,
     1061      610,  140,  887,  140,  887,  887,  887,  140,  612,  887,
     1062      612,  698,  887,  698,  614,  887,  614,   86,  887,  887,
     1063       86,  887,   86,   86,   86,   86,   86,  616,  887,  616,
    10441064      669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
    1045       671,  887,  671,  887,  887,  887,  671,  578,  887,  578,
    1046 
    1047       673,  887,  673,  887,  887,  887,  673,  580,  887,  580,
    1048       675,  887,  675,  887,  887,  887,  675,  582,  887,  582,
    1049       677,  887,  677,  887,  887,  887,  677,  584,  887,  584,
    1050       679,  887,  679,  887,  887,  887,  679,  586,  887,  586,
    1051       681,  887,  681,  887,  887,  887,  681,  588,  887,  588,
    1052       683,  887,  683,  887,  887,  887,  683,  590,  887,  590,
    1053        86,  887,   86,  887,  887,  887,   86,  592,  887,  592,
    1054       491,  887,  491,  887,  887,  887,  491,  691,  887,  691,
    1055       887,  887,  887,  691,  606,  887,  606,  693,  887,  693,
    1056       887,  887,  887,  693,  608,  887,  608,  695,  887,  695,
    1057 
    1058       887,  887,  887,  695,  610,  887,  610,  140,  887,  140,
    1059       887,  887,  887,  140,  612,  887,  612,  698,  887,  698,
    1060       614,  887,  614,   86,  887,  887,   86,  887,   86,   86,
    1061        86,   86,   86,  616,  887,  616,  669,  669,  669,  669,
    1062       669,  669,  669,  669,  669,  669,  669,  669,  669,  737,
    1063       887,  737,  887,  887,  887,  737,  671,  887,  671,  204,
    1064       887,  204,  887,  887,  887,  204,  673,  887,  673,  740,
    1065       887,  740,  675,  887,  675,  204,  887,  887,  204,  887,
    1066       204,  204,  204,  204,  204,  677,  887,  677,  741,  887,
    1067       741,  679,  887,  679,  681,  887,  681,  742,  887,  742,
    1068 
    1069       683,  887,  683,   86,  887,   86,  744,  887,  744,  887,
    1070       887,  887,  744,  691,  887,  691,  269,  887,  269,  887,
    1071       887,  887,  269,  693,  887,  693,  747,  887,  747,  695,
    1072       887,  695,  140,  887,  140,  748,  887,  748,  887,  887,
    1073       887,  748,   86,  887,  887,   86,  887,   86,   86,   86,
    1074        86,   86,  781,  887,  781,  737,  887,  737,  204,  887,
    1075       204,  782,  887,  782,  887,  887,  887,  782,  784,  887,
    1076       784,  887,  887,  887,  784,  786,  887,  786,  887,  887,
    1077       887,  786,  788,  887,  788,  789,  887,  789,  887,  887,
    1078       887,  789,  791,  887,  791,  887,  887,  887,  791,  812,
    1079 
    1080       887,  812,  887,  887,  887,  812,  814,  887,  814,  887,
    1081       887,  887,  814,  816,  887,  816,  887,  887,  887,  816,
    1082       818,  887,  818,  887,  887,  887,  818,  820,  887,  820,
    1083       887,  887,  887,  820,  822,  887,  822,  887,  887,  887,
    1084       822,  616,  887,  616,  887,  887,  887,  616,  841,  887,
    1085       841,  887,  887,  887,  841,  677,  887,  677,  887,  887,
    1086       887,  677,  681,  887,  681,  887,  887,  887,  681,   86,
    1087       887,   86,  887,  887,  887,   86,  846,  887,  846,  887,
    1088       887,  887,  846,  140,  887,  140,  887,  887,  887,  140,
    1089       204,  887,  204,  887,  887,  887,  204,   11,  887,  887,
    1090 
     1065      669,  669,  669,  737,  887,  737,  887,  887,  887,  737,
     1066      671,  887,  671,  204,  887,  204,  887,  887,  887,  204,
     1067      673,  887,  673,  740,  887,  740,  675,  887,  675,  204,
     1068
     1069      887,  887,  204,  887,  204,  204,  204,  204,  204,  677,
     1070      887,  677,  741,  887,  741,  679,  887,  679,  681,  887,
     1071      681,  742,  887,  742,  683,  887,  683,   86,  887,   86,
     1072      744,  887,  744,  887,  887,  887,  744,  691,  887,  691,
     1073      269,  887,  269,  887,  887,  887,  269,  693,  887,  693,
     1074      747,  887,  747,  695,  887,  695,  140,  887,  140,  748,
     1075      887,  748,  887,  887,  887,  748,   86,  887,  887,   86,
     1076      887,   86,   86,   86,   86,   86,  781,  887,  781,  737,
     1077      887,  737,  204,  887,  204,  782,  887,  782,  887,  887,
     1078      887,  782,  784,  887,  784,  887,  887,  887,  784,  786,
     1079
     1080      887,  786,  887,  887,  887,  786,  788,  887,  788,  789,
     1081      887,  789,  887,  887,  887,  789,  791,  887,  791,  887,
     1082      887,  887,  791,  812,  887,  812,  887,  887,  887,  812,
     1083      814,  887,  814,  887,  887,  887,  814,  816,  887,  816,
     1084      887,  887,  887,  816,  818,  887,  818,  887,  887,  887,
     1085      818,  820,  887,  820,  887,  887,  887,  820,  822,  887,
     1086      822,  887,  887,  887,  822,  616,  887,  616,  887,  887,
     1087      887,  616,  841,  887,  841,  887,  887,  887,  841,  677,
     1088      887,  677,  887,  887,  887,  677,  681,  887,  681,  887,
     1089      887,  887,  681,   86,  887,   86,  887,  887,  887,   86,
     1090
     1091      846,  887,  846,  887,  887,  887,  846,  140,  887,  140,
     1092      887,  887,  887,  140,  204,  887,  204,  887,  887,  887,
     1093      204,   11,  887,  887,  887,  887,  887,  887,  887,  887,
    10911094      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    10921095      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     
    10961099      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    10971100      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    1098       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    1099       887,  887
     1101
     1102      887,  887,  887,  887,  887,  887,  887
    11001103    } ;
    11011104
    1102 static yyconst flex_int16_t yy_chk[2883] =
     1105static yyconst flex_int16_t yy_chk[2908] =
    11031106    {   0,
    11041107        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    11101113        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    11111114        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    1112         1,    1,    1,    1,    2,   16,   24,   16,   24,    2,
    1113        19,   19,    2,    5,    5,    5,    5,    5,    5,    5,
     1115        1,    1,    1,    1,    1,    2,   16,   24,   16,   24,
     1116        2,   19,   19,    2,    5,    5,    5,    5,    5,    5,
    11141117
    11151118        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
     
    11201123        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    11211124        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    1122         5,    5,    5,    5,    5,    5,    5,    7,    8,    9,
    1123        10,   37,   37,   20,   39,    9,   10,  886,    7,    8,
    1124        13,   13,   13,   13,   13,   13,   15,   15,   15,   15,
    1125 
    1126        15,   15,   20,   25,   39,   42,   53,   28,   27,   28,
    1127        28,   28,   28,   28,   28,  109,  115,   25,   29,   25,
    1128        27,   27,   27,   29,   53,   35,    7,    8,    9,   10,
    1129        40,   42,   48,   29,   30,   40,   30,   30,   30,   30,
    1130        30,   30,   35,   62,   35,   35,   44,  302,   44,  109,
    1131       115,  885,   48,   30,  302,   62,   30,   57,   47,   45,
    1132        45,   45,   30,   30,   45,   45,   57,   45,   30,   55,
    1133        45,   45,   49,   40,   30,   45,   40,   49,   45,   47,
    1134        30,   47,   56,   64,   49,  164,   51,   55,   30,   73,
    1135        49,   30,   31,   55,   31,   31,   31,   31,   31,   31,
    1136 
    1137        50,   51,  164,   51,   56,  154,   54,   59,  877,   50,
    1138        61,   31,   51,   50,   31,   73,   54,   58,   50,   59,
    1139        31,  154,   50,   54,   87,  159,   31,   59,   61,   58,
    1140        58,   60,   31,   64,   59,  126,   60,  126,   31,   58,
    1141        52,  159,   58,   68,   68,   52,   31,   38,   68,   60,
    1142        87,   38,   38,   52,   38,   52,   38,   38,   52,   38,
    1143       108,   38,   52,  114,   68,   68,   68,   68,   68,   68,
    1144        38,   38,   38,  127,   60,  127,  153,   60,   67,   67,
    1145        67,   67,   67,   67,  108,  153,   67,  114,  876,  873,
    1146        38,   60,  166,   38,   80,   80,   80,   80,   80,   80,
    1147 
    1148        82,   82,   82,   82,   82,   82,   83,   83,   83,   83,
    1149        83,   83,  129,  166,  129,  104,  104,  104,  104,  107,
    1150        38,   38,   77,   77,  872,  107,  113,   77,  169,   77,
    1151       111,  132,  113,  132,   77,  103,  103,  103,  103,  103,
    1152       103,  131,  104,   77,   77,   77,   77,  104,  111,  169,
    1153       110,  107,  130,  131,   77,  131,  111,  105,  113,  105,
    1154       105,  105,  105,  105,  105,  151,  130,  103,  130,   77,
    1155       104,  134,   77,  134,  281,  116,  105,   77,   77,  110,
    1156       142,   77,   77,  151,  110,  133,  133,  152,  133,   77,
    1157       281,  105,   77,  116,   77,   77,   77,  105,   77,   85,
    1158 
    1159       137,  116,  137,   85,   85,  152,  142,  110,   85,   85,
    1160       106,   85,  106,   85,  155,  106,  106,  106,  106,  106,
    1161       106,  150,   85,   85,   85,  135,  135,  135,  139,  145,
    1162       139,  156,  155,  160,  145,  161,  150,  157,  162,  167,
    1163       165,  168,   85,  150,  161,   85,  163,  106,  171,  157,
    1164       165,  163,  172,  156,  173,  160,  181,  176,  170,  162,
    1165       162,  181,  167,  170,  163,  174,  175,  172,  168,  182,
    1166       171,  173,  145,   85,   99,   99,   99,   99,   99,   99,
    1167       177,  170,  179,  174,  176,  184,  175,  183,  180,  185,
    1168        99,   99,  525,   99,   99,  525,  182,  179,  183,  218,
    1169 
    1170       185,  218,  177,  184,  179,  180,   99,  191,  183,  183,
    1171       186,   99,   99,   99,  158,  186,   99,  185,   99,  158,
    1172       158,  158,  188,  158,  158,  190,  187,  158,  189,  158,
    1173       186,  205,  193,  189,  158,  158,  158,  627,  158,  187,
    1174       627,  192,  188,  194,  190,  193,  219,  193,  219,  220,
    1175       191,  220,  248,  191,  192,  189,  194,  205,  223,  225,
    1176       223,  225,  192,  197,  197,  197,  197,  197,  197,  198,
    1177       198,  197,  209,  209,  198,  200,  200,  209,  248,  870,
    1178       200,  202,  202,  308,  224,  224,  202,  224,  202,  308,
    1179       198,  198,  198,  198,  198,  198,  200,  200,  200,  200,
    1180 
    1181       200,  200,  202,  202,  202,  202,  202,  202,  212,  212,
    1182       212,  212,  221,  222,  226,  226,  226,  228,  229,  228,
    1183       229,  234,  243,  237,  338,  222,  221,  222,  221,  235,
    1184       278,  235,  256,  279,  235,  235,  235,  235,  235,  235,
    1185       212,  236,  270,  278,  234,  236,  237,  280,  291,  241,
    1186       241,  279,  241,  241,  284,  266,  243,  266,  256,  267,
    1187       869,  267,  236,  291,  236,  280,  235,  338,  270,  236,
    1188       241,  241,  241,  282,  284,  241,  289,  241,  244,  244,
    1189       244,  244,  244,  244,  245,  245,  245,  245,  245,  245,
    1190       282,  247,  286,  247,  289,  244,  247,  247,  247,  247,
    1191 
    1192       247,  247,  255,  255,  255,  255,  255,  255,  283,  285,
    1193       244,  295,  286,  283,  285,  288,  244,  246,  246,  246,
    1194       246,  246,  246,  253,  295,  292,  260,  260,  260,  260,
    1195       260,  260,  862,  246,  255,  296,  246,  246,  288,  293,
    1196       290,  292,  292,  294,  293,  253,  297,  253,  300,  246,
    1197       287,  253,  294,  300,  246,  303,  246,  253,  260,  246,
    1198       299,  246,  296,  304,  297,  287,  290,  301,  305,  253,
    1199       312,  287,  287,  253,  306,  303,  301,  253,  299,  306,
    1200       307,  304,  309,  310,  314,  307,  312,  311,  313,  305,
    1201       305,  315,  310,  311,  318,  316,  315,  313,  317,  314,
    1202 
    1203       316,  309,  320,  317,  319,  322,  323,  324,  326,  327,
    1204       325,  328,  329,  318,  331,  320,  322,  332,  330,  333,
    1205       317,  323,  319,  325,  334,  335,  324,  330,  337,  329,
    1206       326,  328,  327,  339,  340,  341,  331,  337,  335,  342,
    1207       332,  333,  334,  341,  342,  343,  345,  340,  344,  344,
    1208       861,  339,  345,  344,  385,  344,  352,  352,  352,  352,
    1209       343,  353,  353,  353,  353,  362,  363,  362,  363,  370,
    1210       370,  370,  370,  370,  370,  372,  380,  372,  385,  860,
    1211       372,  372,  372,  372,  372,  372,  380,  402,  352,  371,
    1212       371,  371,  371,  371,  371,  374,  374,  374,  374,  374,
    1213 
    1214       374,  404,  380,  402,  387,  371,  381,  401,  371,  371,
    1215       375,  375,  375,  375,  375,  375,  381,  383,  401,  382,
    1216       404,  371,  387,  383,  408,  432,  371,  374,  371,  403,
    1217       387,  371,  381,  371,  376,  376,  376,  376,  376,  376,
    1218       386,  382,  375,  382,  403,  405,  408,  382,  432,  383,
    1219       384,  859,  384,  382,  405,  384,  384,  384,  384,  384,
    1220       384,  406,  386,  412,  386,  382,  376,  407,  386,  382,
    1221       409,  410,  406,  382,  386,  411,  407,  415,  416,  409,
    1222       413,  414,  420,  417,  410,  412,  386,  384,  417,  418,
    1223       386,  411,  423,  413,  386,  419,  416,  414,  414,  415,
    1224 
    1225       422,  419,  421,  420,  418,  427,  425,  423,  429,  430,
    1226       431,  418,  433,  421,  439,  434,  435,  427,  433,  422,
    1227       425,  437,  440,  431,  441,  435,  442,  443,  445,  429,
    1228       434,  430,  444,  447,  439,  449,  437,  445,  450,  441,
    1229       451,  456,  443,  452,  440,  453,  454,  450,  442,  457,
    1230       447,  455,  444,  460,  461,  463,  494,  458,  449,  456,
    1231       455,  451,  457,  452,  458,  453,  459,  462,  454,  464,
    1232       466,  468,  463,  459,  467,  462,  461,  468,  460,  495,
    1233       464,  491,  494,  467,  521,  462,  477,  477,  477,  477,
    1234       636,  491,  466,  488,  488,  488,  488,  488,  488,  490,
    1235 
    1236       490,  490,  490,  490,  490,  495,  521,  491,  493,  488,
    1237       515,  518,  488,  488,  492,  516,  492,  636,  493,  492,
    1238       492,  492,  492,  492,  492,  488,  518,  515,  516,  519,
    1239       488,  490,  488,  520,  493,  488,  524,  488,  497,  497,
    1240       497,  497,  497,  497,  529,  522,  520,  524,  527,  519,
    1241       526,  492,  498,  498,  498,  498,  498,  498,  522,  523,
    1242       530,  533,  531,  527,  523,  529,  528,  531,  498,  530,
    1243       526,  498,  498,  499,  533,  499,  532,  534,  499,  499,
    1244       499,  499,  499,  499,  498,  528,  535,  532,  536,  498,
    1245       537,  498,  538,  539,  498,  535,  498,  541,  539,  542,
    1246 
    1247       544,  538,  547,  541,  545,  534,  546,  537,  542,  549,
    1248       536,  547,  550,  551,  557,  552,  554,  544,  549,  545,
    1249       560,  546,  555,  557,  558,  551,  561,  555,  562,  550,
    1250       552,  554,  564,  558,  565,  567,  566,  568,  572,  561,
    1251       564,  569,  560,  566,  565,  562,  571,  569,  572,  568,
    1252       574,  575,  601,  621,  603,  571,  620,  567,  594,  594,
    1253       594,  594,  594,  594,  575,  620,  621,  574,  595,  595,
    1254       595,  595,  595,  595,  597,  601,  597,  603,  639,  597,
    1255       597,  597,  597,  597,  597,  602,  622,  639,  855,  602,
    1256       594,  596,  596,  596,  596,  596,  596,  600,  600,  600,
    1257 
    1258       600,  600,  600,  622,  618,  619,  602,  596,  602,  618,
    1259       596,  596,  619,  602,  623,  626,  629,  624,  625,  631,
    1260       633,  628,  618,  596,  624,  630,  625,  632,  596,  600,
    1261       596,  635,  626,  596,  628,  596,  634,  623,  629,  634,
    1262       630,  631,  633,  637,  632,  638,  640,  641,  635,  644,
    1263       642,  645,  646,  651,  650,  657,  668,  656,  637,  642,
    1264       653,  646,  657,  851,  640,  638,  656,  664,  665,  641,
    1265       667,  668,  644,  645,  650,  699,  664,  653,  665,  667,
    1266       651,  686,  686,  686,  686,  686,  686,  690,  690,  690,
    1267       690,  690,  690,  700,  704,  702,  699,  686,  703,  704,
    1268 
    1269       686,  686,  705,  700,  706,  703,  707,  706,  708,  707,
    1270       710,  711,  713,  686,  714,  713,  710,  715,  686,  690,
    1271       686,  702,  705,  686,  711,  686,  708,  712,  716,  717,
    1272       718,  716,  721,  720,  719,  714,  712,  719,  717,  722,
    1273       721,  723,  724,  725,  728,  715,  720,  732,  731,  722,
    1274       733,  735,  725,  736,  723,  718,  756,  761,  754,  735,
    1275       758,  756,  736,  724,  755,  757,  759,  728,  731,  732,
    1276       758,  733,  743,  743,  743,  743,  743,  743,  754,  760,
    1277       757,  755,  762,  761,  763,  762,  764,  766,  768,  759,
    1278       766,  768,  769,  772,  773,  770,  760,  763,  770,  769,
    1279 
    1280       771,  778,  793,  771,  743,  795,  797,  796,  772,  797,
    1281       798,  799,  800,  764,  799,  800,  802,  773,  803,  804,
    1282       806,  810,  804,  811,  778,  796,  795,  807,  808,  793,
    1283       807,  808,  798,  826,  802,  809,  832,  810,  827,  811,
    1284       830,  829,  806,  803,  809,  827,  828,  848,  831,  828,
    1285       829,  831,  835,  832,  826,  835,  838,  839,  830,  838,
    1286       840,  849,  850,  853,  830,  852,  839,  850,  852,  840,
    1287       849,  854,  856,  853,  857,  856,  854,  857,  858,  863,
    1288       864,  858,  865,  866,  867,  865,  868,  867,  871,  868,
    1289       874,  875,  878,  866,  879,  864,  880,  882,  881,  863,
    1290 
    1291       883,  878,  884,  847,  846,  845,  875,  879,  844,  843,
    1292       871,  874,  884,  842,  841,  882,  837,  836,  880,  881,
    1293       834,  833,  883,  888,  888,  888,  888,  888,  888,  888,
    1294       888,  888,  888,  888,  888,  888,  889,  889,  889,  889,
    1295       889,  889,  889,  889,  889,  889,  889,  889,  889,  890,
    1296       890,  890,  890,  890,  890,  890,  890,  890,  890,  890,
    1297       890,  890,  891,  825,  824,  891,  823,  891,  891,  891,
    1298       891,  891,  892,  822,  821,  820,  892,  892,  892,  892,
    1299       892,  892,  893,  893,  893,  893,  893,  893,  893,  893,
    1300       893,  893,  893,  893,  893,  894,  819,  818,  894,  817,
    1301 
    1302       894,  894,  894,  894,  894,  895,  816,  895,  895,  815,
    1303       895,  895,  895,  895,  895,  895,  814,  895,  896,  813,
    1304       812,  896,  896,  896,  896,  896,  896,  896,  896,  805,
    1305       896,  897,  897,  897,  897,  897,  897,  897,  897,  897,
    1306       897,  897,  897,  897,  898,  898,  801,  898,  794,  792,
    1307       791,  898,  899,  790,  789,  899,  788,  899,  899,  899,
    1308       899,  899,  900,  787,  900,  786,  785,  784,  900,  901,
    1309       783,  901,  782,  781,  780,  901,  902,  779,  902,  777,
    1310       776,  775,  902,  903,  774,  903,  767,  765,  753,  903,
    1311       904,  752,  904,  751,  750,  749,  904,  905,  748,  905,
    1312 
    1313       747,  746,  745,  905,  906,  742,  906,  741,  740,  734,
    1314       906,  907,  730,  907,  729,  727,  726,  907,  908,  709,
    1315       908,  701,  698,  693,  908,  909,  909,  909,  909,  909,
    1316       909,  909,  909,  909,  909,  909,  909,  909,  910,  691,
    1317       910,  911,  911,  687,  911,  911,  911,  677,  911,  912,
    1318       912,  673,  912,  913,  671,  913,  669,  666,  663,  913,
    1319       914,  662,  914,  661,  660,  659,  914,  915,  658,  915,
    1320       655,  654,  652,  915,  916,  649,  916,  917,  648,  917,
    1321       647,  643,  616,  917,  918,  612,  918,  919,  610,  608,
    1322       919,  606,  919,  919,  919,  919,  919,  920,  920,  920,
    1323 
    1324       920,  920,  920,  920,  920,  920,  920,  920,  920,  920,
    1325       921,  921,  921,  921,  921,  921,  921,  921,  921,  921,
    1326       921,  921,  921,  922,  604,  922,  598,  592,  590,  922,
    1327       923,  588,  923,  586,  584,  582,  923,  924,  580,  924,
    1328       578,  577,  576,  924,  925,  573,  925,  926,  570,  926,
    1329       563,  559,  556,  926,  927,  553,  927,  928,  548,  928,
    1330       543,  540,  517,  928,  929,  513,  929,  930,  511,  930,
    1331       509,  507,  505,  930,  931,  503,  931,  932,  502,  932,
    1332       501,  500,  489,  932,  933,  486,  933,  934,  484,  934,
    1333       483,  482,  480,  934,  935,  478,  935,  936,  475,  936,
    1334 
    1335       473,  471,  469,  936,  937,  465,  937,  938,  448,  938,
    1336       446,  938,  438,  938,  939,  436,  939,  428,  939,  426,
    1337       939,  940,  940,  424,  940,  940,  940,  398,  940,  941,
    1338       396,  941,  394,  392,  391,  941,  942,  390,  942,  377,
    1339       367,  365,  942,  943,  364,  943,  360,  358,  356,  943,
    1340       944,  354,  944,  945,  350,  945,  348,  347,  346,  945,
    1341       946,  336,  946,  947,  321,  947,  298,  277,  275,  947,
    1342       948,  273,  948,  949,  272,  949,  271,  269,  268,  949,
    1343       950,  263,  950,  951,  259,  258,  951,  254,  951,  951,
    1344       951,  951,  951,  952,  952,  952,  952,  952,  952,  952,
    1345 
    1346       952,  952,  952,  952,  952,  952,  953,  251,  953,  250,
    1347       239,  238,  953,  954,  231,  954,  955,  230,  955,  227,
    1348       217,  215,  955,  956,  214,  956,  957,  213,  957,  207,
    1349       206,  204,  957,  958,  199,  958,  959,  178,  959,  149,
    1350       147,  146,  959,  960,  140,  960,  961,  138,  961,  136,
    1351       128,  125,  961,  962,  124,  962,  963,  120,  963,  101,
    1352        98,   95,  963,  964,   93,  964,  965,   86,  965,   72,
    1353        70,   66,  965,  966,   36,  966,   33,   18,   11,  966,
    1354       967,    4,  967,  968,    3,  968,    0,    0,    0,  968,
    1355       969,    0,  969,  970,    0,  970,    0,  970,    0,  970,
    1356 
    1357       971,    0,  971,    0,    0,    0,  971,  972,    0,  972,
    1358         0,    0,    0,  972,  973,    0,  973,  974,    0,  974,
    1359         0,    0,    0,  974,  975,    0,  975,  976,    0,  976,
    1360         0,    0,    0,  976,  977,    0,  977,  978,    0,  978,
    1361         0,    0,    0,  978,  979,    0,  979,  980,    0,  980,
    1362         0,    0,    0,  980,  981,    0,  981,  982,    0,  982,
    1363         0,    0,    0,  982,  983,    0,  983,  984,    0,    0,
    1364       984,    0,  984,  984,  984,  984,  984,  985,  985,  985,
    1365       985,  985,  985,  985,  985,  985,  985,  985,  985,  985,
    1366       986,    0,  986,    0,    0,    0,  986,  987,    0,  987,
    1367 
    1368       988,    0,  988,    0,    0,    0,  988,  989,    0,  989,
    1369       990,    0,  990,    0,    0,    0,  990,  991,    0,  991,
    1370       992,    0,  992,    0,    0,    0,  992,  993,    0,  993,
    1371       994,    0,  994,    0,    0,    0,  994,  995,    0,  995,
    1372       996,    0,  996,    0,    0,    0,  996,  997,    0,  997,
    1373       998,    0,  998,    0,    0,    0,  998,  999,    0,  999,
    1374      1000,    0, 1000,    0,    0,    0, 1000, 1001,    0, 1001,
    1375      1002,    0, 1002,    0,    0,    0, 1002, 1003,    0, 1003,
    1376         0,    0,    0, 1003, 1004,    0, 1004, 1005,    0, 1005,
    1377         0,    0,    0, 1005, 1006,    0, 1006, 1007,    0, 1007,
    1378 
    1379         0,    0,    0, 1007, 1008,    0, 1008, 1009,    0, 1009,
    1380         0,    0,    0, 1009, 1010,    0, 1010, 1011,    0, 1011,
    1381      1012,    0, 1012, 1013,    0,    0, 1013,    0, 1013, 1013,
    1382      1013, 1013, 1013, 1014,    0, 1014, 1015, 1015, 1015, 1015,
    1383      1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1016,
    1384         0, 1016,    0,    0,    0, 1016, 1017,    0, 1017, 1018,
    1385         0, 1018,    0,    0,    0, 1018, 1019,    0, 1019, 1020,
    1386         0, 1020, 1021,    0, 1021, 1022,    0,    0, 1022,    0,
    1387      1022, 1022, 1022, 1022, 1022, 1023,    0, 1023, 1024,    0,
    1388      1024, 1025,    0, 1025, 1026,    0, 1026, 1027,    0, 1027,
    1389 
    1390      1028,    0, 1028, 1029,    0, 1029, 1030,    0, 1030,    0,
    1391         0,    0, 1030, 1031,    0, 1031, 1032,    0, 1032,    0,
    1392         0,    0, 1032, 1033,    0, 1033, 1034,    0, 1034, 1035,
    1393         0, 1035, 1036,    0, 1036, 1037,    0, 1037,    0,    0,
    1394         0, 1037, 1038,    0,    0, 1038,    0, 1038, 1038, 1038,
    1395      1038, 1038, 1039,    0, 1039, 1040,    0, 1040, 1041,    0,
    1396      1041, 1042,    0, 1042,    0,    0,    0, 1042, 1043,    0,
    1397      1043,    0,    0,    0, 1043, 1044,    0, 1044,    0,    0,
    1398         0, 1044, 1045,    0, 1045, 1046,    0, 1046,    0,    0,
    1399         0, 1046, 1047,    0, 1047,    0,    0,    0, 1047, 1048,
    1400 
    1401         0, 1048,    0,    0,    0, 1048, 1049,    0, 1049,    0,
    1402         0,    0, 1049, 1050,    0, 1050,    0,    0,    0, 1050,
    1403      1051,    0, 1051,    0,    0,    0, 1051, 1052,    0, 1052,
    1404         0,    0,    0, 1052, 1053,    0, 1053,    0,    0,    0,
    1405      1053, 1054,    0, 1054,    0,    0,    0, 1054, 1055,    0,
    1406      1055,    0,    0,    0, 1055, 1056,    0, 1056,    0,    0,
    1407         0, 1056, 1057,    0, 1057,    0,    0,    0, 1057, 1058,
    1408         0, 1058,    0,    0,    0, 1058, 1059,    0, 1059,    0,
    1409         0,    0, 1059, 1060,    0, 1060,    0,    0,    0, 1060,
    1410      1061,    0, 1061,    0,    0,    0, 1061,  887,  887,  887,
    1411 
     1125        5,    5,    5,    5,    5,    5,    5,    5,    5,    7,
     1126        8,    9,   10,   37,   37,   20,   39,    9,   10,  886,
     1127        7,    8,   13,   13,   13,   13,   13,   13,   15,   15,
     1128
     1129       15,   15,   15,   15,   20,   25,   48,   39,   42,   28,
     1130       27,   28,   28,   28,   28,   28,   28,  109,  115,   25,
     1131       29,   25,   27,   27,   27,   29,   48,   35,   40,    7,
     1132        8,    9,   10,   40,   42,   29,   30,   47,   30,   30,
     1133       30,   30,   30,   30,   35,   57,   35,   35,   44,  126,
     1134       44,  126,  109,  115,   57,   30,   64,   56,   47,   30,
     1135       47,   45,   45,   45,   49,   30,   30,   45,   45,   49,
     1136       45,   30,   40,   45,   45,   40,   49,   30,   45,   56,
     1137       62,   45,   49,   30,   73,  885,  127,   53,  127,   51,
     1138       61,   30,   62,   55,   30,   31,  108,   31,   31,   31,
     1139
     1140       31,   31,   31,   50,   51,   53,   51,   64,   61,   54,
     1141       73,   55,   50,   87,   31,   51,   50,   55,   31,   54,
     1142      108,   50,   52,  114,   31,   50,   54,   52,  175,  129,
     1143       31,  129,  107,  154,  151,   52,   31,   52,  107,   87,
     1144       52,   60,   31,  132,   52,  132,   60,  114,  175,  154,
     1145       31,   38,  151,  385,  111,   38,   38,   58,   38,   60,
     1146       38,   38,  113,   38,  107,   38,   59,  130,  113,   58,
     1147       58,  116,  111,  164,   38,   38,   38,  385,   59,   58,
     1148      111,  130,   58,  130,  142,   60,   59,  131,   60,  116,
     1149      164,   68,   68,   59,  113,   38,   68,  116,   38,  131,
     1150
     1151      110,  131,   60,   67,   67,   67,   67,   67,   67,  877,
     1152      142,   67,   68,   68,   68,   68,   68,   68,   80,   80,
     1153       80,   80,   80,   80,  153,   38,   38,   77,   77,  134,
     1154      110,  134,   77,  153,   77,  110,  135,  135,  135,   77,
     1155       82,   82,   82,   82,   82,   82,  876,  243,   77,   77,
     1156       77,   77,   83,   83,   83,   83,   83,   83,  110,   77,
     1157      103,  103,  103,  103,  103,  103,  104,  104,  104,  104,
     1158      133,  133,  137,  133,  137,   77,  145,  139,   77,  139,
     1159      157,  145,  243,   77,   77,  152,  156,   77,   77,  155,
     1160      166,  150,  157,  103,  104,   77,  159,  168,   77,  104,
     1161
     1162       77,   77,   77,  152,   77,   85,  150,  155,  156,   85,
     1163       85,  166,  159,  150,   85,   85,  161,   85,  160,   85,
     1164      145,  162,  104,  167,  168,  161,  169,  163,   85,   85,
     1165       85,  105,  163,  105,  105,  105,  105,  105,  105,  873,
     1166      160,  171,  162,  162,  165,  163,  167,  169,  173,   85,
     1167      105,  106,   85,  106,  165,  172,  106,  106,  106,  106,
     1168      106,  106,  180,  171,  170,  173,  105,  176,  177,  170,
     1169      172,  181,  105,  174,  184,  187,  181,  182,  179,  180,
     1170       85,   99,   99,   99,   99,   99,   99,  170,  187,  106,
     1171      177,  174,  184,  179,  176,  183,  190,   99,   99,   99,
     1172
     1173      179,   99,   99,  189,  182,  186,  183,  191,  189,  218,
     1174      186,  218,  185,  188,   99,  190,  183,  183,  284,   99,
     1175       99,   99,  158,  185,   99,  186,   99,  158,  158,  158,
     1176      189,  158,  158,  188,  192,  158,  194,  158,  284,  219,
     1177      185,  219,  158,  158,  158,  193,  158,  192,  220,  194,
     1178      220,  191,  198,  198,  191,  192,  205,  198,  193,  872,
     1179      193,  197,  197,  197,  197,  197,  197,  200,  200,  197,
     1180      248,  221,  200,  198,  198,  198,  198,  198,  198,  202,
     1181      202,  223,  205,  223,  202,  221,  202,  221,  200,  200,
     1182      200,  200,  200,  200,  209,  209,  248,  338,  222,  209,
     1183
     1184      202,  202,  202,  202,  202,  202,  212,  212,  212,  212,
     1185      222,  309,  222,  224,  224,  225,  224,  225,  226,  226,
     1186      226,  228,  229,  228,  229,  234,  234,  235,  236,  235,
     1187      309,  279,  235,  235,  235,  235,  235,  235,  237,  212,
     1188      237,  338,  266,  237,  266,  267,  278,  267,  234,  279,
     1189      283,  236,  241,  241,  241,  283,  241,  241,  256,  278,
     1190      237,  281,  237,  282,  280,  235,  270,  237,  244,  244,
     1191      244,  244,  244,  244,  241,  241,  241,  281,  285,  241,
     1192      282,  241,  280,  285,  256,  244,  245,  245,  245,  245,
     1193      245,  245,  270,  288,  293,  286,  294,  300,  306,  293,
     1194
     1195      308,  244,  300,  306,  870,  294,  308,  244,  246,  246,
     1196      246,  246,  246,  246,  253,  286,  288,  255,  255,  255,
     1197      255,  255,  255,  287,  246,  247,  246,  247,  246,  246,
     1198      247,  247,  247,  247,  247,  247,  290,  253,  287,  253,
     1199      869,  246,  289,  253,  287,  287,  246,  292,  246,  253,
     1200      255,  246,  291,  246,  260,  260,  260,  260,  260,  260,
     1201      289,  253,  290,  292,  292,  253,  295,  291,  296,  253,
     1202      297,  299,  301,  302,  303,  304,  305,  307,  311,  295,
     1203      302,  301,  307,  310,  311,  312,  319,  260,  297,  299,
     1204      313,  314,  310,  304,  303,  296,  318,  305,  305,  313,
     1205
     1206      315,  312,  316,  317,  319,  315,  314,  316,  317,  320,
     1207      322,  323,  324,  326,  325,  318,  327,  328,  331,  329,
     1208      330,  322,  320,  332,  334,  317,  323,  325,  333,  330,
     1209      335,  324,  337,  339,  340,  326,  329,  328,  401,  327,
     1210      331,  337,  334,  335,  341,  343,  332,  340,  342,  401,
     1211      333,  339,  341,  342,  344,  344,  345,  460,  862,  344,
     1212      343,  344,  345,  352,  352,  352,  352,  353,  353,  353,
     1213      353,  362,  363,  362,  363,  370,  370,  370,  370,  370,
     1214      370,  372,  460,  372,  380,  381,  372,  372,  372,  372,
     1215      372,  372,  861,  402,  380,  381,  352,  371,  371,  371,
     1216
     1217      371,  371,  371,  374,  374,  374,  374,  374,  374,  402,
     1218      380,  381,  403,  371,  404,  371,  860,  371,  371,  375,
     1219      375,  375,  375,  375,  375,  383,  382,  403,  406,  405,
     1220      371,  383,  407,  404,  408,  371,  374,  371,  405,  406,
     1221      371,  407,  371,  376,  376,  376,  376,  376,  376,  382,
     1222      412,  382,  375,  387,  411,  382,  408,  383,  384,  386,
     1223      384,  382,  410,  384,  384,  384,  384,  384,  384,  409,
     1224      411,  387,  412,  382,  413,  410,  376,  382,  409,  387,
     1225      415,  382,  386,  414,  386,  416,  417,  413,  386,  418,
     1226      421,  417,  419,  422,  386,  420,  384,  427,  419,  414,
     1227
     1228      414,  421,  415,  416,  418,  423,  386,  425,  429,  427,
     1229      386,  418,  422,  430,  386,  431,  420,  432,  433,  434,
     1230      423,  425,  435,  437,  433,  439,  440,  441,  431,  429,
     1231      442,  435,  443,  444,  434,  430,  449,  445,  437,  447,
     1232      432,  450,  441,  451,  454,  439,  445,  443,  440,  452,
     1233      450,  453,  442,  444,  455,  456,  447,  457,  458,  449,
     1234      459,  461,  463,  455,  451,  458,  454,  459,  462,  452,
     1235      457,  453,  466,  456,  464,  467,  462,  525,  859,  463,
     1236      525,  468,  491,  461,  467,  464,  462,  468,  477,  477,
     1237      477,  477,  491,  515,  466,  488,  488,  488,  488,  488,
     1238
     1239      488,  490,  490,  490,  490,  490,  490,  519,  491,  521,
     1240      515,  488,  492,  488,  492,  488,  488,  492,  492,  492,
     1241      492,  492,  492,  494,  516,  495,  493,  519,  488,  855,
     1242      851,  521,  518,  488,  490,  488,  493,  516,  488,  529,
     1243      488,  497,  497,  497,  497,  497,  497,  518,  520,  494,
     1244      492,  495,  493,  498,  498,  498,  498,  498,  498,  523,
     1245      529,  520,  526,  848,  523,  847,  528,  846,  522,  498,
     1246      499,  498,  499,  498,  498,  499,  499,  499,  499,  499,
     1247      499,  522,  526,  524,  527,  528,  498,  531,  530,  532,
     1248      533,  498,  531,  498,  524,  534,  498,  530,  498,  527,
     1249
     1250      532,  535,  537,  533,  536,  538,  539,  541,  542,  547,
     1251      535,  539,  544,  541,  538,  545,  546,  542,  547,  537,
     1252      550,  551,  845,  549,  534,  552,  536,  554,  560,  544,
     1253      545,  546,  549,  551,  555,  557,  558,  550,  561,  555,
     1254      552,  562,  554,  565,  557,  558,  564,  567,  566,  568,
     1255      560,  561,  575,  565,  564,  566,  569,  571,  562,  574,
     1256      572,  568,  569,  620,  619,  575,  571,  601,  601,  567,
     1257      572,  619,  620,  844,  843,  622,  574,  594,  594,  594,
     1258      594,  594,  594,  595,  595,  595,  595,  595,  595,  597,
     1259      601,  597,  622,  621,  597,  597,  597,  597,  597,  597,
     1260
     1261      600,  600,  600,  600,  600,  600,  621,  602,  626,  842,
     1262      594,  596,  596,  596,  596,  596,  596,  603,  618,  603,
     1263      623,  624,  603,  618,  628,  626,  625,  596,  624,  596,
     1264      602,  596,  596,  600,  625,  627,  618,  628,  627,  603,
     1265      629,  603,  630,  623,  596,  631,  603,  632,  633,  596,
     1266      634,  596,  635,  634,  596,  636,  596,  630,  637,  638,
     1267      640,  644,  629,  639,  632,  641,  642,  631,  645,  635,
     1268      633,  646,  639,  637,  650,  642,  651,  656,  640,  638,
     1269      646,  653,  657,  636,  644,  665,  656,  641,  664,  657,
     1270      645,  667,  668,  841,  650,  665,  700,  664,  653,  699,
     1271
     1272      667,  702,  705,  651,  714,  837,  700,  668,  686,  686,
     1273      686,  686,  686,  686,  690,  690,  690,  690,  690,  690,
     1274      699,  708,  705,  703,  686,  714,  686,  702,  686,  686,
     1275      703,  704,  706,  715,  707,  706,  704,  707,  710,  708,
     1276      712,  686,  711,  717,  710,  718,  686,  690,  686,  712,
     1277      720,  686,  717,  686,  713,  711,  716,  713,  719,  716,
     1278      721,  719,  715,  720,  722,  723,  724,  725,  721,  728,
     1279      731,  718,  732,  735,  722,  733,  725,  736,  723,  756,
     1280      757,  735,  836,  754,  756,  759,  736,  724,  755,  760,
     1281      731,  761,  728,  764,  732,  757,  733,  743,  743,  743,
     1282
     1283      743,  743,  743,  754,  758,  755,  760,  762,  759,  763,
     1284      762,  769,  766,  768,  758,  766,  768,  761,  769,  772,
     1285      770,  764,  763,  770,  771,  773,  778,  771,  793,  795,
     1286      743,  798,  797,  796,  772,  797,  799,  800,  802,  799,
     1287      800,  803,  804,  806,  807,  804,  810,  807,  773,  778,
     1288      795,  796,  809,  798,  808,  793,  802,  808,  811,  826,
     1289      830,  809,  810,  827,  829,  806,  828,  803,  831,  828,
     1290      827,  831,  832,  829,  811,  834,  835,  839,  830,  835,
     1291      826,  840,  838,  849,  830,  838,  839,  853,  850,  832,
     1292      840,  852,  849,  850,  852,  854,  856,  853,  857,  856,
     1293
     1294      854,  857,  858,  863,  864,  858,  865,  866,  867,  865,
     1295      868,  867,  871,  868,  874,  875,  878,  866,  879,  864,
     1296      880,  882,  881,  863,  883,  878,  884,  833,  825,  824,
     1297      875,  879,  823,  822,  871,  874,  884,  821,  820,  882,
     1298      819,  818,  880,  881,  817,  816,  883,  888,  888,  888,
     1299      888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
     1300      889,  889,  889,  889,  889,  889,  889,  889,  889,  889,
     1301      889,  889,  889,  890,  890,  890,  890,  890,  890,  890,
     1302      890,  890,  890,  890,  890,  890,  891,  815,  814,  891,
     1303      813,  891,  891,  891,  891,  891,  892,  812,  805,  801,
     1304
     1305      892,  892,  892,  892,  892,  892,  893,  893,  893,  893,
     1306      893,  893,  893,  893,  893,  893,  893,  893,  893,  894,
     1307      794,  792,  894,  791,  894,  894,  894,  894,  894,  895,
     1308      790,  895,  895,  789,  895,  895,  895,  895,  895,  895,
     1309      788,  895,  896,  787,  786,  896,  896,  896,  896,  896,
     1310      896,  896,  896,  785,  896,  897,  897,  897,  897,  897,
     1311      897,  897,  897,  897,  897,  897,  897,  897,  898,  898,
     1312      784,  898,  783,  782,  781,  898,  899,  780,  779,  899,
     1313      777,  899,  899,  899,  899,  899,  900,  776,  900,  775,
     1314      774,  767,  900,  901,  765,  901,  753,  752,  751,  901,
     1315
     1316      902,  750,  902,  749,  748,  747,  902,  903,  746,  903,
     1317      745,  742,  741,  903,  904,  740,  904,  734,  730,  729,
     1318      904,  905,  727,  905,  726,  709,  701,  905,  906,  698,
     1319      906,  693,  691,  687,  906,  907,  677,  907,  673,  671,
     1320      669,  907,  908,  666,  908,  663,  662,  661,  908,  909,
     1321      909,  909,  909,  909,  909,  909,  909,  909,  909,  909,
     1322      909,  909,  910,  660,  910,  911,  911,  659,  911,  911,
     1323      911,  658,  911,  912,  912,  655,  912,  913,  654,  913,
     1324      652,  649,  648,  913,  914,  647,  914,  643,  616,  612,
     1325      914,  915,  610,  915,  608,  606,  604,  915,  916,  598,
     1326
     1327      916,  917,  592,  917,  590,  588,  586,  917,  918,  584,
     1328      918,  919,  582,  580,  919,  578,  919,  919,  919,  919,
     1329      919,  920,  920,  920,  920,  920,  920,  920,  920,  920,
     1330      920,  920,  920,  920,  921,  921,  921,  921,  921,  921,
     1331      921,  921,  921,  921,  921,  921,  921,  922,  577,  922,
     1332      576,  573,  570,  922,  923,  563,  923,  559,  556,  553,
     1333      923,  924,  548,  924,  543,  540,  517,  924,  925,  513,
     1334      925,  926,  511,  926,  509,  507,  505,  926,  927,  503,
     1335      927,  928,  502,  928,  501,  500,  489,  928,  929,  486,
     1336      929,  930,  484,  930,  483,  482,  480,  930,  931,  478,
     1337
     1338      931,  932,  475,  932,  473,  471,  469,  932,  933,  465,
     1339      933,  934,  448,  934,  446,  438,  436,  934,  935,  428,
     1340      935,  936,  426,  936,  424,  398,  396,  936,  937,  394,
     1341      937,  938,  392,  938,  391,  938,  390,  938,  939,  377,
     1342      939,  367,  939,  365,  939,  940,  940,  364,  940,  940,
     1343      940,  360,  940,  941,  358,  941,  356,  354,  350,  941,
     1344      942,  348,  942,  347,  346,  336,  942,  943,  321,  943,
     1345      298,  277,  275,  943,  944,  273,  944,  945,  272,  945,
     1346      271,  269,  268,  945,  946,  263,  946,  947,  259,  947,
     1347      258,  254,  251,  947,  948,  250,  948,  949,  239,  949,
     1348
     1349      238,  231,  230,  949,  950,  227,  950,  951,  217,  215,
     1350      951,  214,  951,  951,  951,  951,  951,  952,  952,  952,
     1351      952,  952,  952,  952,  952,  952,  952,  952,  952,  952,
     1352      953,  213,  953,  207,  206,  204,  953,  954,  199,  954,
     1353      955,  178,  955,  149,  147,  146,  955,  956,  140,  956,
     1354      957,  138,  957,  136,  128,  125,  957,  958,  124,  958,
     1355      959,  120,  959,  101,   98,   95,  959,  960,   93,  960,
     1356      961,   86,  961,   72,   70,   66,  961,  962,   36,  962,
     1357      963,   33,  963,   18,   11,    4,  963,  964,    3,  964,
     1358      965,    0,  965,    0,    0,    0,  965,  966,    0,  966,
     1359
     1360        0,    0,    0,  966,  967,    0,  967,  968,    0,  968,
     1361        0,    0,    0,  968,  969,    0,  969,  970,    0,  970,
     1362        0,  970,    0,  970,  971,    0,  971,    0,    0,    0,
     1363      971,  972,    0,  972,    0,    0,    0,  972,  973,    0,
     1364      973,  974,    0,  974,    0,    0,    0,  974,  975,    0,
     1365      975,  976,    0,  976,    0,    0,    0,  976,  977,    0,
     1366      977,  978,    0,  978,    0,    0,    0,  978,  979,    0,
     1367      979,  980,    0,  980,    0,    0,    0,  980,  981,    0,
     1368      981,  982,    0,  982,    0,    0,    0,  982,  983,    0,
     1369      983,  984,    0,    0,  984,    0,  984,  984,  984,  984,
     1370
     1371      984,  985,  985,  985,  985,  985,  985,  985,  985,  985,
     1372      985,  985,  985,  985,  986,    0,  986,    0,    0,    0,
     1373      986,  987,    0,  987,  988,    0,  988,    0,    0,    0,
     1374      988,  989,    0,  989,  990,    0,  990,    0,    0,    0,
     1375      990,  991,    0,  991,  992,    0,  992,    0,    0,    0,
     1376      992,  993,    0,  993,  994,    0,  994,    0,    0,    0,
     1377      994,  995,    0,  995,  996,    0,  996,    0,    0,    0,
     1378      996,  997,    0,  997,  998,    0,  998,    0,    0,    0,
     1379      998,  999,    0,  999, 1000,    0, 1000,    0,    0,    0,
     1380     1000, 1001,    0, 1001, 1002,    0, 1002,    0,    0,    0,
     1381
     1382     1002, 1003,    0, 1003,    0,    0,    0, 1003, 1004,    0,
     1383     1004, 1005,    0, 1005,    0,    0,    0, 1005, 1006,    0,
     1384     1006, 1007,    0, 1007,    0,    0,    0, 1007, 1008,    0,
     1385     1008, 1009,    0, 1009,    0,    0,    0, 1009, 1010,    0,
     1386     1010, 1011,    0, 1011, 1012,    0, 1012, 1013,    0,    0,
     1387     1013,    0, 1013, 1013, 1013, 1013, 1013, 1014,    0, 1014,
     1388     1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
     1389     1015, 1015, 1015, 1016,    0, 1016,    0,    0,    0, 1016,
     1390     1017,    0, 1017, 1018,    0, 1018,    0,    0,    0, 1018,
     1391     1019,    0, 1019, 1020,    0, 1020, 1021,    0, 1021, 1022,
     1392
     1393        0,    0, 1022,    0, 1022, 1022, 1022, 1022, 1022, 1023,
     1394        0, 1023, 1024,    0, 1024, 1025,    0, 1025, 1026,    0,
     1395     1026, 1027,    0, 1027, 1028,    0, 1028, 1029,    0, 1029,
     1396     1030,    0, 1030,    0,    0,    0, 1030, 1031,    0, 1031,
     1397     1032,    0, 1032,    0,    0,    0, 1032, 1033,    0, 1033,
     1398     1034,    0, 1034, 1035,    0, 1035, 1036,    0, 1036, 1037,
     1399        0, 1037,    0,    0,    0, 1037, 1038,    0,    0, 1038,
     1400        0, 1038, 1038, 1038, 1038, 1038, 1039,    0, 1039, 1040,
     1401        0, 1040, 1041,    0, 1041, 1042,    0, 1042,    0,    0,
     1402        0, 1042, 1043,    0, 1043,    0,    0,    0, 1043, 1044,
     1403
     1404        0, 1044,    0,    0,    0, 1044, 1045,    0, 1045, 1046,
     1405        0, 1046,    0,    0,    0, 1046, 1047,    0, 1047,    0,
     1406        0,    0, 1047, 1048,    0, 1048,    0,    0,    0, 1048,
     1407     1049,    0, 1049,    0,    0,    0, 1049, 1050,    0, 1050,
     1408        0,    0,    0, 1050, 1051,    0, 1051,    0,    0,    0,
     1409     1051, 1052,    0, 1052,    0,    0,    0, 1052, 1053,    0,
     1410     1053,    0,    0,    0, 1053, 1054,    0, 1054,    0,    0,
     1411        0, 1054, 1055,    0, 1055,    0,    0,    0, 1055, 1056,
     1412        0, 1056,    0,    0,    0, 1056, 1057,    0, 1057,    0,
     1413        0,    0, 1057, 1058,    0, 1058,    0,    0,    0, 1058,
     1414
     1415     1059,    0, 1059,    0,    0,    0, 1059, 1060,    0, 1060,
     1416        0,    0,    0, 1060, 1061,    0, 1061,    0,    0,    0,
     1417     1061,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    14121418      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    14131419      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     
    14171423      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    14181424      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    1419       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    1420       887,  887
     1425
     1426      887,  887,  887,  887,  887,  887,  887
    14211427    } ;
    14221428
     
    14611467 * Created On       : Sat Sep 22 08:58:10 2001
    14621468 * Last Modified By : Peter A. Buhr
    1463  * Last Modified On : Wed Mar  2 18:07:20 2016
    1464  * Update Count     : 434
     1469 * Last Modified On : Mon Mar 21 23:33:46 2016
     1470 * Update Count     : 450
    14651471 */
    14661472#line 20 "lex.ll"
     
    14741480
    14751481#include "lex.h"
     1482#include "parser.h"                                                                             // YACC generated definitions based on C++ grammar
    14761483#include "ParseNode.h"
    1477 #include "parser.h"                                                                             // YACC generated definitions based on C++ grammar
     1484#include "TypedefTable.h"
    14781485
    14791486char *yyfilename;
     
    14911498#define NUMERIC_RETURN(x)       rm_underscore(); RETURN_VAL( x ) // numeric constant
    14921499#define KEYWORD_RETURN(x)       RETURN_CHAR( x )                        // keyword
    1493 #define IDENTIFIER_RETURN()     RETURN_VAL( (typedefTable.isIdentifier( yytext ) ? IDENTIFIER : typedefTable.isTypedef( yytext ) ? TYPEDEFname : TYPEGENname ) )
     1500#define IDENTIFIER_RETURN()     RETURN_VAL( typedefTable.isKind( yytext ) )
    14941501#define ATTRIBUTE_RETURN()      RETURN_VAL( ATTR_IDENTIFIER )
    14951502
     
    15111518// attribute identifier, GCC: $ in identifier
    15121519// numeric constants, CFA: '_' in constant
    1513 // GCC: D (double), LD (long double) and iI (imaginary) suffixes
     1520// GCC: D (double), DL (long double) and iI (imaginary) suffixes
     1521//floating_suffix "_"?([fFdD]|[lL]|[D][L])|([iI][lLfFdD])|([lLfFdD][iI]))
    15141522// character escape sequence, GCC: \e => esc character
    15151523// ' stop highlighting
     
    15201528
    15211529
    1522 #line 1523 "Parser/lex.cc"
     1530#line 1531 "Parser/lex.cc"
    15231531
    15241532#define INITIAL 0
     
    17121720        register int yy_act;
    17131721   
    1714 #line 137 "lex.ll"
     1722#line 139 "lex.ll"
    17151723
    17161724                                   /* line directives */
    1717 #line 1718 "Parser/lex.cc"
     1725#line 1726 "Parser/lex.cc"
    17181726
    17191727        if ( !(yy_init) )
     
    17751783                        ++yy_cp;
    17761784                        }
    1777                 while ( yy_base[yy_current_state] != 2798 );
     1785                while ( yy_base[yy_current_state] != 2822 );
    17781786
    17791787yy_find_action:
     
    18121820/* rule 1 can match eol */
    18131821YY_RULE_SETUP
    1814 #line 139 "lex.ll"
     1822#line 141 "lex.ll"
    18151823{
    18161824        /* " stop highlighting */
     
    18391847/* rule 2 can match eol */
    18401848YY_RULE_SETUP
    1841 #line 162 "lex.ll"
     1849#line 164 "lex.ll"
    18421850;
    18431851        YY_BREAK
     
    18451853case 3:
    18461854YY_RULE_SETUP
    1847 #line 165 "lex.ll"
     1855#line 167 "lex.ll"
    18481856{ BEGIN COMMENT; }
    18491857        YY_BREAK
     
    18511859/* rule 4 can match eol */
    18521860YY_RULE_SETUP
    1853 #line 166 "lex.ll"
     1861#line 168 "lex.ll"
    18541862;
    18551863        YY_BREAK
    18561864case 5:
    18571865YY_RULE_SETUP
    1858 #line 167 "lex.ll"
     1866#line 169 "lex.ll"
    18591867{ BEGIN 0; }
    18601868        YY_BREAK
     
    18631871/* rule 6 can match eol */
    18641872YY_RULE_SETUP
    1865 #line 170 "lex.ll"
     1873#line 172 "lex.ll"
    18661874;
    18671875        YY_BREAK
     
    18691877case 7:
    18701878YY_RULE_SETUP
    1871 #line 173 "lex.ll"
     1879#line 175 "lex.ll"
    18721880{ WHITE_RETURN(' '); }
    18731881        YY_BREAK
    18741882case 8:
    18751883YY_RULE_SETUP
    1876 #line 174 "lex.ll"
     1884#line 176 "lex.ll"
    18771885{ WHITE_RETURN(' '); }
    18781886        YY_BREAK
     
    18801888/* rule 9 can match eol */
    18811889YY_RULE_SETUP
    1882 #line 175 "lex.ll"
     1890#line 177 "lex.ll"
    18831891{ NEWLINE_RETURN(); }
    18841892        YY_BREAK
     
    18861894case 10:
    18871895YY_RULE_SETUP
    1888 #line 178 "lex.ll"
     1896#line 180 "lex.ll"
    18891897{ KEYWORD_RETURN(ALIGNAS); }                    // C11
    18901898        YY_BREAK
    18911899case 11:
    18921900YY_RULE_SETUP
    1893 #line 179 "lex.ll"
     1901#line 181 "lex.ll"
    18941902{ KEYWORD_RETURN(ALIGNOF); }                    // C11
    18951903        YY_BREAK
    18961904case 12:
    18971905YY_RULE_SETUP
    1898 #line 180 "lex.ll"
     1906#line 182 "lex.ll"
    18991907{ KEYWORD_RETURN(ALIGNOF); }                    // GCC
    19001908        YY_BREAK
    19011909case 13:
    19021910YY_RULE_SETUP
    1903 #line 181 "lex.ll"
     1911#line 183 "lex.ll"
    19041912{ KEYWORD_RETURN(ALIGNOF); }                    // GCC
    19051913        YY_BREAK
    19061914case 14:
    19071915YY_RULE_SETUP
    1908 #line 182 "lex.ll"
     1916#line 184 "lex.ll"
    19091917{ KEYWORD_RETURN(ASM); }
    19101918        YY_BREAK
    19111919case 15:
    19121920YY_RULE_SETUP
    1913 #line 183 "lex.ll"
     1921#line 185 "lex.ll"
    19141922{ KEYWORD_RETURN(ASM); }                                // GCC
    19151923        YY_BREAK
    19161924case 16:
    19171925YY_RULE_SETUP
    1918 #line 184 "lex.ll"
     1926#line 186 "lex.ll"
    19191927{ KEYWORD_RETURN(ASM); }                                // GCC
    19201928        YY_BREAK
    19211929case 17:
    19221930YY_RULE_SETUP
    1923 #line 185 "lex.ll"
     1931#line 187 "lex.ll"
    19241932{ KEYWORD_RETURN(AT); }                                 // CFA
    19251933        YY_BREAK
    19261934case 18:
    19271935YY_RULE_SETUP
    1928 #line 186 "lex.ll"
     1936#line 188 "lex.ll"
    19291937{ KEYWORD_RETURN(ATOMIC); }                             // C11
    19301938        YY_BREAK
    19311939case 19:
    19321940YY_RULE_SETUP
    1933 #line 187 "lex.ll"
     1941#line 189 "lex.ll"
    19341942{ KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
    19351943        YY_BREAK
    19361944case 20:
    19371945YY_RULE_SETUP
    1938 #line 188 "lex.ll"
     1946#line 190 "lex.ll"
    19391947{ KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
    19401948        YY_BREAK
    19411949case 21:
    19421950YY_RULE_SETUP
    1943 #line 189 "lex.ll"
     1951#line 191 "lex.ll"
    19441952{ KEYWORD_RETURN(AUTO); }
    19451953        YY_BREAK
    19461954case 22:
    19471955YY_RULE_SETUP
    1948 #line 190 "lex.ll"
     1956#line 192 "lex.ll"
    19491957{ KEYWORD_RETURN(BOOL); }                               // C99
    19501958        YY_BREAK
    19511959case 23:
    19521960YY_RULE_SETUP
    1953 #line 191 "lex.ll"
     1961#line 193 "lex.ll"
    19541962{ KEYWORD_RETURN(BREAK); }
    19551963        YY_BREAK
    19561964case 24:
    19571965YY_RULE_SETUP
    1958 #line 192 "lex.ll"
     1966#line 194 "lex.ll"
    19591967{ KEYWORD_RETURN(CASE); }
    19601968        YY_BREAK
    19611969case 25:
    19621970YY_RULE_SETUP
    1963 #line 193 "lex.ll"
     1971#line 195 "lex.ll"
    19641972{ KEYWORD_RETURN(CATCH); }                              // CFA
    19651973        YY_BREAK
    19661974case 26:
    19671975YY_RULE_SETUP
    1968 #line 194 "lex.ll"
     1976#line 196 "lex.ll"
    19691977{ KEYWORD_RETURN(CATCHRESUME); }                // CFA
    19701978        YY_BREAK
    19711979case 27:
    19721980YY_RULE_SETUP
    1973 #line 195 "lex.ll"
     1981#line 197 "lex.ll"
    19741982{ KEYWORD_RETURN(CHAR); }
    19751983        YY_BREAK
    19761984case 28:
    19771985YY_RULE_SETUP
    1978 #line 196 "lex.ll"
     1986#line 198 "lex.ll"
    19791987{ KEYWORD_RETURN(CHOOSE); }                             // CFA
    19801988        YY_BREAK
    19811989case 29:
    19821990YY_RULE_SETUP
    1983 #line 197 "lex.ll"
     1991#line 199 "lex.ll"
    19841992{ KEYWORD_RETURN(COMPLEX); }                    // C99
    19851993        YY_BREAK
    19861994case 30:
    19871995YY_RULE_SETUP
    1988 #line 198 "lex.ll"
     1996#line 200 "lex.ll"
    19891997{ KEYWORD_RETURN(COMPLEX); }                    // GCC
    19901998        YY_BREAK
    19911999case 31:
    19922000YY_RULE_SETUP
    1993 #line 199 "lex.ll"
     2001#line 201 "lex.ll"
    19942002{ KEYWORD_RETURN(COMPLEX); }                    // GCC
    19952003        YY_BREAK
    19962004case 32:
    19972005YY_RULE_SETUP
    1998 #line 200 "lex.ll"
     2006#line 202 "lex.ll"
    19992007{ KEYWORD_RETURN(CONST); }
    20002008        YY_BREAK
    20012009case 33:
    20022010YY_RULE_SETUP
    2003 #line 201 "lex.ll"
     2011#line 203 "lex.ll"
    20042012{ KEYWORD_RETURN(CONST); }                              // GCC
    20052013        YY_BREAK
    20062014case 34:
    20072015YY_RULE_SETUP
    2008 #line 202 "lex.ll"
     2016#line 204 "lex.ll"
    20092017{ KEYWORD_RETURN(CONST); }                              // GCC
    20102018        YY_BREAK
    20112019case 35:
    20122020YY_RULE_SETUP
    2013 #line 203 "lex.ll"
     2021#line 205 "lex.ll"
    20142022{ KEYWORD_RETURN(CONTINUE); }
    20152023        YY_BREAK
    20162024case 36:
    20172025YY_RULE_SETUP
    2018 #line 204 "lex.ll"
     2026#line 206 "lex.ll"
    20192027{ KEYWORD_RETURN(DEFAULT); }
    20202028        YY_BREAK
    20212029case 37:
    20222030YY_RULE_SETUP
    2023 #line 205 "lex.ll"
     2031#line 207 "lex.ll"
    20242032{ KEYWORD_RETURN(DISABLE); }                    // CFA
    20252033        YY_BREAK
    20262034case 38:
    20272035YY_RULE_SETUP
    2028 #line 206 "lex.ll"
     2036#line 208 "lex.ll"
    20292037{ KEYWORD_RETURN(DO); }
    20302038        YY_BREAK
    20312039case 39:
    20322040YY_RULE_SETUP
    2033 #line 207 "lex.ll"
     2041#line 209 "lex.ll"
    20342042{ KEYWORD_RETURN(DOUBLE); }
    20352043        YY_BREAK
    20362044case 40:
    20372045YY_RULE_SETUP
    2038 #line 208 "lex.ll"
     2046#line 210 "lex.ll"
    20392047{ KEYWORD_RETURN(DTYPE); }                              // CFA
    20402048        YY_BREAK
    20412049case 41:
    20422050YY_RULE_SETUP
    2043 #line 209 "lex.ll"
     2051#line 211 "lex.ll"
    20442052{ KEYWORD_RETURN(ELSE); }
    20452053        YY_BREAK
    20462054case 42:
    20472055YY_RULE_SETUP
    2048 #line 210 "lex.ll"
     2056#line 212 "lex.ll"
    20492057{ KEYWORD_RETURN(ENABLE); }                             // CFA
    20502058        YY_BREAK
    20512059case 43:
    20522060YY_RULE_SETUP
    2053 #line 211 "lex.ll"
     2061#line 213 "lex.ll"
    20542062{ KEYWORD_RETURN(ENUM); }
    20552063        YY_BREAK
    20562064case 44:
    20572065YY_RULE_SETUP
    2058 #line 212 "lex.ll"
     2066#line 214 "lex.ll"
    20592067{ KEYWORD_RETURN(EXTENSION); }                  // GCC
    20602068        YY_BREAK
    20612069case 45:
    20622070YY_RULE_SETUP
    2063 #line 213 "lex.ll"
     2071#line 215 "lex.ll"
    20642072{ KEYWORD_RETURN(EXTERN); }
    20652073        YY_BREAK
    20662074case 46:
    20672075YY_RULE_SETUP
    2068 #line 214 "lex.ll"
     2076#line 216 "lex.ll"
    20692077{ KEYWORD_RETURN(FALLTHRU); }                   // CFA
    20702078        YY_BREAK
    20712079case 47:
    20722080YY_RULE_SETUP
    2073 #line 215 "lex.ll"
     2081#line 217 "lex.ll"
    20742082{ KEYWORD_RETURN(FINALLY); }                    // CFA
    20752083        YY_BREAK
    20762084case 48:
    20772085YY_RULE_SETUP
    2078 #line 216 "lex.ll"
     2086#line 218 "lex.ll"
    20792087{ KEYWORD_RETURN(FLOAT); }
    20802088        YY_BREAK
    20812089case 49:
    20822090YY_RULE_SETUP
    2083 #line 217 "lex.ll"
     2091#line 219 "lex.ll"
    20842092{ KEYWORD_RETURN(FLOAT); }                              // GCC
    20852093        YY_BREAK
    20862094case 50:
    20872095YY_RULE_SETUP
    2088 #line 218 "lex.ll"
     2096#line 220 "lex.ll"
    20892097{ KEYWORD_RETURN(FOR); }
    20902098        YY_BREAK
    20912099case 51:
    20922100YY_RULE_SETUP
    2093 #line 219 "lex.ll"
     2101#line 221 "lex.ll"
    20942102{ KEYWORD_RETURN(FORALL); }                             // CFA
    20952103        YY_BREAK
    20962104case 52:
    20972105YY_RULE_SETUP
    2098 #line 220 "lex.ll"
     2106#line 222 "lex.ll"
    20992107{ KEYWORD_RETURN(FORTRAN); }
    21002108        YY_BREAK
    21012109case 53:
    21022110YY_RULE_SETUP
    2103 #line 221 "lex.ll"
     2111#line 223 "lex.ll"
    21042112{ KEYWORD_RETURN(FTYPE); }                              // CFA
    21052113        YY_BREAK
    21062114case 54:
    21072115YY_RULE_SETUP
    2108 #line 222 "lex.ll"
     2116#line 224 "lex.ll"
    21092117{ KEYWORD_RETURN(GENERIC); }                    // C11
    21102118        YY_BREAK
    21112119case 55:
    21122120YY_RULE_SETUP
    2113 #line 223 "lex.ll"
     2121#line 225 "lex.ll"
    21142122{ KEYWORD_RETURN(GOTO); }
    21152123        YY_BREAK
    21162124case 56:
    21172125YY_RULE_SETUP
    2118 #line 224 "lex.ll"
     2126#line 226 "lex.ll"
    21192127{ KEYWORD_RETURN(IF); }
    21202128        YY_BREAK
    21212129case 57:
    21222130YY_RULE_SETUP
    2123 #line 225 "lex.ll"
     2131#line 227 "lex.ll"
    21242132{ KEYWORD_RETURN(IMAGINARY); }                  // C99
    21252133        YY_BREAK
    21262134case 58:
    21272135YY_RULE_SETUP
    2128 #line 226 "lex.ll"
     2136#line 228 "lex.ll"
    21292137{ KEYWORD_RETURN(IMAGINARY); }                  // GCC
    21302138        YY_BREAK
    21312139case 59:
    21322140YY_RULE_SETUP
    2133 #line 227 "lex.ll"
     2141#line 229 "lex.ll"
    21342142{ KEYWORD_RETURN(IMAGINARY); }                  // GCC
    21352143        YY_BREAK
    21362144case 60:
    21372145YY_RULE_SETUP
    2138 #line 228 "lex.ll"
     2146#line 230 "lex.ll"
    21392147{ KEYWORD_RETURN(INLINE); }                             // C99
    21402148        YY_BREAK
    21412149case 61:
    21422150YY_RULE_SETUP
    2143 #line 229 "lex.ll"
     2151#line 231 "lex.ll"
    21442152{ KEYWORD_RETURN(INLINE); }                             // GCC
    21452153        YY_BREAK
    21462154case 62:
    21472155YY_RULE_SETUP
    2148 #line 230 "lex.ll"
     2156#line 232 "lex.ll"
    21492157{ KEYWORD_RETURN(INLINE); }                             // GCC
    21502158        YY_BREAK
    21512159case 63:
    21522160YY_RULE_SETUP
    2153 #line 231 "lex.ll"
     2161#line 233 "lex.ll"
    21542162{ KEYWORD_RETURN(INT); }
    21552163        YY_BREAK
    21562164case 64:
    21572165YY_RULE_SETUP
    2158 #line 232 "lex.ll"
     2166#line 234 "lex.ll"
    21592167{ KEYWORD_RETURN(INT); }                                // GCC
    21602168        YY_BREAK
    21612169case 65:
    21622170YY_RULE_SETUP
    2163 #line 233 "lex.ll"
     2171#line 235 "lex.ll"
    21642172{ KEYWORD_RETURN(LABEL); }                              // GCC
    21652173        YY_BREAK
    21662174case 66:
    21672175YY_RULE_SETUP
    2168 #line 234 "lex.ll"
     2176#line 236 "lex.ll"
    21692177{ KEYWORD_RETURN(LONG); }
    21702178        YY_BREAK
    21712179case 67:
    21722180YY_RULE_SETUP
    2173 #line 235 "lex.ll"
     2181#line 237 "lex.ll"
    21742182{ KEYWORD_RETURN(LVALUE); }                             // CFA
    21752183        YY_BREAK
    21762184case 68:
    21772185YY_RULE_SETUP
    2178 #line 236 "lex.ll"
     2186#line 238 "lex.ll"
    21792187{ KEYWORD_RETURN(NORETURN); }                   // C11
    21802188        YY_BREAK
    21812189case 69:
    21822190YY_RULE_SETUP
    2183 #line 237 "lex.ll"
     2191#line 239 "lex.ll"
    21842192{ KEYWORD_RETURN(OFFSETOF); }           // GCC
    21852193        YY_BREAK
    21862194case 70:
    21872195YY_RULE_SETUP
    2188 #line 238 "lex.ll"
     2196#line 240 "lex.ll"
    21892197{ KEYWORD_RETURN(OTYPE); }                              // CFA
    21902198        YY_BREAK
    21912199case 71:
    21922200YY_RULE_SETUP
    2193 #line 239 "lex.ll"
     2201#line 241 "lex.ll"
    21942202{ KEYWORD_RETURN(REGISTER); }
    21952203        YY_BREAK
    21962204case 72:
    21972205YY_RULE_SETUP
    2198 #line 240 "lex.ll"
     2206#line 242 "lex.ll"
    21992207{ KEYWORD_RETURN(RESTRICT); }                   // C99
    22002208        YY_BREAK
    22012209case 73:
    22022210YY_RULE_SETUP
    2203 #line 241 "lex.ll"
     2211#line 243 "lex.ll"
    22042212{ KEYWORD_RETURN(RESTRICT); }                   // GCC
    22052213        YY_BREAK
    22062214case 74:
    22072215YY_RULE_SETUP
    2208 #line 242 "lex.ll"
     2216#line 244 "lex.ll"
    22092217{ KEYWORD_RETURN(RESTRICT); }                   // GCC
    22102218        YY_BREAK
    22112219case 75:
    22122220YY_RULE_SETUP
    2213 #line 243 "lex.ll"
     2221#line 245 "lex.ll"
    22142222{ KEYWORD_RETURN(RETURN); }
    22152223        YY_BREAK
    22162224case 76:
    22172225YY_RULE_SETUP
    2218 #line 244 "lex.ll"
     2226#line 246 "lex.ll"
    22192227{ KEYWORD_RETURN(SHORT); }
    22202228        YY_BREAK
    22212229case 77:
    22222230YY_RULE_SETUP
    2223 #line 245 "lex.ll"
     2231#line 247 "lex.ll"
    22242232{ KEYWORD_RETURN(SIGNED); }
    22252233        YY_BREAK
    22262234case 78:
    22272235YY_RULE_SETUP
    2228 #line 246 "lex.ll"
     2236#line 248 "lex.ll"
    22292237{ KEYWORD_RETURN(SIGNED); }                             // GCC
    22302238        YY_BREAK
    22312239case 79:
    22322240YY_RULE_SETUP
    2233 #line 247 "lex.ll"
     2241#line 249 "lex.ll"
    22342242{ KEYWORD_RETURN(SIGNED); }                             // GCC
    22352243        YY_BREAK
    22362244case 80:
    22372245YY_RULE_SETUP
    2238 #line 248 "lex.ll"
     2246#line 250 "lex.ll"
    22392247{ KEYWORD_RETURN(SIZEOF); }
    22402248        YY_BREAK
    22412249case 81:
    22422250YY_RULE_SETUP
    2243 #line 249 "lex.ll"
     2251#line 251 "lex.ll"
    22442252{ KEYWORD_RETURN(STATIC); }
    22452253        YY_BREAK
    22462254case 82:
    22472255YY_RULE_SETUP
    2248 #line 250 "lex.ll"
     2256#line 252 "lex.ll"
    22492257{ KEYWORD_RETURN(STATICASSERT); }               // C11
    22502258        YY_BREAK
    22512259case 83:
    22522260YY_RULE_SETUP
    2253 #line 251 "lex.ll"
     2261#line 253 "lex.ll"
    22542262{ KEYWORD_RETURN(STRUCT); }
    22552263        YY_BREAK
    22562264case 84:
    22572265YY_RULE_SETUP
    2258 #line 252 "lex.ll"
     2266#line 254 "lex.ll"
    22592267{ KEYWORD_RETURN(SWITCH); }
    22602268        YY_BREAK
    22612269case 85:
    22622270YY_RULE_SETUP
    2263 #line 253 "lex.ll"
     2271#line 255 "lex.ll"
    22642272{ KEYWORD_RETURN(THREADLOCAL); }                // C11
    22652273        YY_BREAK
    22662274case 86:
    22672275YY_RULE_SETUP
    2268 #line 254 "lex.ll"
     2276#line 256 "lex.ll"
    22692277{ KEYWORD_RETURN(THROW); }                              // CFA
    22702278        YY_BREAK
    22712279case 87:
    22722280YY_RULE_SETUP
    2273 #line 255 "lex.ll"
     2281#line 257 "lex.ll"
    22742282{ KEYWORD_RETURN(THROWRESUME); }                // CFA
    22752283        YY_BREAK
    22762284case 88:
    22772285YY_RULE_SETUP
    2278 #line 256 "lex.ll"
     2286#line 258 "lex.ll"
    22792287{ KEYWORD_RETURN(TRAIT); }                              // CFA
    22802288        YY_BREAK
    22812289case 89:
    22822290YY_RULE_SETUP
    2283 #line 257 "lex.ll"
     2291#line 259 "lex.ll"
    22842292{ KEYWORD_RETURN(TRY); }                                // CFA
    22852293        YY_BREAK
    22862294case 90:
    22872295YY_RULE_SETUP
    2288 #line 258 "lex.ll"
     2296#line 260 "lex.ll"
    22892297{ KEYWORD_RETURN(TYPEDEF); }
    22902298        YY_BREAK
    22912299case 91:
    2292 YY_RULE_SETUP
    2293 #line 259 "lex.ll"
    2294 { KEYWORD_RETURN(TYPEOF); }                             // GCC
    2295         YY_BREAK
    2296 case 92:
    2297 YY_RULE_SETUP
    2298 #line 260 "lex.ll"
    2299 { KEYWORD_RETURN(TYPEOF); }                             // GCC
    2300         YY_BREAK
    2301 case 93:
    23022300YY_RULE_SETUP
    23032301#line 261 "lex.ll"
    23042302{ KEYWORD_RETURN(TYPEOF); }                             // GCC
    23052303        YY_BREAK
     2304case 92:
     2305YY_RULE_SETUP
     2306#line 262 "lex.ll"
     2307{ KEYWORD_RETURN(TYPEOF); }                             // GCC
     2308        YY_BREAK
     2309case 93:
     2310YY_RULE_SETUP
     2311#line 263 "lex.ll"
     2312{ KEYWORD_RETURN(TYPEOF); }                             // GCC
     2313        YY_BREAK
    23062314case 94:
    23072315YY_RULE_SETUP
    2308 #line 262 "lex.ll"
     2316#line 264 "lex.ll"
    23092317{ KEYWORD_RETURN(UNION); }
    23102318        YY_BREAK
    23112319case 95:
    23122320YY_RULE_SETUP
    2313 #line 263 "lex.ll"
     2321#line 265 "lex.ll"
    23142322{ KEYWORD_RETURN(UNSIGNED); }
    23152323        YY_BREAK
    23162324case 96:
    23172325YY_RULE_SETUP
    2318 #line 264 "lex.ll"
     2326#line 266 "lex.ll"
    23192327{ KEYWORD_RETURN(VALIST); }                     // GCC
    23202328        YY_BREAK
    23212329case 97:
    23222330YY_RULE_SETUP
    2323 #line 265 "lex.ll"
     2331#line 267 "lex.ll"
    23242332{ KEYWORD_RETURN(VOID); }
    23252333        YY_BREAK
    23262334case 98:
    23272335YY_RULE_SETUP
    2328 #line 266 "lex.ll"
     2336#line 268 "lex.ll"
    23292337{ KEYWORD_RETURN(VOLATILE); }
    23302338        YY_BREAK
    23312339case 99:
    23322340YY_RULE_SETUP
    2333 #line 267 "lex.ll"
     2341#line 269 "lex.ll"
    23342342{ KEYWORD_RETURN(VOLATILE); }                   // GCC
    23352343        YY_BREAK
    23362344case 100:
    23372345YY_RULE_SETUP
    2338 #line 268 "lex.ll"
     2346#line 270 "lex.ll"
    23392347{ KEYWORD_RETURN(VOLATILE); }                   // GCC
    23402348        YY_BREAK
    23412349case 101:
    23422350YY_RULE_SETUP
    2343 #line 269 "lex.ll"
     2351#line 271 "lex.ll"
    23442352{ KEYWORD_RETURN(WHILE); }
    23452353        YY_BREAK
     
    23472355case 102:
    23482356YY_RULE_SETUP
    2349 #line 272 "lex.ll"
     2357#line 274 "lex.ll"
    23502358{ IDENTIFIER_RETURN(); }
    23512359        YY_BREAK
    23522360case 103:
    23532361YY_RULE_SETUP
    2354 #line 273 "lex.ll"
     2362#line 275 "lex.ll"
    23552363{ ATTRIBUTE_RETURN(); }
    23562364        YY_BREAK
    23572365case 104:
    23582366YY_RULE_SETUP
    2359 #line 274 "lex.ll"
     2367#line 276 "lex.ll"
    23602368{ BEGIN BKQUOTE; }
    23612369        YY_BREAK
    23622370case 105:
    23632371YY_RULE_SETUP
    2364 #line 275 "lex.ll"
     2372#line 277 "lex.ll"
    23652373{ IDENTIFIER_RETURN(); }
    23662374        YY_BREAK
    23672375case 106:
    23682376YY_RULE_SETUP
    2369 #line 276 "lex.ll"
     2377#line 278 "lex.ll"
    23702378{ BEGIN 0; }
    23712379        YY_BREAK
     
    23732381case 107:
    23742382YY_RULE_SETUP
    2375 #line 279 "lex.ll"
     2383#line 281 "lex.ll"
    23762384{ NUMERIC_RETURN(ZERO); }                               // CFA
    23772385        YY_BREAK
    23782386case 108:
    23792387YY_RULE_SETUP
    2380 #line 280 "lex.ll"
     2388#line 282 "lex.ll"
    23812389{ NUMERIC_RETURN(ONE); }                                // CFA
    23822390        YY_BREAK
    23832391case 109:
    2384 YY_RULE_SETUP
    2385 #line 281 "lex.ll"
    2386 { NUMERIC_RETURN(INTEGERconstant); }
    2387         YY_BREAK
    2388 case 110:
    2389 YY_RULE_SETUP
    2390 #line 282 "lex.ll"
    2391 { NUMERIC_RETURN(INTEGERconstant); }
    2392         YY_BREAK
    2393 case 111:
    23942392YY_RULE_SETUP
    23952393#line 283 "lex.ll"
    23962394{ NUMERIC_RETURN(INTEGERconstant); }
    23972395        YY_BREAK
     2396case 110:
     2397YY_RULE_SETUP
     2398#line 284 "lex.ll"
     2399{ NUMERIC_RETURN(INTEGERconstant); }
     2400        YY_BREAK
     2401case 111:
     2402YY_RULE_SETUP
     2403#line 285 "lex.ll"
     2404{ NUMERIC_RETURN(INTEGERconstant); }
     2405        YY_BREAK
    23982406case 112:
    23992407YY_RULE_SETUP
    2400 #line 284 "lex.ll"
     2408#line 286 "lex.ll"
    24012409{ NUMERIC_RETURN(FLOATINGconstant); }
    24022410        YY_BREAK
    24032411case 113:
    24042412YY_RULE_SETUP
    2405 #line 285 "lex.ll"
     2413#line 287 "lex.ll"
    24062414{ NUMERIC_RETURN(FLOATINGconstant); }
    24072415        YY_BREAK
     
    24092417case 114:
    24102418YY_RULE_SETUP
    2411 #line 288 "lex.ll"
     2419#line 290 "lex.ll"
    24122420{ BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    24132421        YY_BREAK
    24142422case 115:
    24152423YY_RULE_SETUP
    2416 #line 289 "lex.ll"
     2424#line 291 "lex.ll"
    24172425{ *strtext += std::string( yytext ); }
    24182426        YY_BREAK
     
    24202428/* rule 116 can match eol */
    24212429YY_RULE_SETUP
    2422 #line 290 "lex.ll"
     2430#line 292 "lex.ll"
    24232431{ BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); }
    24242432        YY_BREAK
     
    24272435case 117:
    24282436YY_RULE_SETUP
    2429 #line 294 "lex.ll"
     2437#line 296 "lex.ll"
    24302438{ BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    24312439        YY_BREAK
    24322440case 118:
    24332441YY_RULE_SETUP
    2434 #line 295 "lex.ll"
     2442#line 297 "lex.ll"
    24352443{ *strtext += std::string( yytext ); }
    24362444        YY_BREAK
     
    24382446/* rule 119 can match eol */
    24392447YY_RULE_SETUP
    2440 #line 296 "lex.ll"
     2448#line 298 "lex.ll"
    24412449{ BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); }
    24422450        YY_BREAK
     
    24452453case 120:
    24462454YY_RULE_SETUP
    2447 #line 300 "lex.ll"
     2455#line 302 "lex.ll"
    24482456{ rm_underscore(); *strtext += std::string( yytext ); }
    24492457        YY_BREAK
     
    24512459/* rule 121 can match eol */
    24522460YY_RULE_SETUP
    2453 #line 301 "lex.ll"
     2461#line 303 "lex.ll"
    24542462{}                                              // continuation (ALSO HANDLED BY CPP)
    24552463        YY_BREAK
    24562464case 122:
    24572465YY_RULE_SETUP
    2458 #line 302 "lex.ll"
     2466#line 304 "lex.ll"
    24592467{ *strtext += std::string( yytext ); } // unknown escape character
    24602468        YY_BREAK
     
    24622470case 123:
    24632471YY_RULE_SETUP
    2464 #line 305 "lex.ll"
    2465 { ASCIIOP_RETURN(); }
    2466         YY_BREAK
    2467 case 124:
    2468 YY_RULE_SETUP
    2469 #line 306 "lex.ll"
    2470 { ASCIIOP_RETURN(); }
    2471         YY_BREAK
    2472 case 125:
    2473 YY_RULE_SETUP
    24742472#line 307 "lex.ll"
    24752473{ ASCIIOP_RETURN(); }
    24762474        YY_BREAK
    2477 case 126:
     2475case 124:
    24782476YY_RULE_SETUP
    24792477#line 308 "lex.ll"
    24802478{ ASCIIOP_RETURN(); }
    24812479        YY_BREAK
    2482 case 127:
     2480case 125:
    24832481YY_RULE_SETUP
    24842482#line 309 "lex.ll"
    24852483{ ASCIIOP_RETURN(); }
    24862484        YY_BREAK
    2487 case 128:
     2485case 126:
    24882486YY_RULE_SETUP
    24892487#line 310 "lex.ll"
    24902488{ ASCIIOP_RETURN(); }
    24912489        YY_BREAK
    2492 case 129:
     2490case 127:
    24932491YY_RULE_SETUP
    24942492#line 311 "lex.ll"
    2495 { ASCIIOP_RETURN(); }                                   // also operator
    2496         YY_BREAK
    2497 case 130:
     2493{ ASCIIOP_RETURN(); }
     2494        YY_BREAK
     2495case 128:
    24982496YY_RULE_SETUP
    24992497#line 312 "lex.ll"
    25002498{ ASCIIOP_RETURN(); }
    25012499        YY_BREAK
     2500case 129:
     2501YY_RULE_SETUP
     2502#line 313 "lex.ll"
     2503{ ASCIIOP_RETURN(); }                                   // also operator
     2504        YY_BREAK
     2505case 130:
     2506YY_RULE_SETUP
     2507#line 314 "lex.ll"
     2508{ ASCIIOP_RETURN(); }
     2509        YY_BREAK
    25022510case 131:
    25032511YY_RULE_SETUP
    2504 #line 313 "lex.ll"
     2512#line 315 "lex.ll"
    25052513{ ASCIIOP_RETURN(); }
    25062514        YY_BREAK
    25072515case 132:
    25082516YY_RULE_SETUP
    2509 #line 314 "lex.ll"
     2517#line 316 "lex.ll"
    25102518{ ASCIIOP_RETURN(); }                                   // also operator
    25112519        YY_BREAK
    25122520case 133:
    25132521YY_RULE_SETUP
    2514 #line 315 "lex.ll"
     2522#line 317 "lex.ll"
    25152523{ NAMEDOP_RETURN(ELLIPSIS); }
    25162524        YY_BREAK
     
    25182526case 134:
    25192527YY_RULE_SETUP
    2520 #line 318 "lex.ll"
     2528#line 320 "lex.ll"
    25212529{ RETURN_VAL('['); }
    25222530        YY_BREAK
    25232531case 135:
    25242532YY_RULE_SETUP
    2525 #line 319 "lex.ll"
     2533#line 321 "lex.ll"
    25262534{ RETURN_VAL(']'); }
    25272535        YY_BREAK
    25282536case 136:
    25292537YY_RULE_SETUP
    2530 #line 320 "lex.ll"
     2538#line 322 "lex.ll"
    25312539{ RETURN_VAL('{'); }
    25322540        YY_BREAK
    25332541case 137:
    25342542YY_RULE_SETUP
    2535 #line 321 "lex.ll"
     2543#line 323 "lex.ll"
    25362544{ RETURN_VAL('}'); }
    25372545        YY_BREAK
     
    25392547case 138:
    25402548YY_RULE_SETUP
    2541 #line 324 "lex.ll"
    2542 { ASCIIOP_RETURN(); }
    2543         YY_BREAK
    2544 case 139:
    2545 YY_RULE_SETUP
    2546 #line 325 "lex.ll"
    2547 { ASCIIOP_RETURN(); }
    2548         YY_BREAK
    2549 case 140:
    2550 YY_RULE_SETUP
    25512549#line 326 "lex.ll"
    25522550{ ASCIIOP_RETURN(); }
    25532551        YY_BREAK
    2554 case 141:
     2552case 139:
    25552553YY_RULE_SETUP
    25562554#line 327 "lex.ll"
    25572555{ ASCIIOP_RETURN(); }
    25582556        YY_BREAK
    2559 case 142:
     2557case 140:
    25602558YY_RULE_SETUP
    25612559#line 328 "lex.ll"
    25622560{ ASCIIOP_RETURN(); }
    25632561        YY_BREAK
    2564 case 143:
     2562case 141:
    25652563YY_RULE_SETUP
    25662564#line 329 "lex.ll"
    25672565{ ASCIIOP_RETURN(); }
    25682566        YY_BREAK
    2569 case 144:
     2567case 142:
    25702568YY_RULE_SETUP
    25712569#line 330 "lex.ll"
    25722570{ ASCIIOP_RETURN(); }
    25732571        YY_BREAK
    2574 case 145:
     2572case 143:
    25752573YY_RULE_SETUP
    25762574#line 331 "lex.ll"
    25772575{ ASCIIOP_RETURN(); }
    25782576        YY_BREAK
    2579 case 146:
     2577case 144:
    25802578YY_RULE_SETUP
    25812579#line 332 "lex.ll"
    25822580{ ASCIIOP_RETURN(); }
    25832581        YY_BREAK
    2584 case 147:
     2582case 145:
    25852583YY_RULE_SETUP
    25862584#line 333 "lex.ll"
    25872585{ ASCIIOP_RETURN(); }
    25882586        YY_BREAK
    2589 case 148:
     2587case 146:
    25902588YY_RULE_SETUP
    25912589#line 334 "lex.ll"
    25922590{ ASCIIOP_RETURN(); }
    25932591        YY_BREAK
    2594 case 149:
     2592case 147:
    25952593YY_RULE_SETUP
    25962594#line 335 "lex.ll"
    25972595{ ASCIIOP_RETURN(); }
    25982596        YY_BREAK
    2599 case 150:
     2597case 148:
    26002598YY_RULE_SETUP
    26012599#line 336 "lex.ll"
    26022600{ ASCIIOP_RETURN(); }
    26032601        YY_BREAK
    2604 case 151:
     2602case 149:
    26052603YY_RULE_SETUP
    26062604#line 337 "lex.ll"
    26072605{ ASCIIOP_RETURN(); }
    26082606        YY_BREAK
     2607case 150:
     2608YY_RULE_SETUP
     2609#line 338 "lex.ll"
     2610{ ASCIIOP_RETURN(); }
     2611        YY_BREAK
     2612case 151:
     2613YY_RULE_SETUP
     2614#line 339 "lex.ll"
     2615{ ASCIIOP_RETURN(); }
     2616        YY_BREAK
    26092617case 152:
    26102618YY_RULE_SETUP
    2611 #line 339 "lex.ll"
     2619#line 341 "lex.ll"
    26122620{ NAMEDOP_RETURN(ICR); }
    26132621        YY_BREAK
    26142622case 153:
    26152623YY_RULE_SETUP
    2616 #line 340 "lex.ll"
     2624#line 342 "lex.ll"
    26172625{ NAMEDOP_RETURN(DECR); }
    26182626        YY_BREAK
    26192627case 154:
    26202628YY_RULE_SETUP
    2621 #line 341 "lex.ll"
     2629#line 343 "lex.ll"
    26222630{ NAMEDOP_RETURN(EQ); }
    26232631        YY_BREAK
    26242632case 155:
    26252633YY_RULE_SETUP
    2626 #line 342 "lex.ll"
     2634#line 344 "lex.ll"
    26272635{ NAMEDOP_RETURN(NE); }
    26282636        YY_BREAK
    26292637case 156:
    26302638YY_RULE_SETUP
    2631 #line 343 "lex.ll"
     2639#line 345 "lex.ll"
    26322640{ NAMEDOP_RETURN(LS); }
    26332641        YY_BREAK
    26342642case 157:
    26352643YY_RULE_SETUP
    2636 #line 344 "lex.ll"
     2644#line 346 "lex.ll"
    26372645{ NAMEDOP_RETURN(RS); }
    26382646        YY_BREAK
    26392647case 158:
    26402648YY_RULE_SETUP
    2641 #line 345 "lex.ll"
     2649#line 347 "lex.ll"
    26422650{ NAMEDOP_RETURN(LE); }
    26432651        YY_BREAK
    26442652case 159:
    26452653YY_RULE_SETUP
    2646 #line 346 "lex.ll"
     2654#line 348 "lex.ll"
    26472655{ NAMEDOP_RETURN(GE); }
    26482656        YY_BREAK
    26492657case 160:
    26502658YY_RULE_SETUP
    2651 #line 347 "lex.ll"
     2659#line 349 "lex.ll"
    26522660{ NAMEDOP_RETURN(ANDAND); }
    26532661        YY_BREAK
    26542662case 161:
    26552663YY_RULE_SETUP
    2656 #line 348 "lex.ll"
     2664#line 350 "lex.ll"
    26572665{ NAMEDOP_RETURN(OROR); }
    26582666        YY_BREAK
    26592667case 162:
    26602668YY_RULE_SETUP
    2661 #line 349 "lex.ll"
     2669#line 351 "lex.ll"
    26622670{ NAMEDOP_RETURN(ARROW); }
    26632671        YY_BREAK
    26642672case 163:
    26652673YY_RULE_SETUP
    2666 #line 350 "lex.ll"
     2674#line 352 "lex.ll"
    26672675{ NAMEDOP_RETURN(PLUSassign); }
    26682676        YY_BREAK
    26692677case 164:
    26702678YY_RULE_SETUP
    2671 #line 351 "lex.ll"
     2679#line 353 "lex.ll"
    26722680{ NAMEDOP_RETURN(MINUSassign); }
    26732681        YY_BREAK
    26742682case 165:
    26752683YY_RULE_SETUP
    2676 #line 352 "lex.ll"
     2684#line 354 "lex.ll"
    26772685{ NAMEDOP_RETURN(MULTassign); }
    26782686        YY_BREAK
    26792687case 166:
    26802688YY_RULE_SETUP
    2681 #line 353 "lex.ll"
     2689#line 355 "lex.ll"
    26822690{ NAMEDOP_RETURN(DIVassign); }
    26832691        YY_BREAK
    26842692case 167:
    26852693YY_RULE_SETUP
    2686 #line 354 "lex.ll"
     2694#line 356 "lex.ll"
    26872695{ NAMEDOP_RETURN(MODassign); }
    26882696        YY_BREAK
    26892697case 168:
    26902698YY_RULE_SETUP
    2691 #line 355 "lex.ll"
     2699#line 357 "lex.ll"
    26922700{ NAMEDOP_RETURN(ANDassign); }
    26932701        YY_BREAK
    26942702case 169:
    26952703YY_RULE_SETUP
    2696 #line 356 "lex.ll"
     2704#line 358 "lex.ll"
    26972705{ NAMEDOP_RETURN(ORassign); }
    26982706        YY_BREAK
    26992707case 170:
    27002708YY_RULE_SETUP
    2701 #line 357 "lex.ll"
     2709#line 359 "lex.ll"
    27022710{ NAMEDOP_RETURN(ERassign); }
    27032711        YY_BREAK
    27042712case 171:
    27052713YY_RULE_SETUP
    2706 #line 358 "lex.ll"
     2714#line 360 "lex.ll"
    27072715{ NAMEDOP_RETURN(LSassign); }
    27082716        YY_BREAK
    27092717case 172:
    27102718YY_RULE_SETUP
    2711 #line 359 "lex.ll"
     2719#line 361 "lex.ll"
    27122720{ NAMEDOP_RETURN(RSassign); }
    27132721        YY_BREAK
    27142722case 173:
    27152723YY_RULE_SETUP
    2716 #line 361 "lex.ll"
     2724#line 363 "lex.ll"
    27172725{ NAMEDOP_RETURN(ATassign); }
    27182726        YY_BREAK
     
    27202728case 174:
    27212729YY_RULE_SETUP
    2722 #line 364 "lex.ll"
     2730#line 366 "lex.ll"
    27232731{ IDENTIFIER_RETURN(); }                                // unary
    27242732        YY_BREAK
    27252733case 175:
    27262734YY_RULE_SETUP
    2727 #line 365 "lex.ll"
     2735#line 367 "lex.ll"
    27282736{ IDENTIFIER_RETURN(); }
    27292737        YY_BREAK
    27302738case 176:
    27312739YY_RULE_SETUP
    2732 #line 366 "lex.ll"
     2740#line 368 "lex.ll"
    27332741{ IDENTIFIER_RETURN(); }
    27342742        YY_BREAK
    27352743case 177:
    27362744YY_RULE_SETUP
    2737 #line 367 "lex.ll"
     2745#line 369 "lex.ll"
    27382746{ IDENTIFIER_RETURN(); }                // binary
    27392747        YY_BREAK
     
    27662774case 178:
    27672775YY_RULE_SETUP
    2768 #line 394 "lex.ll"
     2776#line 396 "lex.ll"
    27692777{
    27702778        // 1 or 2 character unary operator ?
     
    27812789case 179:
    27822790YY_RULE_SETUP
    2783 #line 406 "lex.ll"
     2791#line 408 "lex.ll"
    27842792{ printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
    27852793        YY_BREAK
    27862794case 180:
    27872795YY_RULE_SETUP
    2788 #line 408 "lex.ll"
     2796#line 410 "lex.ll"
    27892797ECHO;
    27902798        YY_BREAK
    2791 #line 2792 "Parser/lex.cc"
     2799#line 2800 "Parser/lex.cc"
    27922800case YY_STATE_EOF(INITIAL):
    27932801case YY_STATE_EOF(COMMENT):
     
    37643772#define YYTABLES_NAME "yytables"
    37653773
    3766 #line 408 "lex.ll"
     3774#line 410 "lex.ll"
    37673775
    37683776
  • src/Parser/lex.h

    ra752883 r984dce6  
    1010// Created On       : Sat Sep 22 08:58:10 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Jun  8 20:28:48 2015
    13 // Update Count     : 341
     12// Last Modified On : Mon Mar 21 18:18:06 2016
     13// Update Count     : 346
    1414//
    1515
     
    2020void yyerror( const char * );
    2121
     22#include <string>
     23#include "ParseNode.h"
    2224// External declarations for information sharing between lexer and scanner
    23 #include "TypedefTable.h"
     25class TypedefTable;
    2426extern TypedefTable typedefTable;
    2527
  • src/Parser/lex.ll

    ra752883 r984dce6  
    1010 * Created On       : Sat Sep 22 08:58:10 2001
    1111 * Last Modified By : Peter A. Buhr
    12  * Last Modified On : Wed Mar  2 18:07:20 2016
    13  * Update Count     : 434
     12 * Last Modified On : Mon Mar 21 23:33:46 2016
     13 * Update Count     : 450
    1414 */
    1515
     
    2727
    2828#include "lex.h"
     29#include "parser.h"                                                                             // YACC generated definitions based on C++ grammar
    2930#include "ParseNode.h"
    30 #include "parser.h"                                                                             // YACC generated definitions based on C++ grammar
     31#include "TypedefTable.h"
    3132
    3233char *yyfilename;
     
    4445#define NUMERIC_RETURN(x)       rm_underscore(); RETURN_VAL( x ) // numeric constant
    4546#define KEYWORD_RETURN(x)       RETURN_CHAR( x )                        // keyword
    46 #define IDENTIFIER_RETURN()     RETURN_VAL( (typedefTable.isIdentifier( yytext ) ? IDENTIFIER : typedefTable.isTypedef( yytext ) ? TYPEDEFname : TYPEGENname ) )
     47#define IDENTIFIER_RETURN()     RETURN_VAL( typedefTable.isKind( yytext ) )
    4748#define ATTRIBUTE_RETURN()      RETURN_VAL( ATTR_IDENTIFIER )
    4849
     
    9596fractional_constant ({decimal_digits}?"."{decimal_digits})|({decimal_digits}".")
    9697exponent "_"?[eE]"_"?[+-]?{decimal_digits}
    97                                 // GCC: D (double), LD (long double) and iI (imaginary) suffixes
    98 floating_suffix "_"?([fFdD]?|([lL]?)|([iI][lLfFdD]?)|([lLfFdD][iI]))
     98                                // GCC: D (double), DL (long double) and iI (imaginary) suffixes
     99floating_suffix "_"?([fFdDlL][iI]?|"DL"|[iI][lLfFdD]?)
     100                                //floating_suffix "_"?([fFdD]|[lL]|[D][L])|([iI][lLfFdD])|([lLfFdD][iI]))
    99101floating_constant (({fractional_constant}{exponent}?)|({decimal_digits}{exponent})){floating_suffix}?
    100102
  • src/Parser/parser.cc

    ra752883 r984dce6  
    7777#include <cstdio>
    7878#include <stack>
     79#include "lex.h"
     80#include "parser.h"
     81#include "ParseNode.h"
    7982#include "TypedefTable.h"
    80 #include "lex.h"
    81 #include "ParseNode.h"
    8283#include "TypeData.h"
    8384#include "LinkageSpec.h"
     
    9091
    9192/* Line 268 of yacc.c  */
    92 #line 93 "Parser/parser.cc"
     93#line 94 "Parser/parser.cc"
    9394
    9495/* Enabling traces.  */
     
    341342
    342343/* Line 293 of yacc.c  */
    343 #line 111 "parser.yy"
     344#line 112 "parser.yy"
    344345
    345346        Token tok;
     
    358359
    359360/* Line 293 of yacc.c  */
    360 #line 361 "Parser/parser.cc"
     361#line 362 "Parser/parser.cc"
    361362} YYSTYPE;
    362363# define YYSTYPE_IS_TRIVIAL 1
     
    370371
    371372/* Line 343 of yacc.c  */
    372 #line 373 "Parser/parser.cc"
     373#line 374 "Parser/parser.cc"
    373374
    374375#ifdef short
     
    10151016static const yytype_uint16 yyrline[] =
    10161017{
    1017        0,   291,   291,   297,   306,   307,   308,   312,   313,   314,
    1018      318,   319,   323,   324,   328,   329,   333,   334,   340,   342,
    1019      344,   346,   351,   352,   358,   362,   364,   365,   367,   368,
    1020      370,   372,   374,   382,   383,   389,   390,   391,   396,   398,
    1021      403,   404,   408,   412,   414,   416,   418,   423,   426,   428,
    1022      430,   432,   434,   436,   438,   440,   446,   448,   450,   452,
    1023      454,   456,   458,   460,   462,   467,   468,   469,   470,   474,
    1024      475,   477,   482,   483,   485,   487,   492,   493,   495,   500,
    1025      501,   503,   508,   509,   511,   513,   515,   520,   521,   523,
    1026      528,   529,   534,   535,   540,   541,   546,   547,   552,   553,
    1027      558,   559,   561,   563,   568,   573,   574,   576,   578,   584,
    1028      585,   591,   593,   595,   597,   602,   603,   608,   609,   610,
    1029      611,   612,   613,   614,   615,   616,   617,   621,   622,   628,
    1030      629,   635,   636,   637,   638,   639,   640,   641,   642,   643,
    1031      652,   659,   661,   671,   672,   677,   679,   681,   683,   687,
    1032      688,   693,   698,   701,   703,   705,   710,   712,   720,   721,
    1033      723,   727,   728,   733,   734,   739,   740,   744,   749,   750,
    1034      754,   756,   762,   763,   767,   769,   771,   773,   779,   780,
    1035      784,   785,   789,   791,   793,   798,   800,   805,   807,   811,
    1036      814,   818,   821,   825,   827,   831,   833,   840,   842,   844,
    1037      853,   855,   857,   859,   861,   866,   868,   870,   872,   877,
    1038      890,   891,   896,   898,   903,   907,   909,   911,   913,   915,
    1039      921,   922,   928,   929,   933,   934,   939,   941,   947,   948,
    1040      950,   955,   957,   964,   966,   970,   971,   976,   978,   982,
    1041      983,   987,   989,   993,   994,   998,   999,  1003,  1004,  1019,
    1042     1020,  1021,  1022,  1023,  1027,  1032,  1039,  1049,  1054,  1059,
    1043     1067,  1072,  1077,  1082,  1087,  1095,  1117,  1122,  1129,  1131,
    1044     1138,  1143,  1148,  1159,  1164,  1169,  1174,  1179,  1188,  1193,
    1045     1201,  1202,  1203,  1204,  1210,  1215,  1223,  1224,  1225,  1226,
    1046     1230,  1231,  1232,  1233,  1238,  1239,  1248,  1249,  1254,  1255,
    1047     1260,  1262,  1264,  1266,  1268,  1271,  1270,  1282,  1283,  1285,
    1048     1295,  1296,  1301,  1305,  1307,  1309,  1311,  1313,  1315,  1317,
    1049     1319,  1324,  1326,  1328,  1330,  1332,  1334,  1336,  1338,  1340,
    1050     1342,  1344,  1346,  1348,  1354,  1355,  1357,  1359,  1361,  1366,
    1051     1367,  1373,  1374,  1376,  1378,  1383,  1385,  1387,  1389,  1394,
    1052     1395,  1397,  1399,  1404,  1405,  1407,  1412,  1413,  1415,  1417,
    1053     1422,  1424,  1426,  1431,  1432,  1436,  1438,  1440,  1442,  1444,
    1054     1449,  1451,  1456,  1458,  1463,  1464,  1466,  1467,  1472,  1473,
    1055     1475,  1477,  1482,  1484,  1490,  1491,  1493,  1496,  1499,  1504,
    1056     1505,  1510,  1515,  1519,  1521,  1523,  1528,  1530,  1536,  1537,
    1057     1545,  1546,  1550,  1551,  1552,  1554,  1556,  1563,  1564,  1566,
    1058     1568,  1573,  1574,  1580,  1581,  1585,  1586,  1591,  1592,  1593,
    1059     1595,  1603,  1604,  1606,  1609,  1611,  1615,  1616,  1617,  1619,
    1060     1621,  1625,  1630,  1638,  1639,  1648,  1650,  1655,  1656,  1657,
    1061     1661,  1662,  1663,  1667,  1668,  1669,  1673,  1674,  1675,  1680,
    1062     1681,  1682,  1683,  1689,  1690,  1692,  1697,  1698,  1703,  1704,
    1063     1705,  1706,  1707,  1722,  1723,  1728,  1729,  1737,  1739,  1741,
    1064     1744,  1746,  1748,  1771,  1772,  1774,  1776,  1781,  1782,  1784,
    1065     1789,  1794,  1795,  1801,  1800,  1804,  1808,  1810,  1812,  1818,
    1066     1819,  1824,  1829,  1831,  1836,  1838,  1839,  1841,  1846,  1848,
    1067     1850,  1855,  1857,  1862,  1867,  1875,  1881,  1880,  1894,  1895,
    1068     1900,  1901,  1905,  1910,  1915,  1923,  1928,  1939,  1940,  1951,
    1069     1952,  1958,  1959,  1963,  1964,  1965,  1968,  1967,  1978,  1983,
    1070     1988,  1994,  2003,  2009,  2015,  2021,  2027,  2035,  2041,  2049,
    1071     2055,  2064,  2065,  2066,  2070,  2074,  2076,  2081,  2082,  2086,
    1072     2087,  2092,  2098,  2099,  2102,  2104,  2105,  2109,  2110,  2111,
    1073     2112,  2146,  2148,  2149,  2151,  2156,  2161,  2166,  2168,  2170,
    1074     2175,  2177,  2179,  2181,  2186,  2188,  2198,  2200,  2201,  2206,
    1075     2208,  2210,  2215,  2217,  2219,  2224,  2226,  2228,  2237,  2238,
    1076     2239,  2243,  2245,  2247,  2252,  2254,  2256,  2261,  2263,  2265,
    1077     2280,  2282,  2283,  2285,  2290,  2291,  2296,  2298,  2300,  2305,
    1078     2307,  2309,  2311,  2316,  2318,  2320,  2330,  2332,  2333,  2335,
    1079     2340,  2342,  2344,  2349,  2351,  2353,  2355,  2360,  2362,  2364,
    1080     2395,  2397,  2398,  2400,  2405,  2410,  2418,  2420,  2422,  2427,
    1081     2429,  2434,  2436,  2450,  2451,  2453,  2458,  2460,  2462,  2464,
    1082     2466,  2471,  2472,  2474,  2476,  2481,  2483,  2485,  2491,  2493,
    1083     2495,  2499,  2501,  2503,  2505,  2519,  2520,  2522,  2527,  2529,
    1084     2531,  2533,  2535,  2540,  2541,  2543,  2545,  2550,  2552,  2554,
    1085     2560,  2561,  2563,  2572,  2575,  2577,  2580,  2582,  2584,  2597,
    1086     2598,  2600,  2605,  2607,  2609,  2611,  2613,  2618,  2619,  2621,
    1087     2623,  2628,  2630,  2638,  2639,  2640,  2645,  2646,  2650,  2652,
    1088     2654,  2656,  2658,  2660,  2667,  2669,  2671,  2673,  2675,  2677,
    1089     2679,  2681,  2683,  2685,  2690,  2692,  2694,  2699,  2725,  2726,
    1090     2728,  2732,  2733,  2737,  2739,  2741,  2743,  2745,  2747,  2754,
    1091     2756,  2758,  2760,  2762,  2764,  2769,  2774,  2776,  2778,  2796,
    1092     2798,  2803,  2804
     1018       0,   292,   292,   298,   307,   308,   309,   313,   314,   315,
     1019     319,   320,   324,   325,   329,   330,   334,   335,   341,   343,
     1020     345,   347,   352,   353,   359,   363,   365,   366,   368,   369,
     1021     371,   373,   375,   383,   384,   390,   391,   392,   397,   399,
     1022     404,   405,   409,   413,   415,   417,   419,   424,   427,   429,
     1023     431,   433,   435,   437,   439,   441,   447,   449,   451,   453,
     1024     455,   457,   459,   461,   463,   468,   469,   470,   471,   475,
     1025     476,   478,   483,   484,   486,   488,   493,   494,   496,   501,
     1026     502,   504,   509,   510,   512,   514,   516,   521,   522,   524,
     1027     529,   530,   535,   536,   541,   542,   547,   548,   553,   554,
     1028     559,   560,   562,   564,   569,   574,   575,   577,   579,   585,
     1029     586,   592,   594,   596,   598,   603,   604,   609,   610,   611,
     1030     612,   613,   614,   615,   616,   617,   618,   622,   623,   629,
     1031     630,   636,   637,   638,   639,   640,   641,   642,   643,   644,
     1032     653,   660,   662,   672,   673,   678,   680,   682,   684,   688,
     1033     689,   694,   699,   702,   704,   706,   711,   713,   721,   722,
     1034     724,   728,   729,   734,   735,   740,   741,   745,   750,   751,
     1035     755,   757,   763,   764,   768,   770,   772,   774,   780,   781,
     1036     785,   786,   790,   792,   794,   799,   801,   806,   808,   812,
     1037     815,   819,   822,   826,   828,   832,   834,   841,   843,   845,
     1038     854,   856,   858,   860,   862,   867,   869,   871,   873,   878,
     1039     891,   892,   897,   899,   904,   908,   910,   912,   914,   916,
     1040     922,   923,   929,   930,   934,   935,   940,   942,   948,   949,
     1041     951,   956,   958,   965,   967,   971,   972,   977,   979,   983,
     1042     984,   988,   990,   994,   995,   999,  1000,  1004,  1005,  1020,
     1043    1021,  1022,  1023,  1024,  1028,  1033,  1040,  1050,  1055,  1060,
     1044    1068,  1073,  1078,  1083,  1088,  1096,  1118,  1123,  1130,  1132,
     1045    1139,  1144,  1149,  1160,  1165,  1170,  1175,  1180,  1189,  1194,
     1046    1202,  1203,  1204,  1205,  1211,  1216,  1224,  1225,  1226,  1227,
     1047    1231,  1232,  1233,  1234,  1239,  1240,  1249,  1250,  1255,  1256,
     1048    1261,  1263,  1265,  1267,  1269,  1272,  1271,  1283,  1284,  1286,
     1049    1296,  1297,  1302,  1306,  1308,  1310,  1312,  1314,  1316,  1318,
     1050    1320,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,  1341,
     1051    1343,  1345,  1347,  1349,  1355,  1356,  1358,  1360,  1362,  1367,
     1052    1368,  1374,  1375,  1377,  1379,  1384,  1386,  1388,  1390,  1395,
     1053    1396,  1398,  1400,  1405,  1406,  1408,  1413,  1414,  1416,  1418,
     1054    1423,  1425,  1427,  1432,  1433,  1437,  1439,  1441,  1443,  1445,
     1055    1450,  1452,  1457,  1459,  1464,  1465,  1467,  1468,  1473,  1474,
     1056    1476,  1478,  1483,  1485,  1491,  1492,  1494,  1497,  1500,  1505,
     1057    1506,  1511,  1516,  1520,  1522,  1524,  1529,  1531,  1537,  1538,
     1058    1546,  1547,  1551,  1552,  1553,  1555,  1557,  1564,  1565,  1567,
     1059    1569,  1574,  1575,  1581,  1582,  1586,  1587,  1592,  1593,  1594,
     1060    1596,  1604,  1605,  1607,  1610,  1612,  1616,  1617,  1618,  1620,
     1061    1622,  1626,  1631,  1639,  1640,  1649,  1651,  1656,  1657,  1658,
     1062    1662,  1663,  1664,  1668,  1669,  1670,  1674,  1675,  1676,  1681,
     1063    1682,  1683,  1684,  1690,  1691,  1693,  1698,  1699,  1704,  1705,
     1064    1706,  1707,  1708,  1723,  1724,  1729,  1730,  1738,  1740,  1742,
     1065    1745,  1747,  1749,  1772,  1773,  1775,  1777,  1782,  1783,  1785,
     1066    1790,  1795,  1796,  1802,  1801,  1805,  1809,  1811,  1813,  1819,
     1067    1820,  1825,  1830,  1832,  1837,  1839,  1840,  1842,  1847,  1849,
     1068    1851,  1856,  1858,  1863,  1868,  1876,  1882,  1881,  1895,  1896,
     1069    1901,  1902,  1906,  1911,  1916,  1924,  1929,  1940,  1941,  1952,
     1070    1953,  1959,  1960,  1964,  1965,  1966,  1969,  1968,  1979,  1984,
     1071    1989,  1995,  2004,  2010,  2016,  2022,  2028,  2036,  2042,  2050,
     1072    2056,  2065,  2066,  2067,  2071,  2075,  2077,  2082,  2083,  2087,
     1073    2088,  2093,  2099,  2100,  2103,  2105,  2106,  2110,  2111,  2112,
     1074    2113,  2147,  2149,  2150,  2152,  2157,  2162,  2167,  2169,  2171,
     1075    2176,  2178,  2180,  2182,  2187,  2189,  2199,  2201,  2202,  2207,
     1076    2209,  2211,  2216,  2218,  2220,  2225,  2227,  2229,  2238,  2239,
     1077    2240,  2244,  2246,  2248,  2253,  2255,  2257,  2262,  2264,  2266,
     1078    2281,  2283,  2284,  2286,  2291,  2292,  2297,  2299,  2301,  2306,
     1079    2308,  2310,  2312,  2317,  2319,  2321,  2331,  2333,  2334,  2336,
     1080    2341,  2343,  2345,  2350,  2352,  2354,  2356,  2361,  2363,  2365,
     1081    2396,  2398,  2399,  2401,  2406,  2411,  2419,  2421,  2423,  2428,
     1082    2430,  2435,  2437,  2451,  2452,  2454,  2459,  2461,  2463,  2465,
     1083    2467,  2472,  2473,  2475,  2477,  2482,  2484,  2486,  2492,  2494,
     1084    2496,  2500,  2502,  2504,  2506,  2520,  2521,  2523,  2528,  2530,
     1085    2532,  2534,  2536,  2541,  2542,  2544,  2546,  2551,  2553,  2555,
     1086    2561,  2562,  2564,  2573,  2576,  2578,  2581,  2583,  2585,  2598,
     1087    2599,  2601,  2606,  2608,  2610,  2612,  2614,  2619,  2620,  2622,
     1088    2624,  2629,  2631,  2639,  2640,  2641,  2646,  2647,  2651,  2653,
     1089    2655,  2657,  2659,  2661,  2668,  2670,  2672,  2674,  2676,  2678,
     1090    2680,  2682,  2684,  2686,  2691,  2693,  2695,  2700,  2726,  2727,
     1091    2729,  2733,  2734,  2738,  2740,  2742,  2744,  2746,  2748,  2755,
     1092    2757,  2759,  2761,  2763,  2765,  2770,  2775,  2777,  2779,  2797,
     1093    2799,  2804,  2805
    10931094};
    10941095#endif
     
    50555056
    50565057/* Line 1806 of yacc.c  */
    5057 #line 291 "parser.yy"
     5058#line 292 "parser.yy"
    50585059    {
    50595060                        typedefTable.enterScope();
     
    50645065
    50655066/* Line 1806 of yacc.c  */
    5066 #line 297 "parser.yy"
     5067#line 298 "parser.yy"
    50675068    {
    50685069                        typedefTable.leaveScope();
     
    50735074
    50745075/* Line 1806 of yacc.c  */
    5075 #line 306 "parser.yy"
     5076#line 307 "parser.yy"
    50765077    { (yyval.constant) = new ConstantNode( ConstantNode::Integer, (yyvsp[(1) - (1)].tok) ); }
    50775078    break;
     
    50805081
    50815082/* Line 1806 of yacc.c  */
    5082 #line 307 "parser.yy"
     5083#line 308 "parser.yy"
    50835084    { (yyval.constant) = new ConstantNode( ConstantNode::Float, (yyvsp[(1) - (1)].tok) ); }
    50845085    break;
     
    50875088
    50885089/* Line 1806 of yacc.c  */
    5089 #line 308 "parser.yy"
     5090#line 309 "parser.yy"
    50905091    { (yyval.constant) = new ConstantNode( ConstantNode::Character, (yyvsp[(1) - (1)].tok) ); }
    50915092    break;
     
    50945095
    50955096/* Line 1806 of yacc.c  */
    5096 #line 333 "parser.yy"
     5097#line 334 "parser.yy"
    50975098    { (yyval.constant) = new ConstantNode( ConstantNode::String, (yyvsp[(1) - (1)].tok) ); }
    50985099    break;
     
    51015102
    51025103/* Line 1806 of yacc.c  */
    5103 #line 334 "parser.yy"
     5104#line 335 "parser.yy"
    51045105    { (yyval.constant) = (yyvsp[(1) - (2)].constant)->appendstr( (yyvsp[(2) - (2)].tok) ); }
    51055106    break;
     
    51085109
    51095110/* Line 1806 of yacc.c  */
    5110 #line 341 "parser.yy"
     5111#line 342 "parser.yy"
    51115112    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    51125113    break;
     
    51155116
    51165117/* Line 1806 of yacc.c  */
    5117 #line 343 "parser.yy"
     5118#line 344 "parser.yy"
    51185119    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    51195120    break;
     
    51225123
    51235124/* Line 1806 of yacc.c  */
    5124 #line 345 "parser.yy"
     5125#line 346 "parser.yy"
    51255126    { (yyval.en) = (yyvsp[(2) - (3)].en); }
    51265127    break;
     
    51295130
    51305131/* Line 1806 of yacc.c  */
    5131 #line 347 "parser.yy"
     5132#line 348 "parser.yy"
    51325133    { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); }
    51335134    break;
     
    51365137
    51375138/* Line 1806 of yacc.c  */
    5138 #line 357 "parser.yy"
     5139#line 358 "parser.yy"
    51395140    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); }
    51405141    break;
     
    51435144
    51445145/* Line 1806 of yacc.c  */
    5145 #line 359 "parser.yy"
     5146#line 360 "parser.yy"
    51465147    { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ); }
    51475148    break;
     
    51505151
    51515152/* Line 1806 of yacc.c  */
    5152 #line 363 "parser.yy"
     5153#line 364 "parser.yy"
    51535154    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
    51545155    break;
     
    51575158
    51585159/* Line 1806 of yacc.c  */
    5159 #line 366 "parser.yy"
     5160#line 367 "parser.yy"
    51605161    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
    51615162    break;
     
    51645165
    51655166/* Line 1806 of yacc.c  */
    5166 #line 369 "parser.yy"
     5167#line 370 "parser.yy"
    51675168    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); }
    51685169    break;
     
    51715172
    51725173/* Line 1806 of yacc.c  */
    5173 #line 371 "parser.yy"
     5174#line 372 "parser.yy"
    51745175    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); }
    51755176    break;
     
    51785179
    51795180/* Line 1806 of yacc.c  */
    5180 #line 373 "parser.yy"
     5181#line 374 "parser.yy"
    51815182    { (yyval.en) = 0; }
    51825183    break;
     
    51855186
    51865187/* Line 1806 of yacc.c  */
    5187 #line 375 "parser.yy"
     5188#line 376 "parser.yy"
    51885189    {
    51895190                        Token fn; fn.str = new std::string( "?{}" ); // location undefined
     
    51955196
    51965197/* Line 1806 of yacc.c  */
    5197 #line 384 "parser.yy"
     5198#line 385 "parser.yy"
    51985199    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    51995200    break;
     
    52025203
    52035204/* Line 1806 of yacc.c  */
    5204 #line 389 "parser.yy"
     5205#line 390 "parser.yy"
    52055206    { (yyval.en) = 0; }
    52065207    break;
     
    52095210
    52105211/* Line 1806 of yacc.c  */
    5211 #line 392 "parser.yy"
     5212#line 393 "parser.yy"
    52125213    { (yyval.en) = (yyvsp[(3) - (3)].en)->set_argName( (yyvsp[(1) - (3)].tok) ); }
    52135214    break;
     
    52165217
    52175218/* Line 1806 of yacc.c  */
    5218 #line 397 "parser.yy"
     5219#line 398 "parser.yy"
    52195220    { (yyval.en) = (yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); }
    52205221    break;
     
    52235224
    52245225/* Line 1806 of yacc.c  */
    5225 #line 399 "parser.yy"
     5226#line 400 "parser.yy"
    52265227    { (yyval.en) = (yyvsp[(9) - (9)].en)->set_argName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( flattenCommas( (yyvsp[(5) - (9)].en) )))); }
    52275228    break;
     
    52305231
    52315232/* Line 1806 of yacc.c  */
    5232 #line 404 "parser.yy"
     5233#line 405 "parser.yy"
    52335234    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    52345235    break;
     
    52375238
    52385239/* Line 1806 of yacc.c  */
    5239 #line 409 "parser.yy"
     5240#line 410 "parser.yy"
    52405241    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    52415242    break;
     
    52445245
    52455246/* Line 1806 of yacc.c  */
    5246 #line 413 "parser.yy"
     5247#line 414 "parser.yy"
    52475248    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
    52485249    break;
     
    52515252
    52525253/* Line 1806 of yacc.c  */
    5253 #line 415 "parser.yy"
     5254#line 416 "parser.yy"
    52545255    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
    52555256    break;
     
    52585259
    52595260/* Line 1806 of yacc.c  */
    5260 #line 417 "parser.yy"
     5261#line 418 "parser.yy"
    52615262    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
    52625263    break;
     
    52655266
    52665267/* Line 1806 of yacc.c  */
    5267 #line 419 "parser.yy"
     5268#line 420 "parser.yy"
    52685269    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
    52695270    break;
     
    52725273
    52735274/* Line 1806 of yacc.c  */
    5274 #line 427 "parser.yy"
     5275#line 428 "parser.yy"
    52755276    { (yyval.en) = (yyvsp[(1) - (1)].constant); }
    52765277    break;
     
    52795280
    52805281/* Line 1806 of yacc.c  */
    5281 #line 429 "parser.yy"
     5282#line 430 "parser.yy"
    52825283    { (yyval.en) = (yyvsp[(1) - (1)].constant); }
    52835284    break;
     
    52865287
    52875288/* Line 1806 of yacc.c  */
    5288 #line 431 "parser.yy"
     5289#line 432 "parser.yy"
    52895290    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); }
    52905291    break;
     
    52935294
    52945295/* Line 1806 of yacc.c  */
    5295 #line 433 "parser.yy"
     5296#line 434 "parser.yy"
    52965297    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); }
    52975298    break;
     
    53005301
    53015302/* Line 1806 of yacc.c  */
    5302 #line 435 "parser.yy"
     5303#line 436 "parser.yy"
    53035304    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    53045305    break;
     
    53075308
    53085309/* Line 1806 of yacc.c  */
    5309 #line 437 "parser.yy"
     5310#line 438 "parser.yy"
    53105311    { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
    53115312    break;
     
    53145315
    53155316/* Line 1806 of yacc.c  */
    5316 #line 439 "parser.yy"
     5317#line 440 "parser.yy"
    53175318    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neg ), (yyvsp[(2) - (2)].en) ); }
    53185319    break;
     
    53215322
    53225323/* Line 1806 of yacc.c  */
    5323 #line 441 "parser.yy"
     5324#line 442 "parser.yy"
    53245325    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PointTo ), (yyvsp[(2) - (2)].en) ); }
    53255326    break;
     
    53285329
    53295330/* Line 1806 of yacc.c  */
    5330 #line 447 "parser.yy"
     5331#line 448 "parser.yy"
    53315332    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); }
    53325333    break;
     
    53355336
    53365337/* Line 1806 of yacc.c  */
    5337 #line 449 "parser.yy"
     5338#line 450 "parser.yy"
    53385339    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    53395340    break;
     
    53425343
    53435344/* Line 1806 of yacc.c  */
    5344 #line 451 "parser.yy"
     5345#line 452 "parser.yy"
    53455346    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::OffsetOf ), new TypeValueNode( (yyvsp[(3) - (6)].decl) ), new VarRefNode( (yyvsp[(5) - (6)].tok) )); }
    53465347    break;
     
    53495350
    53505351/* Line 1806 of yacc.c  */
    5351 #line 453 "parser.yy"
     5352#line 454 "parser.yy"
    53525353    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); }
    53535354    break;
     
    53565357
    53575358/* Line 1806 of yacc.c  */
    5358 #line 455 "parser.yy"
     5359#line 456 "parser.yy"
    53595360    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    53605361    break;
     
    53635364
    53645365/* Line 1806 of yacc.c  */
    5365 #line 457 "parser.yy"
     5366#line 458 "parser.yy"
    53665367    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); }
    53675368    break;
     
    53705371
    53715372/* Line 1806 of yacc.c  */
    5372 #line 459 "parser.yy"
     5373#line 460 "parser.yy"
    53735374    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); }
    53745375    break;
     
    53775378
    53785379/* Line 1806 of yacc.c  */
    5379 #line 461 "parser.yy"
     5380#line 462 "parser.yy"
    53805381    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ); }
    53815382    break;
     
    53845385
    53855386/* Line 1806 of yacc.c  */
    5386 #line 463 "parser.yy"
     5387#line 464 "parser.yy"
    53875388    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( (yyvsp[(2) - (2)].tok), true ) ); }
    53885389    break;
     
    53915392
    53925393/* Line 1806 of yacc.c  */
    5393 #line 467 "parser.yy"
     5394#line 468 "parser.yy"
    53945395    { (yyval.en) = new OperatorNode( OperatorNode::AddressOf ); }
    53955396    break;
     
    53985399
    53995400/* Line 1806 of yacc.c  */
    5400 #line 468 "parser.yy"
     5401#line 469 "parser.yy"
    54015402    { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); }
    54025403    break;
     
    54055406
    54065407/* Line 1806 of yacc.c  */
    5407 #line 469 "parser.yy"
     5408#line 470 "parser.yy"
    54085409    { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }
    54095410    break;
     
    54125413
    54135414/* Line 1806 of yacc.c  */
    5414 #line 470 "parser.yy"
     5415#line 471 "parser.yy"
    54155416    { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); }
    54165417    break;
     
    54195420
    54205421/* Line 1806 of yacc.c  */
    5421 #line 476 "parser.yy"
     5422#line 477 "parser.yy"
    54225423    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
    54235424    break;
     
    54265427
    54275428/* Line 1806 of yacc.c  */
    5428 #line 478 "parser.yy"
     5429#line 479 "parser.yy"
    54295430    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
    54305431    break;
     
    54335434
    54345435/* Line 1806 of yacc.c  */
    5435 #line 484 "parser.yy"
     5436#line 485 "parser.yy"
    54365437    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54375438    break;
     
    54405441
    54415442/* Line 1806 of yacc.c  */
    5442 #line 486 "parser.yy"
     5443#line 487 "parser.yy"
    54435444    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54445445    break;
     
    54475448
    54485449/* Line 1806 of yacc.c  */
    5449 #line 488 "parser.yy"
     5450#line 489 "parser.yy"
    54505451    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mod ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54515452    break;
     
    54545455
    54555456/* Line 1806 of yacc.c  */
    5456 #line 494 "parser.yy"
     5457#line 495 "parser.yy"
    54575458    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54585459    break;
     
    54615462
    54625463/* Line 1806 of yacc.c  */
    5463 #line 496 "parser.yy"
     5464#line 497 "parser.yy"
    54645465    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Minus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54655466    break;
     
    54685469
    54695470/* Line 1806 of yacc.c  */
    5470 #line 502 "parser.yy"
     5471#line 503 "parser.yy"
    54715472    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54725473    break;
     
    54755476
    54765477/* Line 1806 of yacc.c  */
    5477 #line 504 "parser.yy"
     5478#line 505 "parser.yy"
    54785479    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::RShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54795480    break;
     
    54825483
    54835484/* Line 1806 of yacc.c  */
    5484 #line 510 "parser.yy"
     5485#line 511 "parser.yy"
    54855486    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54865487    break;
     
    54895490
    54905491/* Line 1806 of yacc.c  */
    5491 #line 512 "parser.yy"
     5492#line 513 "parser.yy"
    54925493    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54935494    break;
     
    54965497
    54975498/* Line 1806 of yacc.c  */
    5498 #line 514 "parser.yy"
     5499#line 515 "parser.yy"
    54995500    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55005501    break;
     
    55035504
    55045505/* Line 1806 of yacc.c  */
    5505 #line 516 "parser.yy"
     5506#line 517 "parser.yy"
    55065507    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55075508    break;
     
    55105511
    55115512/* Line 1806 of yacc.c  */
    5512 #line 522 "parser.yy"
     5513#line 523 "parser.yy"
    55135514    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55145515    break;
     
    55175518
    55185519/* Line 1806 of yacc.c  */
    5519 #line 524 "parser.yy"
     5520#line 525 "parser.yy"
    55205521    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55215522    break;
     
    55245525
    55255526/* Line 1806 of yacc.c  */
    5526 #line 530 "parser.yy"
     5527#line 531 "parser.yy"
    55275528    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55285529    break;
     
    55315532
    55325533/* Line 1806 of yacc.c  */
    5533 #line 536 "parser.yy"
     5534#line 537 "parser.yy"
    55345535    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Xor ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55355536    break;
     
    55385539
    55395540/* Line 1806 of yacc.c  */
    5540 #line 542 "parser.yy"
     5541#line 543 "parser.yy"
    55415542    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::BitOr ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55425543    break;
     
    55455546
    55465547/* Line 1806 of yacc.c  */
    5547 #line 548 "parser.yy"
     5548#line 549 "parser.yy"
    55485549    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::And ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55495550    break;
     
    55525553
    55535554/* Line 1806 of yacc.c  */
    5554 #line 554 "parser.yy"
     5555#line 555 "parser.yy"
    55555556    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Or ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55565557    break;
     
    55595560
    55605561/* Line 1806 of yacc.c  */
    5561 #line 560 "parser.yy"
     5562#line 561 "parser.yy"
    55625563    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
    55635564    break;
     
    55665567
    55675568/* Line 1806 of yacc.c  */
    5568 #line 562 "parser.yy"
     5569#line 563 "parser.yy"
    55695570    { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    55705571    break;
     
    55735574
    55745575/* Line 1806 of yacc.c  */
    5575 #line 564 "parser.yy"
     5576#line 565 "parser.yy"
    55765577    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
    55775578    break;
     
    55805581
    55815582/* Line 1806 of yacc.c  */
    5582 #line 575 "parser.yy"
     5583#line 576 "parser.yy"
    55835584    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55845585    break;
     
    55875588
    55885589/* Line 1806 of yacc.c  */
    5589 #line 577 "parser.yy"
     5590#line 578 "parser.yy"
    55905591    { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55915592    break;
     
    55945595
    55955596/* Line 1806 of yacc.c  */
    5596 #line 579 "parser.yy"
     5597#line 580 "parser.yy"
    55975598    { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
    55985599    break;
     
    56015602
    56025603/* Line 1806 of yacc.c  */
    5603 #line 584 "parser.yy"
     5604#line 585 "parser.yy"
    56045605    { (yyval.en) = new NullExprNode; }
    56055606    break;
     
    56085609
    56095610/* Line 1806 of yacc.c  */
    5610 #line 592 "parser.yy"
     5611#line 593 "parser.yy"
    56115612    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }
    56125613    break;
     
    56155616
    56165617/* Line 1806 of yacc.c  */
    5617 #line 594 "parser.yy"
     5618#line 595 "parser.yy"
    56185619    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }
    56195620    break;
     
    56225623
    56235624/* Line 1806 of yacc.c  */
    5624 #line 596 "parser.yy"
     5625#line 597 "parser.yy"
    56255626    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }
    56265627    break;
     
    56295630
    56305631/* Line 1806 of yacc.c  */
    5631 #line 598 "parser.yy"
     5632#line 599 "parser.yy"
    56325633    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); }
    56335634    break;
     
    56365637
    56375638/* Line 1806 of yacc.c  */
    5638 #line 604 "parser.yy"
     5639#line 605 "parser.yy"
    56395640    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    56405641    break;
     
    56435644
    56445645/* Line 1806 of yacc.c  */
    5645 #line 608 "parser.yy"
     5646#line 609 "parser.yy"
    56465647    { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); }
    56475648    break;
     
    56505651
    56515652/* Line 1806 of yacc.c  */
    5652 #line 609 "parser.yy"
     5653#line 610 "parser.yy"
    56535654    { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); }
    56545655    break;
     
    56575658
    56585659/* Line 1806 of yacc.c  */
    5659 #line 610 "parser.yy"
     5660#line 611 "parser.yy"
    56605661    { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); }
    56615662    break;
     
    56645665
    56655666/* Line 1806 of yacc.c  */
    5666 #line 611 "parser.yy"
     5667#line 612 "parser.yy"
    56675668    { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); }
    56685669    break;
     
    56715672
    56725673/* Line 1806 of yacc.c  */
    5673 #line 612 "parser.yy"
     5674#line 613 "parser.yy"
    56745675    { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); }
    56755676    break;
     
    56785679
    56795680/* Line 1806 of yacc.c  */
    5680 #line 613 "parser.yy"
     5681#line 614 "parser.yy"
    56815682    { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); }
    56825683    break;
     
    56855686
    56865687/* Line 1806 of yacc.c  */
    5687 #line 614 "parser.yy"
     5688#line 615 "parser.yy"
    56885689    { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); }
    56895690    break;
     
    56925693
    56935694/* Line 1806 of yacc.c  */
    5694 #line 615 "parser.yy"
     5695#line 616 "parser.yy"
    56955696    { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); }
    56965697    break;
     
    56995700
    57005701/* Line 1806 of yacc.c  */
    5701 #line 616 "parser.yy"
     5702#line 617 "parser.yy"
    57025703    { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); }
    57035704    break;
     
    57065707
    57075708/* Line 1806 of yacc.c  */
    5708 #line 617 "parser.yy"
     5709#line 618 "parser.yy"
    57095710    { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); }
    57105711    break;
     
    57135714
    57145715/* Line 1806 of yacc.c  */
    5715 #line 623 "parser.yy"
     5716#line 624 "parser.yy"
    57165717    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    57175718    break;
     
    57205721
    57215722/* Line 1806 of yacc.c  */
    5722 #line 628 "parser.yy"
     5723#line 629 "parser.yy"
    57235724    { (yyval.en) = 0; }
    57245725    break;
     
    57275728
    57285729/* Line 1806 of yacc.c  */
    5729 #line 637 "parser.yy"
     5730#line 638 "parser.yy"
    57305731    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    57315732    break;
     
    57345735
    57355736/* Line 1806 of yacc.c  */
    5736 #line 644 "parser.yy"
     5737#line 645 "parser.yy"
    57375738    {
    57385739                        Token fn; fn.str = new std::string( "^?{}" ); // location undefined
     
    57455746
    57465747/* Line 1806 of yacc.c  */
    5747 #line 653 "parser.yy"
     5748#line 654 "parser.yy"
    57485749    {
    57495750                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    57545755
    57555756/* Line 1806 of yacc.c  */
    5756 #line 660 "parser.yy"
     5757#line 661 "parser.yy"
    57575758    { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); }
    57585759    break;
     
    57615762
    57625763/* Line 1806 of yacc.c  */
    5763 #line 667 "parser.yy"
     5764#line 668 "parser.yy"
    57645765    { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); }
    57655766    break;
     
    57685769
    57695770/* Line 1806 of yacc.c  */
    5770 #line 673 "parser.yy"
     5771#line 674 "parser.yy"
    57715772    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    57725773    break;
     
    57755776
    57765777/* Line 1806 of yacc.c  */
    5777 #line 678 "parser.yy"
     5778#line 679 "parser.yy"
    57785779    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57795780    break;
     
    57825783
    57835784/* Line 1806 of yacc.c  */
    5784 #line 680 "parser.yy"
     5785#line 681 "parser.yy"
    57855786    { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); }
    57865787    break;
     
    57895790
    57905791/* Line 1806 of yacc.c  */
    5791 #line 682 "parser.yy"
     5792#line 683 "parser.yy"
    57925793    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57935794    break;
     
    57965797
    57975798/* Line 1806 of yacc.c  */
    5798 #line 689 "parser.yy"
     5799#line 690 "parser.yy"
    57995800    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    58005801    break;
     
    58035804
    58045805/* Line 1806 of yacc.c  */
    5805 #line 694 "parser.yy"
     5806#line 695 "parser.yy"
    58065807    { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); }
    58075808    break;
     
    58105811
    58115812/* Line 1806 of yacc.c  */
    5812 #line 700 "parser.yy"
     5813#line 701 "parser.yy"
    58135814    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    58145815    break;
     
    58175818
    58185819/* Line 1806 of yacc.c  */
    5819 #line 702 "parser.yy"
     5820#line 703 "parser.yy"
    58205821    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); }
    58215822    break;
     
    58245825
    58255826/* Line 1806 of yacc.c  */
    5826 #line 704 "parser.yy"
     5827#line 705 "parser.yy"
    58275828    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    58285829    break;
     
    58315832
    58325833/* Line 1806 of yacc.c  */
    5833 #line 706 "parser.yy"
     5834#line 707 "parser.yy"
    58345835    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); /* xxx */ }
    58355836    break;
     
    58385839
    58395840/* Line 1806 of yacc.c  */
    5840 #line 711 "parser.yy"
     5841#line 712 "parser.yy"
    58415842    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    58425843    break;
     
    58455846
    58465847/* Line 1806 of yacc.c  */
    5847 #line 713 "parser.yy"
     5848#line 714 "parser.yy"
    58485849    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); }
    58495850    break;
     
    58525853
    58535854/* Line 1806 of yacc.c  */
    5854 #line 720 "parser.yy"
     5855#line 721 "parser.yy"
    58555856    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    58565857    break;
     
    58595860
    58605861/* Line 1806 of yacc.c  */
    5861 #line 722 "parser.yy"
     5862#line 723 "parser.yy"
    58625863    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    58635864    break;
     
    58665867
    58675868/* Line 1806 of yacc.c  */
    5868 #line 729 "parser.yy"
     5869#line 730 "parser.yy"
    58695870    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( (yyvsp[(1) - (3)].en) ))->set_link( (yyvsp[(3) - (3)].en) ) ); }
    58705871    break;
     
    58735874
    58745875/* Line 1806 of yacc.c  */
    5875 #line 733 "parser.yy"
     5876#line 734 "parser.yy"
    58765877    { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(2) - (3)].en), 0 ); }
    58775878    break;
     
    58805881
    58815882/* Line 1806 of yacc.c  */
    5882 #line 734 "parser.yy"
     5883#line 735 "parser.yy"
    58835884    { (yyval.sn) = new StatementNode( StatementNode::Default ); }
    58845885    break;
     
    58875888
    58885889/* Line 1806 of yacc.c  */
    5889 #line 740 "parser.yy"
     5890#line 741 "parser.yy"
    58905891    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }
    58915892    break;
     
    58945895
    58955896/* Line 1806 of yacc.c  */
    5896 #line 744 "parser.yy"
     5897#line 745 "parser.yy"
    58975898    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58985899    break;
     
    59015902
    59025903/* Line 1806 of yacc.c  */
    5903 #line 749 "parser.yy"
     5904#line 750 "parser.yy"
    59045905    { (yyval.sn) = 0; }
    59055906    break;
     
    59085909
    59095910/* Line 1806 of yacc.c  */
    5910 #line 755 "parser.yy"
     5911#line 756 "parser.yy"
    59115912    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    59125913    break;
     
    59155916
    59165917/* Line 1806 of yacc.c  */
    5917 #line 757 "parser.yy"
     5918#line 758 "parser.yy"
    59185919    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    59195920    break;
     
    59225923
    59235924/* Line 1806 of yacc.c  */
    5924 #line 762 "parser.yy"
     5925#line 763 "parser.yy"
    59255926    { (yyval.sn) = 0; }
    59265927    break;
     
    59295930
    59305931/* Line 1806 of yacc.c  */
    5931 #line 768 "parser.yy"
     5932#line 769 "parser.yy"
    59325933    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    59335934    break;
     
    59365937
    59375938/* Line 1806 of yacc.c  */
    5938 #line 770 "parser.yy"
     5939#line 771 "parser.yy"
    59395940    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); }
    59405941    break;
     
    59435944
    59445945/* Line 1806 of yacc.c  */
    5945 #line 772 "parser.yy"
     5946#line 773 "parser.yy"
    59465947    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    59475948    break;
     
    59505951
    59515952/* Line 1806 of yacc.c  */
    5952 #line 774 "parser.yy"
     5953#line 775 "parser.yy"
    59535954    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(3) - (4)].sn),*(yyvsp[(4) - (4)].sn) ))))); }
    59545955    break;
     
    59575958
    59585959/* Line 1806 of yacc.c  */
    5959 #line 779 "parser.yy"
     5960#line 780 "parser.yy"
    59605961    { (yyval.sn) = 0; }
    59615962    break;
    59625963
    59635964  case 180:
    5964 
    5965 /* Line 1806 of yacc.c  */
    5966 #line 784 "parser.yy"
    5967     { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
    5968     break;
    5969 
    5970   case 181:
    59715965
    59725966/* Line 1806 of yacc.c  */
     
    59755969    break;
    59765970
     5971  case 181:
     5972
     5973/* Line 1806 of yacc.c  */
     5974#line 786 "parser.yy"
     5975    { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
     5976    break;
     5977
    59775978  case 182:
    59785979
    59795980/* Line 1806 of yacc.c  */
    5980 #line 790 "parser.yy"
     5981#line 791 "parser.yy"
    59815982    { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    59825983    break;
     
    59855986
    59865987/* Line 1806 of yacc.c  */
    5987 #line 792 "parser.yy"
     5988#line 793 "parser.yy"
    59885989    { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); }
    59895990    break;
     
    59925993
    59935994/* Line 1806 of yacc.c  */
    5994 #line 794 "parser.yy"
     5995#line 795 "parser.yy"
    59955996    { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); }
    59965997    break;
     
    59996000
    60006001/* Line 1806 of yacc.c  */
    6001 #line 799 "parser.yy"
     6002#line 800 "parser.yy"
    60026003    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    60036004    break;
     
    60066007
    60076008/* Line 1806 of yacc.c  */
    6008 #line 801 "parser.yy"
     6009#line 802 "parser.yy"
    60096010    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    60106011    break;
     
    60136014
    60146015/* Line 1806 of yacc.c  */
    6015 #line 806 "parser.yy"
     6016#line 807 "parser.yy"
    60166017    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); }
    60176018    break;
     
    60206021
    60216022/* Line 1806 of yacc.c  */
    6022 #line 810 "parser.yy"
     6023#line 811 "parser.yy"
    60236024    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); }
    60246025    break;
     
    60276028
    60286029/* Line 1806 of yacc.c  */
    6029 #line 813 "parser.yy"
     6030#line 814 "parser.yy"
    60306031    { (yyval.sn) = new StatementNode( StatementNode::Continue ); }
    60316032    break;
     
    60346035
    60356036/* Line 1806 of yacc.c  */
    6036 #line 817 "parser.yy"
     6037#line 818 "parser.yy"
    60376038    { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); }
    60386039    break;
     
    60416042
    60426043/* Line 1806 of yacc.c  */
    6043 #line 820 "parser.yy"
     6044#line 821 "parser.yy"
    60446045    { (yyval.sn) = new StatementNode( StatementNode::Break ); }
    60456046    break;
     
    60486049
    60496050/* Line 1806 of yacc.c  */
    6050 #line 824 "parser.yy"
     6051#line 825 "parser.yy"
    60516052    { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
    60526053    break;
     
    60556056
    60566057/* Line 1806 of yacc.c  */
    6057 #line 826 "parser.yy"
     6058#line 827 "parser.yy"
    60586059    { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); }
    60596060    break;
     
    60626063
    60636064/* Line 1806 of yacc.c  */
    6064 #line 828 "parser.yy"
     6065#line 829 "parser.yy"
    60656066    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    60666067    break;
     
    60696070
    60706071/* Line 1806 of yacc.c  */
    6071 #line 832 "parser.yy"
     6072#line 833 "parser.yy"
    60726073    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    60736074    break;
     
    60766077
    60776078/* Line 1806 of yacc.c  */
    6078 #line 834 "parser.yy"
     6079#line 835 "parser.yy"
    60796080    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); }
    60806081    break;
     
    60836084
    60846085/* Line 1806 of yacc.c  */
    6085 #line 841 "parser.yy"
     6086#line 842 "parser.yy"
    60866087    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    60876088    break;
     
    60906091
    60916092/* Line 1806 of yacc.c  */
    6092 #line 843 "parser.yy"
     6093#line 844 "parser.yy"
    60936094    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    60946095    break;
     
    60976098
    60986099/* Line 1806 of yacc.c  */
    6099 #line 845 "parser.yy"
     6100#line 846 "parser.yy"
    61006101    {
    61016102                        (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) );
     
    61076108
    61086109/* Line 1806 of yacc.c  */
    6109 #line 856 "parser.yy"
     6110#line 857 "parser.yy"
    61106111    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    61116112    break;
     
    61146115
    61156116/* Line 1806 of yacc.c  */
    6116 #line 858 "parser.yy"
     6117#line 859 "parser.yy"
    61176118    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    61186119    break;
     
    61216122
    61226123/* Line 1806 of yacc.c  */
    6123 #line 860 "parser.yy"
     6124#line 861 "parser.yy"
    61246125    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    61256126    break;
     
    61286129
    61296130/* Line 1806 of yacc.c  */
    6130 #line 862 "parser.yy"
     6131#line 863 "parser.yy"
    61316132    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    61326133    break;
     
    61356136
    61366137/* Line 1806 of yacc.c  */
    6137 #line 867 "parser.yy"
     6138#line 868 "parser.yy"
    61386139    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    61396140    break;
     
    61426143
    61436144/* Line 1806 of yacc.c  */
    6144 #line 869 "parser.yy"
     6145#line 870 "parser.yy"
    61456146    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    61466147    break;
     
    61496150
    61506151/* Line 1806 of yacc.c  */
    6151 #line 871 "parser.yy"
     6152#line 872 "parser.yy"
    61526153    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    61536154    break;
     
    61566157
    61576158/* Line 1806 of yacc.c  */
    6158 #line 873 "parser.yy"
     6159#line 874 "parser.yy"
    61596160    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    61606161    break;
     
    61636164
    61646165/* Line 1806 of yacc.c  */
    6165 #line 878 "parser.yy"
     6166#line 879 "parser.yy"
    61666167    {
    61676168                        (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) );
     
    61736174
    61746175/* Line 1806 of yacc.c  */
    6175 #line 892 "parser.yy"
     6176#line 893 "parser.yy"
    61766177    {
    61776178                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61836184
    61846185/* Line 1806 of yacc.c  */
    6185 #line 897 "parser.yy"
     6186#line 898 "parser.yy"
    61866187    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    61876188    break;
     
    61906191
    61916192/* Line 1806 of yacc.c  */
    6192 #line 899 "parser.yy"
     6193#line 900 "parser.yy"
    61936194    {
    61946195                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62006201
    62016202/* Line 1806 of yacc.c  */
    6202 #line 908 "parser.yy"
     6203#line 909 "parser.yy"
    62036204    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }
    62046205    break;
     
    62076208
    62086209/* Line 1806 of yacc.c  */
    6209 #line 910 "parser.yy"
     6210#line 911 "parser.yy"
    62106211    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }
    62116212    break;
     
    62146215
    62156216/* Line 1806 of yacc.c  */
    6216 #line 912 "parser.yy"
     6217#line 913 "parser.yy"
    62176218    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }
    62186219    break;
     
    62216222
    62226223/* Line 1806 of yacc.c  */
    6223 #line 914 "parser.yy"
     6224#line 915 "parser.yy"
    62246225    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].constant) ); }
    62256226    break;
     
    62286229
    62296230/* Line 1806 of yacc.c  */
    6230 #line 916 "parser.yy"
     6231#line 917 "parser.yy"
    62316232    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].constant), (yyvsp[(12) - (14)].label) ); }
    62326233    break;
     
    62356236
    62366237/* Line 1806 of yacc.c  */
    6237 #line 921 "parser.yy"
     6238#line 922 "parser.yy"
    62386239    { (yyval.flag) = false; }
    62396240    break;
     
    62426243
    62436244/* Line 1806 of yacc.c  */
    6244 #line 923 "parser.yy"
     6245#line 924 "parser.yy"
    62456246    { (yyval.flag) = true; }
    62466247    break;
     
    62496250
    62506251/* Line 1806 of yacc.c  */
    6251 #line 928 "parser.yy"
     6252#line 929 "parser.yy"
    62526253    { (yyval.en) = 0; }
    62536254    break;
     
    62566257
    62576258/* Line 1806 of yacc.c  */
    6258 #line 935 "parser.yy"
     6259#line 936 "parser.yy"
    62596260    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    62606261    break;
     
    62636264
    62646265/* Line 1806 of yacc.c  */
    6265 #line 940 "parser.yy"
     6266#line 941 "parser.yy"
    62666267    { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); }
    62676268    break;
     
    62706271
    62716272/* Line 1806 of yacc.c  */
    6272 #line 942 "parser.yy"
     6273#line 943 "parser.yy"
    62736274    { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); }
    62746275    break;
     
    62776278
    62786279/* Line 1806 of yacc.c  */
    6279 #line 947 "parser.yy"
     6280#line 948 "parser.yy"
    62806281    { (yyval.constant) = 0; }
    62816282    break;
     
    62846285
    62856286/* Line 1806 of yacc.c  */
    6286 #line 949 "parser.yy"
     6287#line 950 "parser.yy"
    62876288    { (yyval.constant) = (yyvsp[(1) - (1)].constant); }
    62886289    break;
     
    62916292
    62926293/* Line 1806 of yacc.c  */
    6293 #line 951 "parser.yy"
     6294#line 952 "parser.yy"
    62946295    { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); }
    62956296    break;
     
    62986299
    62996300/* Line 1806 of yacc.c  */
    6300 #line 956 "parser.yy"
     6301#line 957 "parser.yy"
    63016302    { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); }
    63026303    break;
     
    63056306
    63066307/* Line 1806 of yacc.c  */
    6307 #line 958 "parser.yy"
     6308#line 959 "parser.yy"
    63086309    { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); }
    63096310    break;
     
    63126313
    63136314/* Line 1806 of yacc.c  */
    6314 #line 965 "parser.yy"
     6315#line 966 "parser.yy"
    63156316    { (yyval.decl) = 0; }
    63166317    break;
     
    63196320
    63206321/* Line 1806 of yacc.c  */
    6321 #line 972 "parser.yy"
     6322#line 973 "parser.yy"
    63226323    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    63236324    break;
     
    63266327
    63276328/* Line 1806 of yacc.c  */
    6328 #line 977 "parser.yy"
     6329#line 978 "parser.yy"
    63296330    { (yyval.decl) = 0; }
    63306331    break;
     
    63336334
    63346335/* Line 1806 of yacc.c  */
    6335 #line 984 "parser.yy"
     6336#line 985 "parser.yy"
    63366337    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    63376338    break;
    63386339
    63396340  case 245:
    6340 
    6341 /* Line 1806 of yacc.c  */
    6342 #line 998 "parser.yy"
    6343     {}
    6344     break;
    6345 
    6346   case 246:
    63476341
    63486342/* Line 1806 of yacc.c  */
     
    63516345    break;
    63526346
     6347  case 246:
     6348
     6349/* Line 1806 of yacc.c  */
     6350#line 1000 "parser.yy"
     6351    {}
     6352    break;
     6353
    63536354  case 254:
    63546355
    63556356/* Line 1806 of yacc.c  */
    6356 #line 1028 "parser.yy"
     6357#line 1029 "parser.yy"
    63576358    {
    63586359                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63646365
    63656366/* Line 1806 of yacc.c  */
    6366 #line 1035 "parser.yy"
     6367#line 1036 "parser.yy"
    63676368    {
    63686369                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63746375
    63756376/* Line 1806 of yacc.c  */
    6376 #line 1040 "parser.yy"
     6377#line 1041 "parser.yy"
    63776378    {
    63786379                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    63846385
    63856386/* Line 1806 of yacc.c  */
    6386 #line 1050 "parser.yy"
     6387#line 1051 "parser.yy"
    63876388    {
    63886389                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63946395
    63956396/* Line 1806 of yacc.c  */
    6396 #line 1055 "parser.yy"
     6397#line 1056 "parser.yy"
    63976398    {
    63986399                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    64046405
    64056406/* Line 1806 of yacc.c  */
    6406 #line 1060 "parser.yy"
     6407#line 1061 "parser.yy"
    64076408    {
    64086409                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    64146415
    64156416/* Line 1806 of yacc.c  */
    6416 #line 1068 "parser.yy"
     6417#line 1069 "parser.yy"
    64176418    {
    64186419                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64246425
    64256426/* Line 1806 of yacc.c  */
    6426 #line 1073 "parser.yy"
     6427#line 1074 "parser.yy"
    64276428    {
    64286429                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64346435
    64356436/* Line 1806 of yacc.c  */
    6436 #line 1078 "parser.yy"
     6437#line 1079 "parser.yy"
    64376438    {
    64386439                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64446445
    64456446/* Line 1806 of yacc.c  */
    6446 #line 1083 "parser.yy"
     6447#line 1084 "parser.yy"
    64476448    {
    64486449                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64546455
    64556456/* Line 1806 of yacc.c  */
    6456 #line 1088 "parser.yy"
     6457#line 1089 "parser.yy"
    64576458    {
    64586459                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    64646465
    64656466/* Line 1806 of yacc.c  */
    6466 #line 1096 "parser.yy"
     6467#line 1097 "parser.yy"
    64676468    {
    64686469                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     
    64736474
    64746475/* Line 1806 of yacc.c  */
    6475 #line 1119 "parser.yy"
     6476#line 1120 "parser.yy"
    64766477    {
    64776478                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64826483
    64836484/* Line 1806 of yacc.c  */
    6484 #line 1123 "parser.yy"
     6485#line 1124 "parser.yy"
    64856486    {
    64866487                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64916492
    64926493/* Line 1806 of yacc.c  */
    6493 #line 1130 "parser.yy"
     6494#line 1131 "parser.yy"
    64946495    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    64956496    break;
     
    64986499
    64996500/* Line 1806 of yacc.c  */
    6500 #line 1134 "parser.yy"
     6501#line 1135 "parser.yy"
    65016502    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    65026503    break;
     
    65056506
    65066507/* Line 1806 of yacc.c  */
    6507 #line 1139 "parser.yy"
     6508#line 1140 "parser.yy"
    65086509    {
    65096510                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65156516
    65166517/* Line 1806 of yacc.c  */
    6517 #line 1144 "parser.yy"
     6518#line 1145 "parser.yy"
    65186519    {
    65196520                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65256526
    65266527/* Line 1806 of yacc.c  */
    6527 #line 1149 "parser.yy"
     6528#line 1150 "parser.yy"
    65286529    {
    65296530                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    65356536
    65366537/* Line 1806 of yacc.c  */
    6537 #line 1160 "parser.yy"
     6538#line 1161 "parser.yy"
    65386539    {
    65396540                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65456546
    65466547/* Line 1806 of yacc.c  */
    6547 #line 1165 "parser.yy"
     6548#line 1166 "parser.yy"
    65486549    {
    65496550                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65556556
    65566557/* Line 1806 of yacc.c  */
    6557 #line 1170 "parser.yy"
     6558#line 1171 "parser.yy"
    65586559    {
    65596560                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65656566
    65666567/* Line 1806 of yacc.c  */
    6567 #line 1175 "parser.yy"
     6568#line 1176 "parser.yy"
    65686569    {
    65696570                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65756576
    65766577/* Line 1806 of yacc.c  */
    6577 #line 1180 "parser.yy"
     6578#line 1181 "parser.yy"
    65786579    {
    65796580                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65856586
    65866587/* Line 1806 of yacc.c  */
    6587 #line 1189 "parser.yy"
     6588#line 1190 "parser.yy"
    65886589    {
    65896590                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    65956596
    65966597/* Line 1806 of yacc.c  */
    6597 #line 1194 "parser.yy"
     6598#line 1195 "parser.yy"
    65986599    {
    65996600                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    66056606
    66066607/* Line 1806 of yacc.c  */
    6607 #line 1211 "parser.yy"
     6608#line 1212 "parser.yy"
    66086609    {
    66096610                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66156616
    66166617/* Line 1806 of yacc.c  */
    6617 #line 1216 "parser.yy"
     6618#line 1217 "parser.yy"
    66186619    {
    66196620                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66256626
    66266627/* Line 1806 of yacc.c  */
    6627 #line 1238 "parser.yy"
     6628#line 1239 "parser.yy"
    66286629    { (yyval.decl) = 0; }
    66296630    break;
     
    66326633
    66336634/* Line 1806 of yacc.c  */
    6634 #line 1250 "parser.yy"
     6635#line 1251 "parser.yy"
    66356636    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66366637    break;
     
    66396640
    66406641/* Line 1806 of yacc.c  */
    6641 #line 1261 "parser.yy"
     6642#line 1262 "parser.yy"
    66426643    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    66436644    break;
     
    66466647
    66476648/* Line 1806 of yacc.c  */
    6648 #line 1263 "parser.yy"
     6649#line 1264 "parser.yy"
    66496650    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    66506651    break;
     
    66536654
    66546655/* Line 1806 of yacc.c  */
    6655 #line 1265 "parser.yy"
     6656#line 1266 "parser.yy"
    66566657    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    66576658    break;
     
    66606661
    66616662/* Line 1806 of yacc.c  */
    6662 #line 1267 "parser.yy"
     6663#line 1268 "parser.yy"
    66636664    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    66646665    break;
     
    66676668
    66686669/* Line 1806 of yacc.c  */
    6669 #line 1269 "parser.yy"
     6670#line 1270 "parser.yy"
    66706671    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    66716672    break;
     
    66746675
    66756676/* Line 1806 of yacc.c  */
    6676 #line 1271 "parser.yy"
     6677#line 1272 "parser.yy"
    66776678    {
    66786679                        typedefTable.enterScope();
     
    66836684
    66846685/* Line 1806 of yacc.c  */
    6685 #line 1275 "parser.yy"
     6686#line 1276 "parser.yy"
    66866687    {
    66876688                        typedefTable.leaveScope();
     
    66936694
    66946695/* Line 1806 of yacc.c  */
    6695 #line 1284 "parser.yy"
     6696#line 1285 "parser.yy"
    66966697    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66976698    break;
     
    67006701
    67016702/* Line 1806 of yacc.c  */
    6702 #line 1286 "parser.yy"
     6703#line 1287 "parser.yy"
    67036704    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    67046705    break;
     
    67076708
    67086709/* Line 1806 of yacc.c  */
    6709 #line 1297 "parser.yy"
     6710#line 1298 "parser.yy"
    67106711    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67116712    break;
     
    67146715
    67156716/* Line 1806 of yacc.c  */
    6716 #line 1306 "parser.yy"
     6717#line 1307 "parser.yy"
    67176718    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    67186719    break;
     
    67216722
    67226723/* Line 1806 of yacc.c  */
    6723 #line 1308 "parser.yy"
     6724#line 1309 "parser.yy"
    67246725    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    67256726    break;
     
    67286729
    67296730/* Line 1806 of yacc.c  */
    6730 #line 1310 "parser.yy"
     6731#line 1311 "parser.yy"
    67316732    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    67326733    break;
     
    67356736
    67366737/* Line 1806 of yacc.c  */
    6737 #line 1312 "parser.yy"
     6738#line 1313 "parser.yy"
    67386739    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    67396740    break;
     
    67426743
    67436744/* Line 1806 of yacc.c  */
    6744 #line 1314 "parser.yy"
     6745#line 1315 "parser.yy"
    67456746    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    67466747    break;
     
    67496750
    67506751/* Line 1806 of yacc.c  */
    6751 #line 1316 "parser.yy"
     6752#line 1317 "parser.yy"
    67526753    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    67536754    break;
     
    67566757
    67576758/* Line 1806 of yacc.c  */
    6758 #line 1318 "parser.yy"
     6759#line 1319 "parser.yy"
    67596760    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
    67606761    break;
     
    67636764
    67646765/* Line 1806 of yacc.c  */
    6765 #line 1320 "parser.yy"
     6766#line 1321 "parser.yy"
    67666767    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    67676768    break;
     
    67706771
    67716772/* Line 1806 of yacc.c  */
    6772 #line 1325 "parser.yy"
     6773#line 1326 "parser.yy"
    67736774    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    67746775    break;
     
    67776778
    67786779/* Line 1806 of yacc.c  */
    6779 #line 1327 "parser.yy"
     6780#line 1328 "parser.yy"
    67806781    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    67816782    break;
     
    67846785
    67856786/* Line 1806 of yacc.c  */
    6786 #line 1329 "parser.yy"
     6787#line 1330 "parser.yy"
    67876788    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    67886789    break;
     
    67916792
    67926793/* Line 1806 of yacc.c  */
    6793 #line 1331 "parser.yy"
     6794#line 1332 "parser.yy"
    67946795    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    67956796    break;
     
    67986799
    67996800/* Line 1806 of yacc.c  */
    6800 #line 1333 "parser.yy"
     6801#line 1334 "parser.yy"
    68016802    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    68026803    break;
     
    68056806
    68066807/* Line 1806 of yacc.c  */
    6807 #line 1335 "parser.yy"
     6808#line 1336 "parser.yy"
    68086809    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    68096810    break;
     
    68126813
    68136814/* Line 1806 of yacc.c  */
    6814 #line 1337 "parser.yy"
     6815#line 1338 "parser.yy"
    68156816    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    68166817    break;
     
    68196820
    68206821/* Line 1806 of yacc.c  */
    6821 #line 1339 "parser.yy"
     6822#line 1340 "parser.yy"
    68226823    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    68236824    break;
     
    68266827
    68276828/* Line 1806 of yacc.c  */
    6828 #line 1341 "parser.yy"
     6829#line 1342 "parser.yy"
    68296830    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    68306831    break;
     
    68336834
    68346835/* Line 1806 of yacc.c  */
    6835 #line 1343 "parser.yy"
     6836#line 1344 "parser.yy"
    68366837    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    68376838    break;
     
    68406841
    68416842/* Line 1806 of yacc.c  */
    6842 #line 1345 "parser.yy"
     6843#line 1346 "parser.yy"
    68436844    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    68446845    break;
     
    68476848
    68486849/* Line 1806 of yacc.c  */
    6849 #line 1347 "parser.yy"
     6850#line 1348 "parser.yy"
    68506851    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    68516852    break;
     
    68546855
    68556856/* Line 1806 of yacc.c  */
    6856 #line 1349 "parser.yy"
     6857#line 1350 "parser.yy"
    68576858    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    68586859    break;
     
    68616862
    68626863/* Line 1806 of yacc.c  */
    6863 #line 1356 "parser.yy"
     6864#line 1357 "parser.yy"
    68646865    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68656866    break;
     
    68686869
    68696870/* Line 1806 of yacc.c  */
    6870 #line 1358 "parser.yy"
     6871#line 1359 "parser.yy"
    68716872    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68726873    break;
     
    68756876
    68766877/* Line 1806 of yacc.c  */
    6877 #line 1360 "parser.yy"
     6878#line 1361 "parser.yy"
    68786879    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68796880    break;
     
    68826883
    68836884/* Line 1806 of yacc.c  */
    6884 #line 1362 "parser.yy"
     6885#line 1363 "parser.yy"
    68856886    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    68866887    break;
     
    68896890
    68906891/* Line 1806 of yacc.c  */
    6891 #line 1368 "parser.yy"
     6892#line 1369 "parser.yy"
    68926893    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68936894    break;
     
    68966897
    68976898/* Line 1806 of yacc.c  */
    6898 #line 1375 "parser.yy"
     6899#line 1376 "parser.yy"
    68996900    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69006901    break;
     
    69036904
    69046905/* Line 1806 of yacc.c  */
    6905 #line 1377 "parser.yy"
     6906#line 1378 "parser.yy"
    69066907    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69076908    break;
     
    69106911
    69116912/* Line 1806 of yacc.c  */
    6912 #line 1379 "parser.yy"
     6913#line 1380 "parser.yy"
    69136914    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    69146915    break;
     
    69176918
    69186919/* Line 1806 of yacc.c  */
    6919 #line 1384 "parser.yy"
     6920#line 1385 "parser.yy"
    69206921    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    69216922    break;
     
    69246925
    69256926/* Line 1806 of yacc.c  */
    6926 #line 1386 "parser.yy"
     6927#line 1387 "parser.yy"
    69276928    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    69286929    break;
     
    69316932
    69326933/* Line 1806 of yacc.c  */
    6933 #line 1388 "parser.yy"
     6934#line 1389 "parser.yy"
    69346935    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    69356936    break;
     
    69386939
    69396940/* Line 1806 of yacc.c  */
    6940 #line 1390 "parser.yy"
     6941#line 1391 "parser.yy"
    69416942    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    69426943    break;
     
    69456946
    69466947/* Line 1806 of yacc.c  */
    6947 #line 1396 "parser.yy"
     6948#line 1397 "parser.yy"
    69486949    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69496950    break;
     
    69526953
    69536954/* Line 1806 of yacc.c  */
    6954 #line 1398 "parser.yy"
     6955#line 1399 "parser.yy"
    69556956    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69566957    break;
     
    69596960
    69606961/* Line 1806 of yacc.c  */
    6961 #line 1400 "parser.yy"
     6962#line 1401 "parser.yy"
    69626963    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69636964    break;
     
    69666967
    69676968/* Line 1806 of yacc.c  */
    6968 #line 1406 "parser.yy"
     6969#line 1407 "parser.yy"
    69696970    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69706971    break;
     
    69736974
    69746975/* Line 1806 of yacc.c  */
    6975 #line 1408 "parser.yy"
     6976#line 1409 "parser.yy"
    69766977    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69776978    break;
     
    69806981
    69816982/* Line 1806 of yacc.c  */
    6982 #line 1414 "parser.yy"
     6983#line 1415 "parser.yy"
    69836984    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69846985    break;
     
    69876988
    69886989/* Line 1806 of yacc.c  */
    6989 #line 1416 "parser.yy"
     6990#line 1417 "parser.yy"
    69906991    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69916992    break;
     
    69946995
    69956996/* Line 1806 of yacc.c  */
    6996 #line 1418 "parser.yy"
     6997#line 1419 "parser.yy"
    69976998    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69986999    break;
     
    70017002
    70027003/* Line 1806 of yacc.c  */
    7003 #line 1423 "parser.yy"
     7004#line 1424 "parser.yy"
    70047005    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    70057006    break;
     
    70087009
    70097010/* Line 1806 of yacc.c  */
    7010 #line 1425 "parser.yy"
     7011#line 1426 "parser.yy"
    70117012    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    70127013    break;
     
    70157016
    70167017/* Line 1806 of yacc.c  */
    7017 #line 1427 "parser.yy"
     7018#line 1428 "parser.yy"
    70187019    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    70197020    break;
     
    70227023
    70237024/* Line 1806 of yacc.c  */
    7024 #line 1437 "parser.yy"
     7025#line 1438 "parser.yy"
    70257026    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl) ); }
    70267027    break;
     
    70297030
    70307031/* Line 1806 of yacc.c  */
    7031 #line 1439 "parser.yy"
     7032#line 1440 "parser.yy"
    70327033    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0 ); }
    70337034    break;
     
    70367037
    70377038/* Line 1806 of yacc.c  */
    7038 #line 1441 "parser.yy"
     7039#line 1442 "parser.yy"
    70397040    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, (yyvsp[(4) - (5)].decl) ); }
    70407041    break;
     
    70437044
    70447045/* Line 1806 of yacc.c  */
    7045 #line 1443 "parser.yy"
     7046#line 1444 "parser.yy"
    70467047    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl) ); }
    70477048    break;
     
    70507051
    70517052/* Line 1806 of yacc.c  */
    7052 #line 1445 "parser.yy"
     7053#line 1446 "parser.yy"
    70537054    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    70547055    break;
     
    70577058
    70587059/* Line 1806 of yacc.c  */
    7059 #line 1450 "parser.yy"
     7060#line 1451 "parser.yy"
    70607061    { (yyval.aggKey) = DeclarationNode::Struct; }
    70617062    break;
     
    70647065
    70657066/* Line 1806 of yacc.c  */
    7066 #line 1452 "parser.yy"
     7067#line 1453 "parser.yy"
    70677068    { (yyval.aggKey) = DeclarationNode::Union; }
    70687069    break;
     
    70717072
    70727073/* Line 1806 of yacc.c  */
    7073 #line 1457 "parser.yy"
     7074#line 1458 "parser.yy"
    70747075    { (yyval.decl) = (yyvsp[(1) - (1)].decl); }
    70757076    break;
     
    70787079
    70797080/* Line 1806 of yacc.c  */
    7080 #line 1459 "parser.yy"
     7081#line 1460 "parser.yy"
    70817082    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    70827083    break;
     
    70857086
    70867087/* Line 1806 of yacc.c  */
    7087 #line 1465 "parser.yy"
     7088#line 1466 "parser.yy"
    70887089    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    70897090    break;
     
    70927093
    70937094/* Line 1806 of yacc.c  */
    7094 #line 1468 "parser.yy"
     7095#line 1469 "parser.yy"
    70957096    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    70967097    break;
     
    70997100
    71007101/* Line 1806 of yacc.c  */
    7101 #line 1474 "parser.yy"
     7102#line 1475 "parser.yy"
    71027103    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    71037104    break;
     
    71067107
    71077108/* Line 1806 of yacc.c  */
    7108 #line 1476 "parser.yy"
     7109#line 1477 "parser.yy"
    71097110    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    71107111    break;
     
    71137114
    71147115/* Line 1806 of yacc.c  */
    7115 #line 1478 "parser.yy"
     7116#line 1479 "parser.yy"
    71167117    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    71177118    break;
     
    71207121
    71217122/* Line 1806 of yacc.c  */
    7122 #line 1483 "parser.yy"
     7123#line 1484 "parser.yy"
    71237124    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    71247125    break;
     
    71277128
    71287129/* Line 1806 of yacc.c  */
    7129 #line 1485 "parser.yy"
     7130#line 1486 "parser.yy"
    71307131    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    71317132    break;
     
    71347135
    71357136/* Line 1806 of yacc.c  */
    7136 #line 1490 "parser.yy"
     7137#line 1491 "parser.yy"
    71377138    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    71387139    break;
     
    71417142
    71427143/* Line 1806 of yacc.c  */
    7143 #line 1492 "parser.yy"
     7144#line 1493 "parser.yy"
    71447145    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    71457146    break;
     
    71487149
    71497150/* Line 1806 of yacc.c  */
    7150 #line 1495 "parser.yy"
     7151#line 1496 "parser.yy"
    71517152    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71527153    break;
     
    71557156
    71567157/* Line 1806 of yacc.c  */
    7157 #line 1498 "parser.yy"
     7158#line 1499 "parser.yy"
    71587159    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71597160    break;
     
    71627163
    71637164/* Line 1806 of yacc.c  */
    7164 #line 1504 "parser.yy"
     7165#line 1505 "parser.yy"
    71657166    { (yyval.en) = 0; }
    71667167    break;
     
    71697170
    71707171/* Line 1806 of yacc.c  */
    7171 #line 1506 "parser.yy"
     7172#line 1507 "parser.yy"
    71727173    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    71737174    break;
     
    71767177
    71777178/* Line 1806 of yacc.c  */
    7178 #line 1511 "parser.yy"
     7179#line 1512 "parser.yy"
    71797180    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71807181    break;
     
    71837184
    71847185/* Line 1806 of yacc.c  */
    7185 #line 1520 "parser.yy"
     7186#line 1521 "parser.yy"
    71867187    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    71877188    break;
     
    71907191
    71917192/* Line 1806 of yacc.c  */
    7192 #line 1522 "parser.yy"
     7193#line 1523 "parser.yy"
    71937194    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); }
    71947195    break;
     
    71977198
    71987199/* Line 1806 of yacc.c  */
    7199 #line 1524 "parser.yy"
     7200#line 1525 "parser.yy"
    72007201    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); }
    72017202    break;
     
    72047205
    72057206/* Line 1806 of yacc.c  */
    7206 #line 1529 "parser.yy"
     7207#line 1530 "parser.yy"
    72077208    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    72087209    break;
     
    72117212
    72127213/* Line 1806 of yacc.c  */
    7213 #line 1531 "parser.yy"
     7214#line 1532 "parser.yy"
    72147215    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    72157216    break;
     
    72187219
    72197220/* Line 1806 of yacc.c  */
    7220 #line 1536 "parser.yy"
     7221#line 1537 "parser.yy"
    72217222    { (yyval.en) = 0; }
    72227223    break;
     
    72257226
    72267227/* Line 1806 of yacc.c  */
    7227 #line 1538 "parser.yy"
     7228#line 1539 "parser.yy"
    72287229    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    72297230    break;
     
    72327233
    72337234/* Line 1806 of yacc.c  */
    7234 #line 1545 "parser.yy"
     7235#line 1546 "parser.yy"
    72357236    { (yyval.decl) = 0; }
    72367237    break;
     
    72397240
    72407241/* Line 1806 of yacc.c  */
    7241 #line 1553 "parser.yy"
     7242#line 1554 "parser.yy"
    72427243    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72437244    break;
     
    72467247
    72477248/* Line 1806 of yacc.c  */
    7248 #line 1555 "parser.yy"
     7249#line 1556 "parser.yy"
    72497250    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72507251    break;
     
    72537254
    72547255/* Line 1806 of yacc.c  */
    7255 #line 1557 "parser.yy"
     7256#line 1558 "parser.yy"
    72567257    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72577258    break;
     
    72607261
    72617262/* Line 1806 of yacc.c  */
    7262 #line 1565 "parser.yy"
     7263#line 1566 "parser.yy"
    72637264    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72647265    break;
     
    72677268
    72687269/* Line 1806 of yacc.c  */
    7269 #line 1567 "parser.yy"
     7270#line 1568 "parser.yy"
    72707271    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72717272    break;
     
    72747275
    72757276/* Line 1806 of yacc.c  */
    7276 #line 1569 "parser.yy"
     7277#line 1570 "parser.yy"
    72777278    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    72787279    break;
     
    72817282
    72827283/* Line 1806 of yacc.c  */
    7283 #line 1575 "parser.yy"
     7284#line 1576 "parser.yy"
    72847285    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72857286    break;
     
    72887289
    72897290/* Line 1806 of yacc.c  */
    7290 #line 1580 "parser.yy"
     7291#line 1581 "parser.yy"
    72917292    { (yyval.decl) = 0; }
    72927293    break;
     
    72957296
    72967297/* Line 1806 of yacc.c  */
    7297 #line 1587 "parser.yy"
     7298#line 1588 "parser.yy"
    72987299    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72997300    break;
     
    73027303
    73037304/* Line 1806 of yacc.c  */
    7304 #line 1594 "parser.yy"
     7305#line 1595 "parser.yy"
    73057306    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    73067307    break;
     
    73097310
    73107311/* Line 1806 of yacc.c  */
    7311 #line 1596 "parser.yy"
     7312#line 1597 "parser.yy"
    73127313    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    73137314    break;
     
    73167317
    73177318/* Line 1806 of yacc.c  */
    7318 #line 1605 "parser.yy"
     7319#line 1606 "parser.yy"
    73197320    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    73207321    break;
     
    73237324
    73247325/* Line 1806 of yacc.c  */
    7325 #line 1608 "parser.yy"
     7326#line 1609 "parser.yy"
    73267327    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    73277328    break;
     
    73307331
    73317332/* Line 1806 of yacc.c  */
    7332 #line 1610 "parser.yy"
     7333#line 1611 "parser.yy"
    73337334    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    73347335    break;
     
    73377338
    73387339/* Line 1806 of yacc.c  */
    7339 #line 1620 "parser.yy"
     7340#line 1621 "parser.yy"
    73407341    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    73417342    break;
     
    73447345
    73457346/* Line 1806 of yacc.c  */
    7346 #line 1626 "parser.yy"
     7347#line 1627 "parser.yy"
    73477348    {
    73487349                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73547355
    73557356/* Line 1806 of yacc.c  */
    7356 #line 1631 "parser.yy"
     7357#line 1632 "parser.yy"
    73577358    {
    73587359                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73647365
    73657366/* Line 1806 of yacc.c  */
    7366 #line 1640 "parser.yy"
     7367#line 1641 "parser.yy"
    73677368    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73687369    break;
     
    73717372
    73727373/* Line 1806 of yacc.c  */
    7373 #line 1649 "parser.yy"
     7374#line 1650 "parser.yy"
    73747375    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    73757376    break;
     
    73787379
    73797380/* Line 1806 of yacc.c  */
    7380 #line 1651 "parser.yy"
     7381#line 1652 "parser.yy"
    73817382    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    73827383    break;
     
    73857386
    73867387/* Line 1806 of yacc.c  */
    7387 #line 1676 "parser.yy"
     7388#line 1677 "parser.yy"
    73887389    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73897390    break;
     
    73927393
    73937394/* Line 1806 of yacc.c  */
    7394 #line 1684 "parser.yy"
     7395#line 1685 "parser.yy"
    73957396    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73967397    break;
     
    73997400
    74007401/* Line 1806 of yacc.c  */
    7401 #line 1689 "parser.yy"
     7402#line 1690 "parser.yy"
    74027403    { (yyval.in) = 0; }
    74037404    break;
     
    74067407
    74077408/* Line 1806 of yacc.c  */
    7408 #line 1691 "parser.yy"
     7409#line 1692 "parser.yy"
    74097410    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    74107411    break;
     
    74137414
    74147415/* Line 1806 of yacc.c  */
    7415 #line 1693 "parser.yy"
     7416#line 1694 "parser.yy"
    74167417    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    74177418    break;
     
    74207421
    74217422/* Line 1806 of yacc.c  */
    7422 #line 1697 "parser.yy"
     7423#line 1698 "parser.yy"
    74237424    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    74247425    break;
     
    74277428
    74287429/* Line 1806 of yacc.c  */
    7429 #line 1698 "parser.yy"
     7430#line 1699 "parser.yy"
    74307431    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    74317432    break;
     
    74347435
    74357436/* Line 1806 of yacc.c  */
    7436 #line 1703 "parser.yy"
     7437#line 1704 "parser.yy"
    74377438    { (yyval.in) = 0; }
    74387439    break;
     
    74417442
    74427443/* Line 1806 of yacc.c  */
    7443 #line 1705 "parser.yy"
     7444#line 1706 "parser.yy"
    74447445    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    74457446    break;
     
    74487449
    74497450/* Line 1806 of yacc.c  */
    7450 #line 1706 "parser.yy"
     7451#line 1707 "parser.yy"
    74517452    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
    74527453    break;
     
    74557456
    74567457/* Line 1806 of yacc.c  */
    7457 #line 1708 "parser.yy"
     7458#line 1709 "parser.yy"
    74587459    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    74597460    break;
     
    74627463
    74637464/* Line 1806 of yacc.c  */
    7464 #line 1724 "parser.yy"
     7465#line 1725 "parser.yy"
    74657466    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); }
    74667467    break;
     
    74697470
    74707471/* Line 1806 of yacc.c  */
    7471 #line 1730 "parser.yy"
     7472#line 1731 "parser.yy"
    74727473    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
    74737474    break;
     
    74767477
    74777478/* Line 1806 of yacc.c  */
    7478 #line 1738 "parser.yy"
     7479#line 1739 "parser.yy"
    74797480    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); }
    74807481    break;
     
    74837484
    74847485/* Line 1806 of yacc.c  */
    7485 #line 1740 "parser.yy"
     7486#line 1741 "parser.yy"
    74867487    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); }
    74877488    break;
     
    74907491
    74917492/* Line 1806 of yacc.c  */
    7492 #line 1743 "parser.yy"
     7493#line 1744 "parser.yy"
    74937494    { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    74947495    break;
     
    74977498
    74987499/* Line 1806 of yacc.c  */
    7499 #line 1745 "parser.yy"
     7500#line 1746 "parser.yy"
    75007501    { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    75017502    break;
     
    75047505
    75057506/* Line 1806 of yacc.c  */
    7506 #line 1747 "parser.yy"
     7507#line 1748 "parser.yy"
    75077508    { (yyval.en) = new DesignatorNode( new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ), true ); }
    75087509    break;
     
    75117512
    75127513/* Line 1806 of yacc.c  */
    7513 #line 1749 "parser.yy"
     7514#line 1750 "parser.yy"
    75147515    { (yyval.en) = new DesignatorNode( (yyvsp[(4) - (6)].en) ); }
    75157516    break;
     
    75187519
    75197520/* Line 1806 of yacc.c  */
    7520 #line 1773 "parser.yy"
     7521#line 1774 "parser.yy"
    75217522    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    75227523    break;
     
    75257526
    75267527/* Line 1806 of yacc.c  */
    7527 #line 1775 "parser.yy"
     7528#line 1776 "parser.yy"
    75287529    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75297530    break;
     
    75327533
    75337534/* Line 1806 of yacc.c  */
    7534 #line 1777 "parser.yy"
     7535#line 1778 "parser.yy"
    75357536    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    75367537    break;
     
    75397540
    75407541/* Line 1806 of yacc.c  */
    7541 #line 1783 "parser.yy"
     7542#line 1784 "parser.yy"
    75427543    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    75437544    break;
     
    75467547
    75477548/* Line 1806 of yacc.c  */
    7548 #line 1785 "parser.yy"
     7549#line 1786 "parser.yy"
    75497550    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75507551    break;
     
    75537554
    75547555/* Line 1806 of yacc.c  */
    7555 #line 1790 "parser.yy"
     7556#line 1791 "parser.yy"
    75567557    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    75577558    break;
     
    75607561
    75617562/* Line 1806 of yacc.c  */
    7562 #line 1796 "parser.yy"
     7563#line 1797 "parser.yy"
    75637564    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    75647565    break;
     
    75677568
    75687569/* Line 1806 of yacc.c  */
    7569 #line 1801 "parser.yy"
     7570#line 1802 "parser.yy"
    75707571    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    75717572    break;
     
    75747575
    75757576/* Line 1806 of yacc.c  */
    7576 #line 1803 "parser.yy"
     7577#line 1804 "parser.yy"
    75777578    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    75787579    break;
     
    75817582
    75827583/* Line 1806 of yacc.c  */
    7583 #line 1809 "parser.yy"
     7584#line 1810 "parser.yy"
    75847585    { (yyval.tclass) = DeclarationNode::Type; }
    75857586    break;
     
    75887589
    75897590/* Line 1806 of yacc.c  */
    7590 #line 1811 "parser.yy"
     7591#line 1812 "parser.yy"
    75917592    { (yyval.tclass) = DeclarationNode::Ftype; }
    75927593    break;
     
    75957596
    75967597/* Line 1806 of yacc.c  */
    7597 #line 1813 "parser.yy"
     7598#line 1814 "parser.yy"
    75987599    { (yyval.tclass) = DeclarationNode::Dtype; }
    75997600    break;
     
    76027603
    76037604/* Line 1806 of yacc.c  */
    7604 #line 1818 "parser.yy"
     7605#line 1819 "parser.yy"
    76057606    { (yyval.decl) = 0; }
    76067607    break;
     
    76097610
    76107611/* Line 1806 of yacc.c  */
    7611 #line 1820 "parser.yy"
     7612#line 1821 "parser.yy"
    76127613    { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    76137614    break;
     
    76167617
    76177618/* Line 1806 of yacc.c  */
    7618 #line 1825 "parser.yy"
     7619#line 1826 "parser.yy"
    76197620    {
    76207621                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     
    76267627
    76277628/* Line 1806 of yacc.c  */
    7628 #line 1830 "parser.yy"
     7629#line 1831 "parser.yy"
    76297630    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    76307631    break;
     
    76337634
    76347635/* Line 1806 of yacc.c  */
    7635 #line 1832 "parser.yy"
     7636#line 1833 "parser.yy"
    76367637    { (yyval.decl) = 0; }
    76377638    break;
     
    76407641
    76417642/* Line 1806 of yacc.c  */
    7642 #line 1837 "parser.yy"
     7643#line 1838 "parser.yy"
    76437644    { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
    76447645    break;
     
    76477648
    76487649/* Line 1806 of yacc.c  */
    7649 #line 1840 "parser.yy"
     7650#line 1841 "parser.yy"
    76507651    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
    76517652    break;
     
    76547655
    76557656/* Line 1806 of yacc.c  */
    7656 #line 1842 "parser.yy"
     7657#line 1843 "parser.yy"
    76577658    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    76587659    break;
     
    76617662
    76627663/* Line 1806 of yacc.c  */
    7663 #line 1847 "parser.yy"
     7664#line 1848 "parser.yy"
    76647665    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    76657666    break;
     
    76687669
    76697670/* Line 1806 of yacc.c  */
    7670 #line 1849 "parser.yy"
     7671#line 1850 "parser.yy"
    76717672    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    76727673    break;
     
    76757676
    76767677/* Line 1806 of yacc.c  */
    7677 #line 1851 "parser.yy"
     7678#line 1852 "parser.yy"
    76787679    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    76797680    break;
     
    76827683
    76837684/* Line 1806 of yacc.c  */
    7684 #line 1856 "parser.yy"
     7685#line 1857 "parser.yy"
    76857686    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    76867687    break;
     
    76897690
    76907691/* Line 1806 of yacc.c  */
    7691 #line 1858 "parser.yy"
     7692#line 1859 "parser.yy"
    76927693    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    76937694    break;
     
    76967697
    76977698/* Line 1806 of yacc.c  */
    7698 #line 1863 "parser.yy"
     7699#line 1864 "parser.yy"
    76997700    {
    77007701                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    77067707
    77077708/* Line 1806 of yacc.c  */
    7708 #line 1868 "parser.yy"
     7709#line 1869 "parser.yy"
    77097710    {
    77107711                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    77167717
    77177718/* Line 1806 of yacc.c  */
    7718 #line 1876 "parser.yy"
     7719#line 1877 "parser.yy"
    77197720    {
    77207721                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    77267727
    77277728/* Line 1806 of yacc.c  */
    7728 #line 1881 "parser.yy"
     7729#line 1882 "parser.yy"
    77297730    {
    77307731                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     
    77367737
    77377738/* Line 1806 of yacc.c  */
    7738 #line 1886 "parser.yy"
     7739#line 1887 "parser.yy"
    77397740    {
    77407741                        typedefTable.leaveTrait();
     
    77477748
    77487749/* Line 1806 of yacc.c  */
    7749 #line 1896 "parser.yy"
     7750#line 1897 "parser.yy"
    77507751    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    77517752    break;
     
    77547755
    77557756/* Line 1806 of yacc.c  */
    7756 #line 1906 "parser.yy"
     7757#line 1907 "parser.yy"
    77577758    {
    77587759                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77647765
    77657766/* Line 1806 of yacc.c  */
    7766 #line 1911 "parser.yy"
     7767#line 1912 "parser.yy"
    77677768    {
    77687769                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77747775
    77757776/* Line 1806 of yacc.c  */
    7776 #line 1916 "parser.yy"
     7777#line 1917 "parser.yy"
    77777778    {
    77787779                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    77847785
    77857786/* Line 1806 of yacc.c  */
    7786 #line 1924 "parser.yy"
     7787#line 1925 "parser.yy"
    77877788    {
    77887789                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77947795
    77957796/* Line 1806 of yacc.c  */
    7796 #line 1929 "parser.yy"
     7797#line 1930 "parser.yy"
    77977798    {
    77987799                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    78047805
    78057806/* Line 1806 of yacc.c  */
    7806 #line 1939 "parser.yy"
     7807#line 1940 "parser.yy"
    78077808    {}
    78087809    break;
     
    78117812
    78127813/* Line 1806 of yacc.c  */
    7813 #line 1941 "parser.yy"
     7814#line 1942 "parser.yy"
    78147815    {
    78157816                        if ( theTree ) {
     
    78247825
    78257826/* Line 1806 of yacc.c  */
    7826 #line 1953 "parser.yy"
     7827#line 1954 "parser.yy"
    78277828    { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    78287829    break;
     
    78317832
    78327833/* Line 1806 of yacc.c  */
    7833 #line 1958 "parser.yy"
     7834#line 1959 "parser.yy"
    78347835    { (yyval.decl) = 0; }
    78357836    break;
     
    78387839
    78397840/* Line 1806 of yacc.c  */
    7840 #line 1966 "parser.yy"
     7841#line 1967 "parser.yy"
    78417842    {}
    78427843    break;
     
    78457846
    78467847/* Line 1806 of yacc.c  */
    7847 #line 1968 "parser.yy"
     7848#line 1969 "parser.yy"
    78487849    {
    78497850                        linkageStack.push( linkage );
     
    78557856
    78567857/* Line 1806 of yacc.c  */
    7857 #line 1973 "parser.yy"
     7858#line 1974 "parser.yy"
    78587859    {
    78597860                        linkage = linkageStack.top();
     
    78667867
    78677868/* Line 1806 of yacc.c  */
    7868 #line 1979 "parser.yy"
     7869#line 1980 "parser.yy"
    78697870    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    78707871    break;
     
    78737874
    78747875/* Line 1806 of yacc.c  */
    7875 #line 1989 "parser.yy"
     7876#line 1990 "parser.yy"
    78767877    {
    78777878                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78847885
    78857886/* Line 1806 of yacc.c  */
    7886 #line 1995 "parser.yy"
     7887#line 1996 "parser.yy"
    78877888    {
    78887889                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78957896
    78967897/* Line 1806 of yacc.c  */
    7897 #line 2004 "parser.yy"
     7898#line 2005 "parser.yy"
    78987899    {
    78997900                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79067907
    79077908/* Line 1806 of yacc.c  */
    7908 #line 2010 "parser.yy"
     7909#line 2011 "parser.yy"
    79097910    {
    79107911                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79177918
    79187919/* Line 1806 of yacc.c  */
    7919 #line 2016 "parser.yy"
     7920#line 2017 "parser.yy"
    79207921    {
    79217922                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79287929
    79297930/* Line 1806 of yacc.c  */
    7930 #line 2022 "parser.yy"
     7931#line 2023 "parser.yy"
    79317932    {
    79327933                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79397940
    79407941/* Line 1806 of yacc.c  */
    7941 #line 2028 "parser.yy"
     7942#line 2029 "parser.yy"
    79427943    {
    79437944                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79507951
    79517952/* Line 1806 of yacc.c  */
    7952 #line 2036 "parser.yy"
     7953#line 2037 "parser.yy"
    79537954    {
    79547955                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79617962
    79627963/* Line 1806 of yacc.c  */
    7963 #line 2042 "parser.yy"
     7964#line 2043 "parser.yy"
    79647965    {
    79657966                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79727973
    79737974/* Line 1806 of yacc.c  */
    7974 #line 2050 "parser.yy"
     7975#line 2051 "parser.yy"
    79757976    {
    79767977                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79837984
    79847985/* Line 1806 of yacc.c  */
    7985 #line 2056 "parser.yy"
     7986#line 2057 "parser.yy"
    79867987    {
    79877988                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79947995
    79957996/* Line 1806 of yacc.c  */
    7996 #line 2071 "parser.yy"
     7997#line 2072 "parser.yy"
    79977998    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    79987999    break;
     
    80018002
    80028003/* Line 1806 of yacc.c  */
    8003 #line 2081 "parser.yy"
     8004#line 2082 "parser.yy"
    80048005    { (yyval.decl) = 0; }
    80058006    break;
     
    80088009
    80098010/* Line 1806 of yacc.c  */
    8010 #line 2088 "parser.yy"
     8011#line 2089 "parser.yy"
    80118012    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    80128013    break;
     
    80158016
    80168017/* Line 1806 of yacc.c  */
    8017 #line 2094 "parser.yy"
     8018#line 2095 "parser.yy"
    80188019    { (yyval.decl) = 0; }
    80198020    break;
    80208021
    80218022  case 557:
    8022 
    8023 /* Line 1806 of yacc.c  */
    8024 #line 2109 "parser.yy"
    8025     {}
    8026     break;
    8027 
    8028   case 558:
    80298023
    80308024/* Line 1806 of yacc.c  */
     
    80338027    break;
    80348028
    8035   case 559:
     8029  case 558:
    80368030
    80378031/* Line 1806 of yacc.c  */
     
    80408034    break;
    80418035
    8042   case 560:
     8036  case 559:
    80438037
    80448038/* Line 1806 of yacc.c  */
     
    80478041    break;
    80488042
     8043  case 560:
     8044
     8045/* Line 1806 of yacc.c  */
     8046#line 2113 "parser.yy"
     8047    {}
     8048    break;
     8049
    80498050  case 561:
    80508051
    80518052/* Line 1806 of yacc.c  */
    8052 #line 2147 "parser.yy"
     8053#line 2148 "parser.yy"
    80538054    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80548055    break;
     
    80578058
    80588059/* Line 1806 of yacc.c  */
    8059 #line 2150 "parser.yy"
     8060#line 2151 "parser.yy"
    80608061    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80618062    break;
     
    80648065
    80658066/* Line 1806 of yacc.c  */
    8066 #line 2152 "parser.yy"
     8067#line 2153 "parser.yy"
    80678068    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80688069    break;
     
    80718072
    80728073/* Line 1806 of yacc.c  */
    8073 #line 2157 "parser.yy"
     8074#line 2158 "parser.yy"
    80748075    {
    80758076                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    80818082
    80828083/* Line 1806 of yacc.c  */
    8083 #line 2162 "parser.yy"
     8084#line 2163 "parser.yy"
    80848085    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80858086    break;
     
    80888089
    80898090/* Line 1806 of yacc.c  */
    8090 #line 2167 "parser.yy"
     8091#line 2168 "parser.yy"
    80918092    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    80928093    break;
     
    80958096
    80968097/* Line 1806 of yacc.c  */
    8097 #line 2169 "parser.yy"
     8098#line 2170 "parser.yy"
    80988099    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    80998100    break;
     
    81028103
    81038104/* Line 1806 of yacc.c  */
    8104 #line 2171 "parser.yy"
     8105#line 2172 "parser.yy"
    81058106    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81068107    break;
     
    81098110
    81108111/* Line 1806 of yacc.c  */
    8111 #line 2176 "parser.yy"
     8112#line 2177 "parser.yy"
    81128113    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    81138114    break;
     
    81168117
    81178118/* Line 1806 of yacc.c  */
    8118 #line 2178 "parser.yy"
     8119#line 2179 "parser.yy"
    81198120    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81208121    break;
     
    81238124
    81248125/* Line 1806 of yacc.c  */
    8125 #line 2180 "parser.yy"
     8126#line 2181 "parser.yy"
    81268127    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81278128    break;
     
    81308131
    81318132/* Line 1806 of yacc.c  */
    8132 #line 2182 "parser.yy"
     8133#line 2183 "parser.yy"
    81338134    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81348135    break;
     
    81378138
    81388139/* Line 1806 of yacc.c  */
    8139 #line 2187 "parser.yy"
     8140#line 2188 "parser.yy"
    81408141    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81418142    break;
     
    81448145
    81458146/* Line 1806 of yacc.c  */
    8146 #line 2189 "parser.yy"
     8147#line 2190 "parser.yy"
    81478148    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81488149    break;
     
    81518152
    81528153/* Line 1806 of yacc.c  */
    8153 #line 2199 "parser.yy"
     8154#line 2200 "parser.yy"
    81548155    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81558156    break;
     
    81588159
    81598160/* Line 1806 of yacc.c  */
    8160 #line 2202 "parser.yy"
     8161#line 2203 "parser.yy"
    81618162    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81628163    break;
     
    81658166
    81668167/* Line 1806 of yacc.c  */
    8167 #line 2207 "parser.yy"
     8168#line 2208 "parser.yy"
    81688169    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    81698170    break;
     
    81728173
    81738174/* Line 1806 of yacc.c  */
    8174 #line 2209 "parser.yy"
     8175#line 2210 "parser.yy"
    81758176    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81768177    break;
     
    81798180
    81808181/* Line 1806 of yacc.c  */
    8181 #line 2211 "parser.yy"
     8182#line 2212 "parser.yy"
    81828183    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81838184    break;
     
    81868187
    81878188/* Line 1806 of yacc.c  */
    8188 #line 2216 "parser.yy"
     8189#line 2217 "parser.yy"
    81898190    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81908191    break;
     
    81938194
    81948195/* Line 1806 of yacc.c  */
    8195 #line 2218 "parser.yy"
     8196#line 2219 "parser.yy"
    81968197    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    81978198    break;
     
    82008201
    82018202/* Line 1806 of yacc.c  */
    8202 #line 2220 "parser.yy"
     8203#line 2221 "parser.yy"
    82038204    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82048205    break;
     
    82078208
    82088209/* Line 1806 of yacc.c  */
    8209 #line 2225 "parser.yy"
     8210#line 2226 "parser.yy"
    82108211    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82118212    break;
     
    82148215
    82158216/* Line 1806 of yacc.c  */
    8216 #line 2227 "parser.yy"
     8217#line 2228 "parser.yy"
    82178218    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82188219    break;
     
    82218222
    82228223/* Line 1806 of yacc.c  */
    8223 #line 2229 "parser.yy"
     8224#line 2230 "parser.yy"
    82248225    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82258226    break;
     
    82288229
    82298230/* Line 1806 of yacc.c  */
    8230 #line 2244 "parser.yy"
     8231#line 2245 "parser.yy"
    82318232    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    82328233    break;
     
    82358236
    82368237/* Line 1806 of yacc.c  */
    8237 #line 2246 "parser.yy"
     8238#line 2247 "parser.yy"
    82388239    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    82398240    break;
     
    82428243
    82438244/* Line 1806 of yacc.c  */
    8244 #line 2248 "parser.yy"
     8245#line 2249 "parser.yy"
    82458246    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82468247    break;
     
    82498250
    82508251/* Line 1806 of yacc.c  */
    8251 #line 2253 "parser.yy"
     8252#line 2254 "parser.yy"
    82528253    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82538254    break;
     
    82568257
    82578258/* Line 1806 of yacc.c  */
    8258 #line 2255 "parser.yy"
     8259#line 2256 "parser.yy"
    82598260    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    82608261    break;
     
    82638264
    82648265/* Line 1806 of yacc.c  */
    8265 #line 2257 "parser.yy"
     8266#line 2258 "parser.yy"
    82668267    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82678268    break;
     
    82708271
    82718272/* Line 1806 of yacc.c  */
    8272 #line 2262 "parser.yy"
     8273#line 2263 "parser.yy"
    82738274    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82748275    break;
     
    82778278
    82788279/* Line 1806 of yacc.c  */
    8279 #line 2264 "parser.yy"
     8280#line 2265 "parser.yy"
    82808281    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82818282    break;
     
    82848285
    82858286/* Line 1806 of yacc.c  */
    8286 #line 2266 "parser.yy"
     8287#line 2267 "parser.yy"
    82878288    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82888289    break;
     
    82918292
    82928293/* Line 1806 of yacc.c  */
    8293 #line 2281 "parser.yy"
     8294#line 2282 "parser.yy"
    82948295    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82958296    break;
     
    82988299
    82998300/* Line 1806 of yacc.c  */
    8300 #line 2284 "parser.yy"
     8301#line 2285 "parser.yy"
    83018302    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83028303    break;
     
    83058306
    83068307/* Line 1806 of yacc.c  */
    8307 #line 2286 "parser.yy"
     8308#line 2287 "parser.yy"
    83088309    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83098310    break;
     
    83128313
    83138314/* Line 1806 of yacc.c  */
    8314 #line 2292 "parser.yy"
     8315#line 2293 "parser.yy"
    83158316    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83168317    break;
     
    83198320
    83208321/* Line 1806 of yacc.c  */
    8321 #line 2297 "parser.yy"
     8322#line 2298 "parser.yy"
    83228323    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83238324    break;
     
    83268327
    83278328/* Line 1806 of yacc.c  */
    8328 #line 2299 "parser.yy"
     8329#line 2300 "parser.yy"
    83298330    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83308331    break;
     
    83338334
    83348335/* Line 1806 of yacc.c  */
    8335 #line 2301 "parser.yy"
     8336#line 2302 "parser.yy"
    83368337    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83378338    break;
     
    83408341
    83418342/* Line 1806 of yacc.c  */
    8342 #line 2306 "parser.yy"
     8343#line 2307 "parser.yy"
    83438344    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    83448345    break;
     
    83478348
    83488349/* Line 1806 of yacc.c  */
    8349 #line 2308 "parser.yy"
     8350#line 2309 "parser.yy"
    83508351    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83518352    break;
     
    83548355
    83558356/* Line 1806 of yacc.c  */
    8356 #line 2310 "parser.yy"
     8357#line 2311 "parser.yy"
    83578358    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83588359    break;
     
    83618362
    83628363/* Line 1806 of yacc.c  */
    8363 #line 2312 "parser.yy"
     8364#line 2313 "parser.yy"
    83648365    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83658366    break;
     
    83688369
    83698370/* Line 1806 of yacc.c  */
    8370 #line 2317 "parser.yy"
     8371#line 2318 "parser.yy"
    83718372    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    83728373    break;
     
    83758376
    83768377/* Line 1806 of yacc.c  */
    8377 #line 2319 "parser.yy"
     8378#line 2320 "parser.yy"
    83788379    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83798380    break;
     
    83828383
    83838384/* Line 1806 of yacc.c  */
    8384 #line 2321 "parser.yy"
     8385#line 2322 "parser.yy"
    83858386    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83868387    break;
     
    83898390
    83908391/* Line 1806 of yacc.c  */
    8391 #line 2331 "parser.yy"
     8392#line 2332 "parser.yy"
    83928393    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83938394    break;
     
    83968397
    83978398/* Line 1806 of yacc.c  */
    8398 #line 2334 "parser.yy"
     8399#line 2335 "parser.yy"
    83998400    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84008401    break;
     
    84038404
    84048405/* Line 1806 of yacc.c  */
    8405 #line 2336 "parser.yy"
     8406#line 2337 "parser.yy"
    84068407    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84078408    break;
     
    84108411
    84118412/* Line 1806 of yacc.c  */
    8412 #line 2341 "parser.yy"
     8413#line 2342 "parser.yy"
    84138414    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    84148415    break;
     
    84178418
    84188419/* Line 1806 of yacc.c  */
    8419 #line 2343 "parser.yy"
     8420#line 2344 "parser.yy"
    84208421    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    84218422    break;
     
    84248425
    84258426/* Line 1806 of yacc.c  */
    8426 #line 2345 "parser.yy"
     8427#line 2346 "parser.yy"
    84278428    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84288429    break;
     
    84318432
    84328433/* Line 1806 of yacc.c  */
    8433 #line 2350 "parser.yy"
     8434#line 2351 "parser.yy"
    84348435    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    84358436    break;
     
    84388439
    84398440/* Line 1806 of yacc.c  */
    8440 #line 2352 "parser.yy"
     8441#line 2353 "parser.yy"
    84418442    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84428443    break;
     
    84458446
    84468447/* Line 1806 of yacc.c  */
    8447 #line 2354 "parser.yy"
     8448#line 2355 "parser.yy"
    84488449    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84498450    break;
     
    84528453
    84538454/* Line 1806 of yacc.c  */
    8454 #line 2356 "parser.yy"
     8455#line 2357 "parser.yy"
    84558456    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84568457    break;
     
    84598460
    84608461/* Line 1806 of yacc.c  */
    8461 #line 2361 "parser.yy"
     8462#line 2362 "parser.yy"
    84628463    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    84638464    break;
     
    84668467
    84678468/* Line 1806 of yacc.c  */
    8468 #line 2363 "parser.yy"
     8469#line 2364 "parser.yy"
    84698470    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    84708471    break;
     
    84738474
    84748475/* Line 1806 of yacc.c  */
    8475 #line 2365 "parser.yy"
     8476#line 2366 "parser.yy"
    84768477    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84778478    break;
     
    84808481
    84818482/* Line 1806 of yacc.c  */
    8482 #line 2396 "parser.yy"
     8483#line 2397 "parser.yy"
    84838484    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84848485    break;
     
    84878488
    84888489/* Line 1806 of yacc.c  */
    8489 #line 2399 "parser.yy"
     8490#line 2400 "parser.yy"
    84908491    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84918492    break;
     
    84948495
    84958496/* Line 1806 of yacc.c  */
    8496 #line 2401 "parser.yy"
     8497#line 2402 "parser.yy"
    84978498    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84988499    break;
     
    85018502
    85028503/* Line 1806 of yacc.c  */
    8503 #line 2406 "parser.yy"
     8504#line 2407 "parser.yy"
    85048505    {
    85058506                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    85118512
    85128513/* Line 1806 of yacc.c  */
    8513 #line 2411 "parser.yy"
     8514#line 2412 "parser.yy"
    85148515    {
    85158516                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    85218522
    85228523/* Line 1806 of yacc.c  */
    8523 #line 2419 "parser.yy"
     8524#line 2420 "parser.yy"
    85248525    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85258526    break;
     
    85288529
    85298530/* Line 1806 of yacc.c  */
    8530 #line 2421 "parser.yy"
     8531#line 2422 "parser.yy"
    85318532    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85328533    break;
     
    85358536
    85368537/* Line 1806 of yacc.c  */
    8537 #line 2423 "parser.yy"
     8538#line 2424 "parser.yy"
    85388539    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85398540    break;
     
    85428543
    85438544/* Line 1806 of yacc.c  */
    8544 #line 2428 "parser.yy"
     8545#line 2429 "parser.yy"
    85458546    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    85468547    break;
     
    85498550
    85508551/* Line 1806 of yacc.c  */
    8551 #line 2430 "parser.yy"
     8552#line 2431 "parser.yy"
    85528553    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85538554    break;
     
    85568557
    85578558/* Line 1806 of yacc.c  */
    8558 #line 2435 "parser.yy"
     8559#line 2436 "parser.yy"
    85598560    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    85608561    break;
     
    85638564
    85648565/* Line 1806 of yacc.c  */
    8565 #line 2437 "parser.yy"
     8566#line 2438 "parser.yy"
    85668567    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85678568    break;
     
    85708571
    85718572/* Line 1806 of yacc.c  */
    8572 #line 2452 "parser.yy"
     8573#line 2453 "parser.yy"
    85738574    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85748575    break;
     
    85778578
    85788579/* Line 1806 of yacc.c  */
    8579 #line 2454 "parser.yy"
     8580#line 2455 "parser.yy"
    85808581    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85818582    break;
     
    85848585
    85858586/* Line 1806 of yacc.c  */
    8586 #line 2459 "parser.yy"
     8587#line 2460 "parser.yy"
    85878588    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    85888589    break;
     
    85918592
    85928593/* Line 1806 of yacc.c  */
    8593 #line 2461 "parser.yy"
     8594#line 2462 "parser.yy"
    85948595    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    85958596    break;
     
    85988599
    85998600/* Line 1806 of yacc.c  */
    8600 #line 2463 "parser.yy"
     8601#line 2464 "parser.yy"
    86018602    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    86028603    break;
     
    86058606
    86068607/* Line 1806 of yacc.c  */
    8607 #line 2465 "parser.yy"
     8608#line 2466 "parser.yy"
    86088609    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    86098610    break;
     
    86128613
    86138614/* Line 1806 of yacc.c  */
    8614 #line 2467 "parser.yy"
     8615#line 2468 "parser.yy"
    86158616    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86168617    break;
     
    86198620
    86208621/* Line 1806 of yacc.c  */
    8621 #line 2473 "parser.yy"
     8622#line 2474 "parser.yy"
    86228623    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    86238624    break;
     
    86268627
    86278628/* Line 1806 of yacc.c  */
    8628 #line 2475 "parser.yy"
     8629#line 2476 "parser.yy"
    86298630    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    86308631    break;
     
    86338634
    86348635/* Line 1806 of yacc.c  */
    8635 #line 2477 "parser.yy"
     8636#line 2478 "parser.yy"
    86368637    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86378638    break;
     
    86408641
    86418642/* Line 1806 of yacc.c  */
    8642 #line 2482 "parser.yy"
     8643#line 2483 "parser.yy"
    86438644    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    86448645    break;
     
    86478648
    86488649/* Line 1806 of yacc.c  */
    8649 #line 2484 "parser.yy"
     8650#line 2485 "parser.yy"
    86508651    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    86518652    break;
     
    86548655
    86558656/* Line 1806 of yacc.c  */
    8656 #line 2486 "parser.yy"
     8657#line 2487 "parser.yy"
    86578658    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86588659    break;
     
    86618662
    86628663/* Line 1806 of yacc.c  */
    8663 #line 2492 "parser.yy"
     8664#line 2493 "parser.yy"
    86648665    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    86658666    break;
     
    86688669
    86698670/* Line 1806 of yacc.c  */
    8670 #line 2494 "parser.yy"
     8671#line 2495 "parser.yy"
    86718672    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    86728673    break;
     
    86758676
    86768677/* Line 1806 of yacc.c  */
    8677 #line 2500 "parser.yy"
     8678#line 2501 "parser.yy"
    86788679    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    86798680    break;
     
    86828683
    86838684/* Line 1806 of yacc.c  */
    8684 #line 2502 "parser.yy"
     8685#line 2503 "parser.yy"
    86858686    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    86868687    break;
     
    86898690
    86908691/* Line 1806 of yacc.c  */
    8691 #line 2504 "parser.yy"
     8692#line 2505 "parser.yy"
    86928693    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    86938694    break;
     
    86968697
    86978698/* Line 1806 of yacc.c  */
    8698 #line 2506 "parser.yy"
     8699#line 2507 "parser.yy"
    86998700    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    87008701    break;
     
    87038704
    87048705/* Line 1806 of yacc.c  */
    8705 #line 2521 "parser.yy"
     8706#line 2522 "parser.yy"
    87068707    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    87078708    break;
     
    87108711
    87118712/* Line 1806 of yacc.c  */
    8712 #line 2523 "parser.yy"
     8713#line 2524 "parser.yy"
    87138714    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    87148715    break;
     
    87178718
    87188719/* Line 1806 of yacc.c  */
    8719 #line 2528 "parser.yy"
     8720#line 2529 "parser.yy"
    87208721    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    87218722    break;
     
    87248725
    87258726/* Line 1806 of yacc.c  */
    8726 #line 2530 "parser.yy"
     8727#line 2531 "parser.yy"
    87278728    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    87288729    break;
     
    87318732
    87328733/* Line 1806 of yacc.c  */
    8733 #line 2532 "parser.yy"
     8734#line 2533 "parser.yy"
    87348735    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    87358736    break;
     
    87388739
    87398740/* Line 1806 of yacc.c  */
    8740 #line 2534 "parser.yy"
     8741#line 2535 "parser.yy"
    87418742    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    87428743    break;
     
    87458746
    87468747/* Line 1806 of yacc.c  */
    8747 #line 2536 "parser.yy"
     8748#line 2537 "parser.yy"
    87488749    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87498750    break;
     
    87528753
    87538754/* Line 1806 of yacc.c  */
    8754 #line 2542 "parser.yy"
     8755#line 2543 "parser.yy"
    87558756    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87568757    break;
     
    87598760
    87608761/* Line 1806 of yacc.c  */
    8761 #line 2544 "parser.yy"
     8762#line 2545 "parser.yy"
    87628763    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87638764    break;
     
    87668767
    87678768/* Line 1806 of yacc.c  */
    8768 #line 2546 "parser.yy"
     8769#line 2547 "parser.yy"
    87698770    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87708771    break;
     
    87738774
    87748775/* Line 1806 of yacc.c  */
    8775 #line 2551 "parser.yy"
     8776#line 2552 "parser.yy"
    87768777    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    87778778    break;
     
    87808781
    87818782/* Line 1806 of yacc.c  */
    8782 #line 2553 "parser.yy"
     8783#line 2554 "parser.yy"
    87838784    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    87848785    break;
     
    87878788
    87888789/* Line 1806 of yacc.c  */
    8789 #line 2555 "parser.yy"
     8790#line 2556 "parser.yy"
    87908791    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87918792    break;
     
    87948795
    87958796/* Line 1806 of yacc.c  */
    8796 #line 2562 "parser.yy"
     8797#line 2563 "parser.yy"
    87978798    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    87988799    break;
     
    88018802
    88028803/* Line 1806 of yacc.c  */
    8803 #line 2573 "parser.yy"
     8804#line 2574 "parser.yy"
    88048805    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    88058806    break;
     
    88088809
    88098810/* Line 1806 of yacc.c  */
    8810 #line 2576 "parser.yy"
     8811#line 2577 "parser.yy"
    88118812    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    88128813    break;
     
    88158816
    88168817/* Line 1806 of yacc.c  */
    8817 #line 2578 "parser.yy"
     8818#line 2579 "parser.yy"
    88188819    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    88198820    break;
     
    88228823
    88238824/* Line 1806 of yacc.c  */
    8824 #line 2581 "parser.yy"
     8825#line 2582 "parser.yy"
    88258826    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    88268827    break;
     
    88298830
    88308831/* Line 1806 of yacc.c  */
    8831 #line 2583 "parser.yy"
     8832#line 2584 "parser.yy"
    88328833    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    88338834    break;
     
    88368837
    88378838/* Line 1806 of yacc.c  */
    8838 #line 2585 "parser.yy"
     8839#line 2586 "parser.yy"
    88398840    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    88408841    break;
     
    88438844
    88448845/* Line 1806 of yacc.c  */
    8845 #line 2599 "parser.yy"
     8846#line 2600 "parser.yy"
    88468847    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    88478848    break;
     
    88508851
    88518852/* Line 1806 of yacc.c  */
    8852 #line 2601 "parser.yy"
     8853#line 2602 "parser.yy"
    88538854    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    88548855    break;
     
    88578858
    88588859/* Line 1806 of yacc.c  */
    8859 #line 2606 "parser.yy"
     8860#line 2607 "parser.yy"
    88608861    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    88618862    break;
     
    88648865
    88658866/* Line 1806 of yacc.c  */
    8866 #line 2608 "parser.yy"
     8867#line 2609 "parser.yy"
    88678868    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    88688869    break;
     
    88718872
    88728873/* Line 1806 of yacc.c  */
    8873 #line 2610 "parser.yy"
     8874#line 2611 "parser.yy"
    88748875    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    88758876    break;
     
    88788879
    88798880/* Line 1806 of yacc.c  */
    8880 #line 2612 "parser.yy"
     8881#line 2613 "parser.yy"
    88818882    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    88828883    break;
     
    88858886
    88868887/* Line 1806 of yacc.c  */
    8887 #line 2614 "parser.yy"
     8888#line 2615 "parser.yy"
    88888889    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88898890    break;
     
    88928893
    88938894/* Line 1806 of yacc.c  */
    8894 #line 2620 "parser.yy"
     8895#line 2621 "parser.yy"
    88958896    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    88968897    break;
     
    88998900
    89008901/* Line 1806 of yacc.c  */
    8901 #line 2622 "parser.yy"
     8902#line 2623 "parser.yy"
    89028903    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    89038904    break;
     
    89068907
    89078908/* Line 1806 of yacc.c  */
    8908 #line 2624 "parser.yy"
     8909#line 2625 "parser.yy"
    89098910    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    89108911    break;
     
    89138914
    89148915/* Line 1806 of yacc.c  */
    8915 #line 2629 "parser.yy"
     8916#line 2630 "parser.yy"
    89168917    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    89178918    break;
     
    89208921
    89218922/* Line 1806 of yacc.c  */
    8922 #line 2631 "parser.yy"
     8923#line 2632 "parser.yy"
    89238924    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    89248925    break;
     
    89278928
    89288929/* Line 1806 of yacc.c  */
    8929 #line 2641 "parser.yy"
     8930#line 2642 "parser.yy"
    89308931    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    89318932    break;
     
    89348935
    89358936/* Line 1806 of yacc.c  */
    8936 #line 2651 "parser.yy"
     8937#line 2652 "parser.yy"
    89378938    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89388939    break;
     
    89418942
    89428943/* Line 1806 of yacc.c  */
    8943 #line 2653 "parser.yy"
     8944#line 2654 "parser.yy"
    89448945    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89458946    break;
     
    89488949
    89498950/* Line 1806 of yacc.c  */
    8950 #line 2655 "parser.yy"
     8951#line 2656 "parser.yy"
    89518952    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89528953    break;
     
    89558956
    89568957/* Line 1806 of yacc.c  */
    8957 #line 2657 "parser.yy"
     8958#line 2658 "parser.yy"
    89588959    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89598960    break;
     
    89628963
    89638964/* Line 1806 of yacc.c  */
    8964 #line 2659 "parser.yy"
     8965#line 2660 "parser.yy"
    89658966    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89668967    break;
     
    89698970
    89708971/* Line 1806 of yacc.c  */
    8971 #line 2661 "parser.yy"
     8972#line 2662 "parser.yy"
    89728973    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89738974    break;
     
    89768977
    89778978/* Line 1806 of yacc.c  */
    8978 #line 2668 "parser.yy"
     8979#line 2669 "parser.yy"
    89798980    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89808981    break;
     
    89838984
    89848985/* Line 1806 of yacc.c  */
    8985 #line 2670 "parser.yy"
     8986#line 2671 "parser.yy"
    89868987    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89878988    break;
     
    89908991
    89918992/* Line 1806 of yacc.c  */
    8992 #line 2672 "parser.yy"
     8993#line 2673 "parser.yy"
    89938994    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89948995    break;
     
    89978998
    89988999/* Line 1806 of yacc.c  */
    8999 #line 2674 "parser.yy"
     9000#line 2675 "parser.yy"
    90009001    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    90019002    break;
     
    90049005
    90059006/* Line 1806 of yacc.c  */
    9006 #line 2676 "parser.yy"
     9007#line 2677 "parser.yy"
    90079008    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90089009    break;
     
    90119012
    90129013/* Line 1806 of yacc.c  */
    9013 #line 2678 "parser.yy"
     9014#line 2679 "parser.yy"
    90149015    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90159016    break;
     
    90189019
    90199020/* Line 1806 of yacc.c  */
    9020 #line 2680 "parser.yy"
     9021#line 2681 "parser.yy"
    90219022    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90229023    break;
     
    90259026
    90269027/* Line 1806 of yacc.c  */
    9027 #line 2682 "parser.yy"
     9028#line 2683 "parser.yy"
    90289029    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90299030    break;
     
    90329033
    90339034/* Line 1806 of yacc.c  */
    9034 #line 2684 "parser.yy"
     9035#line 2685 "parser.yy"
    90359036    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    90369037    break;
     
    90399040
    90409041/* Line 1806 of yacc.c  */
    9041 #line 2686 "parser.yy"
     9042#line 2687 "parser.yy"
    90429043    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90439044    break;
     
    90469047
    90479048/* Line 1806 of yacc.c  */
    9048 #line 2691 "parser.yy"
     9049#line 2692 "parser.yy"
    90499050    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    90509051    break;
     
    90539054
    90549055/* Line 1806 of yacc.c  */
    9055 #line 2693 "parser.yy"
     9056#line 2694 "parser.yy"
    90569057    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    90579058    break;
     
    90609061
    90619062/* Line 1806 of yacc.c  */
    9062 #line 2698 "parser.yy"
     9063#line 2699 "parser.yy"
    90639064    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    90649065    break;
     
    90679068
    90689069/* Line 1806 of yacc.c  */
    9069 #line 2700 "parser.yy"
     9070#line 2701 "parser.yy"
    90709071    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    90719072    break;
     
    90749075
    90759076/* Line 1806 of yacc.c  */
    9076 #line 2727 "parser.yy"
     9077#line 2728 "parser.yy"
    90779078    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    90789079    break;
     
    90819082
    90829083/* Line 1806 of yacc.c  */
    9083 #line 2738 "parser.yy"
     9084#line 2739 "parser.yy"
    90849085    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90859086    break;
     
    90889089
    90899090/* Line 1806 of yacc.c  */
    9090 #line 2740 "parser.yy"
     9091#line 2741 "parser.yy"
    90919092    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90929093    break;
     
    90959096
    90969097/* Line 1806 of yacc.c  */
    9097 #line 2742 "parser.yy"
     9098#line 2743 "parser.yy"
    90989099    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90999100    break;
     
    91029103
    91039104/* Line 1806 of yacc.c  */
    9104 #line 2744 "parser.yy"
     9105#line 2745 "parser.yy"
    91059106    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    91069107    break;
     
    91099110
    91109111/* Line 1806 of yacc.c  */
    9111 #line 2746 "parser.yy"
     9112#line 2747 "parser.yy"
    91129113    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    91139114    break;
     
    91169117
    91179118/* Line 1806 of yacc.c  */
    9118 #line 2748 "parser.yy"
     9119#line 2749 "parser.yy"
    91199120    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    91209121    break;
     
    91239124
    91249125/* Line 1806 of yacc.c  */
    9125 #line 2755 "parser.yy"
     9126#line 2756 "parser.yy"
    91269127    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91279128    break;
     
    91309131
    91319132/* Line 1806 of yacc.c  */
    9132 #line 2757 "parser.yy"
     9133#line 2758 "parser.yy"
    91339134    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91349135    break;
     
    91379138
    91389139/* Line 1806 of yacc.c  */
    9139 #line 2759 "parser.yy"
     9140#line 2760 "parser.yy"
    91409141    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91419142    break;
     
    91449145
    91459146/* Line 1806 of yacc.c  */
    9146 #line 2761 "parser.yy"
     9147#line 2762 "parser.yy"
    91479148    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91489149    break;
     
    91519152
    91529153/* Line 1806 of yacc.c  */
    9153 #line 2763 "parser.yy"
     9154#line 2764 "parser.yy"
    91549155    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91559156    break;
     
    91589159
    91599160/* Line 1806 of yacc.c  */
    9160 #line 2765 "parser.yy"
     9161#line 2766 "parser.yy"
    91619162    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91629163    break;
     
    91659166
    91669167/* Line 1806 of yacc.c  */
    9167 #line 2770 "parser.yy"
     9168#line 2771 "parser.yy"
    91689169    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    91699170    break;
     
    91729173
    91739174/* Line 1806 of yacc.c  */
    9174 #line 2775 "parser.yy"
     9175#line 2776 "parser.yy"
    91759176    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    91769177    break;
     
    91799180
    91809181/* Line 1806 of yacc.c  */
    9181 #line 2777 "parser.yy"
     9182#line 2778 "parser.yy"
    91829183    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    91839184    break;
     
    91869187
    91879188/* Line 1806 of yacc.c  */
    9188 #line 2779 "parser.yy"
     9189#line 2780 "parser.yy"
    91899190    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    91909191    break;
     
    91939194
    91949195/* Line 1806 of yacc.c  */
    9195 #line 2803 "parser.yy"
     9196#line 2804 "parser.yy"
    91969197    { (yyval.en) = 0; }
    91979198    break;
     
    92009201
    92019202/* Line 1806 of yacc.c  */
    9202 #line 2805 "parser.yy"
     9203#line 2806 "parser.yy"
    92039204    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    92049205    break;
     
    92079208
    92089209/* Line 1806 of yacc.c  */
    9209 #line 9210 "Parser/parser.cc"
     9210#line 9211 "Parser/parser.cc"
    92109211      default: break;
    92119212    }
     
    94389439
    94399440/* Line 2067 of yacc.c  */
    9440 #line 2808 "parser.yy"
     9441#line 2809 "parser.yy"
    94419442
    94429443// ----end of grammar----
  • src/Parser/parser.h

    ra752883 r984dce6  
    262262
    263263/* Line 2068 of yacc.c  */
    264 #line 111 "parser.yy"
     264#line 112 "parser.yy"
    265265
    266266        Token tok;
  • src/Parser/parser.yy

    ra752883 r984dce6  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Mar  2 17:24:45 2016
    13 // Update Count     : 1495
     12// Last Modified On : Mon Mar 21 18:18:34 2016
     13// Update Count     : 1497
    1414//
    1515
     
    5151#include <cstdio>
    5252#include <stack>
     53#include "lex.h"
     54#include "parser.h"
     55#include "ParseNode.h"
    5356#include "TypedefTable.h"
    54 #include "lex.h"
    55 #include "ParseNode.h"
    5657#include "TypeData.h"
    5758#include "LinkageSpec.h"
Note: See TracChangeset for help on using the changeset viewer.