Changeset 08061589


Ignore:
Timestamp:
Jul 31, 2016, 7:06:22 PM (8 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, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
182fe1e
Parents:
057b34f
Message:

more case statement cleanup

Files:
7 edited

Legend:

Unmodified
Added
Removed
  • INSTALL

    r057b34f r08061589  
    33
    44Cforall is built using GNU Make and the GNU Autoconf system.  It also requires
    5 g++ version 4, bison and flex.  On systems where GNU Make is the default make
    6 it may suffice to build the system by entering the commands
     5g++ version >= 4.6, bison and flex.  On systems where GNU Make is the default
     6make, the system is built by entering the commands:
    77
    88        ./configure
     
    1717
    1818--prefix=/some/directory controls the path prefix common to all installed
    19   cfa-cc components.  Some components will be installed in /some/directory/bin,
     19  cfa-cc components.  Some components are installed in /some/directory/bin,
    2020  others in /some/directory/lib.  If unspecified, this defaults to /usr/local.
    21   If you wish to use (a subdirectory of) your home directory, ${HOME}/some/dir
    22   works, but it is important not to put quotes around the directory path;
    23   Cforall may appear to build, but the installed version may not work properly.
     21  To use (a subdirectory of) your home directory, ${HOME}/some/dir works, but
     22  it is important not to put quotes around the directory path; Cforall may
     23  appear to build, but the installed version may not work properly.
    2424
    2525--with-backend-compiler=PROGRAM specifies the installed path of gcc.  It
  • doc/LaTeXmacros/common.tex

    r057b34f r08061589  
    1010%% Author           : Peter A. Buhr
    1111%% Created On       : Sat Apr  9 10:06:17 2016
    12 %% Last Modified By : Peter A. Buhr
    13 %% Last Modified On : Tue Jul 12 20:37:57 2016
    14 %% Update Count     : 206
     12%% Last Modified By :
     13%% Last Modified On : Sun Jul 31 07:22:50 2016
     14%% Update Count     : 207
    1515%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1616
     
    208208        morekeywords={_Alignas,_Alignof,__alignof,__alignof__,asm,__asm,__asm__,_At,_Atomic,__attribute,__attribute__,auto,
    209209                _Bool,catch,catchResume,choose,_Complex,__complex,__complex__,__const,__const__,disable,dtype,enable,__extension__,
    210                 fallthru,finally,forall,ftype,_Generic,_Imaginary,inline,__label__,lvalue,_Noreturn,otype,restrict,_Static_assert,
     210                fallthrough,fallthru,finally,forall,ftype,_Generic,_Imaginary,inline,__label__,lvalue,_Noreturn,otype,restrict,_Static_assert,
    211211                _Thread_local,throw,throwResume,trait,try,typeof,__typeof,__typeof__,},
    212212}%
  • doc/user/user.tex

    r057b34f r08061589  
    1010%% Author           : Peter A. Buhr
    1111%% Created On       : Wed Apr  6 14:53:29 2016
    12 %% Last Modified By : Peter A. Buhr
    13 %% Last Modified On : Wed Jul 13 08:14:39 2016
    14 %% Update Count     : 1247
     12%% Last Modified By :
     13%% Last Modified On : Sun Jul 31 07:27:55 2016
     14%% Update Count     : 1254
    1515%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1616
     
    17781778and there is only a medium amount of fall-through from one ©case© clause to the next, and most of these result from a list of case values executing common code, rather than a sequence of case actions that compound.
    17791779\end{itemize}
    1780 These observations help to put the suggested changes to the ©switch© into perspective.
     1780These observations help to put the \CFA changes to the ©switch© into perspective.
    17811781\begin{enumerate}
    17821782\item
     
    17881788still work.
    17891789Nevertheless, reversing the default action would have a non-trivial effect on case actions that compound, such as the above example of processing shell arguments.
    1790 Therefore, to preserve backwards compatibility, it is necessary to introduce a new kind of ©switch© statement, called ©choose©, with no implicit fall-through semantics and an explicit fall-through if the last statement of a case-clause ends with the new keyword ©fallthru©, e.g.:
     1790Therefore, to preserve backwards compatibility, it is necessary to introduce a new kind of ©switch© statement, called ©choose©, with no implicit fall-through semantics and an explicit fall-through if the last statement of a case-clause ends with the new keyword ©fallthrough©/©fallthru©, e.g.:
    17911791\begin{lstlisting}
    17921792®choose® ( i ) {
     
    43424342
    43434343
     4344\section{New Keywowrds}
     4345
     4346©catch©, ©catchResume©, ©choose©, \quad ©disable©, ©dtype©, \quad ©enable©, \quad ©fallthrough©, ©fallthru©, ©finally©, ©forall©, ©ftype©, \quad ©lvalue©, \quad ©otype©, \quad ©throw©, ©throwResume©, ©trait©, ©try©
     4347
     4348
    43444349\section{Incompatible}
    43454350
  • src/CodeGen/CodeGenerator.cc

    r057b34f r08061589  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Jul 31 00:11:54 2016
    13 // Update Count     : 343
     11// Last Modified By :
     12// Last Modified On : Sun Jul 31 08:42:18 2016
     13// Update Count     : 345
    1414//
    1515
     
    4545        bool wantSpacing( Statement * stmt) {
    4646                return dynamic_cast< IfStmt * >( stmt ) || dynamic_cast< CompoundStmt * >( stmt ) ||
    47                         dynamic_cast< WhileStmt * >( stmt ) || dynamic_cast< ForStmt * > ( stmt ) || dynamic_cast< SwitchStmt *>( stmt );
     47                        dynamic_cast< WhileStmt * >( stmt ) || dynamic_cast< ForStmt * >( stmt ) || dynamic_cast< SwitchStmt *>( stmt );
    4848        }
    4949
     
    8383        }
    8484
    85         CodeGenerator::CodeGenerator( std::ostream &os ) : indent( *this), cur_indent( 0 ), insideFunction( false ), output( os ), printLabels( *this ) { }
     85        CodeGenerator::CodeGenerator( std::ostream &os ) : indent( *this), cur_indent( 0 ), insideFunction( false ), output( os ), printLabels( *this ) {}
    8686
    8787        CodeGenerator::CodeGenerator( std::ostream &os, std::string init, int indentation, bool infunp )
  • src/ControlStruct/CaseRangeMutator.cc

    r057b34f r08061589  
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Jul 31 00:14:16 2016
    13 // Update Count     : 29
     11// Last Modified By :
     12// Last Modified On : Sun Jul 31 12:16:28 2016
     13// Update Count     : 32
    1414//
    1515
     
    3737
    3838                        if ( ! newCaseLabels.empty() ) {
     39                                std::cout << "FRED" << std::endl;
    3940                                std::list< Statement * > newCases;
    4041
     
    6465
    6566                return switchStmt;
    66         }
     67        } // CaseRangeMutator::mutate
    6768
    6869        Statement *CaseRangeMutator::mutate( CaseStmt *caseStmt ) {
    69                 if ( TupleExpr *tcond = dynamic_cast< TupleExpr * >( caseStmt->get_condition() ) ) { // case list
     70                // case list, e.g., case 1, 3, 5:
     71                if ( TupleExpr *tcond = dynamic_cast< TupleExpr * >( caseStmt->get_condition() ) ) {
    7072                        assert( ! tcond->get_exprs().empty() );
    71                         for ( std::list< Expression * >::iterator i = tcond->get_exprs().begin(); i != tcond->get_exprs().end(); i++ )
     73                        for ( std::list< Expression * >::iterator i = tcond->get_exprs().begin(); i != tcond->get_exprs().end(); i++ ) {
    7274                                newCaseLabels.push_back( *i );                  // do I need to clone them?
     75                        } // for
    7376                } // if
    7477
     
    7780
    7881                return caseStmt;
    79         }
     82        } // CaseRangeMutator::mutate
    8083} // namespace ControlStruct
    8184
  • src/Parser/lex.cc

    r057b34f r08061589  
    382382        (yy_c_buf_p) = yy_cp;
    383383
    384 #define YY_NUM_RULES 180
    385 #define YY_END_OF_BUFFER 181
     384#define YY_NUM_RULES 181
     385#define YY_END_OF_BUFFER 182
    386386/* This struct is not used in this scanner,
    387387   but its presence is necessary. */
     
    391391        flex_int32_t yy_nxt;
    392392        };
    393 static yyconst flex_int16_t yy_accept[888] =
     393static yyconst flex_int16_t yy_accept[892] =
    394394    {   0,
    395         0,    0,    0,    0,    0,    0,  115,  115,  118,  118,
    396       181,  179,    7,    9,    8,  138,  117,  102,  143,  146,
    397       114,  125,  126,  141,  139,  129,  140,  132,  142,  107,
    398       108,  109,  130,  131,  148,  150,  149,  151,  179,  102,
    399       123,  179,  124,  144,  102,  104,  102,  102,  102,  102,
    400       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    401       102,  102,  127,  147,  128,  145,    7,  179,    4,    4,
    402       180,  105,  180,  106,  115,  116,  122,  118,  119,    7,
    403         9,    0,    8,  155,  174,  102,    0,  167,  137,  160,
    404       168,  165,  152,  163,  153,  164,  162,    0,  112,    3,
    405 
    406         0,  166,  112,  110,    0,    0,  110,  110,    0,    0,
    407       110,  109,  109,  109,    0,  109,  135,  136,  134,  156,
    408       158,  154,  159,  157,    0,    0,    0,    0,    0,    0,
    409         0,    0,    0,    0,    0,    0,    0,    0,    0,  103,
    410       173,    0,  117,  114,  102,    0,    0,  170,    0,  102,
    411       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    412       102,  102,  102,  102,  102,  102,   38,  102,  102,  102,
    413       102,  102,  102,  102,  102,  102,  102,   56,  102,  102,
    414       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    415       102,  102,  102,  102,  169,  161,    7,    0,    0,    0,
    416 
    417         2,    0,    5,  105,    0,    0,    0,  115,    0,  121,
    418       120,  120,    0,    0,    0,  118,    0,    0,    0,    0,
     395        0,    0,    0,    0,    0,    0,  116,  116,  119,  119,
     396      182,  180,    7,    9,    8,  139,  118,  103,  144,  147,
     397      115,  126,  127,  142,  140,  130,  141,  133,  143,  108,
     398      109,  110,  131,  132,  149,  151,  150,  152,  180,  103,
     399      124,  180,  125,  145,  103,  105,  103,  103,  103,  103,
     400      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
     401      103,  103,  128,  148,  129,  146,    7,  180,    4,    4,
     402      181,  106,  181,  107,  116,  117,  123,  119,  120,    7,
     403        9,    0,    8,  156,  175,  103,    0,  168,  138,  161,
     404      169,  166,  153,  164,  154,  165,  163,    0,  113,    3,
     405
     406        0,  167,  113,  111,    0,    0,  111,  111,    0,    0,
     407      111,  110,  110,  110,    0,  110,  136,  137,  135,  157,
     408      159,  155,  160,  158,    0,    0,    0,    0,    0,    0,
     409        0,    0,    0,    0,    0,    0,    0,    0,    0,  104,
     410      174,    0,  118,  115,  103,    0,    0,  171,    0,  103,
     411      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
     412      103,  103,  103,  103,  103,  103,   38,  103,  103,  103,
     413      103,  103,  103,  103,  103,  103,  103,   57,  103,  103,
     414      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
     415      103,  103,  103,  103,  170,  162,    7,    0,    0,    0,
     416
     417        2,    0,    5,  106,    0,    0,    0,  116,    0,  122,
     418      121,  121,    0,    0,    0,  119,    0,    0,    0,    0,
    419419        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    420         0,  133,  112,  112,    0,  112,  112,    0,    0,    6,
    421         0,  110,    0,    0,    0,  112,    0,  110,  110,  110,
    422       110,    0,  111,    0,    0,  109,  109,  109,  109,    0,
    423       171,  172,    0,  177,  175,    0,    0,    0,  103,    0,
    424         0,    0,    0,    0,    0,    0,    0,  102,   17,  102,
    425       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    426       102,  102,  102,  102,  102,  102,  102,   14,  102,  102,
    427 
    428       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    429       102,  102,  102,  102,  102,  102,   50,  102,  102,  102,
    430        63,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    431       102,  102,  102,  102,  102,   89,  102,  102,  102,  102,
    432       102,  102,  102,    0,    0,    0,    0,    0,    0,    0,
    433         0,  120,    0,    0,    0,    0,    0,  120,    0,    0,
    434       178,    0,    0,    0,    0,    0,    0,    0,  112,    0,
    435       112,    0,  112,    0,    0,  112,    0,  110,  110,    0,
    436         0,  111,  111,    0,  111,    0,  111,  109,  109,    0,
    437         0,    0,    0,    0,    0,    0,    0,    0,    0,  176,
    438 
    439       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    440       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    441       102,  102,  102,   21,  102,   24,  102,   27,  102,  102,
    442       102,  102,  102,  102,  102,   41,  102,   43,  102,  102,
    443       102,  102,  102,  102,  102,   55,  102,   66,  102,  102,
    444       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    445       102,  102,  102,  102,   97,  102,  102,    0,    0,    0,
     420        0,  134,  113,  113,    0,  113,  113,    0,    0,    6,
     421        0,  111,    0,    0,    0,  113,    0,  111,  111,  111,
     422      111,    0,  112,    0,    0,  110,  110,  110,  110,    0,
     423      172,  173,    0,  178,  176,    0,    0,    0,  104,    0,
     424        0,    0,    0,    0,    0,    0,    0,  103,   17,  103,
     425      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
     426      103,  103,  103,  103,  103,  103,  103,   14,  103,  103,
     427
     428      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
     429      103,  103,  103,  103,  103,  103,   51,  103,  103,  103,
     430       64,  103,  103,  103,  103,  103,  103,  103,  103,  103,
     431      103,  103,  103,  103,  103,   90,  103,  103,  103,  103,
     432      103,  103,  103,    0,    0,    0,    0,    0,    0,    0,
     433        0,  121,    0,    0,    0,    0,    0,  121,    0,    0,
     434      179,    0,    0,    0,    0,    0,    0,    0,  113,    0,
     435      113,    0,  113,    0,    0,  113,    0,  111,  111,    0,
     436        0,  112,  112,    0,  112,    0,  112,  110,  110,    0,
     437        0,    0,    0,    0,    0,    0,    0,    0,    0,  177,
     438
     439      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
     440      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
     441      103,  103,  103,   21,  103,   24,  103,   27,  103,  103,
     442      103,  103,  103,  103,  103,   41,  103,   43,  103,  103,
     443      103,  103,  103,  103,  103,   56,  103,   67,  103,  103,
     444      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
     445      103,  103,  103,  103,   98,  103,  103,    0,    0,    0,
    446446        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    447         0,  120,    0,    0,    0,    0,    0,  112,    0,    0,
    448         0,    0,    0,    0,  111,  111,    0,  113,    0,  111,
    449 
    450       111,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    451         0,    0,    0,    0,  102,  102,   22,  102,  102,  102,
    452       102,  102,  102,  102,   15,  102,  102,  102,  102,  102,
    453       102,  102,  102,  102,  102,  102,  102,  102,  102,   23,
    454        25,  102,   32,  102,  102,  102,  102,   40,  102,  102,
    455       102,  102,   48,  102,  102,   53,  102,  102,   70,  102,
    456       102,  102,   76,  102,  102,  102,  102,  102,   86,   88,
    457       102,  102,   94,  102,  102,  101,    0,    0,    0,    0,
     447        0,  121,    0,    0,    0,    0,    0,  113,    0,    0,
     448        0,    0,    0,    0,  112,  112,    0,  114,    0,  112,
     449
     450      112,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     451        0,    0,    0,    0,  103,  103,   22,  103,  103,  103,
     452      103,  103,  103,  103,   15,  103,  103,  103,  103,  103,
     453      103,  103,  103,  103,  103,  103,  103,  103,  103,   23,
     454       25,  103,   32,  103,  103,  103,  103,   40,  103,  103,
     455      103,  103,   49,  103,  103,   54,  103,  103,   71,  103,
     456      103,  103,   77,  103,  103,  103,  103,  103,   87,   89,
     457      103,  103,   95,  103,  103,  102,    0,    0,    0,    0,
    458458        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    459         0,    0,    0,    0,    0,  113,    0,    0,  111,  113,
    460 
    461       113,  113,  113,    0,  111,    0,    0,    0,    0,    0,
    462         0,    0,    0,    0,    0,  102,    0,  102,  102,  102,
    463       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    464       102,  102,  102,   58,  102,  102,  102,  102,  102,  102,
    465       102,  102,   28,  102,  102,  102,   39,   42,   45,  102,
    466       102,   51,  102,   60,   67,  102,  102,   75,   77,   80,
    467        81,   83,   84,  102,  102,   91,  102,  102,    0,    1,
    468         0,    0,    0,    0,    0,    0,  105,    0,    0,    0,
    469       120,    0,    0,    0,    0,  113,    0,  113,  113,    0,
    470         0,    0,    0,    0,    0,    0,    0,    0,  102,  102,
    471 
    472        18,  102,  102,  102,  102,  102,  102,  102,   16,  102,
    473       102,  102,   33,  102,  102,  102,  102,  102,  102,  102,
    474       102,  102,  102,  102,  102,   36,   37,  102,   47,   52,
    475       102,  102,  102,   90,  102,  102,    0,    0,    0,    0,
     459        0,    0,    0,    0,    0,  114,    0,    0,  112,  114,
     460
     461      114,  114,  114,    0,  112,    0,    0,    0,    0,    0,
     462        0,    0,    0,    0,    0,  103,    0,  103,  103,  103,
     463      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
     464      103,  103,  103,   59,  103,  103,  103,  103,  103,  103,
     465      103,  103,   28,  103,  103,  103,   39,   42,   45,  103,
     466      103,   52,  103,   61,   68,  103,  103,   76,   78,   81,
     467       82,   84,   85,  103,  103,   92,  103,  103,    0,    1,
     468        0,    0,    0,    0,    0,    0,  106,    0,    0,    0,
     469      121,    0,    0,    0,    0,  114,    0,  114,  114,    0,
     470        0,    0,    0,    0,    0,    0,    0,    0,  103,  103,
     471
     472       18,  103,  103,  103,  103,  103,  103,  103,   16,  103,
     473      103,  103,   33,  103,  103,  103,  103,  103,  103,  103,
     474      103,  103,  103,  103,  103,   36,   37,  103,   48,   53,
     475      103,  103,  103,   91,  103,  103,    0,    0,    0,    0,
    476476        0,    0,    0,    0,    0,    0,    0,    0,    0,   10,
    477        11,   29,   54,  102,  102,  102,  102,  102,  102,  102,
    478       102,  102,  102,  102,   59,   61,   64,  102,  102,   78,
    479        92,  102,  102,   35,   46,   71,   72,  102,   95,   98,
    480         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    481         0,    0,  102,   68,  102,  102,   12,  102,  102,   30,
    482 
    483        34,  102,  102,  102,   65,  102,  102,  102,  102,  102,
    484       102,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    485         0,    0,    0,    0,   57,  102,  102,  102,  102,  102,
    486       102,  102,   49,   62,   73,   79,   93,   99,  102,  102,
    487         0,    0,    0,    0,    0,    0,    0,    0,  102,  102,
    488        13,   19,  102,  102,   31,  102,  102,  102,   26,   87,
    489         0,    0,  102,  102,  102,  102,  102,  102,   74,  100,
    490       102,   85,   20,  102,  102,   44,   82,  102,  102,  102,
    491       102,  102,  102,  102,   96,   69,    0
     477       11,   29,   55,  103,  103,  103,  103,  103,  103,  103,
     478      103,  103,  103,  103,   60,   62,   65,  103,  103,   79,
     479       93,  103,  103,   35,  103,   47,   72,   73,  103,   96,
     480       99,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     481        0,    0,    0,  103,   69,  103,  103,   12,  103,  103,
     482
     483       30,   34,  103,  103,  103,   66,  103,  103,  103,  103,
     484      103,  103,  103,    0,    0,    0,    0,    0,    0,    0,
     485        0,    0,    0,    0,    0,    0,   58,  103,  103,  103,
     486      103,  103,  103,  103,   50,   63,   74,   80,   94,  100,
     487      103,  103,  103,    0,    0,    0,    0,    0,    0,    0,
     488        0,  103,  103,   13,   19,  103,  103,   31,  103,  103,
     489      103,   26,   46,   88,    0,    0,  103,  103,  103,  103,
     490      103,  103,   75,  101,  103,   86,   20,  103,  103,   44,
     491       83,  103,  103,  103,  103,  103,  103,  103,   97,   70,
     492        0
     493
    492494    } ;
    493495
     
    537539    } ;
    538540
    539 static yyconst flex_int16_t yy_base[1062] =
     541static yyconst flex_int16_t yy_base[1066] =
    540542    {   0,
    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,
     543        0,   84, 2285, 2282,   94,    0,  177,  178,  179,  180,
     544     2298, 2825,  191, 2825,  197,   55, 2825, 2244,   60,  173,
     545     2825, 2825, 2825,   56,  188, 2825,  191,  189,  204,  216,
     546      275,    0, 2262, 2825,  216, 2260,  152,  344,  155,  220,
     547     2825,  159, 2825,  217,  226, 2825,  185,  154,  212,  251,
    546548      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,
     549      238,  228, 2825,  225, 2825, 2255,  402,  390, 2825, 2266,
     550     2825, 2234,  235, 2825,    0, 2825,  426,    0, 2825,  417,
     551     2825,  439,  451, 2825,  498, 2232,  264, 2825, 2825, 2825,
     552     2825, 2825, 2248, 2825, 2245, 2825, 2825, 2257,  559, 2825,
     553
     554     2274, 2825,  438,  444,  511,  534,  289,  253,  197,  380,
     555      305,    0,  319,  280,  198,  322, 2825, 2825, 2825, 2243,
     556     2825, 2825, 2825, 2240, 2237,  218,  255, 2252,  298,  350,
     557      368,  312,  440,  398,  405, 2233,  441, 2181,  446, 2209,
     558     2825,  335, 2825, 2825,  468, 2203, 2202, 2825, 2175,  439,
    557559      282,  433,  372,  281,  437,  434,  428,  570,  444,  466,
    558560      464,  469,  475,  321,  492,  438,  471,  445,  474,  512,
    559       489,  503,  496,  521,  276,  515,  516, 2189,  526,  510,
     561      489,  503,  496,  521,  276,  515,  516, 2202,  526,  510,
    560562      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,
     563      599,  582,  593,  584, 2825, 2825,  660,  651, 2249,  666,
     564
     565     2825,  678, 2825, 2196,  607, 2192, 2191,    0,  693, 2825,
     566     2825,  684, 2189, 2186, 2183,    0, 2206,  578,  608,  617,
     567      654,  679,  650,  683,  684,  687, 2203,  690,  691, 2179,
     568     2159, 2825,    0,  683,  710,  686,  700, 2157, 2209, 2825,
     569      714,    0,  427,  746,  764,  786,  808,  621, 2825, 2165,
     570     2138,    0,  794, 2184,  795,  709, 2825, 2160, 2134,  832,
     571     2825, 2825, 2165, 2825, 2825,  711,  714, 2142, 2142,  717,
     572     2138, 2136, 2133,    0, 2130,    0, 2101,  694,  679,  712,
    571573      709,  711,  698,  566,  726,  743,  771,  741,  790,  784,
    572       800,  795,  742,  744,  814,  816,  818, 2118,  819,  745,
     574      800,  795,  742,  744,  814,  816,  818, 2131,  819,  745,
    573575
    574576      820,  821,  822,  823,  824,  746,  825,  748,  659,  831,
    575577      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,
     578     2129,  858,  859,  860,  862,  861,  864,  865,  867,  868,
     579      866,  871,  876,  872,  878, 2126,  880,  689,  881,  882,
     580      892,  896,  893,  953,  954, 2120, 2119, 2118,    0, 2116,
     581        0,  941,  945, 2113,    0, 2112,    0, 2111,    0, 2131,
     582     2825,  940,  941, 2108, 2105,    0, 2104,    0, 2825,  953,
     583      975,  964, 2825,  981,  997, 1021, 2102, 2825, 2825,  939,
     584      940, 1006,  982, 1041,  310, 1039, 1004, 2825, 2825, 2099,
     585     2095, 2091,    0, 2089,    0, 2087,    0, 2084,    0, 2825,
    584586
    585587      886,  941,  960,  962,  977,  976,  980,  982, 1017, 1010,
    586588     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,
     589     1038, 1041, 1053, 2085, 1055, 2083, 1045, 2080, 1056, 1061,
     590     1063, 1065, 1066, 1067, 1070, 2077, 1071, 2076, 1073, 1074,
     591     1075, 1078, 1080, 1081, 1085, 2075, 1087, 2073, 1084, 1089,
    590592     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,
     593     1109, 1116, 1110, 1122, 2070, 1120, 1123, 1179, 2064,    0,
     594     2063,    0, 2062,    0, 2060,    0, 1166, 2057,    0, 2054,
     595        0, 2053, 2052, 2050,    0, 2047,    0, 1173, 2044, 1179,
     596     1137, 1195, 1181, 1178, 1176, 2825, 1219, 1231, 1253, 2055,
     597
     598     2030, 2040, 2037,    0, 2034,    0, 2033,    0, 2032,    0,
     599     2030,    0, 2027,    0, 1141, 1172, 2027, 1180, 1155, 1196,
    598600     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,
     601     1235, 1237, 1238, 1272, 1249, 1252, 1250, 1253, 1254, 2026,
     602     1261, 1256, 2025, 1260, 1263, 1264, 1257, 2023, 1271, 1268,
     603     1269, 1273, 2020, 1275, 1282, 2017, 1283, 1284, 2016, 1276,
     604     1286, 1289, 2015, 1294, 1291, 1296, 1295, 1297, 1310, 2013,
     605     1305, 1308, 2010, 1307, 1300, 2009, 2058, 2003,    0, 2000,
     606        0, 1999,    0, 1998,    0, 1996,    0, 1963,    0, 1961,
     607        0, 1960,    0, 1355, 1361, 1389, 1372, 1957, 2825, 1378,
     608
     609     1325, 1365, 1379, 1954, 2825, 1953,    0, 1952,    0, 1950,
     610        0, 1947,    0,    0,    0, 1947,    0, 1366, 1312, 1311,
    609611     1341, 1323, 1368, 1369, 1374, 1356, 1383, 1372, 1388, 1390,
    610612     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,
     613     1413, 1414, 1946, 1409, 1416, 1419, 1945, 1943, 1940, 1422,
     614     1424, 1939, 1429, 1938, 1936, 1425, 1430, 1933, 1932, 1931,
     615     1929, 1926, 1922, 1436, 1433, 1918, 1439, 1440, 1964, 2825,
     616     1895,    0, 1894,    0,    0,    0, 1896,    0,    0,    0,
     617     2825,    0,    0,    0,    0, 1486, 1891, 2825, 2825, 1492,
     618     1888,    0, 1887,    0,    0,    0,    0, 1886, 1447, 1444,
     619
     620     1887, 1449, 1471, 1479, 1450, 1480, 1482, 1469, 1884, 1486,
    619621     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
     622     1508, 1512, 1513, 1514, 1515, 1883, 1882, 1518, 1880, 1877,
     623     1517, 1520, 1523, 1876, 1521, 1525,    0,    0,    0, 1872,
     624     1870, 1867, 1575,    0, 1866, 1865, 1863, 1860, 1859, 1861,
     625     1859, 1856, 1855, 1531, 1538, 1527, 1528, 1530, 1533, 1552,
     626     1539, 1554, 1553, 1586, 1854, 1559, 1852, 1560, 1561, 1564,
     627     1570, 1572, 1571, 1849, 1574, 1848, 1847, 1845, 1575, 1842,
     628     1841, 1837, 1835, 1828, 1826, 1825, 1822, 1821, 1820, 1818,
     629     1801, 1792, 1791, 1576, 1791, 1579, 1577, 1580, 1582, 1581,
     630
     631     1585, 1784, 1589, 1616, 1593, 1781, 1591, 1599, 1605, 1592,
     632     1606, 1609, 1610, 1771, 1769, 1768, 1747, 1746, 1745, 1738,
     633     1736, 1735, 1693, 1689, 1688, 1687, 1689, 1611, 1612, 1614,
     634     1615, 1618, 1625, 1621, 1686, 1683, 1627, 1682, 1681, 1631,
     635     1635, 1441, 1637, 1677, 1674, 1354, 1319, 1318, 1267, 1212,
     636     1210, 1639, 1640, 1211, 1647, 1623, 1649, 1178, 1652, 1653,
     637     1657, 1177, 1126,  964,  937,  903, 1641, 1643, 1659, 1663,
     638     1664, 1665,  788,  752, 1629,  607,  487, 1666, 1669,  394,
     639      357, 1670, 1672, 1671, 1674, 1676, 1675, 1678,  233,  137,
     640     2825, 1750, 1763, 1776, 1786, 1796, 1809, 1819, 1832, 1845,
     641
     642     1858, 1866, 1876, 1883, 1890, 1897, 1904, 1911, 1918, 1925,
     643     1932, 1939, 1952, 1959, 1963, 1971, 1974, 1981, 1988, 1995,
     644     1998, 2005, 2011, 2024, 2037, 2044, 2051, 2058, 2065, 2068,
     645     2075, 2078, 2085, 2088, 2095, 2098, 2105, 2108, 2115, 2118,
     646     2125, 2128, 2135, 2143, 2150, 2157, 2164, 2171, 2174, 2181,
     647     2184, 2191, 2194, 2201, 2207, 2220, 2227, 2234, 2237, 2244,
     648     2247, 2254, 2257, 2264, 2267, 2274, 2277, 2284, 2287, 2294,
     649     2301, 2304, 2311, 2314, 2321, 2328, 2335, 2338, 2345, 2348,
     650     2355, 2358, 2365, 2368, 2375, 2378, 2385, 2391, 2404, 2411,
     651     2418, 2421, 2428, 2431, 2438, 2441, 2448, 2451, 2458, 2461,
     652
     653     2468, 2471, 2478, 2481, 2488, 2491, 2498, 2505, 2508, 2515,
     654     2518, 2525, 2528, 2535, 2538, 2541, 2547, 2554, 2563, 2570,
     655     2577, 2580, 2587, 2590, 2593, 2599, 2606, 2609, 2612, 2615,
     656     2618, 2621, 2624, 2627, 2634, 2637, 2644, 2647, 2650, 2653,
     657     2656, 2666, 2673, 2676, 2679, 2682, 2689, 2696, 2703, 2706,
     658     2713, 2720, 2727, 2734, 2741, 2748, 2755, 2762, 2769, 2776,
     659     2783, 2790, 2797, 2804, 2811
    658660    } ;
    659661
    660 static yyconst flex_int16_t yy_def[1062] =
     662static yyconst flex_int16_t yy_def[1066] =
    661663    {   0,
    662       887,    1,  888,  888,  887,    5,  889,  889,  890,  890,
    663       887,  887,  887,  887,  887,  887,  887,  891,  887,  887,
    664       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    665       887,   31,  887,  887,  887,  887,  887,  887,  892,  891,
    666       887,  887,  887,  887,  891,  887,  891,  891,  891,  891,
     664      891,    1,  892,  892,  891,    5,  893,  893,  894,  894,
     665      891,  891,  891,  891,  891,  891,  891,  895,  891,  891,
    667666      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    668       891,  891,  887,  887,  887,  887,  887,  893,  887,  887,
    669       887,  894,  887,  887,  895,  887,  887,  896,  887,  887,
    670       887,  887,  887,  887,  887,  891,  887,  887,  887,  887,
    671       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    672 
    673       897,  887,   99,   30,  887,  887,  887,  887,  898,   30,
    674       887,   31,  887,  887,   31,  887,  887,  887,  887,  887,
    675       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    676       887,  887,  887,  887,  887,  887,  887,  887,  887,  899,
    677       887,  887,  887,  887,  891,  900,  901,  887,  887,  891,
     667      891,   31,  891,  891,  891,  891,  891,  891,  896,  895,
     668      891,  891,  891,  891,  895,  891,  895,  895,  895,  895,
     669      895,  895,  895,  895,  895,  895,  895,  895,  895,  895,
     670      895,  895,  891,  891,  891,  891,  891,  897,  891,  891,
     671      891,  898,  891,  891,  899,  891,  891,  900,  891,  891,
     672      891,  891,  891,  891,  891,  895,  891,  891,  891,  891,
     673      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     674
     675      901,  891,   99,   30,  891,  891,  891,  891,  902,   30,
     676      891,   31,  891,  891,   31,  891,  891,  891,  891,  891,
     677      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     678      891,  891,  891,  891,  891,  891,  891,  891,  891,  903,
     679      891,  891,  891,  891,  895,  904,  905,  891,  891,  895,
     680      895,  895,  895,  895,  895,  895,  895,  895,  895,  895,
     681      895,  895,  895,  895,  895,  895,  895,  895,  895,  895,
     682      895,  895,  895,  895,  895,  895,  895,  895,  895,  895,
     683      895,  895,  895,  895,  895,  895,  895,  895,  895,  895,
     684      895,  895,  895,  895,  891,  891,  891,  897,  897,  897,
     685
     686      891,  897,  891,  898,  891,  906,  907,  899,  891,  891,
     687      891,  891,  908,  909,  910,  900,  891,  891,  891,  891,
     688      891,  891,  891,  891,  891,  891,  891,  891,  891,  911,
     689      912,  891,   99,  891,  891,  891,  891,   99,  913,  891,
     690      891,  104,  104,  891,  891,  891,  891,  891,  891,  891,
     691      891,  914,  915,  916,  891,  891,  891,  891,  891,  891,
     692      891,  891,  891,  891,  891,  891,  891,  891,  903,  891,
     693      917,  918,  919,  920,  921,  922,  891,  923,  923,  923,
     694      923,  923,  923,  923,  923,  923,  923,  923,  923,  923,
     695      923,  923,  923,  923,  923,  923,  923,  923,  923,  923,
     696
     697      923,  923,  923,  923,  923,  923,  923,  923,  923,  923,
     698      923,  923,  923,  923,  923,  923,  923,  923,  923,  923,
     699      923,  923,  923,  923,  923,  923,  923,  923,  923,  923,
     700      923,  923,  923,  923,  923,  923,  923,  923,  923,  923,
     701      923,  923,  923,  924,  925,  926,  927,  928,  929,  930,
     702      931,  891,  891,  932,  933,  934,  935,  936,  937,  891,
     703      891,  891,  891,  891,  938,  939,  940,  941,  891,  891,
     704      891,  891,  891,  891,  891,  371,  376,  891,  891,  942,
     705      943,  944,  891,  891,  891,  944,  891,  891,  891,  945,
     706      946,  947,  948,  949,  950,  951,  952,  953,  954,  891,
     707
     708      955,  955,  955,  955,  955,  955,  955,  955,  955,  955,
     709      955,  955,  955,  955,  955,  955,  955,  955,  955,  955,
     710      955,  955,  955,  955,  955,  955,  955,  955,  955,  955,
     711      955,  955,  955,  955,  955,  955,  955,  955,  955,  955,
     712      955,  955,  955,  955,  955,  955,  955,  955,  955,  955,
     713      955,  955,  955,  955,  955,  955,  955,  955,  955,  955,
     714      955,  955,  955,  955,  955,  955,  955,  956,  957,  958,
     715      959,  960,  961,  962,  963,  964,  891,  965,  966,  967,
     716      968,  969,  969,  970,  971,  972,  973,  891,  488,  891,
     717      974,  891,  974,  891,  891,  891,  891,  891,  891,  891,
     718
     719      891,  975,  976,  977,  978,  979,  980,  981,  982,  983,
     720      984,  985,  986,  987,  988,  988,  988,  988,  988,  988,
     721      988,  988,  988,  988,  988,  988,  988,  988,  988,  988,
     722      988,  988,  988,  988,  988,  988,  988,  988,  988,  988,
     723      988,  988,  988,  988,  988,  988,  988,  988,  988,  988,
     724      988,  988,  988,  988,  988,  988,  988,  988,  988,  988,
     725      988,  988,  988,  988,  988,  988,  988,  988,  988,  988,
     726      988,  988,  988,  988,  988,  988,  989,  990,  991,  992,
     727      993,  994,  995,  996,  997,  998,  999, 1000, 1001, 1002,
     728     1003, 1004, 1005,  891,  891,  891,  891, 1006,  891,  596,
     729
     730      891,  891,  891,  600,  891, 1007, 1008, 1009, 1010, 1011,
     731     1012, 1013, 1014, 1015, 1016, 1017, 1018, 1017, 1017, 1017,
     732     1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
     733     1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
     734     1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
     735     1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
     736     1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1019,  891,
     737     1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029,
     738      891, 1030, 1031, 1032, 1033,  891,  686,  891,  891,  891,
     739     1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1042,
     740
     741     1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
     742     1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
     743     1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
     744     1042, 1042, 1042, 1042, 1042, 1042, 1043, 1044, 1045, 1046,
     745     1047, 1048,  891, 1049, 1034, 1036, 1050, 1051, 1041, 1042,
     746     1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
     747     1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
     748     1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
     749     1042, 1052, 1053, 1046, 1054, 1047, 1055, 1048, 1056, 1057,
     750     1050, 1058, 1051, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
     751
     752     1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
     753     1042, 1042, 1042, 1059, 1052, 1060, 1053, 1061, 1054, 1062,
     754     1055, 1063, 1056, 1064, 1057, 1058, 1042, 1042, 1042, 1042,
     755     1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
     756     1042, 1042, 1042, 1065, 1059, 1060, 1061, 1062, 1036, 1063,
     757     1064, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
     758     1042, 1042, 1042, 1042, 1065, 1036, 1042, 1042, 1042, 1042,
     759     1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
     760     1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
     761        0,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     762
    678763      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    679764      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    680765      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    681766      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    682       891,  891,  891,  891,  887,  887,  887,  893,  893,  893,
    683 
    684       887,  893,  887,  894,  887,  902,  903,  895,  887,  887,
    685       887,  887,  904,  905,  906,  896,  887,  887,  887,  887,
    686       887,  887,  887,  887,  887,  887,  887,  887,  887,  907,
    687       908,  887,   99,  887,  887,  887,  887,   99,  909,  887,
    688       887,  104,  104,  887,  887,  887,  887,  887,  887,  887,
    689       887,  910,  911,  912,  887,  887,  887,  887,  887,  887,
    690       887,  887,  887,  887,  887,  887,  887,  887,  899,  887,
    691       913,  914,  915,  916,  917,  918,  887,  919,  919,  919,
    692       919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
    693       919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
    694 
    695       919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
    696       919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
    697       919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
    698       919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
    699       919,  919,  919,  920,  921,  922,  923,  924,  925,  926,
    700       927,  887,  887,  928,  929,  930,  931,  932,  933,  887,
    701       887,  887,  887,  887,  934,  935,  936,  937,  887,  887,
    702       887,  887,  887,  887,  887,  371,  376,  887,  887,  938,
    703       939,  940,  887,  887,  887,  940,  887,  887,  887,  941,
    704       942,  943,  944,  945,  946,  947,  948,  949,  950,  887,
    705 
    706       951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
    707       951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
    708       951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
    709       951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
    710       951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
    711       951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
    712       951,  951,  951,  951,  951,  951,  951,  952,  953,  954,
    713       955,  956,  957,  958,  959,  960,  887,  961,  962,  963,
    714       964,  965,  965,  966,  967,  968,  969,  887,  488,  887,
    715       970,  887,  970,  887,  887,  887,  887,  887,  887,  887,
    716 
    717       887,  971,  972,  973,  974,  975,  976,  977,  978,  979,
    718       980,  981,  982,  983,  984,  984,  984,  984,  984,  984,
    719       984,  984,  984,  984,  984,  984,  984,  984,  984,  984,
    720       984,  984,  984,  984,  984,  984,  984,  984,  984,  984,
    721       984,  984,  984,  984,  984,  984,  984,  984,  984,  984,
    722       984,  984,  984,  984,  984,  984,  984,  984,  984,  984,
    723       984,  984,  984,  984,  984,  984,  984,  984,  984,  984,
    724       984,  984,  984,  984,  984,  984,  985,  986,  987,  988,
    725       989,  990,  991,  992,  993,  994,  995,  996,  997,  998,
    726       999, 1000, 1001,  887,  887,  887,  887, 1002,  887,  596,
    727 
    728       887,  887,  887,  600,  887, 1003, 1004, 1005, 1006, 1007,
    729      1008, 1009, 1010, 1011, 1012, 1013, 1014, 1013, 1013, 1013,
    730      1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
    731      1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
    732      1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
    733      1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
    734      1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1015,  887,
    735      1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025,
    736       887, 1026, 1027, 1028, 1029,  887,  686,  887,  887,  887,
    737      1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1038,
    738 
    739      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
    740      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
    741      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
    742      1038, 1038, 1038, 1038, 1038, 1038, 1039, 1040, 1041, 1042,
    743      1043, 1044,  887, 1045, 1030, 1032, 1046, 1047, 1037, 1038,
    744      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
    745      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
    746      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
    747      1048, 1049, 1042, 1050, 1043, 1051, 1044, 1052, 1053, 1046,
    748      1054, 1047, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
    749 
    750      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
    751      1038, 1055, 1048, 1056, 1049, 1057, 1050, 1058, 1051, 1059,
    752      1052, 1060, 1053, 1054, 1038, 1038, 1038, 1038, 1038, 1038,
    753      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
    754      1061, 1055, 1056, 1057, 1058, 1032, 1059, 1060, 1038, 1038,
    755      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
    756      1061, 1032, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
    757      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
    758      1038, 1038, 1038, 1038, 1038, 1038,    0,  887,  887,  887,
    759       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    760 
    761       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    762       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    763       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    764       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    765       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    766       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    767       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    768       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    769       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    770       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    771 
    772       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    773       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    774       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    775       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    776       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    777       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    778       887
     767      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     768      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     769      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     770      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     771      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     772      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     773
     774      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     775      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     776      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     777      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     778      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     779      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     780      891,  891,  891,  891,  891
    779781    } ;
    780782
    781 static yyconst flex_int16_t yy_nxt[2908] =
     783static yyconst flex_int16_t yy_nxt[2911] =
    782784    {   0,
    783785       12,   13,   14,   15,   15,   15,   13,   16,   17,   12,
     
    804806
    805807       83,   83,   83,   82,   91,   93,   87,  142,  146,   98,
    806        95,   99,   99,   99,   99,   99,   99,  252,  887,   94,
     808       95,   99,   99,   99,   99,   99,   99,  252,  891,   94,
    807809      100,   85,   96,   97,   85,  101,  161,  118,  143,   77,
    808810       77,   77,   77,  144,  147,  102,  103,   87,  104,  104,
     
    825827      305,  200,  201,  190,  257,  136,  200,  257,  137,  263,
    826828
    827       887,  264,  192,  197,   81,   82,   82,   82,  197,   87,
     829      891,  264,  192,  197,   81,   82,   82,   82,  197,   87,
    828830      272,  198,  202,  202,  202,  202,  202,  202,   80,   81,
    829831       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,
     832      891,  264,  209,  282,  211,  255,  263,  267,  264,  211,
     833       82,   81,   82,   82,   82,   82,   87,  891,  212,  212,
     834      212,  212,   82,   81,   83,   83,   83,   82,  891,  211,
    833835       99,   99,   99,   99,   99,   99,  242,  242,  242,  242,
    834836      266,  263,  263,  264,  264,  213,  143,  263,  211,  264,
    835837       87,  144,  375,  211,  211,   87,   87,  211,  211,   87,
    836        87,   87,  286,  241,  887,  211,   87,   87,  211,  243,
     838       87,   87,  286,  241,  891,  211,   87,   87,  211,  243,
    837839
    838840      211,  214,  211,  281,  215,  217,  278,  284,  285,  218,
    839841      219,  307,  298,  279,  220,  221,   87,  222,   87,  223,
    840        87,   87,  887,   87,  309,  300,   87,   87,  224,  225,
     842       87,   87,  891,   87,  309,  300,   87,   87,  224,  225,
    841843      226,  103,  303,  105,  105,  105,  105,  105,  105,   87,
    842844      299,   87,  301,  302,   87,  304,  308,  310,   87,  227,
     
    885887       87,  450,   87,   87,   87,  452,  455,  454,   87,  453,
    886888      457,  462,  460,  461,   87,   87,  458,  464,   87,  515,
    887       459,  463,  465,  466,  344,  201,  201,   87,  887,  344,
     889      459,  463,  465,  466,  344,  201,  201,   87,  891,  344,
    888890      467,  345,  199,  211,  211,  211,  211,  352,  352,  352,
    889891      352,  360,  360,  361,  361,  371,  371,  371,  371,  371,
    890892      371,  370,  569,  370,  492,  492,  371,  371,  371,  371,
    891       371,  371,  887,   87,  493,  494,  477,  488,  488,  488,
     893      371,  371,  891,   87,  493,  494,  477,  488,  488,  488,
    892894
    893895      488,  488,  488,  233,  233,  233,  233,  233,  233,  516,
     
    896898      489,  496,   87,  518,   87,  236,  374,  236,  519,  520,
    897899      237,  521,  236,  376,  376,  376,  376,  376,  376,  383,
    898        87,  384,  375,  496,   87,  385,  522,  496,  497,  887,
     900       87,  384,  375,  496,   87,  385,  522,  496,  497,  891,
    899901      497,  386,   87,  498,  498,  498,  498,  498,  498,   87,
    900902      525,  495,  526,  387,   87,  524,  377,  384,  523,  496,
     
    919921      236,  498,  498,  498,  498,  498,  498,  620,   87,  492,
    920922      597,  599,  492,  600,  600,  600,  600,  600,  600,   87,
    921       631,  622,   87,  887,  625,  887,   87,  862,   87,  601,
     923      631,  622,   87,   87,  625,  891,   87,  891,   87,  601,
    922924      497,  602,  497,  603,  602,  498,  498,  498,  498,  498,
    923925      498,  624,  628,   87,   87,  630,  604,   87,   87,   87,
     
    926928      634,   87,   87,  635,   87,   87,   87,  642,   87,   87,
    927929      637,  641,   87,   87,  640,   87,   87,  643,  647,  639,
    928        87,   87,  887,   87,   87,   87,  638,   87,   87,  644,
     930       87,   87,  866,   87,   87,   87,  638,   87,   87,  644,
    929931      645,  646,  648,  650,   87,   87,   87,  649,   87,  653,
    930932      651,   87,  652,   87,  654,  655,   87,   87,   87,   87,
    931933      656,  657,   87,  660,  659,  661,  664,   87,  658,   87,
    932934       87,  663,   87,   87,   87,  668,  665,  688,  688,  662,
    933       666,  701,  702,  887,  887,   87,  667,  488,  488,  488,
     935      666,  701,  702,  891,  891,   87,  667,  488,  488,  488,
    934936      488,  488,  488,  596,  596,  596,  596,  596,  596,  595,
    935937      688,  595,  704,   87,  596,  596,  596,  596,  596,  596,
    936938
    937       600,  600,  600,  600,  600,  600,  703,  688,   87,  887,
     939      600,  600,  600,  600,  600,  600,  703,  688,   87,  891,
    938940      594,  686,  686,  686,  686,  686,  686,  689,   87,  689,
    939941       87,   87,  689,  699,   87,  708,   87,  601,  706,  602,
     
    944946      715,   87,  721,  719,   87,  724,   87,   87,  722,  720,
    945947      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,
     948      726,   87,   87,   87,  728,  734,   87,  733,  730,   87,
     949
     950      735,   87,   87,  729,   87,  863,  751,  736,  686,  686,
    949951      686,  686,  686,  686,  600,  600,  600,  600,  600,  600,
    950952      750,   87,  755,   87,  601,  763,  602,  752,  603,  602,
     
    954956       87,  768,   87,  769,   87,   87,   87,   87,  770,   87,
    955957       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,
     958       87,  780,   87,   87,  796,   87,  781,  773,  775,  777,
     959       87,   87,  798,  776,  778,  797,  779,  686,  686,  686,
     960
     961      686,  686,  686,  794,   87,   87,   87,  795,  799,  802,
     962      804,   87,   87,   87,  805,  806,   87,  801,  803,  808,
     963      807,  800,   87,   87,   87,  809,   87,   87,   87,   87,
     964      743,   87,   87,   87,   87,  830,  832,   87,   87,  810,
     965      833,   87,  835,   87,   87,   87,  811,  829,  836,  812,
     966      813,   87,  828,  840,  838,  827,  831,   87,   87,  834,
     967      839,   87,   87,   87,   87,  837,   87,   87,   87,  854,
     968       87,  853,  842,   87,  841,   87,  855,   87,  843,   87,
     969      858,   87,  860,   87,  852,  870,  861,   87,  856,   87,
     970      859,   87,   87,   87,  857,   87,  862,  868,  864,   87,
     971
     972      867,   87,  869,  881,   87,   87,  871,  872,  873,   87,
     973      876,   87,  874,  875,  877,   87,   87,   87,   87,  879,
     974      880,   87,   87,   87,   87,  878,   87,   87,   87,  891,
     975       87,  884,  865,   87,   87,   87,  883,  885,   87,  882,
     976      890,   87,  891,  891,  851,  886,  888,  887,  891,  889,
    975977       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,
     978       69,   69,   69,   75,   75,   75,   75,   75,   75,   75,
     979       75,   75,   75,   75,   75,   75,   78,   78,   78,   78,
     980       78,   78,   78,   78,   78,   78,   78,   78,   78,   86,
     981      850,  891,   86,  848,   86,   86,   86,   86,   86,  140,
     982
     983      891,  847,  891,  140,  140,  140,  140,  140,  140,  199,
     984      199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
     985      199,  199,  204,  846,  891,  204,  845,  204,  204,  204,
     986      204,  204,  208,   87,  208,  208,   87,  208,  208,  208,
     987      208,  208,  208,   87,  208,  216,  891,  826,  216,  216,
     988      216,  216,  216,  216,  216,  216,  891,  216,  239,  239,
    997989      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,
     990      239,  253,  253,  825,  253,  823,  891,  821,  253,  269,
     991      891,  819,  269,  891,  269,  269,  269,  269,  269,  273,
     992      817,  273,  815,   87,   87,  273,  275,   87,  275,   87,
     993
     994       87,   87,  275,  348,   87,  348,   87,   87,   87,  348,
     995      350,   87,  350,   87,  891,  793,  350,  354,  791,  354,
     996      891,  891,  788,  354,  356,  786,  356,  784,   87,   87,
     997      356,  358,   87,  358,   87,   87,   87,  358,  365,   87,
     998      365,  749,  746,  745,  365,  367,  743,  367,  205,  739,
     999      738,  367,  239,  239,  239,  239,  239,  239,  239,  239,
     1000      239,  239,  239,  239,  239,  380,  670,  380,  382,  382,
     1001       87,  382,  382,  382,   87,  382,  253,  253,   87,  253,
     1002      392,   87,  392,   87,   87,   87,  392,  394,   87,  394,
     1003       87,   87,   87,  394,  396,   87,  396,   87,   87,   87,
     1004
     1005      396,  273,  697,  273,  398,  696,  398,  694,  692,  690,
     1006      398,  275,  598,  275,   86,  685,  684,   86,  682,   86,
     1007       86,   86,   86,   86,  199,  199,  199,  199,  199,  199,
     1008      199,  199,  199,  199,  199,  199,  199,  468,  468,  468,
    10271009      468,  468,  468,  468,  468,  468,  468,  468,  468,  468,
    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,
    1064       669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
    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,
    1094       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    1095       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    1096       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    1097       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    1098       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    1099       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    1100       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    1101 
    1102       887,  887,  887,  887,  887,  887,  887
     1010      469,  680,  469,  678,  676,  674,  469,  471,  672,  471,
     1011      670,   87,   87,  471,  473,   87,  473,   87,   87,   87,
     1012      473,  348,   87,  348,  475,   87,  475,   87,   87,   87,
     1013      475,  350,  617,  350,  478,  615,  478,  613,  611,  609,
     1014      478,  354,  607,  354,  480,  502,  480,  605,  605,  594,
     1015
     1016      480,  356,  593,  356,  482,  591,  482,  483,  483,  589,
     1017      482,  358,  587,  358,  484,  585,  484,  583,  581,  579,
     1018      484,  365,   87,  365,  486,   87,  486,   87,   87,   87,
     1019      486,  367,   87,  367,  491,   87,  491,   87,  491,  514,
     1020      491,  380,  512,  380,  510,  380,  508,  380,  382,  382,
     1021      506,  382,  382,  382,  504,  382,  503,  490,  503,  487,
     1022      485,  361,  503,  505,  361,  505,  483,  481,  479,  505,
     1023      507,  476,  507,  474,  472,  470,  507,  392,   87,  392,
     1024      509,   87,  509,   87,  400,  399,  509,  394,  397,  394,
     1025      511,  395,  511,  393,  270,  265,  511,  396,  264,  396,
     1026
     1027      513,  389,  513,  389,  252,  379,  513,  398,  379,  398,
     1028       86,  240,  374,   86,  368,   86,   86,   86,   86,   86,
     1029      468,  468,  468,  468,  468,  468,  468,  468,  468,  468,
     1030      468,  468,  468,  578,  366,  578,  364,  360,  359,  578,
     1031      469,  357,  469,  580,  355,  580,  351,  349,  205,  580,
     1032      471,  201,  471,  582,   87,  582,  277,  276,  274,  582,
     1033      473,  270,  473,  584,  265,  584,  268,  265,  263,  584,
     1034      475,  262,  475,  586,  261,  586,  240,  232,   85,  586,
     1035      478,   85,  478,  588,   87,  588,  205,  203,   85,  588,
     1036      480,  122,  480,  482,  117,  482,   87,  891,   70,  482,
     1037
     1038      590,   70,  590,  891,  891,  891,  590,  484,  891,  484,
     1039      592,  891,  592,  891,  891,  891,  592,  486,  891,  486,
     1040      491,  891,  491,  891,  491,  891,  491,  382,  891,  382,
     1041      891,  891,  891,  382,  606,  891,  606,  891,  891,  891,
     1042      606,  503,  891,  503,  608,  891,  608,  891,  891,  891,
     1043      608,  505,  891,  505,  610,  891,  610,  891,  891,  891,
     1044      610,  507,  891,  507,  612,  891,  612,  891,  891,  891,
     1045      612,  509,  891,  509,  614,  891,  614,  891,  891,  891,
     1046      614,  511,  891,  511,  616,  891,  616,  891,  891,  891,
     1047      616,  513,  891,  513,   86,  891,  891,   86,  891,   86,
     1048
     1049       86,   86,   86,   86,  669,  669,  669,  669,  669,  669,
     1050      669,  669,  669,  669,  669,  669,  669,  671,  891,  671,
     1051      891,  891,  891,  671,  578,  891,  578,  673,  891,  673,
     1052      891,  891,  891,  673,  580,  891,  580,  675,  891,  675,
     1053      891,  891,  891,  675,  582,  891,  582,  677,  891,  677,
     1054      891,  891,  891,  677,  584,  891,  584,  679,  891,  679,
     1055      891,  891,  891,  679,  586,  891,  586,  681,  891,  681,
     1056      891,  891,  891,  681,  588,  891,  588,  683,  891,  683,
     1057      891,  891,  891,  683,  590,  891,  590,   86,  891,   86,
     1058      891,  891,  891,   86,  592,  891,  592,  491,  891,  491,
     1059
     1060      891,  891,  891,  491,  691,  891,  691,  891,  891,  891,
     1061      691,  606,  891,  606,  693,  891,  693,  891,  891,  891,
     1062      693,  608,  891,  608,  695,  891,  695,  891,  891,  891,
     1063      695,  610,  891,  610,  140,  891,  140,  891,  891,  891,
     1064      140,  612,  891,  612,  698,  891,  698,  614,  891,  614,
     1065       86,  891,  891,   86,  891,   86,   86,   86,   86,   86,
     1066      616,  891,  616,  669,  669,  669,  669,  669,  669,  669,
     1067      669,  669,  669,  669,  669,  669,  737,  891,  737,  891,
     1068      891,  891,  737,  671,  891,  671,  204,  891,  204,  891,
     1069      891,  891,  204,  673,  891,  673,  740,  891,  740,  675,
     1070
     1071      891,  675,  204,  891,  891,  204,  891,  204,  204,  204,
     1072      204,  204,  677,  891,  677,  741,  891,  741,  679,  891,
     1073      679,  681,  891,  681,  742,  891,  742,  683,  891,  683,
     1074       86,  891,   86,  744,  891,  744,  891,  891,  891,  744,
     1075      691,  891,  691,  269,  891,  269,  891,  891,  891,  269,
     1076      693,  891,  693,  747,  891,  747,  695,  891,  695,  140,
     1077      891,  140,  748,  891,  748,  891,  891,  891,  748,   86,
     1078      891,  891,   86,  891,   86,   86,   86,   86,   86,  782,
     1079      891,  782,  737,  891,  737,  204,  891,  204,  783,  891,
     1080      783,  891,  891,  891,  783,  785,  891,  785,  891,  891,
     1081
     1082      891,  785,  787,  891,  787,  891,  891,  891,  787,  789,
     1083      891,  789,  790,  891,  790,  891,  891,  891,  790,  792,
     1084      891,  792,  891,  891,  891,  792,  814,  891,  814,  891,
     1085      891,  891,  814,  816,  891,  816,  891,  891,  891,  816,
     1086      818,  891,  818,  891,  891,  891,  818,  820,  891,  820,
     1087      891,  891,  891,  820,  822,  891,  822,  891,  891,  891,
     1088      822,  824,  891,  824,  891,  891,  891,  824,  616,  891,
     1089      616,  891,  891,  891,  616,  844,  891,  844,  891,  891,
     1090      891,  844,  677,  891,  677,  891,  891,  891,  677,  681,
     1091      891,  681,  891,  891,  891,  681,   86,  891,   86,  891,
     1092
     1093      891,  891,   86,  849,  891,  849,  891,  891,  891,  849,
     1094      140,  891,  140,  891,  891,  891,  140,  204,  891,  204,
     1095      891,  891,  891,  204,   11,  891,  891,  891,  891,  891,
     1096      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     1097      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     1098      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     1099      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     1100      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     1101      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     1102      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     1103
     1104      891,  891,  891,  891,  891,  891,  891,  891,  891,  891
    11031105    } ;
    11041106
    1105 static yyconst flex_int16_t yy_chk[2908] =
     1107static yyconst flex_int16_t yy_chk[2911] =
    11061108    {   0,
    11071109        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    11241126        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    11251127        5,    5,    5,    5,    5,    5,    5,    5,    5,    7,
    1126         8,    9,   10,   37,   37,   20,   39,    9,   10,  886,
     1128        8,    9,   10,   37,   37,   20,   39,    9,   10,  890,
    11271129        7,    8,   13,   13,   13,   13,   13,   13,   15,   15,
    11281130
     
    11351137       47,   45,   45,   45,   49,   30,   30,   45,   45,   49,
    11361138       45,   30,   40,   45,   45,   40,   49,   30,   45,   56,
    1137        62,   45,   49,   30,   73,  885,  127,   53,  127,   51,
     1139       62,   45,   49,   30,   73,  889,  127,   53,  127,   51,
    11381140       61,   30,   62,   55,   30,   31,  108,   31,   31,   31,
    11391141
     
    11491151      164,   68,   68,   59,  113,   38,   68,  116,   38,  131,
    11501152
    1151       110,  131,   60,   67,   67,   67,   67,   67,   67,  877,
     1153      110,  131,   60,   67,   67,   67,   67,   67,   67,  881,
    11521154      142,   67,   68,   68,   68,   68,   68,   68,   80,   80,
    11531155       80,   80,   80,   80,  153,   38,   38,   77,   77,  134,
    11541156      110,  134,   77,  153,   77,  110,  135,  135,  135,   77,
    1155        82,   82,   82,   82,   82,   82,  876,  243,   77,   77,
     1157       82,   82,   82,   82,   82,   82,  880,  243,   77,   77,
    11561158       77,   77,   83,   83,   83,   83,   83,   83,  110,   77,
    11571159      103,  103,  103,  103,  103,  103,  104,  104,  104,  104,
     
    11631165       85,  166,  159,  150,   85,   85,  161,   85,  160,   85,
    11641166      145,  162,  104,  167,  168,  161,  169,  163,   85,   85,
    1165        85,  105,  163,  105,  105,  105,  105,  105,  105,  873,
     1167       85,  105,  163,  105,  105,  105,  105,  105,  105,  877,
    11661168      160,  171,  162,  162,  165,  163,  167,  169,  173,   85,
    11671169      105,  106,   85,  106,  165,  172,  106,  106,  106,  106,
     
    11761178      189,  158,  158,  188,  192,  158,  194,  158,  284,  219,
    11771179      185,  219,  158,  158,  158,  193,  158,  192,  220,  194,
    1178       220,  191,  198,  198,  191,  192,  205,  198,  193,  872,
     1180      220,  191,  198,  198,  191,  192,  205,  198,  193,  876,
    11791181      193,  197,  197,  197,  197,  197,  197,  200,  200,  197,
    11801182      248,  221,  200,  198,  198,  198,  198,  198,  198,  202,
     
    11931195      245,  245,  270,  288,  293,  286,  294,  300,  306,  293,
    11941196
    1195       308,  244,  300,  306,  870,  294,  308,  244,  246,  246,
     1197      308,  244,  300,  306,  874,  294,  308,  244,  246,  246,
    11961198      246,  246,  246,  246,  253,  286,  288,  255,  255,  255,
    11971199      255,  255,  255,  287,  246,  247,  246,  247,  246,  246,
    11981200      247,  247,  247,  247,  247,  247,  290,  253,  287,  253,
    1199       869,  246,  289,  253,  287,  287,  246,  292,  246,  253,
     1201      873,  246,  289,  253,  287,  287,  246,  292,  246,  253,
    12001202      255,  246,  291,  246,  260,  260,  260,  260,  260,  260,
    12011203      289,  253,  290,  292,  292,  253,  295,  291,  296,  253,
     
    12091211      335,  324,  337,  339,  340,  326,  329,  328,  401,  327,
    12101212      331,  337,  334,  335,  341,  343,  332,  340,  342,  401,
    1211       333,  339,  341,  342,  344,  344,  345,  460,  862,  344,
     1213      333,  339,  341,  342,  344,  344,  345,  460,  866,  344,
    12121214      343,  344,  345,  352,  352,  352,  352,  353,  353,  353,
    12131215      353,  362,  363,  362,  363,  370,  370,  370,  370,  370,
    12141216      370,  372,  460,  372,  380,  381,  372,  372,  372,  372,
    1215       372,  372,  861,  402,  380,  381,  352,  371,  371,  371,
     1217      372,  372,  865,  402,  380,  381,  352,  371,  371,  371,
    12161218
    12171219      371,  371,  371,  374,  374,  374,  374,  374,  374,  402,
    1218       380,  381,  403,  371,  404,  371,  860,  371,  371,  375,
     1220      380,  381,  403,  371,  404,  371,  864,  371,  371,  375,
    12191221      375,  375,  375,  375,  375,  383,  382,  403,  406,  405,
    12201222      371,  383,  407,  404,  408,  371,  374,  371,  405,  406,
     
    12331235      450,  453,  442,  444,  455,  456,  447,  457,  458,  449,
    12341236      459,  461,  463,  455,  451,  458,  454,  459,  462,  452,
    1235       457,  453,  466,  456,  464,  467,  462,  525,  859,  463,
     1237      457,  453,  466,  456,  464,  467,  462,  525,  863,  463,
    12361238      525,  468,  491,  461,  467,  464,  462,  468,  477,  477,
    12371239      477,  477,  491,  515,  466,  488,  488,  488,  488,  488,
     
    12391241      488,  490,  490,  490,  490,  490,  490,  519,  491,  521,
    12401242      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      492,  492,  492,  494,  516,  495,  493,  519,  488,  862,
     1244      858,  521,  518,  488,  490,  488,  493,  516,  488,  529,
    12431245      488,  497,  497,  497,  497,  497,  497,  518,  520,  494,
    12441246      492,  495,  493,  498,  498,  498,  498,  498,  498,  523,
    1245       529,  520,  526,  848,  523,  847,  528,  846,  522,  498,
     1247      529,  520,  526,  854,  523,  851,  528,  850,  522,  498,
    12461248      499,  498,  499,  498,  498,  499,  499,  499,  499,  499,
    12471249      499,  522,  526,  524,  527,  528,  498,  531,  530,  532,
     
    12501252      532,  535,  537,  533,  536,  538,  539,  541,  542,  547,
    12511253      535,  539,  544,  541,  538,  545,  546,  542,  547,  537,
    1252       550,  551,  845,  549,  534,  552,  536,  554,  560,  544,
     1254      550,  551,  849,  549,  534,  552,  536,  554,  560,  544,
    12531255      545,  546,  549,  551,  555,  557,  558,  550,  561,  555,
    12541256      552,  562,  554,  565,  557,  558,  564,  567,  566,  568,
    12551257      560,  561,  575,  565,  564,  566,  569,  571,  562,  574,
    12561258      572,  568,  569,  620,  619,  575,  571,  601,  601,  567,
    1257       572,  619,  620,  844,  843,  622,  574,  594,  594,  594,
     1259      572,  619,  620,  848,  847,  622,  574,  594,  594,  594,
    12581260      594,  594,  594,  595,  595,  595,  595,  595,  595,  597,
    12591261      601,  597,  622,  621,  597,  597,  597,  597,  597,  597,
    12601262
    1261       600,  600,  600,  600,  600,  600,  621,  602,  626,  842,
     1263      600,  600,  600,  600,  600,  600,  621,  602,  626,  846,
    12621264      594,  596,  596,  596,  596,  596,  596,  603,  618,  603,
    12631265      623,  624,  603,  618,  628,  626,  625,  596,  624,  596,
     
    12681270      633,  646,  639,  637,  650,  642,  651,  656,  640,  638,
    12691271      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,
     1272      645,  667,  668,  842,  650,  665,  700,  664,  653,  699,
     1273
     1274      667,  702,  705,  651,  714,  842,  700,  668,  686,  686,
    12731275      686,  686,  686,  686,  690,  690,  690,  690,  690,  690,
    12741276      699,  708,  705,  703,  686,  714,  686,  702,  686,  686,
     
    12761278      712,  686,  711,  717,  710,  718,  686,  690,  686,  712,
    12771279      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,
    1418       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    1419       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    1420       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    1421       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    1422       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    1423       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    1424       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    1425 
    1426       887,  887,  887,  887,  887,  887,  887
     1280      721,  719,  715,  720,  722,  723,  724,  725,  721,  731,
     1281      728,  718,  732,  735,  722,  733,  725,  736,  723,  756,
     1282      757,  735,  758,  754,  756,  759,  736,  724,  728,  731,
     1283      755,  761,  758,  728,  732,  757,  733,  743,  743,  743,
     1284
     1285      743,  743,  743,  754,  760,  763,  762,  755,  759,  762,
     1286      764,  766,  768,  769,  766,  768,  770,  761,  763,  770,
     1287      769,  760,  771,  773,  772,  771,  775,  779,  794,  797,
     1288      743,  796,  798,  800,  799,  798,  800,  801,  764,  772,
     1289      801,  803,  804,  807,  810,  805,  773,  797,  805,  775,
     1290      779,  808,  796,  810,  808,  794,  799,  809,  811,  803,
     1291      809,  812,  813,  828,  829,  807,  830,  831,  804,  830,
     1292      832,  829,  812,  834,  811,  856,  831,  833,  813,  837,
     1293      833,  875,  837,  840,  828,  856,  840,  841,  832,  843,
     1294      834,  852,  853,  867,  832,  868,  841,  853,  843,  855,
     1295
     1296      852,  857,  855,  875,  859,  860,  857,  859,  860,  861,
     1297      868,  869,  861,  867,  869,  870,  871,  872,  878,  871,
     1298      872,  879,  882,  884,  883,  870,  885,  887,  886,  845,
     1299      888,  882,  844,  839,  838,  836,  879,  883,  835,  878,
     1300      888,  827,  826,  825,  824,  884,  886,  885,  823,  887,
     1301      892,  892,  892,  892,  892,  892,  892,  892,  892,  892,
     1302      892,  892,  892,  893,  893,  893,  893,  893,  893,  893,
     1303      893,  893,  893,  893,  893,  893,  894,  894,  894,  894,
     1304      894,  894,  894,  894,  894,  894,  894,  894,  894,  895,
     1305      822,  821,  895,  820,  895,  895,  895,  895,  895,  896,
     1306
     1307      819,  818,  817,  896,  896,  896,  896,  896,  896,  897,
     1308      897,  897,  897,  897,  897,  897,  897,  897,  897,  897,
     1309      897,  897,  898,  816,  815,  898,  814,  898,  898,  898,
     1310      898,  898,  899,  806,  899,  899,  802,  899,  899,  899,
     1311      899,  899,  899,  795,  899,  900,  793,  792,  900,  900,
     1312      900,  900,  900,  900,  900,  900,  791,  900,  901,  901,
     1313      901,  901,  901,  901,  901,  901,  901,  901,  901,  901,
     1314      901,  902,  902,  790,  902,  789,  788,  787,  902,  903,
     1315      786,  785,  903,  784,  903,  903,  903,  903,  903,  904,
     1316      783,  904,  782,  781,  780,  904,  905,  778,  905,  777,
     1317
     1318      776,  774,  905,  906,  767,  906,  765,  753,  752,  906,
     1319      907,  751,  907,  750,  749,  748,  907,  908,  747,  908,
     1320      746,  745,  742,  908,  909,  741,  909,  740,  734,  730,
     1321      909,  910,  729,  910,  727,  726,  709,  910,  911,  701,
     1322      911,  698,  693,  691,  911,  912,  687,  912,  677,  673,
     1323      671,  912,  913,  913,  913,  913,  913,  913,  913,  913,
     1324      913,  913,  913,  913,  913,  914,  669,  914,  915,  915,
     1325      666,  915,  915,  915,  663,  915,  916,  916,  662,  916,
     1326      917,  661,  917,  660,  659,  658,  917,  918,  655,  918,
     1327      654,  652,  649,  918,  919,  648,  919,  647,  643,  616,
     1328
     1329      919,  920,  612,  920,  921,  610,  921,  608,  606,  604,
     1330      921,  922,  598,  922,  923,  592,  590,  923,  588,  923,
     1331      923,  923,  923,  923,  924,  924,  924,  924,  924,  924,
     1332      924,  924,  924,  924,  924,  924,  924,  925,  925,  925,
     1333      925,  925,  925,  925,  925,  925,  925,  925,  925,  925,
     1334      926,  586,  926,  584,  582,  580,  926,  927,  578,  927,
     1335      577,  576,  573,  927,  928,  570,  928,  563,  559,  556,
     1336      928,  929,  553,  929,  930,  548,  930,  543,  540,  517,
     1337      930,  931,  513,  931,  932,  511,  932,  509,  507,  505,
     1338      932,  933,  503,  933,  934,  502,  934,  501,  500,  489,
     1339
     1340      934,  935,  486,  935,  936,  484,  936,  483,  482,  480,
     1341      936,  937,  478,  937,  938,  475,  938,  473,  471,  469,
     1342      938,  939,  465,  939,  940,  448,  940,  446,  438,  436,
     1343      940,  941,  428,  941,  942,  426,  942,  424,  942,  398,
     1344      942,  943,  396,  943,  394,  943,  392,  943,  944,  944,
     1345      391,  944,  944,  944,  390,  944,  945,  377,  945,  367,
     1346      365,  364,  945,  946,  360,  946,  358,  356,  354,  946,
     1347      947,  350,  947,  348,  347,  346,  947,  948,  336,  948,
     1348      949,  321,  949,  298,  277,  275,  949,  950,  273,  950,
     1349      951,  272,  951,  271,  269,  268,  951,  952,  263,  952,
     1350
     1351      953,  259,  953,  258,  254,  251,  953,  954,  250,  954,
     1352      955,  239,  238,  955,  231,  955,  955,  955,  955,  955,
     1353      956,  956,  956,  956,  956,  956,  956,  956,  956,  956,
     1354      956,  956,  956,  957,  230,  957,  227,  217,  215,  957,
     1355      958,  214,  958,  959,  213,  959,  207,  206,  204,  959,
     1356      960,  199,  960,  961,  178,  961,  149,  147,  146,  961,
     1357      962,  140,  962,  963,  138,  963,  136,  128,  125,  963,
     1358      964,  124,  964,  965,  120,  965,  101,   98,   95,  965,
     1359      966,   93,  966,  967,   86,  967,   72,   70,   66,  967,
     1360      968,   36,  968,  969,   33,  969,   18,   11,    4,  969,
     1361
     1362      970,    3,  970,    0,    0,    0,  970,  971,    0,  971,
     1363      972,    0,  972,    0,    0,    0,  972,  973,    0,  973,
     1364      974,    0,  974,    0,  974,    0,  974,  975,    0,  975,
     1365        0,    0,    0,  975,  976,    0,  976,    0,    0,    0,
     1366      976,  977,    0,  977,  978,    0,  978,    0,    0,    0,
     1367      978,  979,    0,  979,  980,    0,  980,    0,    0,    0,
     1368      980,  981,    0,  981,  982,    0,  982,    0,    0,    0,
     1369      982,  983,    0,  983,  984,    0,  984,    0,    0,    0,
     1370      984,  985,    0,  985,  986,    0,  986,    0,    0,    0,
     1371      986,  987,    0,  987,  988,    0,    0,  988,    0,  988,
     1372
     1373      988,  988,  988,  988,  989,  989,  989,  989,  989,  989,
     1374      989,  989,  989,  989,  989,  989,  989,  990,    0,  990,
     1375        0,    0,    0,  990,  991,    0,  991,  992,    0,  992,
     1376        0,    0,    0,  992,  993,    0,  993,  994,    0,  994,
     1377        0,    0,    0,  994,  995,    0,  995,  996,    0,  996,
     1378        0,    0,    0,  996,  997,    0,  997,  998,    0,  998,
     1379        0,    0,    0,  998,  999,    0,  999, 1000,    0, 1000,
     1380        0,    0,    0, 1000, 1001,    0, 1001, 1002,    0, 1002,
     1381        0,    0,    0, 1002, 1003,    0, 1003, 1004,    0, 1004,
     1382        0,    0,    0, 1004, 1005,    0, 1005, 1006,    0, 1006,
     1383
     1384        0,    0,    0, 1006, 1007,    0, 1007,    0,    0,    0,
     1385     1007, 1008,    0, 1008, 1009,    0, 1009,    0,    0,    0,
     1386     1009, 1010,    0, 1010, 1011,    0, 1011,    0,    0,    0,
     1387     1011, 1012,    0, 1012, 1013,    0, 1013,    0,    0,    0,
     1388     1013, 1014,    0, 1014, 1015,    0, 1015, 1016,    0, 1016,
     1389     1017,    0,    0, 1017,    0, 1017, 1017, 1017, 1017, 1017,
     1390     1018,    0, 1018, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
     1391     1019, 1019, 1019, 1019, 1019, 1019, 1020,    0, 1020,    0,
     1392        0,    0, 1020, 1021,    0, 1021, 1022,    0, 1022,    0,
     1393        0,    0, 1022, 1023,    0, 1023, 1024,    0, 1024, 1025,
     1394
     1395        0, 1025, 1026,    0,    0, 1026,    0, 1026, 1026, 1026,
     1396     1026, 1026, 1027,    0, 1027, 1028,    0, 1028, 1029,    0,
     1397     1029, 1030,    0, 1030, 1031,    0, 1031, 1032,    0, 1032,
     1398     1033,    0, 1033, 1034,    0, 1034,    0,    0,    0, 1034,
     1399     1035,    0, 1035, 1036,    0, 1036,    0,    0,    0, 1036,
     1400     1037,    0, 1037, 1038,    0, 1038, 1039,    0, 1039, 1040,
     1401        0, 1040, 1041,    0, 1041,    0,    0,    0, 1041, 1042,
     1402        0,    0, 1042,    0, 1042, 1042, 1042, 1042, 1042, 1043,
     1403        0, 1043, 1044,    0, 1044, 1045,    0, 1045, 1046,    0,
     1404     1046,    0,    0,    0, 1046, 1047,    0, 1047,    0,    0,
     1405
     1406        0, 1047, 1048,    0, 1048,    0,    0,    0, 1048, 1049,
     1407        0, 1049, 1050,    0, 1050,    0,    0,    0, 1050, 1051,
     1408        0, 1051,    0,    0,    0, 1051, 1052,    0, 1052,    0,
     1409        0,    0, 1052, 1053,    0, 1053,    0,    0,    0, 1053,
     1410     1054,    0, 1054,    0,    0,    0, 1054, 1055,    0, 1055,
     1411        0,    0,    0, 1055, 1056,    0, 1056,    0,    0,    0,
     1412     1056, 1057,    0, 1057,    0,    0,    0, 1057, 1058,    0,
     1413     1058,    0,    0,    0, 1058, 1059,    0, 1059,    0,    0,
     1414        0, 1059, 1060,    0, 1060,    0,    0,    0, 1060, 1061,
     1415        0, 1061,    0,    0,    0, 1061, 1062,    0, 1062,    0,
     1416
     1417        0,    0, 1062, 1063,    0, 1063,    0,    0,    0, 1063,
     1418     1064,    0, 1064,    0,    0,    0, 1064, 1065,    0, 1065,
     1419        0,    0,    0, 1065,  891,  891,  891,  891,  891,  891,
     1420      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     1421      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     1422      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     1423      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     1424      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     1425      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     1426      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     1427
     1428      891,  891,  891,  891,  891,  891,  891,  891,  891,  891
    14271429    } ;
    14281430
    14291431/* Table of booleans, true if rule could match eol. */
    1430 static yyconst flex_int32_t yy_rule_can_match_eol[181] =
     1432static yyconst flex_int32_t yy_rule_can_match_eol[182] =
    14311433    {   0,
    143214341, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     
    14351437    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14361438    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1437     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1,
    1438     0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     1439    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
     1440    1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14391441    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14401442    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1441     0,     };
     1443    0, 0,     };
    14421444
    14431445static yy_state_type yy_last_accepting_state;
     
    14661468 * Author           : Peter A. Buhr
    14671469 * Created On       : Sat Sep 22 08:58:10 2001
    1468  * Last Modified By : Peter A. Buhr
    1469  * Last Modified On : Thu Jun 23 07:29:30 2016
    1470  * Update Count     : 457
     1470 * Last Modified By :
     1471 * Last Modified On : Sun Jul 31 07:19:36 2016
     1472 * Update Count     : 459
    14711473 */
    14721474#line 20 "lex.ll"
     
    15291531
    15301532
    1531 #line 1532 "Parser/lex.cc"
     1533#line 1534 "Parser/lex.cc"
    15321534
    15331535#define INITIAL 0
     
    17241726
    17251727                                   /* line directives */
    1726 #line 1727 "Parser/lex.cc"
     1728#line 1729 "Parser/lex.cc"
    17271729
    17281730        if ( !(yy_init) )
     
    17781780                                {
    17791781                                yy_current_state = (int) yy_def[yy_current_state];
    1780                                 if ( yy_current_state >= 888 )
     1782                                if ( yy_current_state >= 892 )
    17811783                                        yy_c = yy_meta[(unsigned int) yy_c];
    17821784                                }
     
    17841786                        ++yy_cp;
    17851787                        }
    1786                 while ( yy_base[yy_current_state] != 2822 );
     1788                while ( yy_base[yy_current_state] != 2825 );
    17871789
    17881790yy_find_action:
     
    20812083YY_RULE_SETUP
    20822084#line 216 "lex.ll"
     2085{ KEYWORD_RETURN(FALLTHRU); }                   // CFA
     2086        YY_BREAK
     2087case 48:
     2088YY_RULE_SETUP
     2089#line 217 "lex.ll"
    20832090{ KEYWORD_RETURN(FINALLY); }                    // CFA
    20842091        YY_BREAK
    2085 case 48:
    2086 YY_RULE_SETUP
    2087 #line 217 "lex.ll"
     2092case 49:
     2093YY_RULE_SETUP
     2094#line 218 "lex.ll"
    20882095{ KEYWORD_RETURN(FLOAT); }
    20892096        YY_BREAK
    2090 case 49:
    2091 YY_RULE_SETUP
    2092 #line 218 "lex.ll"
     2097case 50:
     2098YY_RULE_SETUP
     2099#line 219 "lex.ll"
    20932100{ KEYWORD_RETURN(FLOAT); }                              // GCC
    20942101        YY_BREAK
    2095 case 50:
    2096 YY_RULE_SETUP
    2097 #line 219 "lex.ll"
     2102case 51:
     2103YY_RULE_SETUP
     2104#line 220 "lex.ll"
    20982105{ KEYWORD_RETURN(FOR); }
    20992106        YY_BREAK
    2100 case 51:
    2101 YY_RULE_SETUP
    2102 #line 220 "lex.ll"
     2107case 52:
     2108YY_RULE_SETUP
     2109#line 221 "lex.ll"
    21032110{ KEYWORD_RETURN(FORALL); }                             // CFA
    21042111        YY_BREAK
    2105 case 52:
    2106 YY_RULE_SETUP
    2107 #line 221 "lex.ll"
     2112case 53:
     2113YY_RULE_SETUP
     2114#line 222 "lex.ll"
    21082115{ KEYWORD_RETURN(FORTRAN); }
    21092116        YY_BREAK
    2110 case 53:
    2111 YY_RULE_SETUP
    2112 #line 222 "lex.ll"
     2117case 54:
     2118YY_RULE_SETUP
     2119#line 223 "lex.ll"
    21132120{ KEYWORD_RETURN(FTYPE); }                              // CFA
    21142121        YY_BREAK
    2115 case 54:
    2116 YY_RULE_SETUP
    2117 #line 223 "lex.ll"
     2122case 55:
     2123YY_RULE_SETUP
     2124#line 224 "lex.ll"
    21182125{ KEYWORD_RETURN(GENERIC); }                    // C11
    21192126        YY_BREAK
    2120 case 55:
    2121 YY_RULE_SETUP
    2122 #line 224 "lex.ll"
     2127case 56:
     2128YY_RULE_SETUP
     2129#line 225 "lex.ll"
    21232130{ KEYWORD_RETURN(GOTO); }
    21242131        YY_BREAK
    2125 case 56:
    2126 YY_RULE_SETUP
    2127 #line 225 "lex.ll"
     2132case 57:
     2133YY_RULE_SETUP
     2134#line 226 "lex.ll"
    21282135{ KEYWORD_RETURN(IF); }
    21292136        YY_BREAK
    2130 case 57:
    2131 YY_RULE_SETUP
    2132 #line 226 "lex.ll"
     2137case 58:
     2138YY_RULE_SETUP
     2139#line 227 "lex.ll"
    21332140{ KEYWORD_RETURN(IMAGINARY); }                  // C99
    2134         YY_BREAK
    2135 case 58:
    2136 YY_RULE_SETUP
    2137 #line 227 "lex.ll"
    2138 { KEYWORD_RETURN(IMAGINARY); }                  // GCC
    21392141        YY_BREAK
    21402142case 59:
     
    21462148YY_RULE_SETUP
    21472149#line 229 "lex.ll"
     2150{ KEYWORD_RETURN(IMAGINARY); }                  // GCC
     2151        YY_BREAK
     2152case 61:
     2153YY_RULE_SETUP
     2154#line 230 "lex.ll"
    21482155{ KEYWORD_RETURN(INLINE); }                             // C99
    2149         YY_BREAK
    2150 case 61:
    2151 YY_RULE_SETUP
    2152 #line 230 "lex.ll"
    2153 { KEYWORD_RETURN(INLINE); }                             // GCC
    21542156        YY_BREAK
    21552157case 62:
     
    21612163YY_RULE_SETUP
    21622164#line 232 "lex.ll"
     2165{ KEYWORD_RETURN(INLINE); }                             // GCC
     2166        YY_BREAK
     2167case 64:
     2168YY_RULE_SETUP
     2169#line 233 "lex.ll"
    21632170{ KEYWORD_RETURN(INT); }
    21642171        YY_BREAK
    2165 case 64:
    2166 YY_RULE_SETUP
    2167 #line 233 "lex.ll"
     2172case 65:
     2173YY_RULE_SETUP
     2174#line 234 "lex.ll"
    21682175{ KEYWORD_RETURN(INT); }                                // GCC
    21692176        YY_BREAK
    2170 case 65:
    2171 YY_RULE_SETUP
    2172 #line 234 "lex.ll"
     2177case 66:
     2178YY_RULE_SETUP
     2179#line 235 "lex.ll"
    21732180{ KEYWORD_RETURN(LABEL); }                              // GCC
    21742181        YY_BREAK
    2175 case 66:
    2176 YY_RULE_SETUP
    2177 #line 235 "lex.ll"
     2182case 67:
     2183YY_RULE_SETUP
     2184#line 236 "lex.ll"
    21782185{ KEYWORD_RETURN(LONG); }
    21792186        YY_BREAK
    2180 case 67:
    2181 YY_RULE_SETUP
    2182 #line 236 "lex.ll"
     2187case 68:
     2188YY_RULE_SETUP
     2189#line 237 "lex.ll"
    21832190{ KEYWORD_RETURN(LVALUE); }                             // CFA
    21842191        YY_BREAK
    2185 case 68:
    2186 YY_RULE_SETUP
    2187 #line 237 "lex.ll"
     2192case 69:
     2193YY_RULE_SETUP
     2194#line 238 "lex.ll"
    21882195{ KEYWORD_RETURN(NORETURN); }                   // C11
    21892196        YY_BREAK
    2190 case 69:
    2191 YY_RULE_SETUP
    2192 #line 238 "lex.ll"
     2197case 70:
     2198YY_RULE_SETUP
     2199#line 239 "lex.ll"
    21932200{ KEYWORD_RETURN(OFFSETOF); }           // GCC
    21942201        YY_BREAK
    2195 case 70:
    2196 YY_RULE_SETUP
    2197 #line 239 "lex.ll"
     2202case 71:
     2203YY_RULE_SETUP
     2204#line 240 "lex.ll"
    21982205{ KEYWORD_RETURN(OTYPE); }                              // CFA
    21992206        YY_BREAK
    2200 case 71:
    2201 YY_RULE_SETUP
    2202 #line 240 "lex.ll"
     2207case 72:
     2208YY_RULE_SETUP
     2209#line 241 "lex.ll"
    22032210{ KEYWORD_RETURN(REGISTER); }
    22042211        YY_BREAK
    2205 case 72:
    2206 YY_RULE_SETUP
    2207 #line 241 "lex.ll"
     2212case 73:
     2213YY_RULE_SETUP
     2214#line 242 "lex.ll"
    22082215{ KEYWORD_RETURN(RESTRICT); }                   // C99
    2209         YY_BREAK
    2210 case 73:
    2211 YY_RULE_SETUP
    2212 #line 242 "lex.ll"
    2213 { KEYWORD_RETURN(RESTRICT); }                   // GCC
    22142216        YY_BREAK
    22152217case 74:
     
    22212223YY_RULE_SETUP
    22222224#line 244 "lex.ll"
     2225{ KEYWORD_RETURN(RESTRICT); }                   // GCC
     2226        YY_BREAK
     2227case 76:
     2228YY_RULE_SETUP
     2229#line 245 "lex.ll"
    22232230{ KEYWORD_RETURN(RETURN); }
    22242231        YY_BREAK
    2225 case 76:
    2226 YY_RULE_SETUP
    2227 #line 245 "lex.ll"
     2232case 77:
     2233YY_RULE_SETUP
     2234#line 246 "lex.ll"
    22282235{ KEYWORD_RETURN(SHORT); }
    22292236        YY_BREAK
    2230 case 77:
    2231 YY_RULE_SETUP
    2232 #line 246 "lex.ll"
     2237case 78:
     2238YY_RULE_SETUP
     2239#line 247 "lex.ll"
    22332240{ KEYWORD_RETURN(SIGNED); }
    2234         YY_BREAK
    2235 case 78:
    2236 YY_RULE_SETUP
    2237 #line 247 "lex.ll"
    2238 { KEYWORD_RETURN(SIGNED); }                             // GCC
    22392241        YY_BREAK
    22402242case 79:
     
    22462248YY_RULE_SETUP
    22472249#line 249 "lex.ll"
     2250{ KEYWORD_RETURN(SIGNED); }                             // GCC
     2251        YY_BREAK
     2252case 81:
     2253YY_RULE_SETUP
     2254#line 250 "lex.ll"
    22482255{ KEYWORD_RETURN(SIZEOF); }
    22492256        YY_BREAK
    2250 case 81:
    2251 YY_RULE_SETUP
    2252 #line 250 "lex.ll"
     2257case 82:
     2258YY_RULE_SETUP
     2259#line 251 "lex.ll"
    22532260{ KEYWORD_RETURN(STATIC); }
    22542261        YY_BREAK
    2255 case 82:
    2256 YY_RULE_SETUP
    2257 #line 251 "lex.ll"
     2262case 83:
     2263YY_RULE_SETUP
     2264#line 252 "lex.ll"
    22582265{ KEYWORD_RETURN(STATICASSERT); }               // C11
    22592266        YY_BREAK
    2260 case 83:
    2261 YY_RULE_SETUP
    2262 #line 252 "lex.ll"
     2267case 84:
     2268YY_RULE_SETUP
     2269#line 253 "lex.ll"
    22632270{ KEYWORD_RETURN(STRUCT); }
    22642271        YY_BREAK
    2265 case 84:
    2266 YY_RULE_SETUP
    2267 #line 253 "lex.ll"
     2272case 85:
     2273YY_RULE_SETUP
     2274#line 254 "lex.ll"
    22682275{ KEYWORD_RETURN(SWITCH); }
    22692276        YY_BREAK
    2270 case 85:
    2271 YY_RULE_SETUP
    2272 #line 254 "lex.ll"
     2277case 86:
     2278YY_RULE_SETUP
     2279#line 255 "lex.ll"
    22732280{ KEYWORD_RETURN(THREADLOCAL); }                // C11
    22742281        YY_BREAK
    2275 case 86:
    2276 YY_RULE_SETUP
    2277 #line 255 "lex.ll"
     2282case 87:
     2283YY_RULE_SETUP
     2284#line 256 "lex.ll"
    22782285{ KEYWORD_RETURN(THROW); }                              // CFA
    22792286        YY_BREAK
    2280 case 87:
    2281 YY_RULE_SETUP
    2282 #line 256 "lex.ll"
     2287case 88:
     2288YY_RULE_SETUP
     2289#line 257 "lex.ll"
    22832290{ KEYWORD_RETURN(THROWRESUME); }                // CFA
    22842291        YY_BREAK
    2285 case 88:
    2286 YY_RULE_SETUP
    2287 #line 257 "lex.ll"
     2292case 89:
     2293YY_RULE_SETUP
     2294#line 258 "lex.ll"
    22882295{ KEYWORD_RETURN(TRAIT); }                              // CFA
    22892296        YY_BREAK
    2290 case 89:
    2291 YY_RULE_SETUP
    2292 #line 258 "lex.ll"
     2297case 90:
     2298YY_RULE_SETUP
     2299#line 259 "lex.ll"
    22932300{ KEYWORD_RETURN(TRY); }                                // CFA
    22942301        YY_BREAK
    2295 case 90:
    2296 YY_RULE_SETUP
    2297 #line 259 "lex.ll"
     2302case 91:
     2303YY_RULE_SETUP
     2304#line 260 "lex.ll"
    22982305{ KEYWORD_RETURN(TYPEDEF); }
    2299         YY_BREAK
    2300 case 91:
    2301 YY_RULE_SETUP
    2302 #line 260 "lex.ll"
    2303 { KEYWORD_RETURN(TYPEOF); }                             // GCC
    23042306        YY_BREAK
    23052307case 92:
     
    23162318YY_RULE_SETUP
    23172319#line 263 "lex.ll"
     2320{ KEYWORD_RETURN(TYPEOF); }                             // GCC
     2321        YY_BREAK
     2322case 95:
     2323YY_RULE_SETUP
     2324#line 264 "lex.ll"
    23182325{ KEYWORD_RETURN(UNION); }
    23192326        YY_BREAK
    2320 case 95:
    2321 YY_RULE_SETUP
    2322 #line 264 "lex.ll"
     2327case 96:
     2328YY_RULE_SETUP
     2329#line 265 "lex.ll"
    23232330{ KEYWORD_RETURN(UNSIGNED); }
    23242331        YY_BREAK
    2325 case 96:
    2326 YY_RULE_SETUP
    2327 #line 265 "lex.ll"
     2332case 97:
     2333YY_RULE_SETUP
     2334#line 266 "lex.ll"
    23282335{ KEYWORD_RETURN(VALIST); }                     // GCC
    23292336        YY_BREAK
    2330 case 97:
    2331 YY_RULE_SETUP
    2332 #line 266 "lex.ll"
     2337case 98:
     2338YY_RULE_SETUP
     2339#line 267 "lex.ll"
    23332340{ KEYWORD_RETURN(VOID); }
    23342341        YY_BREAK
    2335 case 98:
    2336 YY_RULE_SETUP
    2337 #line 267 "lex.ll"
     2342case 99:
     2343YY_RULE_SETUP
     2344#line 268 "lex.ll"
    23382345{ KEYWORD_RETURN(VOLATILE); }
    2339         YY_BREAK
    2340 case 99:
    2341 YY_RULE_SETUP
    2342 #line 268 "lex.ll"
    2343 { KEYWORD_RETURN(VOLATILE); }                   // GCC
    23442346        YY_BREAK
    23452347case 100:
     
    23512353YY_RULE_SETUP
    23522354#line 270 "lex.ll"
     2355{ KEYWORD_RETURN(VOLATILE); }                   // GCC
     2356        YY_BREAK
     2357case 102:
     2358YY_RULE_SETUP
     2359#line 271 "lex.ll"
    23532360{ KEYWORD_RETURN(WHILE); }
    23542361        YY_BREAK
    23552362/* identifier */
    2356 case 102:
    2357 YY_RULE_SETUP
    2358 #line 273 "lex.ll"
     2363case 103:
     2364YY_RULE_SETUP
     2365#line 274 "lex.ll"
    23592366{ IDENTIFIER_RETURN(); }
    23602367        YY_BREAK
    2361 case 103:
    2362 YY_RULE_SETUP
    2363 #line 274 "lex.ll"
     2368case 104:
     2369YY_RULE_SETUP
     2370#line 275 "lex.ll"
    23642371{ ATTRIBUTE_RETURN(); }
    23652372        YY_BREAK
    2366 case 104:
    2367 YY_RULE_SETUP
    2368 #line 275 "lex.ll"
     2373case 105:
     2374YY_RULE_SETUP
     2375#line 276 "lex.ll"
    23692376{ BEGIN BKQUOTE; }
    23702377        YY_BREAK
    2371 case 105:
    2372 YY_RULE_SETUP
    2373 #line 276 "lex.ll"
     2378case 106:
     2379YY_RULE_SETUP
     2380#line 277 "lex.ll"
    23742381{ IDENTIFIER_RETURN(); }
    23752382        YY_BREAK
    2376 case 106:
    2377 YY_RULE_SETUP
    2378 #line 277 "lex.ll"
     2383case 107:
     2384YY_RULE_SETUP
     2385#line 278 "lex.ll"
    23792386{ BEGIN 0; }
    23802387        YY_BREAK
    23812388/* numeric constants */
    2382 case 107:
    2383 YY_RULE_SETUP
    2384 #line 280 "lex.ll"
     2389case 108:
     2390YY_RULE_SETUP
     2391#line 281 "lex.ll"
    23852392{ NUMERIC_RETURN(ZERO); }                               // CFA
    23862393        YY_BREAK
    2387 case 108:
    2388 YY_RULE_SETUP
    2389 #line 281 "lex.ll"
     2394case 109:
     2395YY_RULE_SETUP
     2396#line 282 "lex.ll"
    23902397{ NUMERIC_RETURN(ONE); }                                // CFA
    2391         YY_BREAK
    2392 case 109:
    2393 YY_RULE_SETUP
    2394 #line 282 "lex.ll"
    2395 { NUMERIC_RETURN(INTEGERconstant); }
    23962398        YY_BREAK
    23972399case 110:
     
    24082410YY_RULE_SETUP
    24092411#line 285 "lex.ll"
    2410 { NUMERIC_RETURN(FLOATINGconstant); }
     2412{ NUMERIC_RETURN(INTEGERconstant); }
    24112413        YY_BREAK
    24122414case 113:
     
    24152417{ NUMERIC_RETURN(FLOATINGconstant); }
    24162418        YY_BREAK
     2419case 114:
     2420YY_RULE_SETUP
     2421#line 287 "lex.ll"
     2422{ NUMERIC_RETURN(FLOATINGconstant); }
     2423        YY_BREAK
    24172424/* character constant, allows empty value */
    2418 case 114:
    2419 YY_RULE_SETUP
    2420 #line 289 "lex.ll"
     2425case 115:
     2426YY_RULE_SETUP
     2427#line 290 "lex.ll"
    24212428{ BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    24222429        YY_BREAK
    2423 case 115:
    2424 YY_RULE_SETUP
    2425 #line 290 "lex.ll"
     2430case 116:
     2431YY_RULE_SETUP
     2432#line 291 "lex.ll"
    24262433{ *strtext += std::string( yytext ); }
    24272434        YY_BREAK
    2428 case 116:
    2429 /* rule 116 can match eol */
    2430 YY_RULE_SETUP
    2431 #line 291 "lex.ll"
     2435case 117:
     2436/* rule 117 can match eol */
     2437YY_RULE_SETUP
     2438#line 292 "lex.ll"
    24322439{ BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); }
    24332440        YY_BREAK
    24342441/* ' stop highlighting */
    24352442/* string constant */
    2436 case 117:
    2437 YY_RULE_SETUP
    2438 #line 295 "lex.ll"
     2443case 118:
     2444YY_RULE_SETUP
     2445#line 296 "lex.ll"
    24392446{ BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    24402447        YY_BREAK
    2441 case 118:
    2442 YY_RULE_SETUP
    2443 #line 296 "lex.ll"
     2448case 119:
     2449YY_RULE_SETUP
     2450#line 297 "lex.ll"
    24442451{ *strtext += std::string( yytext ); }
    24452452        YY_BREAK
    2446 case 119:
    2447 /* rule 119 can match eol */
    2448 YY_RULE_SETUP
    2449 #line 297 "lex.ll"
     2453case 120:
     2454/* rule 120 can match eol */
     2455YY_RULE_SETUP
     2456#line 298 "lex.ll"
    24502457{ BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); }
    24512458        YY_BREAK
    24522459/* " stop highlighting */
    24532460/* common character/string constant */
    2454 case 120:
    2455 YY_RULE_SETUP
    2456 #line 301 "lex.ll"
     2461case 121:
     2462YY_RULE_SETUP
     2463#line 302 "lex.ll"
    24572464{ rm_underscore(); *strtext += std::string( yytext ); }
    24582465        YY_BREAK
    2459 case 121:
    2460 /* rule 121 can match eol */
    2461 YY_RULE_SETUP
    2462 #line 302 "lex.ll"
     2466case 122:
     2467/* rule 122 can match eol */
     2468YY_RULE_SETUP
     2469#line 303 "lex.ll"
    24632470{}                                              // continuation (ALSO HANDLED BY CPP)
    24642471        YY_BREAK
    2465 case 122:
    2466 YY_RULE_SETUP
    2467 #line 303 "lex.ll"
     2472case 123:
     2473YY_RULE_SETUP
     2474#line 304 "lex.ll"
    24682475{ *strtext += std::string( yytext ); } // unknown escape character
    24692476        YY_BREAK
    24702477/* punctuation */
    2471 case 123:
    2472 YY_RULE_SETUP
    2473 #line 306 "lex.ll"
    2474 { ASCIIOP_RETURN(); }
    2475         YY_BREAK
    24762478case 124:
    24772479YY_RULE_SETUP
     
    25022504YY_RULE_SETUP
    25032505#line 312 "lex.ll"
     2506{ ASCIIOP_RETURN(); }
     2507        YY_BREAK
     2508case 130:
     2509YY_RULE_SETUP
     2510#line 313 "lex.ll"
    25042511{ ASCIIOP_RETURN(); }                                   // also operator
    2505         YY_BREAK
    2506 case 130:
    2507 YY_RULE_SETUP
    2508 #line 313 "lex.ll"
    2509 { ASCIIOP_RETURN(); }
    25102512        YY_BREAK
    25112513case 131:
     
    25172519YY_RULE_SETUP
    25182520#line 315 "lex.ll"
     2521{ ASCIIOP_RETURN(); }
     2522        YY_BREAK
     2523case 133:
     2524YY_RULE_SETUP
     2525#line 316 "lex.ll"
    25192526{ ASCIIOP_RETURN(); }                                   // also operator
    25202527        YY_BREAK
    2521 case 133:
    2522 YY_RULE_SETUP
    2523 #line 316 "lex.ll"
     2528case 134:
     2529YY_RULE_SETUP
     2530#line 317 "lex.ll"
    25242531{ NAMEDOP_RETURN(ELLIPSIS); }
    25252532        YY_BREAK
    25262533/* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */
    2527 case 134:
    2528 YY_RULE_SETUP
    2529 #line 319 "lex.ll"
     2534case 135:
     2535YY_RULE_SETUP
     2536#line 320 "lex.ll"
    25302537{ RETURN_VAL('['); }
    25312538        YY_BREAK
    2532 case 135:
    2533 YY_RULE_SETUP
    2534 #line 320 "lex.ll"
     2539case 136:
     2540YY_RULE_SETUP
     2541#line 321 "lex.ll"
    25352542{ RETURN_VAL(']'); }
    25362543        YY_BREAK
    2537 case 136:
    2538 YY_RULE_SETUP
    2539 #line 321 "lex.ll"
     2544case 137:
     2545YY_RULE_SETUP
     2546#line 322 "lex.ll"
    25402547{ RETURN_VAL('{'); }
    25412548        YY_BREAK
    2542 case 137:
    2543 YY_RULE_SETUP
    2544 #line 322 "lex.ll"
     2549case 138:
     2550YY_RULE_SETUP
     2551#line 323 "lex.ll"
    25452552{ RETURN_VAL('}'); }
    25462553        YY_BREAK
    25472554/* operators */
    2548 case 138:
    2549 YY_RULE_SETUP
    2550 #line 325 "lex.ll"
    2551 { ASCIIOP_RETURN(); }
    2552         YY_BREAK
    25532555case 139:
    25542556YY_RULE_SETUP
     
    26182620case 152:
    26192621YY_RULE_SETUP
    2620 #line 340 "lex.ll"
     2622#line 339 "lex.ll"
     2623{ ASCIIOP_RETURN(); }
     2624        YY_BREAK
     2625case 153:
     2626YY_RULE_SETUP
     2627#line 341 "lex.ll"
    26212628{ NAMEDOP_RETURN(ICR); }
    26222629        YY_BREAK
    2623 case 153:
    2624 YY_RULE_SETUP
    2625 #line 341 "lex.ll"
     2630case 154:
     2631YY_RULE_SETUP
     2632#line 342 "lex.ll"
    26262633{ NAMEDOP_RETURN(DECR); }
    26272634        YY_BREAK
    2628 case 154:
    2629 YY_RULE_SETUP
    2630 #line 342 "lex.ll"
     2635case 155:
     2636YY_RULE_SETUP
     2637#line 343 "lex.ll"
    26312638{ NAMEDOP_RETURN(EQ); }
    26322639        YY_BREAK
    2633 case 155:
    2634 YY_RULE_SETUP
    2635 #line 343 "lex.ll"
     2640case 156:
     2641YY_RULE_SETUP
     2642#line 344 "lex.ll"
    26362643{ NAMEDOP_RETURN(NE); }
    26372644        YY_BREAK
    2638 case 156:
    2639 YY_RULE_SETUP
    2640 #line 344 "lex.ll"
     2645case 157:
     2646YY_RULE_SETUP
     2647#line 345 "lex.ll"
    26412648{ NAMEDOP_RETURN(LS); }
    26422649        YY_BREAK
    2643 case 157:
    2644 YY_RULE_SETUP
    2645 #line 345 "lex.ll"
     2650case 158:
     2651YY_RULE_SETUP
     2652#line 346 "lex.ll"
    26462653{ NAMEDOP_RETURN(RS); }
    26472654        YY_BREAK
    2648 case 158:
    2649 YY_RULE_SETUP
    2650 #line 346 "lex.ll"
     2655case 159:
     2656YY_RULE_SETUP
     2657#line 347 "lex.ll"
    26512658{ NAMEDOP_RETURN(LE); }
    26522659        YY_BREAK
    2653 case 159:
    2654 YY_RULE_SETUP
    2655 #line 347 "lex.ll"
     2660case 160:
     2661YY_RULE_SETUP
     2662#line 348 "lex.ll"
    26562663{ NAMEDOP_RETURN(GE); }
    26572664        YY_BREAK
    2658 case 160:
    2659 YY_RULE_SETUP
    2660 #line 348 "lex.ll"
     2665case 161:
     2666YY_RULE_SETUP
     2667#line 349 "lex.ll"
    26612668{ NAMEDOP_RETURN(ANDAND); }
    26622669        YY_BREAK
    2663 case 161:
    2664 YY_RULE_SETUP
    2665 #line 349 "lex.ll"
     2670case 162:
     2671YY_RULE_SETUP
     2672#line 350 "lex.ll"
    26662673{ NAMEDOP_RETURN(OROR); }
    26672674        YY_BREAK
    2668 case 162:
    2669 YY_RULE_SETUP
    2670 #line 350 "lex.ll"
     2675case 163:
     2676YY_RULE_SETUP
     2677#line 351 "lex.ll"
    26712678{ NAMEDOP_RETURN(ARROW); }
    26722679        YY_BREAK
    2673 case 163:
    2674 YY_RULE_SETUP
    2675 #line 351 "lex.ll"
     2680case 164:
     2681YY_RULE_SETUP
     2682#line 352 "lex.ll"
    26762683{ NAMEDOP_RETURN(PLUSassign); }
    26772684        YY_BREAK
    2678 case 164:
    2679 YY_RULE_SETUP
    2680 #line 352 "lex.ll"
     2685case 165:
     2686YY_RULE_SETUP
     2687#line 353 "lex.ll"
    26812688{ NAMEDOP_RETURN(MINUSassign); }
    26822689        YY_BREAK
    2683 case 165:
    2684 YY_RULE_SETUP
    2685 #line 353 "lex.ll"
     2690case 166:
     2691YY_RULE_SETUP
     2692#line 354 "lex.ll"
    26862693{ NAMEDOP_RETURN(MULTassign); }
    26872694        YY_BREAK
    2688 case 166:
    2689 YY_RULE_SETUP
    2690 #line 354 "lex.ll"
     2695case 167:
     2696YY_RULE_SETUP
     2697#line 355 "lex.ll"
    26912698{ NAMEDOP_RETURN(DIVassign); }
    26922699        YY_BREAK
    2693 case 167:
    2694 YY_RULE_SETUP
    2695 #line 355 "lex.ll"
     2700case 168:
     2701YY_RULE_SETUP
     2702#line 356 "lex.ll"
    26962703{ NAMEDOP_RETURN(MODassign); }
    26972704        YY_BREAK
    2698 case 168:
    2699 YY_RULE_SETUP
    2700 #line 356 "lex.ll"
     2705case 169:
     2706YY_RULE_SETUP
     2707#line 357 "lex.ll"
    27012708{ NAMEDOP_RETURN(ANDassign); }
    27022709        YY_BREAK
    2703 case 169:
    2704 YY_RULE_SETUP
    2705 #line 357 "lex.ll"
     2710case 170:
     2711YY_RULE_SETUP
     2712#line 358 "lex.ll"
    27062713{ NAMEDOP_RETURN(ORassign); }
    27072714        YY_BREAK
    2708 case 170:
    2709 YY_RULE_SETUP
    2710 #line 358 "lex.ll"
     2715case 171:
     2716YY_RULE_SETUP
     2717#line 359 "lex.ll"
    27112718{ NAMEDOP_RETURN(ERassign); }
    27122719        YY_BREAK
    2713 case 171:
    2714 YY_RULE_SETUP
    2715 #line 359 "lex.ll"
     2720case 172:
     2721YY_RULE_SETUP
     2722#line 360 "lex.ll"
    27162723{ NAMEDOP_RETURN(LSassign); }
    27172724        YY_BREAK
    2718 case 172:
    2719 YY_RULE_SETUP
    2720 #line 360 "lex.ll"
     2725case 173:
     2726YY_RULE_SETUP
     2727#line 361 "lex.ll"
    27212728{ NAMEDOP_RETURN(RSassign); }
    27222729        YY_BREAK
    2723 case 173:
    2724 YY_RULE_SETUP
    2725 #line 362 "lex.ll"
    2726 { NAMEDOP_RETURN(ATassign); }
     2730case 174:
     2731YY_RULE_SETUP
     2732#line 363 "lex.ll"
     2733{ NAMEDOP_RETURN(ATassign); }                   // CFA
    27272734        YY_BREAK
    27282735/* CFA, operator identifier */
    2729 case 174:
    2730 YY_RULE_SETUP
    2731 #line 365 "lex.ll"
     2736case 175:
     2737YY_RULE_SETUP
     2738#line 366 "lex.ll"
    27322739{ IDENTIFIER_RETURN(); }                                // unary
    2733         YY_BREAK
    2734 case 175:
    2735 YY_RULE_SETUP
    2736 #line 366 "lex.ll"
    2737 { IDENTIFIER_RETURN(); }
    27382740        YY_BREAK
    27392741case 176:
     
    27452747YY_RULE_SETUP
    27462748#line 368 "lex.ll"
     2749{ IDENTIFIER_RETURN(); }
     2750        YY_BREAK
     2751case 178:
     2752YY_RULE_SETUP
     2753#line 369 "lex.ll"
    27472754{ IDENTIFIER_RETURN(); }                // binary
    27482755        YY_BREAK
     
    27732780          an argument list.
    27742781        */
    2775 case 178:
    2776 YY_RULE_SETUP
    2777 #line 395 "lex.ll"
     2782case 179:
     2783YY_RULE_SETUP
     2784#line 396 "lex.ll"
    27782785{
    27792786        // 1 or 2 character unary operator ?
     
    27882795        YY_BREAK
    27892796/* unknown characters */
    2790 case 179:
    2791 YY_RULE_SETUP
    2792 #line 407 "lex.ll"
     2797case 180:
     2798YY_RULE_SETUP
     2799#line 408 "lex.ll"
    27932800{ printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
    27942801        YY_BREAK
    2795 case 180:
    2796 YY_RULE_SETUP
    2797 #line 409 "lex.ll"
     2802case 181:
     2803YY_RULE_SETUP
     2804#line 410 "lex.ll"
    27982805ECHO;
    27992806        YY_BREAK
    2800 #line 2801 "Parser/lex.cc"
     2807#line 2808 "Parser/lex.cc"
    28012808case YY_STATE_EOF(INITIAL):
    28022809case YY_STATE_EOF(COMMENT):
     
    30953102                        {
    30963103                        yy_current_state = (int) yy_def[yy_current_state];
    3097                         if ( yy_current_state >= 888 )
     3104                        if ( yy_current_state >= 892 )
    30983105                                yy_c = yy_meta[(unsigned int) yy_c];
    30993106                        }
     
    31233130                {
    31243131                yy_current_state = (int) yy_def[yy_current_state];
    3125                 if ( yy_current_state >= 888 )
     3132                if ( yy_current_state >= 892 )
    31263133                        yy_c = yy_meta[(unsigned int) yy_c];
    31273134                }
    31283135        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    3129         yy_is_jam = (yy_current_state == 887);
     3136        yy_is_jam = (yy_current_state == 891);
    31303137
    31313138        return yy_is_jam ? 0 : yy_current_state;
     
    37733780#define YYTABLES_NAME "yytables"
    37743781
    3775 #line 409 "lex.ll"
     3782#line 410 "lex.ll"
    37763783
    37773784
  • src/Parser/lex.ll

    r057b34f r08061589  
    99 * Author           : Peter A. Buhr
    1010 * Created On       : Sat Sep 22 08:58:10 2001
    11  * Last Modified By : Peter A. Buhr
    12  * Last Modified On : Thu Jun 23 07:29:30 2016
    13  * Update Count     : 457
     11 * Last Modified By :
     12 * Last Modified On : Sun Jul 31 07:19:36 2016
     13 * Update Count     : 459
    1414 */
    1515
     
    213213__extension__   { KEYWORD_RETURN(EXTENSION); }                  // GCC
    214214extern                  { KEYWORD_RETURN(EXTERN); }
     215fallthrough             { KEYWORD_RETURN(FALLTHRU); }                   // CFA
    215216fallthru                { KEYWORD_RETURN(FALLTHRU); }                   // CFA
    216217finally                 { KEYWORD_RETURN(FINALLY); }                    // CFA
     
    360361">>="                   { NAMEDOP_RETURN(RSassign); }
    361362
    362 "@="                    { NAMEDOP_RETURN(ATassign); }
     363"@="                    { NAMEDOP_RETURN(ATassign); }                   // CFA
    363364
    364365                                /* CFA, operator identifier */
Note: See TracChangeset for help on using the changeset viewer.