CoolFace
Modelpublic

AryaWu/sqlite

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
parse.c6328 linesDownload Raw Back to root
1/* This file is automatically generated by Lemon from input grammar2** source file "parse.y".3*/4/*5** 2001-09-156**7** The author disclaims copyright to this source code.  In place of8** a legal notice, here is a blessing:9**10**    May you do good and not evil.11**    May you find forgiveness for yourself and forgive others.12**    May you share freely, never taking more than you give.13**14*************************************************************************15** This file contains SQLite's SQL parser.16**17** The canonical source code to this file ("parse.y") is a Lemon grammar 18** file that specifies the input grammar and actions to take while parsing.19** That input file is processed by Lemon to generate a C-language 20** implementation of a parser for the given grammar.  You might be reading21** this comment as part of the translated C-code.  Edits should be made22** to the original parse.y sources.23*/24#line 64 "parse.y"25 26#include "sqliteInt.h"27 28/*29** Verify that the pParse->isCreate field is set30*/31#define ASSERT_IS_CREATE   assert(pParse->isCreate)32 33/*34** Disable all error recovery processing in the parser push-down35** automaton.36*/37#define YYNOERRORRECOVERY 138 39/*40** Make yytestcase() the same as testcase()41*/42#define yytestcase(X) testcase(X)43 44/*45** Indicate that sqlite3ParserFree() will never be called with a null46** pointer.47*/48#define YYPARSEFREENEVERNULL 149 50/*51** In the amalgamation, the parse.c file generated by lemon and the52** tokenize.c file are concatenated.  In that case, sqlite3RunParser()53** has access to the the size of the yyParser object and so the parser54** engine can be allocated from stack.  In that case, only the55** sqlite3ParserInit() and sqlite3ParserFinalize() routines are invoked56** and the sqlite3ParserAlloc() and sqlite3ParserFree() routines can be57** omitted.58*/59#ifdef SQLITE_AMALGAMATION60# define sqlite3Parser_ENGINEALWAYSONSTACK 161#endif62 63/*64** Alternative datatype for the argument to the malloc() routine passed65** into sqlite3ParserAlloc().  The default is size_t.66*/67#define YYMALLOCARGTYPE  u6468 69/*70** An instance of the following structure describes the event of a71** TRIGGER.  "a" is the event type, one of TK_UPDATE, TK_INSERT,72** TK_DELETE, or TK_INSTEAD.  If the event is of the form73**74**      UPDATE ON (a,b,c)75**76** Then the "b" IdList records the list "a,b,c".77*/78struct TrigEvent { int a; IdList * b; };79 80struct FrameBound     { int eType; Expr *pExpr; };81 82/*83** Generate a syntax error84*/85static void parserSyntaxError(Parse *pParse, Token *p){86  sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", p);87}88 89/*90** Disable lookaside memory allocation for objects that might be91** shared across database connections.92*/93static void disableLookaside(Parse *pParse){94  sqlite3 *db = pParse->db;95  pParse->disableLookaside++;96#ifdef SQLITE_DEBUG97  pParse->isCreate = 1;98#endif99  memset(&pParse->u1.cr, 0, sizeof(pParse->u1.cr));100  DisableLookaside;101}102 103#if !defined(SQLITE_ENABLE_UPDATE_DELETE_LIMIT) \104 && defined(SQLITE_UDL_CAPABLE_PARSER)105/*106** Issue an error message if an ORDER BY or LIMIT clause occurs on an107** UPDATE or DELETE statement.108*/109static void updateDeleteLimitError(110  Parse *pParse,111  ExprList *pOrderBy,112  Expr *pLimit113){114  if( pOrderBy ){115    sqlite3ErrorMsg(pParse, "syntax error near \"ORDER BY\"");116  }else{117    sqlite3ErrorMsg(pParse, "syntax error near \"LIMIT\"");118  }119  sqlite3ExprListDelete(pParse->db, pOrderBy);120  sqlite3ExprDelete(pParse->db, pLimit);121}122#endif /* SQLITE_ENABLE_UPDATE_DELETE_LIMIT */123 124#line 537 "parse.y"125 126  /*127  ** For a compound SELECT statement, make sure p->pPrior->pNext==p for128  ** all elements in the list.  And make sure list length does not exceed129  ** SQLITE_LIMIT_COMPOUND_SELECT.130  */131  static void parserDoubleLinkSelect(Parse *pParse, Select *p){132    assert( p!=0 );133    if( p->pPrior ){134      Select *pNext = 0, *pLoop = p;135      int mxSelect, cnt = 1;136      while(1){137        pLoop->pNext = pNext;138        pLoop->selFlags |= SF_Compound;139        pNext = pLoop;140        pLoop = pLoop->pPrior;141        if( pLoop==0 ) break;142        cnt++;        143        if( pLoop->pOrderBy || pLoop->pLimit ){144          sqlite3ErrorMsg(pParse,"%s clause should come after %s not before",145             pLoop->pOrderBy!=0 ? "ORDER BY" : "LIMIT",146             sqlite3SelectOpName(pNext->op));147          break;148        }149      }150      if( (p->selFlags & (SF_MultiValue|SF_Values))==0151       && (mxSelect = pParse->db->aLimit[SQLITE_LIMIT_COMPOUND_SELECT])>0152       && cnt>mxSelect153      ){154        sqlite3ErrorMsg(pParse, "too many terms in compound SELECT");155      }156    }157  }158 159  /* Attach a With object describing the WITH clause to a Select160  ** object describing the query for which the WITH clause is a prefix.161  */162  static Select *attachWithToSelect(Parse *pParse, Select *pSelect, With *pWith){163    if( pSelect ){164      pSelect->pWith = pWith;165      parserDoubleLinkSelect(pParse, pSelect);166    }else{167      sqlite3WithDelete(pParse->db, pWith);168    }169    return pSelect;170  }171 172  /* Memory allocator for parser stack resizing.  This is a thin wrapper around173  ** sqlite3_realloc() that includes a call to sqlite3FaultSim() to facilitate174  ** testing.175  */176  static void *parserStackRealloc(177    void *pOld,               /* Prior allocation */178    sqlite3_uint64 newSize,   /* Requested new alloation size */179    Parse *pParse             /* Parsing context */180  ){181    void *p = sqlite3FaultSim(700) ? 0 : sqlite3_realloc(pOld, newSize);182    if( p==0 ) sqlite3OomFault(pParse->db);183    return p;184  }185  static void parserStackFree(void *pOld, Parse *pParse){186    (void)pParse;187    sqlite3_free(pOld); 188  }189 190  /* Return an integer that is the maximum allowed stack size */191  static int parserStackSizeLimit(Parse *pParse){192    return pParse->db->aLimit[SQLITE_LIMIT_PARSER_DEPTH];193  }194#line 1137 "parse.y"195 196 197  /* Construct a new Expr object from a single token */198  static Expr *tokenExpr(Parse *pParse, int op, Token t){199    Expr *p = sqlite3DbMallocRawNN(pParse->db, sizeof(Expr)+t.n+1);200    if( p ){201      /* memset(p, 0, sizeof(Expr)); */202      p->op = (u8)op;203      p->affExpr = 0;204      p->flags = EP_Leaf;205      ExprClearVVAProperties(p);206      /* p->iAgg = -1; // Not required */207      p->pLeft = p->pRight = 0;208      p->pAggInfo = 0;209      memset(&p->x, 0, sizeof(p->x));210      memset(&p->y, 0, sizeof(p->y));211      p->op2 = 0;212      p->iTable = 0;213      p->iColumn = 0;214      p->u.zToken = (char*)&p[1];215      memcpy(p->u.zToken, t.z, t.n);216      p->u.zToken[t.n] = 0;217      p->w.iOfst = (int)(t.z - pParse->zTail);218      if( sqlite3Isquote(p->u.zToken[0]) ){219        sqlite3DequoteExpr(p);220      }221#if SQLITE_MAX_EXPR_DEPTH>0222      p->nHeight = 1;223#endif  224      if( IN_RENAME_OBJECT ){225        return (Expr*)sqlite3RenameTokenMap(pParse, (void*)p, &t);226      }227    }228    return p;229  }230 231#line 1383 "parse.y"232 233  /* Create a TK_ISNULL or TK_NOTNULL expression, perhaps optimized to234  ** to TK_TRUEFALSE, if possible */235  static Expr *sqlite3PExprIsNull(236    Parse *pParse,  /* Parsing context */237    int op,         /* TK_ISNULL or TK_NOTNULL */238    Expr *pLeft     /* Operand */239  ){240    Expr *p = pLeft;241    assert( op==TK_ISNULL || op==TK_NOTNULL );242    assert( pLeft!=0 );243    while( p->op==TK_UPLUS || p->op==TK_UMINUS ){244      p = p->pLeft;245      assert( p!=0 );246    }247    switch( p->op ){248      case TK_INTEGER:249      case TK_STRING:250      case TK_FLOAT:251      case TK_BLOB:252        sqlite3ExprDeferredDelete(pParse, pLeft);253        return sqlite3ExprInt32(pParse->db, op==TK_NOTNULL);254      default:255        break;256    }257    return sqlite3PExpr(pParse, op, pLeft, 0);258  }259 260  /* Create a TK_IS or TK_ISNOT operator, perhaps optimized to261  ** TK_ISNULL or TK_NOTNULL or TK_TRUEFALSE. */262  static Expr *sqlite3PExprIs(263    Parse *pParse,  /* Parsing context */264    int op,         /* TK_IS or TK_ISNOT */265    Expr *pLeft,    /* Left operand */266    Expr *pRight    /* Right operand */267  ){268    if( pRight && pRight->op==TK_NULL ){269      sqlite3ExprDeferredDelete(pParse, pRight);270      return sqlite3PExprIsNull(pParse, op==TK_IS ? TK_ISNULL : TK_NOTNULL, pLeft);271    }272    return sqlite3PExpr(pParse, op, pLeft, pRight);273  }274#line 1654 "parse.y"275 276  /* Add a single new term to an ExprList that is used to store a277  ** list of identifiers.  Report an error if the ID list contains278  ** a COLLATE clause or an ASC or DESC keyword, except ignore the279  ** error while parsing a legacy schema.280  */281  static ExprList *parserAddExprIdListTerm(282    Parse *pParse,283    ExprList *pPrior,284    Token *pIdToken,285    int hasCollate,286    int sortOrder287  ){288    ExprList *p = sqlite3ExprListAppend(pParse, pPrior, 0);289    if( (hasCollate || sortOrder!=SQLITE_SO_UNDEFINED)290        && pParse->db->init.busy==0291    ){292      sqlite3ErrorMsg(pParse, "syntax error after column name \"%.*s\"",293                         pIdToken->n, pIdToken->z);294    }295    sqlite3ExprListSetName(pParse, p, pIdToken, 1);296    return p;297  }298#line 2148 "parse.y"299 300#if TK_SPAN>255301# error too many tokens in the grammar302#endif303#line 304 "parse.c"304/**************** End of %include directives **********************************/305/* These constants specify the various numeric values for terminal symbols.306***************** Begin token definitions *************************************/307#ifndef TK_SEMI308#define TK_SEMI                            1309#define TK_EXPLAIN                         2310#define TK_QUERY                           3311#define TK_PLAN                            4312#define TK_BEGIN                           5313#define TK_TRANSACTION                     6314#define TK_DEFERRED                        7315#define TK_IMMEDIATE                       8316#define TK_EXCLUSIVE                       9317#define TK_COMMIT                         10318#define TK_END                            11319#define TK_ROLLBACK                       12320#define TK_SAVEPOINT                      13321#define TK_RELEASE                        14322#define TK_TO                             15323#define TK_TABLE                          16324#define TK_CREATE                         17325#define TK_IF                             18326#define TK_NOT                            19327#define TK_EXISTS                         20328#define TK_TEMP                           21329#define TK_LP                             22330#define TK_RP                             23331#define TK_AS                             24332#define TK_COMMA                          25333#define TK_WITHOUT                        26334#define TK_ABORT                          27335#define TK_ACTION                         28336#define TK_AFTER                          29337#define TK_ANALYZE                        30338#define TK_ASC                            31339#define TK_ATTACH                         32340#define TK_BEFORE                         33341#define TK_BY                             34342#define TK_CASCADE                        35343#define TK_CAST                           36344#define TK_CONFLICT                       37345#define TK_DATABASE                       38346#define TK_DESC                           39347#define TK_DETACH                         40348#define TK_EACH                           41349#define TK_FAIL                           42350#define TK_OR                             43351#define TK_AND                            44352#define TK_IS                             45353#define TK_ISNOT                          46354#define TK_MATCH                          47355#define TK_LIKE_KW                        48356#define TK_BETWEEN                        49357#define TK_IN                             50358#define TK_ISNULL                         51359#define TK_NOTNULL                        52360#define TK_NE                             53361#define TK_EQ                             54362#define TK_GT                             55363#define TK_LE                             56364#define TK_LT                             57365#define TK_GE                             58366#define TK_ESCAPE                         59367#define TK_ID                             60368#define TK_COLUMNKW                       61369#define TK_DO                             62370#define TK_FOR                            63371#define TK_IGNORE                         64372#define TK_INITIALLY                      65373#define TK_INSTEAD                        66374#define TK_NO                             67375#define TK_KEY                            68376#define TK_OF                             69377#define TK_OFFSET                         70378#define TK_PRAGMA                         71379#define TK_RAISE                          72380#define TK_RECURSIVE                      73381#define TK_REPLACE                        74382#define TK_RESTRICT                       75383#define TK_ROW                            76384#define TK_ROWS                           77385#define TK_TRIGGER                        78386#define TK_VACUUM                         79387#define TK_VIEW                           80388#define TK_VIRTUAL                        81389#define TK_WITH                           82390#define TK_NULLS                          83391#define TK_FIRST                          84392#define TK_LAST                           85393#define TK_CURRENT                        86394#define TK_FOLLOWING                      87395#define TK_PARTITION                      88396#define TK_PRECEDING                      89397#define TK_RANGE                          90398#define TK_UNBOUNDED                      91399#define TK_EXCLUDE                        92400#define TK_GROUPS                         93401#define TK_OTHERS                         94402#define TK_TIES                           95403#define TK_GENERATED                      96404#define TK_ALWAYS                         97405#define TK_MATERIALIZED                   98406#define TK_REINDEX                        99407#define TK_RENAME                         100408#define TK_CTIME_KW                       101409#define TK_ANY                            102410#define TK_BITAND                         103411#define TK_BITOR                          104412#define TK_LSHIFT                         105413#define TK_RSHIFT                         106414#define TK_PLUS                           107415#define TK_MINUS                          108416#define TK_STAR                           109417#define TK_SLASH                          110418#define TK_REM                            111419#define TK_CONCAT                         112420#define TK_PTR                            113421#define TK_COLLATE                        114422#define TK_BITNOT                         115423#define TK_ON                             116424#define TK_INDEXED                        117425#define TK_STRING                         118426#define TK_JOIN_KW                        119427#define TK_CONSTRAINT                     120428#define TK_DEFAULT                        121429#define TK_NULL                           122430#define TK_PRIMARY                        123431#define TK_UNIQUE                         124432#define TK_CHECK                          125433#define TK_REFERENCES                     126434#define TK_AUTOINCR                       127435#define TK_INSERT                         128436#define TK_DELETE                         129437#define TK_UPDATE                         130438#define TK_SET                            131439#define TK_DEFERRABLE                     132440#define TK_FOREIGN                        133441#define TK_DROP                           134442#define TK_UNION                          135443#define TK_ALL                            136444#define TK_EXCEPT                         137445#define TK_INTERSECT                      138446#define TK_SELECT                         139447#define TK_VALUES                         140448#define TK_DISTINCT                       141449#define TK_DOT                            142450#define TK_FROM                           143451#define TK_JOIN                           144452#define TK_USING                          145453#define TK_ORDER                          146454#define TK_GROUP                          147455#define TK_HAVING                         148456#define TK_LIMIT                          149457#define TK_WHERE                          150458#define TK_RETURNING                      151459#define TK_INTO                           152460#define TK_NOTHING                        153461#define TK_FLOAT                          154462#define TK_BLOB                           155463#define TK_INTEGER                        156464#define TK_VARIABLE                       157465#define TK_CASE                           158466#define TK_WHEN                           159467#define TK_THEN                           160468#define TK_ELSE                           161469#define TK_INDEX                          162470#define TK_ALTER                          163471#define TK_ADD                            164472#define TK_WINDOW                         165473#define TK_OVER                           166474#define TK_FILTER                         167475#define TK_COLUMN                         168476#define TK_AGG_FUNCTION                   169477#define TK_AGG_COLUMN                     170478#define TK_TRUEFALSE                      171479#define TK_FUNCTION                       172480#define TK_UPLUS                          173481#define TK_UMINUS                         174482#define TK_TRUTH                          175483#define TK_REGISTER                       176484#define TK_VECTOR                         177485#define TK_SELECT_COLUMN                  178486#define TK_IF_NULL_ROW                    179487#define TK_ASTERISK                       180488#define TK_SPAN                           181489#define TK_ERROR                          182490#define TK_QNUMBER                        183491#define TK_SPACE                          184492#define TK_COMMENT                        185493#define TK_ILLEGAL                        186494#endif495/**************** End token definitions ***************************************/496 497/* The next sections is a series of control #defines.498** various aspects of the generated parser.499**    YYCODETYPE         is the data type used to store the integer codes500**                       that represent terminal and non-terminal symbols.501**                       "unsigned char" is used if there are fewer than502**                       256 symbols.  Larger types otherwise.503**    YYNOCODE           is a number of type YYCODETYPE that is not used for504**                       any terminal or nonterminal symbol.505**    YYFALLBACK         If defined, this indicates that one or more tokens506**                       (also known as: "terminal symbols") have fall-back507**                       values which should be used if the original symbol508**                       would not parse.  This permits keywords to sometimes509**                       be used as identifiers, for example.510**    YYACTIONTYPE       is the data type used for "action codes" - numbers511**                       that indicate what to do in response to the next512**                       token.513**    sqlite3ParserTOKENTYPE     is the data type used for minor type for terminal514**                       symbols.  Background: A "minor type" is a semantic515**                       value associated with a terminal or non-terminal516**                       symbols.  For example, for an "ID" terminal symbol,517**                       the minor type might be the name of the identifier.518**                       Each non-terminal can have a different minor type.519**                       Terminal symbols all have the same minor type, though.520**                       This macros defines the minor type for terminal 521**                       symbols.522**    YYMINORTYPE        is the data type used for all minor types.523**                       This is typically a union of many types, one of524**                       which is sqlite3ParserTOKENTYPE.  The entry in the union525**                       for terminal symbols is called "yy0".526**    YYSTACKDEPTH       is the maximum depth of the parser's stack.  If527**                       zero the stack is dynamically sized using realloc()528**    sqlite3ParserARG_SDECL     A static variable declaration for the %extra_argument529**    sqlite3ParserARG_PDECL     A parameter declaration for the %extra_argument530**    sqlite3ParserARG_PARAM     Code to pass %extra_argument as a subroutine parameter531**    sqlite3ParserARG_STORE     Code to store %extra_argument into yypParser532**    sqlite3ParserARG_FETCH     Code to extract %extra_argument from yypParser533**    sqlite3ParserCTX_*         As sqlite3ParserARG_ except for %extra_context534**    YYREALLOC          Name of the realloc() function to use535**    YYFREE             Name of the free() function to use536**    YYDYNSTACK         True if stack space should be extended on heap537**    YYERRORSYMBOL      is the code number of the error symbol.  If not538**                       defined, then do no error processing.539**    YYNSTATE           the combined number of states.540**    YYNRULE            the number of rules in the grammar541**    YYNTOKEN           Number of terminal symbols542**    YY_MAX_SHIFT       Maximum value for shift actions543**    YY_MIN_SHIFTREDUCE Minimum value for shift-reduce actions544**    YY_MAX_SHIFTREDUCE Maximum value for shift-reduce actions545**    YY_ERROR_ACTION    The yy_action[] code for syntax error546**    YY_ACCEPT_ACTION   The yy_action[] code for accept547**    YY_NO_ACTION       The yy_action[] code for no-op548**    YY_MIN_REDUCE      Minimum value for reduce actions549**    YY_MAX_REDUCE      Maximum value for reduce actions550**    YY_MIN_DSTRCTR     Minimum symbol value that has a destructor551**    YY_MAX_DSTRCTR     Maximum symbol value that has a destructor552*/553#ifndef INTERFACE554# define INTERFACE 1555#endif556/************* Begin control #defines *****************************************/557#define YYCODETYPE unsigned short int558#define YYNOCODE 322559#define YYACTIONTYPE unsigned short int560#define YYWILDCARD 102561#define sqlite3ParserTOKENTYPE Token562typedef union {563  int yyinit;564  sqlite3ParserTOKENTYPE yy0;565  ExprList* yy14;566  With* yy59;567  Cte* yy67;568  Upsert* yy122;569  IdList* yy132;570  int yy144;571  const char* yy168;572  SrcList* yy203;573  Window* yy211;574  OnOrUsing yy269;575  struct TrigEvent yy286;576  struct {int value; int mask;} yy383;577  u32 yy391;578  TriggerStep* yy427;579  Expr* yy454;580  u8 yy462;581  struct FrameBound yy509;582  Select* yy555;583} YYMINORTYPE;584#ifndef YYSTACKDEPTH585#define YYSTACKDEPTH 50586#endif587#define sqlite3ParserARG_SDECL588#define sqlite3ParserARG_PDECL589#define sqlite3ParserARG_PARAM590#define sqlite3ParserARG_FETCH591#define sqlite3ParserARG_STORE592#undef YYREALLOC593#define YYREALLOC parserStackRealloc594#undef YYFREE595#define YYFREE parserStackFree596#undef YYDYNSTACK597#define YYDYNSTACK 1598#undef YYSIZELIMIT599#define YYSIZELIMIT parserStackSizeLimit600#define sqlite3ParserCTX(P) ((P)->pParse)601#define sqlite3ParserCTX_SDECL Parse *pParse;602#define sqlite3ParserCTX_PDECL ,Parse *pParse603#define sqlite3ParserCTX_PARAM ,pParse604#define sqlite3ParserCTX_FETCH Parse *pParse=yypParser->pParse;605#define sqlite3ParserCTX_STORE yypParser->pParse=pParse;606#undef YYERRORSYMBOL607#undef YYERRSYMDT608#undef YYFALLBACK609#define YYFALLBACK 1610#define YYNSTATE             600611#define YYNRULE              412612#define YYNRULE_WITH_ACTION  348613#define YYNTOKEN             187614#define YY_MAX_SHIFT         599615#define YY_MIN_SHIFTREDUCE   867616#define YY_MAX_SHIFTREDUCE   1278617#define YY_ERROR_ACTION      1279618#define YY_ACCEPT_ACTION     1280619#define YY_NO_ACTION         1281620#define YY_MIN_REDUCE        1282621#define YY_MAX_REDUCE        1693622#define YY_MIN_DSTRCTR       206623#define YY_MAX_DSTRCTR       319624/************* End control #defines *******************************************/625#define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])))626 627/* Define the yytestcase() macro to be a no-op if is not already defined628** otherwise.629**630** Applications can choose to define yytestcase() in the %include section631** to a macro that can assist in verifying code coverage.  For production632** code the yytestcase() macro should be turned off.  But it is useful633** for testing.634*/635#ifndef yytestcase636# define yytestcase(X)637#endif638 639/* Macro to determine if stack space has the ability to grow using640** heap memory.641*/642#if YYSTACKDEPTH<=0 || YYDYNSTACK643# define YYGROWABLESTACK 1644#else645# define YYGROWABLESTACK 0646#endif647 648/* Guarantee a minimum number of initial stack slots.649*/650#if YYSTACKDEPTH<=0651# undef YYSTACKDEPTH652# define YYSTACKDEPTH 2  /* Need a minimum stack size */653#endif654 655 656/* Next are the tables used to determine what action to take based on the657** current state and lookahead token.  These tables are used to implement658** functions that take a state number and lookahead value and return an659** action integer.  660**661** Suppose the action integer is N.  Then the action is determined as662** follows663**664**   0 <= N <= YY_MAX_SHIFT             Shift N.  That is, push the lookahead665**                                      token onto the stack and goto state N.666**667**   N between YY_MIN_SHIFTREDUCE       Shift to an arbitrary state then668**     and YY_MAX_SHIFTREDUCE           reduce by rule N-YY_MIN_SHIFTREDUCE.669**670**   N == YY_ERROR_ACTION               A syntax error has occurred.671**672**   N == YY_ACCEPT_ACTION              The parser accepts its input.673**674**   N == YY_NO_ACTION                  No such action.  Denotes unused675**                                      slots in the yy_action[] table.676**677**   N between YY_MIN_REDUCE            Reduce by rule N-YY_MIN_REDUCE678**     and YY_MAX_REDUCE679**680** The action table is constructed as a single large table named yy_action[].681** Given state S and lookahead X, the action is computed as either:682**683**    (A)   N = yy_action[ yy_shift_ofst[S] + X ]684**    (B)   N = yy_default[S]685**686** The (A) formula is preferred.  The B formula is used instead if687** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X.688**689** The formulas above are for computing the action when the lookahead is690** a terminal symbol.  If the lookahead is a non-terminal (as occurs after691** a reduce action) then the yy_reduce_ofst[] array is used in place of692** the yy_shift_ofst[] array.693**694** The following are the tables generated in this section:695**696**  yy_action[]        A single table containing all actions.697**  yy_lookahead[]     A table containing the lookahead for each entry in698**                     yy_action.  Used to detect hash collisions.699**  yy_shift_ofst[]    For each state, the offset into yy_action for700**                     shifting terminals.701**  yy_reduce_ofst[]   For each state, the offset into yy_action for702**                     shifting non-terminals after a reduce.703**  yy_default[]       Default action for each state.704**705*********** Begin parsing tables **********************************************/706#define YY_ACTTAB_COUNT (2379)707static const YYACTIONTYPE yy_action[] = {708 /*     0 */   134,  131,  238,  290,  290, 1353,  593, 1332,  478, 1606,709 /*    10 */   593, 1315,  593,    7,  593, 1353,  590,  593,  579,  424,710 /*    20 */  1566,  134,  131,  238, 1318,  541,  478,  477,  575,   84,711 /*    30 */    84, 1005,  303,   84,   84,   51,   51,   63,   63, 1006,712 /*    40 */    84,   84,  498,  141,  142,   93,  442, 1254, 1254, 1085,713 /*    50 */  1088, 1075, 1075,  139,  139,  140,  140,  140,  140,  424,714 /*    60 */   296,  296,  498,  296,  296,  567,  553,  296,  296, 1306,715 /*    70 */   574, 1358, 1358,  590,  542,  579,  590,  574,  579,  548,716 /*    80 */   590, 1304,  579,  141,  142,   93,  576, 1254, 1254, 1085,717 /*    90 */  1088, 1075, 1075,  139,  139,  140,  140,  140,  140,  399,718 /*   100 */   478,  395,    6,  138,  138,  138,  138,  137,  137,  136,719 /*   110 */   136,  136,  135,  132,  463,   44,  342,  593,  305, 1127,720 /*   120 */  1280,    1,    1,  599,    2, 1284,  598, 1200, 1284, 1200,721 /*   130 */   330,  424,  158,  330, 1613,  158,  390,  116,  308, 1366,722 /*   140 */    51,   51, 1366,  138,  138,  138,  138,  137,  137,  136,723 /*   150 */   136,  136,  135,  132,  463,  141,  142,   93,  515, 1254,724 /*   160 */  1254, 1085, 1088, 1075, 1075,  139,  139,  140,  140,  140,725 /*   170 */   140, 1230,  329,  584,  296,  296,  212,  296,  296,  568,726 /*   180 */   568,  488,  143, 1072, 1072, 1086, 1089,  590, 1195,  579,727 /*   190 */   590,  340,  579,  140,  140,  140,  140,  133,  392,  564,728 /*   200 */   536, 1195,  250,  425, 1195,  250,  137,  137,  136,  136,729 /*   210 */   136,  135,  132,  463,  291,  138,  138,  138,  138,  137,730 /*   220 */   137,  136,  136,  136,  135,  132,  463,  966, 1230, 1231,731 /*   230 */  1230,  412,  965,  467,  412,  424,  467,  489,  357, 1611,732 /*   240 */   391,  138,  138,  138,  138,  137,  137,  136,  136,  136,733 /*   250 */   135,  132,  463,  463,  134,  131,  238,  555, 1076,  141,734 /*   260 */   142,   93,  593, 1254, 1254, 1085, 1088, 1075, 1075,  139,735 /*   270 */   139,  140,  140,  140,  140, 1317,  134,  131,  238,  424,736 /*   280 */   549, 1597, 1531,  333,   97,   83,   83,  140,  140,  140,737 /*   290 */   140,  138,  138,  138,  138,  137,  137,  136,  136,  136,738 /*   300 */   135,  132,  463,  141,  142,   93, 1657, 1254, 1254, 1085,739 /*   310 */  1088, 1075, 1075,  139,  139,  140,  140,  140,  140,  138,740 /*   320 */   138,  138,  138,  137,  137,  136,  136,  136,  135,  132,741 /*   330 */   463,  591, 1230,  958,  958,  138,  138,  138,  138,  137,742 /*   340 */   137,  136,  136,  136,  135,  132,  463,   44,  398,  547,743 /*   350 */  1306,  136,  136,  136,  135,  132,  463,  386,  593,  442,744 /*   360 */   595,  145,  595,  138,  138,  138,  138,  137,  137,  136,745 /*   370 */   136,  136,  135,  132,  463,  500, 1230,  112,  550,  460,746 /*   380 */   459,   51,   51,  424,  296,  296,  479,  334, 1259, 1230,747 /*   390 */  1231, 1230, 1599, 1261,  388,  312,  444,  590,  246,  579,748 /*   400 */   546, 1260,  271,  235,  329,  584,  551,  141,  142,   93,749 /*   410 */   429, 1254, 1254, 1085, 1088, 1075, 1075,  139,  139,  140,750 /*   420 */   140,  140,  140,   22,   22, 1230, 1262,  424, 1262,  216,751 /*   430 */   296,  296,   98, 1230, 1231, 1230,  264,  884,   45,  528,752 /*   440 */   525,  524, 1041,  590, 1269,  579,  421,  420,  393,  523,753 /*   450 */    44,  141,  142,   93,  498, 1254, 1254, 1085, 1088, 1075,754 /*   460 */  1075,  139,  139,  140,  140,  140,  140,  138,  138,  138,755 /*   470 */   138,  137,  137,  136,  136,  136,  135,  132,  463,  593,756 /*   480 */  1611,  561, 1230, 1231, 1230,   23,  264,  515,  200,  528,757 /*   490 */   525,  524,  127,  585,  509,    4,  355,  487,  506,  523,758 /*   500 */   593,  498,   84,   84,  134,  131,  238,  329,  584,  588,759 /*   510 */  1627,  138,  138,  138,  138,  137,  137,  136,  136,  136,760 /*   520 */   135,  132,  463,   19,   19,  435, 1230, 1460,  297,  297,761 /*   530 */   311,  424, 1565,  464, 1631,  599,    2, 1284,  437,  574,762 /*   540 */  1107,  590,  330,  579,  158,  582,  489,  357,  573,  593,763 /*   550 */   592, 1366,  409, 1274, 1230,  141,  142,   93, 1364, 1254,764 /*   560 */  1254, 1085, 1088, 1075, 1075,  139,  139,  140,  140,  140,765 /*   570 */   140,  389,   84,   84, 1062,  567, 1230,  313, 1523,  593,766 /*   580 */   125,  125,  970, 1230, 1231, 1230,  296,  296,  126,   46,767 /*   590 */   464,  594,  464,  296,  296, 1050, 1230,  218,  439,  590,768 /*   600 */  1604,  579,   84,   84,    7,  403,  590,  515,  579,  325,769 /*   610 */   417, 1230, 1231, 1230,  250,  138,  138,  138,  138,  137,770 /*   620 */   137,  136,  136,  136,  135,  132,  463, 1050, 1050, 1052,771 /*   630 */  1053,   35, 1275, 1230, 1231, 1230,  424, 1370,  993,  574,772 /*   640 */   371,  414,  274,  412, 1597,  467, 1302,  552,  451,  590,773 /*   650 */   543,  579, 1530, 1230, 1231, 1230, 1214,  201,  409, 1174,774 /*   660 */   141,  142,   93,  223, 1254, 1254, 1085, 1088, 1075, 1075,775 /*   670 */   139,  139,  140,  140,  140,  140,  296,  296, 1250,  593,776 /*   680 */   424,  296,  296,  236,  529,  296,  296,  515,  100,  590,777 /*   690 */  1600,  579,   48, 1605,  590, 1230,  579,    7,  590,  577,778 /*   700 */   579,  904,   84,   84,  141,  142,   93,  496, 1254, 1254,779 /*   710 */  1085, 1088, 1075, 1075,  139,  139,  140,  140,  140,  140,780 /*   720 */   138,  138,  138,  138,  137,  137,  136,  136,  136,  135,781 /*   730 */   132,  463, 1365, 1230,  296,  296, 1250,  115, 1275,  326,782 /*   740 */   233,  539, 1062,   40,  282,  127,  585,  590,    4,  579,783 /*   750 */   329,  584, 1230, 1231, 1230, 1598,  593,  388,  904, 1051,784 /*   760 */  1356, 1356,  588, 1050,  138,  138,  138,  138,  137,  137,785 /*   770 */   136,  136,  136,  135,  132,  463,  185,  593, 1230,   19,786 /*   780 */    19, 1230,  971, 1597,  424, 1651,  464,  129,  908, 1195,787 /*   790 */  1230, 1231, 1230, 1325,  443, 1050, 1050, 1052,  582, 1603,788 /*   800 */   149,  149, 1195,    7,    5, 1195, 1687,  410,  141,  142,789 /*   810 */    93, 1536, 1254, 1254, 1085, 1088, 1075, 1075,  139,  139,790 /*   820 */   140,  140,  140,  140, 1214,  397,  593, 1062,  424, 1536,791 /*   830 */  1538,   50,  901,  125,  125, 1230, 1231, 1230, 1230, 1231,792 /*   840 */  1230,  126, 1230,  464,  594,  464,  515, 1230, 1050,   84,793 /*   850 */    84,    3,  141,  142,   93,  924, 1254, 1254, 1085, 1088,794 /*   860 */  1075, 1075,  139,  139,  140,  140,  140,  140,  138,  138,795 /*   870 */   138,  138,  137,  137,  136,  136,  136,  135,  132,  463,796 /*   880 */  1050, 1050, 1052, 1053,   35,  442,  457,  532,  433, 1230,797 /*   890 */  1062, 1361,  540,  540, 1598,  925,  388,    7, 1129, 1230,798 /*   900 */  1231, 1230, 1129, 1536, 1230, 1231, 1230, 1051,  570, 1214,799 /*   910 */   593, 1050,  138,  138,  138,  138,  137,  137,  136,  136,800 /*   920 */   136,  135,  132,  463,    6,  185, 1195, 1230,  231,  593,801 /*   930 */   382,  992,  424,  151,  151,  510, 1213,  557,  482, 1195,802 /*   940 */   381,  160, 1195, 1050, 1050, 1052, 1230, 1231, 1230,  422,803 /*   950 */   593,  447,   84,   84,  593,  217,  141,  142,   93,  593,804 /*   960 */  1254, 1254, 1085, 1088, 1075, 1075,  139,  139,  140,  140,805 /*   970 */   140,  140, 1214,   19,   19,  593,  424,   19,   19,  442,806 /*   980 */  1063,  442,   19,   19, 1230, 1231, 1230,  515,  445,  458,807 /*   990 */  1597,  386,  315, 1175, 1685,  556, 1685,  450,   84,   84,808 /*  1000 */   141,  142,   93,  505, 1254, 1254, 1085, 1088, 1075, 1075,809 /*  1010 */   139,  139,  140,  140,  140,  140,  138,  138,  138,  138,810 /*  1020 */   137,  137,  136,  136,  136,  135,  132,  463,  442, 1147,811 /*  1030 */   454, 1597,  362, 1041,  593,  462, 1460, 1233,   47, 1393,812 /*  1040 */   324,  565,  565,  115, 1148,  449,    7,  460,  459,  307,813 /*  1050 */   375,  354,  593,  113,  593,  329,  584,   19,   19, 1149,814 /*  1060 */   138,  138,  138,  138,  137,  137,  136,  136,  136,  135,815 /*  1070 */   132,  463,  209, 1173,  563,   19,   19,   19,   19,   49,816 /*  1080 */   424,  944, 1175, 1686, 1046, 1686,  218,  355,  484,  343,817 /*  1090 */   210,  945,  569,  562, 1262, 1233, 1262,  490,  314,  423,818 /*  1100 */   424, 1598, 1206,  388,  141,  142,   93,  440, 1254, 1254,819 /*  1110 */  1085, 1088, 1075, 1075,  139,  139,  140,  140,  140,  140,820 /*  1120 */   352,  316,  531,  316,  141,  142,   93,  549, 1254, 1254,821 /*  1130 */  1085, 1088, 1075, 1075,  139,  139,  140,  140,  140,  140,822 /*  1140 */   446,   10, 1598,  274,  388,  915,  281,  299,  383,  534,823 /*  1150 */   378,  533,  269,  593, 1206,  587,  587,  587,  374,  293,824 /*  1160 */  1579,  991, 1173,  302,  138,  138,  138,  138,  137,  137,825 /*  1170 */   136,  136,  136,  135,  132,  463,   53,   53,  520, 1250,826 /*  1180 */   593, 1147, 1576,  431,  138,  138,  138,  138,  137,  137,827 /*  1190 */   136,  136,  136,  135,  132,  463, 1148,  301,  593, 1577,828 /*  1200 */   593, 1307,  431,   54,   54,  593,  268,  593,  461,  461,829 /*  1210 */   461, 1149,  347,  492,  424,  135,  132,  463, 1146, 1195,830 /*  1220 */   474,   68,   68,   69,   69,  550,  332,  287,   21,   21,831 /*  1230 */    55,   55, 1195,  581,  424, 1195,  309, 1250,  141,  142,832 /*  1240 */    93,  119, 1254, 1254, 1085, 1088, 1075, 1075,  139,  139,833 /*  1250 */   140,  140,  140,  140,  593,  237,  480, 1476,  141,  142,834 /*  1260 */    93,  593, 1254, 1254, 1085, 1088, 1075, 1075,  139,  139,835 /*  1270 */   140,  140,  140,  140,  344,  430,  346,   70,   70,  494,836 /*  1280 */   991, 1132, 1132,  512,   56,   56, 1269,  593,  268,  593,837 /*  1290 */   369,  374,  593,  481,  215,  384, 1624,  481,  138,  138,838 /*  1300 */   138,  138,  137,  137,  136,  136,  136,  135,  132,  463,839 /*  1310 */    71,   71,   72,   72,  225,   73,   73,  593,  138,  138,840 /*  1320 */   138,  138,  137,  137,  136,  136,  136,  135,  132,  463,841 /*  1330 */   586,  431,  593,  872,  873,  874,  593,  911,  593, 1602,842 /*  1340 */    74,   74,  593,    7, 1460,  242,  593,  306,  424, 1578,843 /*  1350 */   472,  306,  364,  219,  367,   75,   75,  430,  345,   57,844 /*  1360 */    57,   58,   58,  432,  187,   59,   59,  593,  424,   61,845 /*  1370 */    61, 1475,  141,  142,   93,  123, 1254, 1254, 1085, 1088,846 /*  1380 */  1075, 1075,  139,  139,  140,  140,  140,  140,  424,  570,847 /*  1390 */    62,   62,  141,  142,   93,  911, 1254, 1254, 1085, 1088,848 /*  1400 */  1075, 1075,  139,  139,  140,  140,  140,  140,  161,  384,849 /*  1410 */  1624, 1474,  141,  130,   93,  441, 1254, 1254, 1085, 1088,850 /*  1420 */  1075, 1075,  139,  139,  140,  140,  140,  140,  267,  266,851 /*  1430 */   265, 1460,  138,  138,  138,  138,  137,  137,  136,  136,852 /*  1440 */   136,  135,  132,  463,  593, 1336,  593, 1269, 1460,  384,853 /*  1450 */  1624,  231,  138,  138,  138,  138,  137,  137,  136,  136,854 /*  1460 */   136,  135,  132,  463,  593,  163,  593,   76,   76,   77,855 /*  1470 */    77,  593,  138,  138,  138,  138,  137,  137,  136,  136,856 /*  1480 */   136,  135,  132,  463,  475,  593,  483,   78,   78,   20,857 /*  1490 */    20, 1249,  424,  491,   79,   79,  495,  422,  295,  235,858 /*  1500 */  1574,   38,  511,  896,  422,  335,  240,  422,  147,  147,859 /*  1510 */   112,  593,  424,  593,  101,  222,  991,  142,   93,  455,860 /*  1520 */  1254, 1254, 1085, 1088, 1075, 1075,  139,  139,  140,  140,861 /*  1530 */   140,  140,  593,   39,  148,  148,   80,   80,   93,  551,862 /*  1540 */  1254, 1254, 1085, 1088, 1075, 1075,  139,  139,  140,  140,863 /*  1550 */   140,  140,  328,  923,  922,   64,   64,  502, 1656, 1005,864 /*  1560 */   933,  896,  124,  422,  121,  254,  593, 1006,  593,  226,865 /*  1570 */   593,  127,  585,  164,    4,   16,  138,  138,  138,  138,866 /*  1580 */   137,  137,  136,  136,  136,  135,  132,  463,  588,   81,867 /*  1590 */    81,   65,   65,   82,   82,  593,  138,  138,  138,  138,868 /*  1600 */   137,  137,  136,  136,  136,  135,  132,  463,  593,  226,869 /*  1610 */   237,  966,  464,  593,  298,  593,  965,  593,   66,   66,870 /*  1620 */   593, 1170,  593,  411,  582,  353,  469,  115,  593,  471,871 /*  1630 */   169,  173,  173,  593,   44,  991,  174,  174,   89,   89,872 /*  1640 */    67,   67,  593,   85,   85,  150,  150, 1114, 1043,  593,873 /*  1650 */   273,   86,   86, 1062,  593,  503,  171,  171,  593,  125,874 /*  1660 */   125,  497,  593,  273,  336,  152,  152,  126, 1335,  464,875 /*  1670 */   594,  464,  146,  146, 1050,  593,  545,  172,  172,  593,876 /*  1680 */  1054,  165,  165,  256,  339,  156,  156,  127,  585, 1586,877 /*  1690 */     4,  329,  584,  499,  358,  273,  115,  348,  155,  155,878 /*  1700 */   930,  931,  153,  153,  588, 1114, 1050, 1050, 1052, 1053,879 /*  1710 */    35, 1554,  521,  593,  270, 1008, 1009,    9,  593,  372,880 /*  1720 */   593,  115,  593,  168,  593,  115,  593, 1110,  464,  270,881 /*  1730 */   996,  964,  273,  129, 1645, 1214,  154,  154, 1054, 1404,882 /*  1740 */   582,   88,   88,   90,   90,   87,   87,   52,   52,   60,883 /*  1750 */    60, 1405,  504,  537,  559, 1179,  961,  507,  129,  558,884 /*  1760 */   127,  585, 1126,    4, 1126, 1125,  894, 1125,  162, 1062,885 /*  1770 */   963,  359,  129, 1401,  363,  125,  125,  588,  366,  368,886 /*  1780 */   370, 1349, 1334,  126, 1333,  464,  594,  464,  377,  387,887 /*  1790 */  1050, 1391, 1414, 1618, 1459, 1387, 1399,  208,  580, 1464,888 /*  1800 */  1314,  464,  243,  516, 1305, 1293, 1384, 1292, 1294, 1638,889 /*  1810 */   288,  170,  228,  582,   12,  408,  321,  322,  241,  323,890 /*  1820 */   245, 1446, 1050, 1050, 1052, 1053,   35,  559,  304,  350,891 /*  1830 */   351,  501,  560,  127,  585, 1441,    4, 1451, 1434,  310,892 /*  1840 */  1450,  526, 1062, 1332,  415,  380,  232, 1527,  125,  125,893 /*  1850 */   588, 1214, 1396,  356, 1526,  583,  126, 1397,  464,  594,894 /*  1860 */   464, 1641,  535, 1050, 1581, 1395, 1269, 1583, 1582,  213,895 /*  1870 */   402,  277,  214,  227,  464, 1573,  239, 1571, 1266, 1394,896 /*  1880 */   434,  198,  100,  224,   96,  183,  582,  191,  485,  193,897 /*  1890 */   486,  194,  195,  196,  519, 1050, 1050, 1052, 1053,   35,898 /*  1900 */   559,  113,  252,  413, 1447,  558,  493,   13, 1455,  416,899 /*  1910 */  1453, 1452,   14,  202, 1521, 1062, 1532,  508,  258,  106,900 /*  1920 */   514,  125,  125,   99, 1214, 1543,  289,  260,  206,  126,901 /*  1930 */   365,  464,  594,  464,  361,  517, 1050,  261,  448, 1295,902 /*  1940 */   262,  418, 1352, 1351,  108, 1350, 1655, 1654, 1343,  915,903 /*  1950 */   419, 1322,  233,  452,  319,  379, 1321,  453, 1623,  320,904 /*  1960 */  1320,  275, 1653,  544,  276, 1609, 1608, 1342, 1050, 1050,905 /*  1970 */  1052, 1053,   35, 1630, 1218,  466,  385,  456,  300, 1419,906 /*  1980 */   144, 1418,  570,  407,  407,  406,  284,  404,   11, 1508,907 /*  1990 */   881,  396,  120,  127,  585,  394,    4, 1214,  327,  114,908 /*  2000 */  1375, 1374,  220,  247,  400,  338,  401,  554,   42, 1224,909 /*  2010 */   588,  596,  283,  337,  285,  286,  188,  597, 1290, 1285,910 /*  2020 */   175, 1558,  176, 1559, 1557, 1556,  159,  317,  229,  177,911 /*  2030 */   868,  230,   91,  465,  464,  221,  331,  468, 1165,  470,912 /*  2040 */   473,   94,  244,   95,  249,  189,  582, 1124, 1122,  341,913 /*  2050 */   427,  190,  178, 1249,  179,   43,  192,  947,  349,  428,914 /*  2060 */  1138,  197,  251,  180,  181,  436,  102,  182,  438,  103,915 /*  2070 */   104,  199,  248, 1140,  253, 1062,  105,  255, 1137,  166,916 /*  2080 */    24,  125,  125,  257, 1264,  273,  360,  513,  259,  126,917 /*  2090 */    15,  464,  594,  464,  204,  883, 1050,  518,  263,  373,918 /*  2100 */   381,   92,  585, 1130,    4,  203,  205,  426,  107,  522,919 /*  2110 */    25,   26,  329,  584,  913,  572,  527,  376,  588,  926,920 /*  2120 */   530,  109,  184,  318,  167,  110,   27,  538, 1050, 1050,921 /*  2130 */  1052, 1053,   35, 1211, 1091,   17,  476,  111, 1181,  234,922 /*  2140 */   292, 1180,  464,  294,  207,  994,  129, 1201,  272, 1000,923 /*  2150 */    28, 1197,   29,   30,  582, 1199, 1205, 1214,   31, 1204,924 /*  2160 */    32, 1186,   41,  566,   33, 1105,  211,    8,  115, 1092,925 /*  2170 */  1090, 1094,   34,  278,  578, 1095,  117,  122,  118, 1145,926 /*  2180 */    36,   18,  128, 1062, 1055,  895,  957,   37,  589,  125,927 /*  2190 */   125,  279,  186,  280, 1646,  157,  405,  126, 1220,  464,928 /*  2200 */   594,  464, 1218,  466, 1050, 1219,  300, 1281, 1281, 1281,929 /*  2210 */  1281,  407,  407,  406,  284,  404, 1281, 1281,  881, 1281,930 /*  2220 */   300, 1281, 1281,  571, 1281,  407,  407,  406,  284,  404,931 /*  2230 */  1281,  247,  881,  338, 1281, 1281, 1050, 1050, 1052, 1053,932 /*  2240 */    35,  337, 1281, 1281, 1281,  247, 1281,  338, 1281, 1281,933 /*  2250 */  1281, 1281, 1281, 1281, 1281,  337, 1281, 1281, 1281, 1281,934 /*  2260 */  1281, 1281, 1281, 1281, 1281, 1214, 1281, 1281, 1281, 1281,935 /*  2270 */  1281, 1281,  249, 1281, 1281, 1281, 1281, 1281, 1281, 1281,936 /*  2280 */   178, 1281, 1281,   43, 1281, 1281,  249, 1281, 1281, 1281,937 /*  2290 */  1281, 1281, 1281, 1281,  178, 1281, 1281,   43, 1281, 1281,938 /*  2300 */   248, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,939 /*  2310 */  1281, 1281, 1281, 1281,  248, 1281, 1281, 1281, 1281, 1281,940 /*  2320 */  1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,941 /*  2330 */  1281, 1281, 1281, 1281, 1281,  426, 1281, 1281, 1281, 1281,942 /*  2340 */   329,  584, 1281, 1281, 1281, 1281, 1281, 1281, 1281,  426,943 /*  2350 */  1281, 1281, 1281, 1281,  329,  584, 1281, 1281, 1281, 1281,944 /*  2360 */  1281, 1281, 1281, 1281,  476, 1281, 1281, 1281, 1281, 1281,945 /*  2370 */  1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,  476,946};947static const YYCODETYPE yy_lookahead[] = {948 /*     0 */   277,  278,  279,  241,  242,  225,  195,  227,  195,  312,949 /*    10 */   195,  218,  195,  316,  195,  235,  254,  195,  256,   19,950 /*    20 */   297,  277,  278,  279,  218,  206,  213,  214,  206,  218,951 /*    30 */   219,   31,  206,  218,  219,  218,  219,  218,  219,   39,952 /*    40 */   218,  219,  195,   43,   44,   45,  195,   47,   48,   49,953 /*    50 */    50,   51,   52,   53,   54,   55,   56,   57,   58,   19,954 /*    60 */   241,  242,  195,  241,  242,  195,  255,  241,  242,  195,955 /*    70 */   255,  237,  238,  254,  255,  256,  254,  255,  256,  264,956 /*    80 */   254,  207,  256,   43,   44,   45,  264,   47,   48,   49,957 /*    90 */    50,   51,   52,   53,   54,   55,   56,   57,   58,  251,958 /*   100 */   287,  253,  215,  103,  104,  105,  106,  107,  108,  109,959 /*   110 */   110,  111,  112,  113,  114,   82,  265,  195,  271,   11,960 /*   120 */   187,  188,  189,  190,  191,  192,  190,   87,  192,   89,961 /*   130 */   197,   19,  199,  197,  317,  199,  319,   25,  271,  206,962 /*   140 */   218,  219,  206,  103,  104,  105,  106,  107,  108,  109,963 /*   150 */   110,  111,  112,  113,  114,   43,   44,   45,  195,   47,964 /*   160 */    48,   49,   50,   51,   52,   53,   54,   55,   56,   57,965 /*   170 */    58,   60,  139,  140,  241,  242,  289,  241,  242,  309,966 /*   180 */   310,  294,   70,   47,   48,   49,   50,  254,   77,  256,967 /*   190 */   254,  195,  256,   55,   56,   57,   58,   59,  221,   88,968 /*   200 */   109,   90,  269,  240,   93,  269,  107,  108,  109,  110,969 /*   210 */   111,  112,  113,  114,  215,  103,  104,  105,  106,  107,970 /*   220 */   108,  109,  110,  111,  112,  113,  114,  136,  117,  118,971 /*   230 */   119,  298,  141,  300,  298,   19,  300,  129,  130,  317,972 /*   240 */   318,  103,  104,  105,  106,  107,  108,  109,  110,  111,973 /*   250 */   112,  113,  114,  114,  277,  278,  279,  146,  122,   43,974 /*   260 */    44,   45,  195,   47,   48,   49,   50,   51,   52,   53,975 /*   270 */    54,   55,   56,   57,   58,  218,  277,  278,  279,   19,976 /*   280 */    19,  195,  286,   23,   68,  218,  219,   55,   56,   57,977 /*   290 */    58,  103,  104,  105,  106,  107,  108,  109,  110,  111,978 /*   300 */   112,  113,  114,   43,   44,   45,  232,   47,   48,   49,979 /*   310 */    50,   51,   52,   53,   54,   55,   56,   57,   58,  103,980 /*   320 */   104,  105,  106,  107,  108,  109,  110,  111,  112,  113,981 /*   330 */   114,  135,   60,  137,  138,  103,  104,  105,  106,  107,982 /*   340 */   108,  109,  110,  111,  112,  113,  114,   82,  281,  206,983 /*   350 */   195,  109,  110,  111,  112,  113,  114,  195,  195,  195,984 /*   360 */   205,   22,  207,  103,  104,  105,  106,  107,  108,  109,985 /*   370 */   110,  111,  112,  113,  114,  195,   60,  116,  117,  107,986 /*   380 */   108,  218,  219,   19,  241,  242,  121,   23,  116,  117,987 /*   390 */   118,  119,  306,  121,  308,  206,  234,  254,   15,  256,988 /*   400 */   195,  129,  259,  260,  139,  140,  145,   43,   44,   45,989 /*   410 */   200,   47,   48,   49,   50,   51,   52,   53,   54,   55,990 /*   420 */    56,   57,   58,  218,  219,   60,  154,   19,  156,  265,991 /*   430 */   241,  242,   24,  117,  118,  119,  120,   21,   73,  123,992 /*   440 */   124,  125,   74,  254,   61,  256,  107,  108,  221,  133,993 /*   450 */    82,   43,   44,   45,  195,   47,   48,   49,   50,   51,994 /*   460 */    52,   53,   54,   55,   56,   57,   58,  103,  104,  105,995 /*   470 */   106,  107,  108,  109,  110,  111,  112,  113,  114,  195,996 /*   480 */   317,  318,  117,  118,  119,   22,  120,  195,   22,  123,997 /*   490 */   124,  125,   19,   20,  284,   22,  128,   81,  288,  133,998 /*   500 */   195,  195,  218,  219,  277,  278,  279,  139,  140,   36,999 /*   510 */   195,  103,  104,  105,  106,  107,  108,  109,  110,  111,1000 /*   520 */   112,  113,  114,  218,  219,   62,   60,  195,  241,  242,1001 /*   530 */   271,   19,  240,   60,  189,  190,  191,  192,  233,  255,1002 /*   540 */   124,  254,  197,  256,  199,   72,  129,  130,  264,  195,1003 /*   550 */   195,  206,   22,   23,   60,   43,   44,   45,  206,   47,1004 /*   560 */    48,   49,   50,   51,   52,   53,   54,   55,   56,   57,1005 /*   570 */    58,  195,  218,  219,  101,  195,   60,  271,  162,  195,1006 /*   580 */   107,  108,  109,  117,  118,  119,  241,  242,  115,   73,1007 /*   590 */   117,  118,  119,  241,  242,  122,   60,  195,  266,  254,1008 /*   600 */   312,  256,  218,  219,  316,  203,  254,  195,  256,  255,1009 /*   610 */   208,  117,  118,  119,  269,  103,  104,  105,  106,  107,1010 /*   620 */   108,  109,  110,  111,  112,  113,  114,  154,  155,  156,1011 /*   630 */   157,  158,  102,  117,  118,  119,   19,  242,  144,  255,1012 /*   640 */    23,  206,   24,  298,  195,  300,  206,  195,  264,  254,1013 /*   650 */   206,  256,  240,  117,  118,  119,  183,   22,   22,   23,1014 /*   660 */    43,   44,   45,  151,   47,   48,   49,   50,   51,   52,1015 /*   670 */    53,   54,   55,   56,   57,   58,  241,  242,   60,  195,1016 /*   680 */    19,  241,  242,  195,   23,  241,  242,  195,  152,  254,1017 /*   690 */   310,  256,  243,  312,  254,   60,  256,  316,  254,  206,1018 /*   700 */   256,   60,  218,  219,   43,   44,   45,  272,   47,   48,1019 /*   710 */    49,   50,   51,   52,   53,   54,   55,   56,   57,   58,1020 /*   720 */   103,  104,  105,  106,  107,  108,  109,  110,  111,  112,1021 /*   730 */   113,  114,  240,   60,  241,  242,  118,   25,  102,  255,1022 /*   740 */   166,  167,  101,   22,   26,   19,   20,  254,   22,  256,1023 /*   750 */   139,  140,  117,  118,  119,  306,  195,  308,  117,  118,1024 /*   760 */   237,  238,   36,  122,  103,  104,  105,  106,  107,  108,1025 /*   770 */   109,  110,  111,  112,  113,  114,  195,  195,   60,  218,1026 /*   780 */   219,   60,  109,  195,   19,  217,   60,   25,   23,   77,1027 /*   790 */   117,  118,  119,  225,  233,  154,  155,  156,   72,  312,1028 /*   800 */   218,  219,   90,  316,   22,   93,  303,  304,   43,   44,1029 /*   810 */    45,  195,   47,   48,   49,   50,   51,   52,   53,   54,1030 /*   820 */    55,   56,   57,   58,  183,  195,  195,  101,   19,  213,1031 /*   830 */   214,  243,   23,  107,  108,  117,  118,  119,  117,  118,1032 /*   840 */   119,  115,   60,  117,  118,  119,  195,   60,  122,  218,1033 /*   850 */   219,   22,   43,   44,   45,   35,   47,   48,   49,   50,1034 /*   860 */    51,   52,   53,   54,   55,   56,   57,   58,  103,  104,1035 /*   870 */   105,  106,  107,  108,  109,  110,  111,  112,  113,  114,1036 /*   880 */   154,  155,  156,  157,  158,  195,  255,   67,  195,   60,1037 /*   890 */   101,  240,  311,  312,  306,   75,  308,  316,   29,  117,1038 /*   900 */   118,  119,   33,  287,  117,  118,  119,  118,  146,  183,1039 /*   910 */   195,  122,  103,  104,  105,  106,  107,  108,  109,  110,1040 /*   920 */   111,  112,  113,  114,  215,  195,   77,   60,   25,  195,1041 /*   930 */   122,  144,   19,  218,  219,   66,   23,   88,  246,   90,1042 /*   940 */   132,   25,   93,  154,  155,  156,  117,  118,  119,  257,1043 /*   950 */   195,  131,  218,  219,  195,  265,   43,   44,   45,  195,1044 /*   960 */    47,   48,   49,   50,   51,   52,   53,   54,   55,   56,1045 /*   970 */    57,   58,  183,  218,  219,  195,   19,  218,  219,  195,1046 /*   980 */    23,  195,  218,  219,  117,  118,  119,  195,  233,  255,1047 /*   990 */   195,  195,  233,   22,   23,  146,   25,  233,  218,  219,1048 /*  1000 */    43,   44,   45,  294,   47,   48,   49,   50,   51,   52,1049 /*  1010 */    53,   54,   55,   56,   57,   58,  103,  104,  105,  106,1050 /*  1020 */   107,  108,  109,  110,  111,  112,  113,  114,  195,   12,1051 /*  1030 */   234,  195,  240,   74,  195,  255,  195,   60,  243,  262,1052 /*  1040 */   263,  311,  312,   25,   27,   19,  316,  107,  108,  265,1053 /*  1050 */    24,  265,  195,  150,  195,  139,  140,  218,  219,   42,1054 /*  1060 */   103,  104,  105,  106,  107,  108,  109,  110,  111,  112,1055 /*  1070 */   113,  114,  233,  102,   67,  218,  219,  218,  219,  243,1056 /*  1080 */    19,   64,   22,   23,   23,   25,  195,  128,  129,  130,1057 /*  1090 */   233,   74,  233,   86,  154,  118,  156,  130,  265,  208,1058 /*  1100 */    19,  306,   95,  308,   43,   44,   45,  266,   47,   48,1059 /*  1110 */    49,   50,   51,   52,   53,   54,   55,   56,   57,   58,1060 /*  1120 */   153,  230,   96,  232,   43,   44,   45,   19,   47,   48,1061 /*  1130 */    49,   50,   51,   52,   53,   54,   55,   56,   57,   58,1062 /*  1140 */   114,   22,  306,   24,  308,  127,  120,  121,  122,  123,1063 /*  1150 */   124,  125,  126,  195,  147,  212,  213,  214,  132,   23,1064 /*  1160 */   195,   25,  102,  100,  103,  104,  105,  106,  107,  108,1065 /*  1170 */   109,  110,  111,  112,  113,  114,  218,  219,   19,   60,1066 /*  1180 */   195,   12,  210,  211,  103,  104,  105,  106,  107,  108,1067 /*  1190 */   109,  110,  111,  112,  113,  114,   27,  134,  195,  195,1068 /*  1200 */   195,  210,  211,  218,  219,  195,   47,  195,  212,  213,1069 /*  1210 */   214,   42,   16,  130,   19,  112,  113,  114,   23,   77,1070 /*  1220 */   195,  218,  219,  218,  219,  117,  163,  164,  218,  219,1071 /*  1230 */   218,  219,   90,   64,   19,   93,  153,  118,   43,   44,1072 /*  1240 */    45,  160,   47,   48,   49,   50,   51,   52,   53,   54,1073 /*  1250 */    55,   56,   57,   58,  195,  119,  272,  276,   43,   44,1074 /*  1260 */    45,  195,   47,   48,   49,   50,   51,   52,   53,   54,1075 /*  1270 */    55,   56,   57,   58,   78,  116,   80,  218,  219,  116,1076 /*  1280 */   144,  128,  129,  130,  218,  219,   61,  195,   47,  195,1077 /*  1290 */    16,  132,  195,  263,  195,  314,  315,  267,  103,  104,1078 /*  1300 */   105,  106,  107,  108,  109,  110,  111,  112,  113,  114,1079 /*  1310 */   218,  219,  218,  219,  151,  218,  219,  195,  103,  104,1080 /*  1320 */   105,  106,  107,  108,  109,  110,  111,  112,  113,  114,1081 /*  1330 */   210,  211,  195,    7,    8,    9,  195,   60,  195,  312,1082 /*  1340 */   218,  219,  195,  316,  195,  120,  195,  263,   19,  195,1083 /*  1350 */   125,  267,   78,   24,   80,  218,  219,  116,  162,  218,1084 /*  1360 */   219,  218,  219,  301,  302,  218,  219,  195,   19,  218,1085 /*  1370 */   219,  276,   43,   44,   45,  160,   47,   48,   49,   50,1086 /*  1380 */    51,   52,   53,   54,   55,   56,   57,   58,   19,  146,1087 /*  1390 */   218,  219,   43,   44,   45,  118,   47,   48,   49,   50,1088 /*  1400 */    51,   52,   53,   54,   55,   56,   57,   58,  165,  314,1089 /*  1410 */   315,  276,   43,   44,   45,  266,   47,   48,   49,   50,1090 /*  1420 */    51,   52,   53,   54,   55,   56,   57,   58,  128,  129,1091 /*  1430 */   130,  195,  103,  104,  105,  106,  107,  108,  109,  110,1092 /*  1440 */   111,  112,  113,  114,  195,  228,  195,   61,  195,  314,1093 /*  1450 */   315,   25,  103,  104,  105,  106,  107,  108,  109,  110,1094 /*  1460 */   111,  112,  113,  114,  195,   22,  195,  218,  219,  218,1095 /*  1470 */   219,  195,  103,  104,  105,  106,  107,  108,  109,  110,1096 /*  1480 */   111,  112,  113,  114,  195,  195,  246,  218,  219,  218,1097 /*  1490 */   219,   25,   19,  246,  218,  219,  246,  257,  259,  260,1098 /*  1500 */   195,   22,  266,   60,  257,  195,  120,  257,  218,  219,1099 /*  1510 */   116,  195,   19,  195,  150,  151,   25,   44,   45,  266,1100 /*  1520 */    47,   48,   49,   50,   51,   52,   53,   54,   55,   56,1101 /*  1530 */    57,   58,  195,   54,  218,  219,  218,  219,   45,  145,1102 /*  1540 */    47,   48,   49,   50,   51,   52,   53,   54,   55,   56,1103 /*  1550 */    57,   58,  246,  121,  122,  218,  219,   19,   23,   31,1104 /*  1560 */    25,  118,  159,  257,  161,   24,  195,   39,  195,  143,1105 /*  1570 */   195,   19,   20,   22,   22,   24,  103,  104,  105,  106,1106 /*  1580 */   107,  108,  109,  110,  111,  112,  113,  114,   36,  218,1107 /*  1590 */   219,  218,  219,  218,  219,  195,  103,  104,  105,  106,1108 /*  1600 */   107,  108,  109,  110,  111,  112,  113,  114,  195,  143,1109 /*  1610 */   119,  136,   60,  195,   22,  195,  141,  195,  218,  219,1110 /*  1620 */   195,   23,  195,   25,   72,   23,  131,   25,  195,  134,1111 /*  1630 */    23,  218,  219,  195,   82,  144,  218,  219,  218,  219,1112 /*  1640 */   218,  219,  195,  218,  219,  218,  219,   60,   23,  195,1113 /*  1650 */    25,  218,  219,  101,  195,  117,  218,  219,  195,  107,1114 /*  1660 */   108,   23,  195,   25,  195,  218,  219,  115,  228,  117,1115 /*  1670 */   118,  119,  218,  219,  122,  195,   19,  218,  219,  195,1116 /*  1680 */    60,  218,  219,  142,  195,  218,  219,   19,   20,  195,1117 /*  1690 */    22,  139,  140,   23,   23,   25,   25,  195,  218,  219,1118 /*  1700 */     7,    8,  218,  219,   36,  118,  154,  155,  156,  157,1119 /*  1710 */   158,  195,   23,  195,   25,   84,   85,   49,  195,   23,1120 /*  1720 */   195,   25,  195,   23,  195,   25,  195,   23,   60,   25,1121 /*  1730 */    23,   23,   25,   25,  142,  183,  218,  219,  118,  195,1122 /*  1740 */    72,  218,  219,  218,  219,  218,  219,  218,  219,  218,1123 /*  1750 */   219,  195,  195,  146,   86,   98,   23,  195,   25,   91,1124 /*  1760 */    19,   20,  154,   22,  156,  154,   23,  156,   25,  101,1125 /*  1770 */    23,  195,   25,  195,  195,  107,  108,   36,  195,  195,1126 /*  1780 */   195,  195,  228,  115,  195,  117,  118,  119,  195,  195,1127 /*  1790 */   122,  261,  195,  321,  195,  195,  195,  258,  238,  195,1128 /*  1800 */   195,   60,  299,  291,  195,  195,  258,  195,  195,  195,1129 /*  1810 */   290,  244,  216,   72,  245,  193,  258,  258,  299,  258,1130 /*  1820 */   299,  274,  154,  155,  156,  157,  158,   86,  247,  295,1131 /*  1830 */   248,  295,   91,   19,   20,  270,   22,  274,  270,  248,1132 /*  1840 */   274,  222,  101,  227,  274,  221,  231,  221,  107,  108,1133 /*  1850 */    36,  183,  262,  247,  221,  283,  115,  262,  117,  118,1134 /*  1860 */   119,  198,  116,  122,  220,  262,   61,  220,  220,  251,1135 /*  1870 */   247,  142,  251,  245,   60,  202,  299,  202,   38,  262,1136 /*  1880 */   202,   22,  152,  151,  296,   43,   72,  236,   18,  239,1137 /*  1890 */   202,  239,  239,  239,   18,  154,  155,  156,  157,  158,1138 /*  1900 */    86,  150,  201,  248,  275,   91,  248,  273,  236,  248,1139 /*  1910 */   275,  275,  273,  236,  248,  101,  286,  202,  201,  159,1140 /*  1920 */    63,  107,  108,  296,  183,  293,  202,  201,   22,  115,1141 /*  1930 */   202,  117,  118,  119,  292,  223,  122,  201,   65,  202,1142 /*  1940 */   201,  223,  220,  220,   22,  220,  226,  226,  229,  127,1143 /*  1950 */   223,  220,  166,   24,  285,  220,  222,  114,  315,  285,1144 /*  1960 */   220,  202,  220,  307,   92,  320,  320,  229,  154,  155,1145 /*  1970 */   156,  157,  158,    0,    1,    2,  223,   83,    5,  268,1146 /*  1980 */   149,  268,  146,   10,   11,   12,   13,   14,   22,  280,1147 /*  1990 */    17,  202,  159,   19,   20,  251,   22,  183,  282,  148,1148 /*  2000 */   252,  252,  250,   30,  249,   32,  248,  147,   25,   13,1149 /*  2010 */    36,  204,  196,   40,  196,    6,  302,  194,  194,  194,1150 /*  2020 */   209,  215,  209,  215,  215,  215,  224,  224,  216,  209,1151 /*  2030 */     4,  216,  215,    3,   60,   22,  122,   19,  122,   19,1152 /*  2040 */   125,   22,   15,   22,   71,   16,   72,   23,   23,  140,1153 /*  2050 */   305,  152,   79,   25,  131,   82,  143,   20,   16,  305,1154 /*  2060 */     1,  143,  145,  131,  131,   62,   54,  131,   37,   54,1155 /*  2070 */    54,  152,   99,  117,   34,  101,   54,   24,    1,    5,1156 /*  2080 */    22,  107,  108,  116,   76,   25,  162,   41,  142,  115,1157 /*  2090 */    24,  117,  118,  119,  116,   20,  122,   19,  126,   23,1158 /*  2100 */   132,   19,   20,   69,   22,   69,   22,  134,   22,   68,1159 /*  2110 */    22,   22,  139,  140,   60,  141,   68,   24,   36,   28,1160 /*  2120 */    97,   22,   37,   68,   23,  150,   34,   22,  154,  155,1161 /*  2130 */   156,  157,  158,   23,   23,   22,  163,   25,   23,  142,1162 /*  2140 */    23,   98,   60,   23,   22,  144,   25,   76,   34,  117,1163 /*  2150 */    34,   89,   34,   34,   72,   87,   76,  183,   34,   94,1164 /*  2160 */    34,   23,   22,   24,   34,   23,   25,   44,   25,   23,1165 /*  2170 */    23,   23,   22,   22,   25,   11,  143,   25,  143,   23,1166 /*  2180 */    22,   22,   22,  101,   23,   23,  136,   22,   25,  107,1167 /*  2190 */   108,  142,   25,  142,  142,   23,   15,  115,    1,  117,1168 /*  2200 */   118,  119,    1,    2,  122,    1,    5,  322,  322,  322,1169 /*  2210 */   322,   10,   11,   12,   13,   14,  322,  322,   17,  322,1170 /*  2220 */     5,  322,  322,  141,  322,   10,   11,   12,   13,   14,1171 /*  2230 */   322,   30,   17,   32,  322,  322,  154,  155,  156,  157,1172 /*  2240 */   158,   40,  322,  322,  322,   30,  322,   32,  322,  322,1173 /*  2250 */   322,  322,  322,  322,  322,   40,  322,  322,  322,  322,1174 /*  2260 */   322,  322,  322,  322,  322,  183,  322,  322,  322,  322,1175 /*  2270 */   322,  322,   71,  322,  322,  322,  322,  322,  322,  322,1176 /*  2280 */    79,  322,  322,   82,  322,  322,   71,  322,  322,  322,1177 /*  2290 */   322,  322,  322,  322,   79,  322,  322,   82,  322,  322,1178 /*  2300 */    99,  322,  322,  322,  322,  322,  322,  322,  322,  322,1179 /*  2310 */   322,  322,  322,  322,   99,  322,  322,  322,  322,  322,1180 /*  2320 */   322,  322,  322,  322,  322,  322,  322,  322,  322,  322,1181 /*  2330 */   322,  322,  322,  322,  322,  134,  322,  322,  322,  322,1182 /*  2340 */   139,  140,  322,  322,  322,  322,  322,  322,  322,  134,1183 /*  2350 */   322,  322,  322,  322,  139,  140,  322,  322,  322,  322,1184 /*  2360 */   322,  322,  322,  322,  163,  322,  322,  322,  322,  322,1185 /*  2370 */   322,  322,  322,  322,  322,  322,  322,  322,  163,  322,1186 /*  2380 */   322,  322,  322,  322,  322,  322,  322,  322,  322,  322,1187 /*  2390 */   322,  322,  322,  322,  322,  322,  322,  322,  322,  322,1188 /*  2400 */   322,  322,  322,  322,  322,  322,  322,  322,  187,  187,1189 /*  2410 */   187,  187,  187,  187,  187,  187,  187,  187,  187,  187,1190 /*  2420 */   187,  187,  187,  187,  187,  187,  187,  187,  187,  187,1191 /*  2430 */   187,  187,  187,  187,  187,  187,  187,  187,  187,  187,1192 /*  2440 */   187,  187,  187,  187,  187,  187,  187,  187,  187,  187,1193 /*  2450 */   187,  187,  187,  187,  187,  187,  187,  187,  187,  187,1194 /*  2460 */   187,  187,  187,  187,  187,  187,  187,  187,  187,  187,1195 /*  2470 */   187,  187,  187,  187,  187,  187,  187,  187,  187,  187,1196 /*  2480 */   187,  187,  187,  187,  187,  187,  187,  187,  187,  187,1197 /*  2490 */   187,  187,  187,  187,  187,  187,  187,  187,  187,  187,1198 /*  2500 */   187,  187,  187,  187,  187,  187,  187,  187,  187,  187,1199 /*  2510 */   187,  187,  187,  187,  187,  187,  187,  187,  187,  187,1200 /*  2520 */   187,  187,  187,  187,  187,  187,  187,  187,  187,  187,

Showing the first 1,200 of 6328 lines. Download the file for the rest.