Annotation of embedaddon/php/ext/sqlite/libsqlite/src/parse.c, revision 1.1

1.1     ! misho       1: /* Driver template for the LEMON parser generator.
        !             2: ** The author disclaims copyright to this source code.
        !             3: */
        !             4: /* First off, code is included that follows the "include" declaration
        !             5: ** in the input grammar file. */
        !             6: #include <stdio.h>
        !             7: #line 33 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !             8: 
        !             9: #include "sqliteInt.h"
        !            10: #include "parse.h"
        !            11: 
        !            12: /*
        !            13: ** An instance of this structure holds information about the
        !            14: ** LIMIT clause of a SELECT statement.
        !            15: */
        !            16: struct LimitVal {
        !            17:   int limit;    /* The LIMIT value.  -1 if there is no limit */
        !            18:   int offset;   /* The OFFSET.  0 if there is none */
        !            19: };
        !            20: 
        !            21: /*
        !            22: ** An instance of the following structure describes the event of a
        !            23: ** TRIGGER.  "a" is the event type, one of TK_UPDATE, TK_INSERT,
        !            24: ** TK_DELETE, or TK_INSTEAD.  If the event is of the form
        !            25: **
        !            26: **      UPDATE ON (a,b,c)
        !            27: **
        !            28: ** Then the "b" IdList records the list "a,b,c".
        !            29: */
        !            30: struct TrigEvent { int a; IdList * b; };
        !            31: 
        !            32: #line 33 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !            33: /* Next is all token values, in a form suitable for use by makeheaders.
        !            34: ** This section will be null unless lemon is run with the -m switch.
        !            35: */
        !            36: /* 
        !            37: ** These constants (all generated automatically by the parser generator)
        !            38: ** specify the various kinds of tokens (terminals) that the parser
        !            39: ** understands. 
        !            40: **
        !            41: ** Each symbol here is a terminal symbol in the grammar.
        !            42: */
        !            43: /* Make sure the INTERFACE macro is defined.
        !            44: */
        !            45: #ifndef INTERFACE
        !            46: # define INTERFACE 1
        !            47: #endif
        !            48: /* The next thing included is series of defines which control
        !            49: ** various aspects of the generated parser.
        !            50: **    YYCODETYPE         is the data type used for storing terminal
        !            51: **                       and nonterminal numbers.  "unsigned char" is
        !            52: **                       used if there are fewer than 250 terminals
        !            53: **                       and nonterminals.  "int" is used otherwise.
        !            54: **    YYNOCODE           is a number of type YYCODETYPE which corresponds
        !            55: **                       to no legal terminal or nonterminal number.  This
        !            56: **                       number is used to fill in empty slots of the hash 
        !            57: **                       table.
        !            58: **    YYFALLBACK         If defined, this indicates that one or more tokens
        !            59: **                       have fall-back values which should be used if the
        !            60: **                       original value of the token will not parse.
        !            61: **    YYACTIONTYPE       is the data type used for storing terminal
        !            62: **                       and nonterminal numbers.  "unsigned char" is
        !            63: **                       used if there are fewer than 250 rules and
        !            64: **                       states combined.  "int" is used otherwise.
        !            65: **    sqliteParserTOKENTYPE     is the data type used for minor tokens given 
        !            66: **                       directly to the parser from the tokenizer.
        !            67: **    YYMINORTYPE        is the data type used for all minor tokens.
        !            68: **                       This is typically a union of many types, one of
        !            69: **                       which is sqliteParserTOKENTYPE.  The entry in the union
        !            70: **                       for base tokens is called "yy0".
        !            71: **    YYSTACKDEPTH       is the maximum depth of the parser's stack.  If
        !            72: **                       zero the stack is dynamically sized using realloc()
        !            73: **    sqliteParserARG_SDECL     A static variable declaration for the %extra_argument
        !            74: **    sqliteParserARG_PDECL     A parameter declaration for the %extra_argument
        !            75: **    sqliteParserARG_STORE     Code to store %extra_argument into yypParser
        !            76: **    sqliteParserARG_FETCH     Code to extract %extra_argument from yypParser
        !            77: **    YYNSTATE           the combined number of states.
        !            78: **    YYNRULE            the number of rules in the grammar
        !            79: **    YYERRORSYMBOL      is the code number of the error symbol.  If not
        !            80: **                       defined, then do no error processing.
        !            81: */
        !            82: #define YYCODETYPE unsigned char
        !            83: #define YYNOCODE 221
        !            84: #define YYACTIONTYPE unsigned short int
        !            85: #define sqliteParserTOKENTYPE Token
        !            86: typedef union {
        !            87:   int yyinit;
        !            88:   sqliteParserTOKENTYPE yy0;
        !            89:   TriggerStep * yy19;
        !            90:   struct LimitVal yy124;
        !            91:   Select* yy179;
        !            92:   Expr * yy182;
        !            93:   Expr* yy242;
        !            94:   struct TrigEvent yy290;
        !            95:   SrcList* yy307;
        !            96:   IdList* yy320;
        !            97:   ExprList* yy322;
        !            98:   int yy372;
        !            99:   struct {int value; int mask;} yy407;
        !           100: } YYMINORTYPE;
        !           101: #ifndef YYSTACKDEPTH
        !           102: #define YYSTACKDEPTH 100
        !           103: #endif
        !           104: #define sqliteParserARG_SDECL Parse *pParse;
        !           105: #define sqliteParserARG_PDECL ,Parse *pParse
        !           106: #define sqliteParserARG_FETCH Parse *pParse = yypParser->pParse
        !           107: #define sqliteParserARG_STORE yypParser->pParse = pParse
        !           108: #define YYNSTATE 563
        !           109: #define YYNRULE 293
        !           110: #define YYFALLBACK 1
        !           111: #define YY_NO_ACTION      (YYNSTATE+YYNRULE+2)
        !           112: #define YY_ACCEPT_ACTION  (YYNSTATE+YYNRULE+1)
        !           113: #define YY_ERROR_ACTION   (YYNSTATE+YYNRULE)
        !           114: 
        !           115: /* The yyzerominor constant is used to initialize instances of
        !           116: ** YYMINORTYPE objects to zero. */
        !           117: static const YYMINORTYPE yyzerominor = { 0 };
        !           118: 
        !           119: /* Define the yytestcase() macro to be a no-op if is not already defined
        !           120: ** otherwise.
        !           121: **
        !           122: ** Applications can choose to define yytestcase() in the %include section
        !           123: ** to a macro that can assist in verifying code coverage.  For production
        !           124: ** code the yytestcase() macro should be turned off.  But it is useful
        !           125: ** for testing.
        !           126: */
        !           127: #ifndef yytestcase
        !           128: # define yytestcase(X)
        !           129: #endif
        !           130: 
        !           131: 
        !           132: /* Next are the tables used to determine what action to take based on the
        !           133: ** current state and lookahead token.  These tables are used to implement
        !           134: ** functions that take a state number and lookahead value and return an
        !           135: ** action integer.  
        !           136: **
        !           137: ** Suppose the action integer is N.  Then the action is determined as
        !           138: ** follows
        !           139: **
        !           140: **   0 <= N < YYNSTATE                  Shift N.  That is, push the lookahead
        !           141: **                                      token onto the stack and goto state N.
        !           142: **
        !           143: **   YYNSTATE <= N < YYNSTATE+YYNRULE   Reduce by rule N-YYNSTATE.
        !           144: **
        !           145: **   N == YYNSTATE+YYNRULE              A syntax error has occurred.
        !           146: **
        !           147: **   N == YYNSTATE+YYNRULE+1            The parser accepts its input.
        !           148: **
        !           149: **   N == YYNSTATE+YYNRULE+2            No such action.  Denotes unused
        !           150: **                                      slots in the yy_action[] table.
        !           151: **
        !           152: ** The action table is constructed as a single large table named yy_action[].
        !           153: ** Given state S and lookahead X, the action is computed as
        !           154: **
        !           155: **      yy_action[ yy_shift_ofst[S] + X ]
        !           156: **
        !           157: ** If the index value yy_shift_ofst[S]+X is out of range or if the value
        !           158: ** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S]
        !           159: ** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table
        !           160: ** and that yy_default[S] should be used instead.  
        !           161: **
        !           162: ** The formula above is for computing the action when the lookahead is
        !           163: ** a terminal symbol.  If the lookahead is a non-terminal (as occurs after
        !           164: ** a reduce action) then the yy_reduce_ofst[] array is used in place of
        !           165: ** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of
        !           166: ** YY_SHIFT_USE_DFLT.
        !           167: **
        !           168: ** The following are the tables generated in this section:
        !           169: **
        !           170: **  yy_action[]        A single table containing all actions.
        !           171: **  yy_lookahead[]     A table containing the lookahead for each entry in
        !           172: **                     yy_action.  Used to detect hash collisions.
        !           173: **  yy_shift_ofst[]    For each state, the offset into yy_action for
        !           174: **                     shifting terminals.
        !           175: **  yy_reduce_ofst[]   For each state, the offset into yy_action for
        !           176: **                     shifting non-terminals after a reduce.
        !           177: **  yy_default[]       Default action for each state.
        !           178: */
        !           179: #define YY_ACTTAB_COUNT (1143)
        !           180: static const YYACTIONTYPE yy_action[] = {
        !           181:  /*     0 */   186,  561,  483,   69,   67,   70,   68,   64,   63,   62,
        !           182:  /*    10 */    61,   58,   57,   56,   55,   54,   53,  181,  180,  179,
        !           183:  /*    20 */   514,  421,  334,  420,  468,  515,   64,   63,   62,   61,
        !           184:  /*    30 */    58,   57,   56,   55,   54,   53,    9,  423,  422,   71,
        !           185:  /*    40 */    72,  129,   65,   66,  513,  510,  305,   52,  138,   69,
        !           186:  /*    50 */    67,   70,   68,   64,   63,   62,   61,   58,   57,   56,
        !           187:  /*    60 */    55,   54,   53,  448,  469,  175,  482,  514,  470,  344,
        !           188:  /*    70 */   342,   36,  515,   58,   57,   56,   55,   54,   53,    8,
        !           189:  /*    80 */   341,  281,  285,  307,  437,  178,   71,   72,  129,   65,
        !           190:  /*    90 */    66,  513,  510,  305,   52,  138,   69,   67,   70,   68,
        !           191:  /*   100 */    64,   63,   62,   61,   58,   57,   56,   55,   54,   53,
        !           192:  /*   110 */   130,  362,  360,  508,  507,  267,  551,  436,  298,  297,
        !           193:  /*   120 */   369,  368,   50,  128,  543,   29,  266,  449,  537,  447,
        !           194:  /*   130 */   591,  528,  442,  441,  187,  132,  514,  536,   47,   48,
        !           195:  /*   140 */   472,  515,  122,  427,  331,  409,   49,  371,  370,  518,
        !           196:  /*   150 */   328,  363,  517,  520,   45,   71,   72,  129,   65,   66,
        !           197:  /*   160 */   513,  510,  305,   52,  138,   69,   67,   70,   68,   64,
        !           198:  /*   170 */    63,   62,   61,   58,   57,   56,   55,   54,   53,  185,
        !           199:  /*   180 */   550,  549,  512,  175,  467,  516,   18,  344,  342,   36,
        !           200:  /*   190 */   194,  175,  320,  230,  231,  344,  342,   36,  341,   56,
        !           201:  /*   200 */    55,   54,   53,  212,  531,  514,  341,  544,  551,    3,
        !           202:  /*   210 */   515,  551,  362,  551,  508,  507,  184,  132,  195,  213,
        !           203:  /*   220 */   551,  309,  348,   42,   71,   72,  129,   65,   66,  513,
        !           204:  /*   230 */   510,  305,   52,  138,   69,   67,   70,   68,   64,   63,
        !           205:  /*   240 */    62,   61,   58,   57,   56,   55,   54,   53,  243,  197,
        !           206:  /*   250 */   282,   73,  268,  373,  264,  372,  183,  241,    2,  358,
        !           207:  /*   260 */     7,  563,  551,  240,  551,  471,  385,  201,  356,  514,
        !           208:  /*   270 */   379,  378,  550,  549,  515,  550,  549,  550,  549,  500,
        !           209:  /*   280 */   506,   17,  172,  354,  550,  549,  359,  392,   71,   72,
        !           210:  /*   290 */   129,   65,   66,  513,  510,  305,   52,  138,   69,   67,
        !           211:  /*   300 */    70,   68,   64,   63,   62,   61,   58,   57,   56,   55,
        !           212:  /*   310 */    54,   53,  486,  365,  416,  551,  514,  417,  493,  494,
        !           213:  /*   320 */    17,  515,  169,  478,  171,   80,  550,  549,  550,  549,
        !           214:  /*   330 */   466,  108,   17,  144,  332,   71,   72,  129,   65,   66,
        !           215:  /*   340 */   513,  510,  305,   52,  138,   69,   67,   70,   68,   64,
        !           216:  /*   350 */    63,   62,   61,   58,   57,   56,   55,   54,   53,  446,
        !           217:  /*   360 */   182,  488,  445,  514,  366,  249,  490,  362,  515,  508,
        !           218:  /*   370 */   507,  429,  463,  444,  375,  338,  443,   12,  430,  550,
        !           219:  /*   380 */   549,  592,   71,   72,  129,   65,   66,  513,  510,  305,
        !           220:  /*   390 */    52,  138,   69,   67,   70,   68,   64,   63,   62,   61,
        !           221:  /*   400 */    58,   57,   56,   55,   54,   53,  362,  485,  508,  507,
        !           222:  /*   410 */   514,  459,  286,  460,  436,  515,  388,  240,  269,  387,
        !           223:  /*   420 */   182,  426,   29,  857,   82,  377,    1,  134,  593,   71,
        !           224:  /*   430 */    51,  129,   65,   66,  513,  510,  305,   52,  138,   69,
        !           225:  /*   440 */    67,   70,   68,   64,   63,   62,   61,   58,   57,   56,
        !           226:  /*   450 */    55,   54,   53,  551,  487,  177,  365,  514,   87,  483,
        !           227:  /*   460 */   542,  450,  515,  454,  160,   80,  453,  440,  239,  176,
        !           228:  /*   470 */    80,  238,  286,   80,  106,  458,   71,   40,  129,   65,
        !           229:  /*   480 */    66,  513,  510,  305,   52,  138,   69,   67,   70,   68,
        !           230:  /*   490 */    64,   63,   62,   61,   58,   57,   56,   55,   54,   53,
        !           231:  /*   500 */   457,  393,  534,  418,  514,  186,  527,  483,  156,  515,
        !           232:  /*   510 */   351,  323,  533,  339,  232,   80,   80,  550,  549,   46,
        !           233:  /*   520 */   498,   44,  526,  482,   72,  129,   65,   66,  513,  510,
        !           234:  /*   530 */   305,   52,  138,   69,   67,   70,   68,   64,   63,   62,
        !           235:  /*   540 */    61,   58,   57,   56,   55,   54,   53,  365,  153,  300,
        !           236:  /*   550 */   155,  514,  405,  431,  165,  404,  515,   32,  396,   13,
        !           237:  /*   560 */    32,   86,  333,  323,   38,  106,  205,  414,  391,  390,
        !           238:  /*   570 */   202,  482,  129,   65,   66,  513,  510,  305,   52,  138,
        !           239:  /*   580 */    69,   67,   70,   68,   64,   63,   62,   61,   58,   57,
        !           240:  /*   590 */    56,   55,   54,   53,  274,  309,  272,  271,  270,   23,
        !           241:  /*   600 */     8,  301,  211,   11,  307,  418,  212,  365,  483,   31,
        !           242:  /*   610 */   217,  498,  562,    1,   60,  219,  480,  365,  204,  321,
        !           243:  /*   620 */   215,  154,  207,  137,  480,   93,  268,  373,  264,  372,
        !           244:  /*   630 */   183,  241,  365,  360,  203,  106,  409,  240,  365,  207,
        !           245:  /*   640 */   365,  145,  541,   50,  412,  365,  247,  453,  531,  302,
        !           246:  /*   650 */   105,  135,  173,    8,  245,  170,  106,  307,  108,   47,
        !           247:  /*   660 */    48,  346,   19,  106,  290,  289,  299,   49,  371,  370,
        !           248:  /*   670 */   518,  304,  482,  517,  520,  158,  531,  531,  193,  800,
        !           249:  /*   680 */   531,  498,  207,  319,  223,  231,  360,  207,  475,  283,
        !           250:  /*   690 */   514,  162,  257,  252,  212,  515,   50,  365,  511,  303,
        !           251:  /*   700 */   531,  557,  499,  192,    8,  475,  516,   18,  307,  498,
        !           252:  /*   710 */   556,  365,   47,   48,  295,   93,  531,   41,  136,  207,
        !           253:  /*   720 */    49,  371,  370,  518,  148,  555,  517,  520,  554,   89,
        !           254:  /*   730 */   376,  560,  365,  162,  509,  214,  480,  360,  365,  553,
        !           255:  /*   740 */   152,  322,  495,  505,  141,  212,  294,   50,  477,  531,
        !           256:  /*   750 */   112,  284,  207,  475,  504,  288,   90,  327,  531,  516,
        !           257:  /*   760 */    18,  207,  326,   47,   48,  531,  473,  212,  365,  531,
        !           258:  /*   770 */   191,   49,  371,  370,  518,  365,  365,  517,  520,  293,
        !           259:  /*   780 */   316,  503,  365,  322,   60,  475,  109,  365,  291,  190,
        !           260:  /*   790 */   317,  365,  502,  121,  120,  365,  189,  365,  365,  407,
        !           261:  /*   800 */   119,  365,  365,  501,  326,  118,  365,  365,  365,  117,
        !           262:  /*   810 */   516,   18,  365,  116,  365,  126,  125,  365,  475,  124,
        !           263:  /*   820 */   123,  365,  365,  365,  115,  114,  140,  475,  365,  365,
        !           264:  /*   830 */   139,  365,  255,  365,  365,  254,  365,  365,  365,  253,
        !           265:  /*   840 */   280,  107,  365,  365,   10,  365,  113,  111,  365,  279,
        !           266:  /*   850 */   365,  278,  277,  365,   92,  104,  103,  365,  365,  365,
        !           267:  /*   860 */    91,  102,  365,  101,  365,  365,  110,  347,  100,  379,
        !           268:  /*   870 */   378,   99,   17,  484,   28,   98,   30,   97,   79,  131,
        !           269:  /*   880 */    96,  465,   95,   94,  439,   14,  343,   26,   25,  340,
        !           270:  /*   890 */    24,  174,  266,   85,  166,  292,   78,  165,  415,  164,
        !           271:  /*   900 */   163,   22,    6,  408,    5,   77,   34,   33,  159,   16,
        !           272:  /*   910 */   157,  151,   75,  149,  146,   15,  312,  395,  384,  313,
        !           273:  /*   920 */   143,   20,  206,   60,   21,  273,  198,  375,  559,  548,
        !           274:  /*   930 */   547,  546,    4,  212,  538,  261,  308,   38,  540,  530,
        !           275:  /*   940 */   260,   39,  352,  374,  539,  535,  532,  196,  367,  210,
        !           276:  /*   950 */   256,  259,  522,   53,  258,  521,  529,  209,  188,   43,
        !           277:  /*   960 */    27,   37,  349,  496,  492,  452,   81,  276,  246,  275,
        !           278:  /*   970 */   479,  244,  208,  464,  474,  451,  433,  335,  432,  413,
        !           279:  /*   980 */   234,   35,  127,   76,  381,  858,  410,  161,  858,  199,
        !           280:  /*   990 */   858,  858,  858,  858,  858,  858,  403,  858,  235,  858,
        !           281:  /*  1000 */   858,  858,  329,  858,  150,  398,  858,  545,  858,  858,
        !           282:  /*  1010 */   400,  399,  858,  224,  858,  858,   84,  147,  858,  318,
        !           283:  /*  1020 */   265,  858,  220,  858,  858,  858,  858,  552,   74,  424,
        !           284:  /*  1030 */   858,  523,  858,  858,  491,  476,  287,  315,  858,   83,
        !           285:  /*  1040 */    88,  262,  463,  364,  519,  310,  382,  357,  355,  353,
        !           286:  /*  1050 */   858,  306,  497,  481,  525,  406,  524,  242,  462,  397,
        !           287:  /*  1060 */   434,  237,  858,  425,  337,  168,  858,  438,  461,  858,
        !           288:  /*  1070 */   296,  200,  236,  419,  456,  383,  330,  142,  263,  361,
        !           289:  /*  1080 */   345,  858,  455,  233,  325,  324,  489,  229,  228,  402,
        !           290:  /*  1090 */   401,  858,  227,  226,  225,  389,  386,  222,  221,  218,
        !           291:  /*  1100 */   314,  394,  311,  216,  558,  380,  251,  250,  133,  350,
        !           292:  /*  1110 */   248,  858,  435,  858,  858,  858,  858,  858,  858,  858,
        !           293:  /*  1120 */   858,  858,  428,  858,  858,  411,  858,  858,  858,  858,
        !           294:  /*  1130 */    59,  858,  858,  858,  858,  858,  858,  858,  858,  858,
        !           295:  /*  1140 */   167,  858,  336,
        !           296: };
        !           297: static const YYCODETYPE yy_lookahead[] = {
        !           298:  /*     0 */    21,    9,   23,   70,   71,   72,   73,   74,   75,   76,
        !           299:  /*    10 */    77,   78,   79,   80,   81,   82,   83,  100,  101,  102,
        !           300:  /*    20 */    41,  100,  101,  102,   20,   46,   74,   75,   76,   77,
        !           301:  /*    30 */    78,   79,   80,   81,   82,   83,   19,   55,   56,   60,
        !           302:  /*    40 */    61,   62,   63,   64,   65,   66,   67,   68,   69,   70,
        !           303:  /*    50 */    71,   72,   73,   74,   75,   76,   77,   78,   79,   80,
        !           304:  /*    60 */    81,   82,   83,   23,  108,   90,   87,   41,  112,   94,
        !           305:  /*    70 */    95,   96,   46,   78,   79,   80,   81,   82,   83,   19,
        !           306:  /*    80 */   105,  149,  143,   23,  152,  153,   60,   61,   62,   63,
        !           307:  /*    90 */    64,   65,   66,   67,   68,   69,   70,   71,   72,   73,
        !           308:  /*   100 */    74,   75,   76,   77,   78,   79,   80,   81,   82,   83,
        !           309:  /*   110 */    31,  107,   52,  109,  110,   93,   23,  140,   78,   79,
        !           310:  /*   120 */    78,   79,   62,   22,  147,  148,  104,   87,   34,   89,
        !           311:  /*   130 */   113,   89,   92,   93,  183,  184,   41,   43,   78,   79,
        !           312:  /*   140 */    80,   46,  165,  166,  205,   53,   86,   87,   88,   89,
        !           313:  /*   150 */   211,   62,   92,   93,  128,   60,   61,   62,   63,   64,
        !           314:  /*   160 */    65,   66,   67,   68,   69,   70,   71,   72,   73,   74,
        !           315:  /*   170 */    75,   76,   77,   78,   79,   80,   81,   82,   83,  146,
        !           316:  /*   180 */    87,   88,   93,   90,   20,  125,  126,   94,   95,   96,
        !           317:  /*   190 */    22,   90,  100,  101,  102,   94,   95,   96,  105,   80,
        !           318:  /*   200 */    81,   82,   83,  111,  171,   41,  105,   20,   23,   19,
        !           319:  /*   210 */    46,   23,  107,   23,  109,  110,  183,  184,   50,   48,
        !           320:  /*   220 */    23,   62,  189,  128,   60,   61,   62,   63,   64,   65,
        !           321:  /*   230 */    66,   67,   68,   69,   70,   71,   72,   73,   74,   75,
        !           322:  /*   240 */    76,   77,   78,   79,   80,   81,   82,   83,   20,   90,
        !           323:  /*   250 */    91,   19,   93,   94,   95,   96,   97,   98,   19,   15,
        !           324:  /*   260 */    19,    0,   23,  104,   23,   80,   78,   79,   24,   41,
        !           325:  /*   270 */     9,   10,   87,   88,   46,   87,   88,   87,   88,   20,
        !           326:  /*   280 */    20,   22,   17,   39,   87,   88,   42,   99,   60,   61,
        !           327:  /*   290 */    62,   63,   64,   65,   66,   67,   68,   69,   70,   71,
        !           328:  /*   300 */    72,   73,   74,   75,   76,   77,   78,   79,   80,   81,
        !           329:  /*   310 */    82,   83,  115,  140,   25,   23,   41,   28,   20,   20,
        !           330:  /*   320 */    22,   46,   57,   20,   59,   22,   87,   88,   87,   88,
        !           331:  /*   330 */    20,  158,   22,   19,   45,   60,   61,   62,   63,   64,
        !           332:  /*   340 */    65,   66,   67,   68,   69,   70,   71,   72,   73,   74,
        !           333:  /*   350 */    75,   76,   77,   78,   79,   80,   81,   82,   83,   89,
        !           334:  /*   360 */    47,   22,   92,   41,  191,  192,   22,  107,   46,  109,
        !           335:  /*   370 */   110,  161,  162,   89,   99,   62,   92,   63,  168,   87,
        !           336:  /*   380 */    88,  113,   60,   61,   62,   63,   64,   65,   66,   67,
        !           337:  /*   390 */    68,   69,   70,   71,   72,   73,   74,   75,   76,   77,
        !           338:  /*   400 */    78,   79,   80,   81,   82,   83,  107,  115,  109,  110,
        !           339:  /*   410 */    41,   91,   99,   93,  140,   46,   89,  104,  144,   92,
        !           340:  /*   420 */    47,  147,  148,  132,  133,  134,  135,   88,  113,   60,
        !           341:  /*   430 */    61,   62,   63,   64,   65,   66,   67,   68,   69,   70,
        !           342:  /*   440 */    71,   72,   73,   74,   75,   76,   77,   78,   79,   80,
        !           343:  /*   450 */    81,   82,   83,   23,  115,   19,  140,   41,  114,   23,
        !           344:  /*   460 */   155,  156,   46,   20,   22,   22,  161,   20,   20,   22,
        !           345:  /*   470 */    22,   20,   99,   22,  158,   29,   60,   61,   62,   63,
        !           346:  /*   480 */    64,   65,   66,   67,   68,   69,   70,   71,   72,   73,
        !           347:  /*   490 */    74,   75,   76,   77,   78,   79,   80,   81,   82,   83,
        !           348:  /*   500 */    54,  140,   26,  140,   41,   21,   89,   23,   17,   46,
        !           349:  /*   510 */   194,  140,   36,   20,   20,   22,   22,   87,   88,  127,
        !           350:  /*   520 */   204,  129,   89,   87,   61,   62,   63,   64,   65,   66,
        !           351:  /*   530 */    67,   68,   69,   70,   71,   72,   73,   74,   75,   76,
        !           352:  /*   540 */    77,   78,   79,   80,   81,   82,   83,  140,   57,  103,
        !           353:  /*   550 */    59,   41,   20,  139,   22,   20,   46,   22,   20,   19,
        !           354:  /*   560 */    22,   21,  199,  140,  122,  158,  195,   18,  207,  208,
        !           355:  /*   570 */   209,   87,   62,   63,   64,   65,   66,   67,   68,   69,
        !           356:  /*   580 */    70,   71,   72,   73,   74,   75,   76,   77,   78,   79,
        !           357:  /*   590 */    80,   81,   82,   83,   11,   62,   13,   14,   15,   16,
        !           358:  /*   600 */    19,  194,  174,  118,   23,  140,  111,  140,   23,  181,
        !           359:  /*   610 */    27,  204,  134,  135,  200,   32,  152,  140,  195,  124,
        !           360:  /*   620 */    37,  130,  140,  146,  152,  158,   93,   94,   95,   96,
        !           361:  /*   630 */    97,   98,  140,   52,   51,  158,   53,  104,  140,  140,
        !           362:  /*   640 */   140,   58,  156,   62,   95,  140,  182,  161,  171,  167,
        !           363:  /*   650 */   158,  146,  146,   19,  182,  146,  158,   23,  158,   78,
        !           364:  /*   660 */    79,   80,   22,  158,  199,  198,  167,   86,   87,   88,
        !           365:  /*   670 */    89,  194,   87,   92,   93,  146,  171,  171,  113,  130,
        !           366:  /*   680 */   171,  204,  140,  100,  101,  102,   52,  140,  206,  106,
        !           367:  /*   690 */    41,  146,  192,  201,  111,   46,   62,  140,   93,  194,
        !           368:  /*   700 */   171,   15,  204,  113,   19,  206,  125,  126,   23,  204,
        !           369:  /*   710 */    24,  140,   78,   79,  167,  158,  171,   68,   69,  140,
        !           370:  /*   720 */    86,   87,   88,   89,  146,   39,   92,   93,   42,  158,
        !           371:  /*   730 */   136,  137,  140,  146,  108,  141,  152,   52,  140,   53,
        !           372:  /*   740 */   146,  196,   93,   14,  146,  111,  167,   62,  206,  171,
        !           373:  /*   750 */   158,   19,  140,  206,   20,  198,  158,  212,  171,  125,
        !           374:  /*   760 */   126,  140,  217,   78,   79,  171,  182,  111,  140,  171,
        !           375:  /*   770 */    22,   86,   87,   88,   89,  140,  140,   92,   93,  167,
        !           376:  /*   780 */   124,   20,  140,  196,  200,  206,  158,  140,  167,   22,
        !           377:  /*   790 */   196,  140,   20,  158,  158,  140,   22,  140,  140,  212,
        !           378:  /*   800 */   158,  140,  140,   20,  217,  158,  140,  140,  140,  158,
        !           379:  /*   810 */   125,  126,  140,  158,  140,  158,  158,  140,  206,  158,
        !           380:  /*   820 */   158,  140,  140,  140,  158,  158,  158,  206,  140,  140,
        !           381:  /*   830 */   158,  140,  158,  140,  140,  158,  140,  140,  140,  158,
        !           382:  /*   840 */   158,  158,  140,  140,  118,  140,  158,  158,  140,  158,
        !           383:  /*   850 */   140,  158,  158,  140,  158,  158,  158,  140,  140,  140,
        !           384:  /*   860 */   158,  158,  140,  158,  140,  140,  158,  140,  158,    9,
        !           385:  /*   870 */    10,  158,   22,  115,   19,  158,  158,  158,   20,  113,
        !           386:  /*   880 */   158,   20,  158,  158,   20,  158,   48,   19,   19,   48,
        !           387:  /*   890 */    19,   97,  104,   21,   99,   38,   49,   22,   49,  130,
        !           388:  /*   900 */    99,   19,   11,   14,    9,  103,   63,   63,  123,   19,
        !           389:  /*   910 */   114,  114,  103,  123,  114,   19,   35,   87,   20,  116,
        !           390:  /*   920 */    21,  150,  160,  200,  160,  138,   12,   99,  139,  138,
        !           391:  /*   930 */   138,  138,   22,  111,  164,  176,   44,  122,  139,  171,
        !           392:  /*   940 */   177,  120,  119,  145,  139,  139,  139,  121,  117,  193,
        !           393:  /*   950 */    98,  178,   23,   83,  179,  151,  180,  202,  113,  127,
        !           394:  /*   960 */    19,   99,  116,  186,  186,  151,  186,  159,  187,  159,
        !           395:  /*   970 */   188,  187,  193,  139,  188,  164,  139,   40,  139,  139,
        !           396:  /*   980 */   215,  127,   60,   19,   33,  220,  169,  169,  220,  116,
        !           397:  /*   990 */   220,  220,  220,  220,  220,  220,  176,  220,  186,  220,
        !           398:  /*  1000 */   220,  220,  186,  220,  169,  176,  220,  142,  220,  220,
        !           399:  /*  1010 */   186,  186,  220,  186,  220,  220,  197,  169,  220,  186,
        !           400:  /*  1020 */   157,  220,  186,  220,  220,  220,  220,  140,  140,  216,
        !           401:  /*  1030 */   220,  157,  220,  220,  157,  157,  152,  186,  220,  197,
        !           402:  /*  1040 */   173,  175,  162,  140,  140,  152,  152,  140,  140,  140,
        !           403:  /*  1050 */   220,  154,  140,  140,  154,  176,  154,  140,  140,  176,
        !           404:  /*  1060 */   140,  140,  220,  140,  140,  140,  220,  152,  163,  220,
        !           405:  /*  1070 */   154,  218,  140,  140,  163,  219,  140,  218,  172,  203,
        !           406:  /*  1080 */   154,  220,  163,  140,  140,  140,  185,  140,  140,  140,
        !           407:  /*  1090 */   140,  220,  140,  140,  140,  210,  210,  140,  140,  140,
        !           408:  /*  1100 */   140,  140,  140,  140,  170,  140,  140,  140,  140,  140,
        !           409:  /*  1110 */   140,  220,  166,  220,  220,  220,  220,  220,  220,  220,
        !           410:  /*  1120 */   220,  220,  166,  220,  220,  170,  220,  220,  220,  220,
        !           411:  /*  1130 */   200,  220,  220,  220,  220,  220,  220,  220,  220,  220,
        !           412:  /*  1140 */   213,  220,  214,
        !           413: };
        !           414: #define YY_SHIFT_USE_DFLT (-84)
        !           415: #define YY_SHIFT_COUNT (376)
        !           416: #define YY_SHIFT_MIN   (-83)
        !           417: #define YY_SHIFT_MAX   (964)
        !           418: static const short yy_shift_ofst[] = {
        !           419:  /*     0 */   860,  583,  634,  634,   93,   92,   92,  822,  634,  581,
        !           420:  /*    10 */   685,  685,  188,  430,  -21,  685,  685,  685,  685,  685,
        !           421:  /*    20 */   159,  313,  430,  549,  430,  430,  430,  430,  430,  585,
        !           422:  /*    30 */   275,   60,  685,  685,  685,  685,  685,  685,  685,  685,
        !           423:  /*    40 */   685,  685,  685,  685,  685,  685,  685,  685,  685,  685,
        !           424:  /*    50 */   685,  685,  685,  685,  685,  685,  685,  685,  685,  685,
        !           425:  /*    60 */   685,  685,  685,  685,  685,  685,  685,  685,  685,  685,
        !           426:  /*    70 */   685,  685,  685,  685,  533,  430,  430,  430,  430,  484,
        !           427:  /*    80 */   430,  484,  261,  656,  495,  822,  822,  -84,  -84,  228,
        !           428:  /*    90 */   164,   95,   26,  322,  322,  322,  322,  322,  322,  322,
        !           429:  /*   100 */   322,  416,  322,  322,  322,  322,  322,  369,  322,  463,
        !           430:  /*   110 */   510,  510,  510,  -67,  -67,  -67,  -67,  -67,  -48,  -48,
        !           431:  /*   120 */   -48,  -48,  101,   -5,   -5,   -5,   -5,  686,  -25,  649,
        !           432:  /*   130 */   686,  185,  241,  292,  197,  299,  239,  260,  190,  119,
        !           433:  /*   140 */   119,    4,  430,  430,  430,  430,  430,  430,  105,  430,
        !           434:  /*   150 */   430,  430,  105,  430,  430,  430,  430,  430,  105,  430,
        !           435:  /*   160 */   430,  430,  105,  430,  430,  430,  430,  -79,  289,  430,
        !           436:  /*   170 */   105,  430,  430,  105,  430,  430,   42,   42,  436,  446,
        !           437:  /*   180 */   446,  446,  430,  430,  339,  105,  430,  339,  430,  430,
        !           438:  /*   190 */   430,  430,  430,  430,   42,   42,   42,  430,  430,  585,
        !           439:  /*   200 */   585,  327,  327,  585,  442,  442,  373,  476,  476,  392,
        !           440:  /*   210 */   476,  344,  -44,  476,  540,  951,  873,  951,  845,  922,
        !           441:  /*   220 */   964,  845,  845,  922,  815,  845,  845,  845,  815,  964,
        !           442:  /*   230 */   922,  922,  828,  845,  854,  937,  845,  941,  828,  828,
        !           443:  /*   240 */   892,  929,  941,  828,  846,  862,  846,  862,  845,  852,
        !           444:  /*   250 */   845,  845,  832,  870,  870,  870,  929,  852,  826,  831,
        !           445:  /*   260 */   821,  823,  815,  822,  828,  828,  892,  828,  828,  910,
        !           446:  /*   270 */   914,  914,  914,  828,  914,  -84,  -84,  -84,  -84,  -84,
        !           447:  /*   280 */   -84,  -84,   40,  491,  244,  265,  -83,  314,  538,  535,
        !           448:  /*   290 */   532,  494,  -18,  493,  451,  448,  447,  284,  270,  443,
        !           449:  /*   300 */   320,  310,  303,  298,  259,   89,  168,   17,   94,   22,
        !           450:  /*   310 */   899,  898,  830,  881,  803,  800,  896,  790,  809,  797,
        !           451:  /*   320 */   796,  890,  785,  844,  843,  802,  895,  889,  891,  882,
        !           452:  /*   330 */   801,  769,  849,  875,  847,  857,  795,  872,  788,  794,
        !           453:  /*   340 */   871,  841,  869,  868,  838,  864,  861,  766,  858,  855,
        !           454:  /*   350 */   758,  850,  726,  783,  774,  772,  767,  761,  748,  734,
        !           455:  /*   360 */   732,  729,  626,  605,  590,  565,  640,  485,  433,  417,
        !           456:  /*   370 */   315,  268,  232,  171,  187,   79,   -8,
        !           457: };
        !           458: #define YY_REDUCE_USE_DFLT (-69)
        !           459: #define YY_REDUCE_COUNT (281)
        !           460: #define YY_REDUCE_MIN   (-68)
        !           461: #define YY_REDUCE_MAX   (970)
        !           462: static const short yy_reduce_ofst[] = {
        !           463:  /*     0 */   291,  594,  505,  477,  -23,  587,  545,   33,  598,  407,
        !           464:  /*    10 */   316,  173,  361,  274,  584,  557,  467,  498,  492,  500,
        !           465:  /*    20 */   305,  210,  621,  -61,  612,  579,  547,  499,  482,  -68,
        !           466:  /*    30 */   414,  727,  725,  724,  722,  719,  718,  717,  713,  710,
        !           467:  /*    40 */   708,  705,  703,  702,  698,  697,  696,  694,  693,  691,
        !           468:  /*    50 */   689,  688,  683,  682,  681,  677,  674,  672,  668,  667,
        !           469:  /*    60 */   666,  662,  661,  658,  657,  655,  651,  647,  642,  636,
        !           470:  /*    70 */   635,  628,  592,  571,  486,  423,  465,  371,  363,  472,
        !           471:  /*    80 */   542,  464,  478,  578,  529,  509,  506,  -49,  428,  723,
        !           472:  /*    90 */   723,  723,  723,  723,  723,  723,  723,  723,  723,  723,
        !           473:  /*   100 */   723,  723,  723,  723,  723,  723,  723,  723,  723,  723,
        !           474:  /*   110 */   723,  723,  723,  723,  723,  723,  723,  723,  723,  723,
        !           475:  /*   120 */   723,  723,  956,  723,  723,  723,  723,  955,  946,  930,
        !           476:  /*   130 */   934,  903,  970,  969,  968,  906,  967,  906,  966,  723,
        !           477:  /*   140 */   723,  906,  965,  963,  962,  961,  960,  959,  906,  958,
        !           478:  /*   150 */   957,  954,  906,  953,  952,  950,  949,  948,  906,  947,
        !           479:  /*   160 */   945,  944,  906,  943,  936,  933,  932,  928,  927,  925,
        !           480:  /*   170 */   906,  924,  923,  906,  921,  920,  926,  916,  915,  919,
        !           481:  /*   180 */   911,  905,  918,  917,  901,  906,  913,  901,  912,  909,
        !           482:  /*   190 */   908,  907,  904,  903,  902,  900,  897,  888,  887,  894,
        !           483:  /*   200 */   893,  886,  885,  884,  883,  879,  880,  878,  877,  876,
        !           484:  /*   210 */   874,  866,  867,  863,  865,  859,  856,  853,  851,  848,
        !           485:  /*   220 */   842,  836,  833,  835,  829,  827,  825,  824,  820,  819,
        !           486:  /*   230 */   818,  817,  840,  816,  813,  765,  812,  810,  839,  837,
        !           487:  /*   240 */   811,  814,  808,  834,  786,  784,  782,  781,  780,  779,
        !           488:  /*   250 */   778,  777,  755,  723,  723,  723,  804,  756,  776,  775,
        !           489:  /*   260 */   773,  763,  759,  768,  807,  806,  770,  805,  799,  798,
        !           490:  /*   270 */   793,  792,  791,  789,  787,  764,  762,  723,  723,  723,
        !           491:  /*   280 */   723,  771,
        !           492: };
        !           493: static const YYACTIONTYPE yy_default[] = {
        !           494:  /*     0 */   570,  856,  797,  797,  856,  839,  839,  685,  856,  797,
        !           495:  /*    10 */   797,  856,  822,  856,  681,  856,  856,  797,  793,  856,
        !           496:  /*    20 */   586,  649,  856,  581,  856,  856,  856,  856,  856,  594,
        !           497:  /*    30 */   651,  856,  856,  856,  856,  856,  856,  856,  856,  856,
        !           498:  /*    40 */   856,  856,  856,  856,  856,  856,  856,  856,  856,  856,
        !           499:  /*    50 */   856,  856,  856,  856,  856,  856,  856,  856,  856,  856,
        !           500:  /*    60 */   856,  856,  856,  856,  856,  856,  856,  856,  856,  856,
        !           501:  /*    70 */   856,  856,  856,  856,  856,  856,  856,  856,  856,  681,
        !           502:  /*    80 */   856,  681,  570,  856,  856,  856,  856,  685,  675,  856,
        !           503:  /*    90 */   856,  856,  856,  730,  729,  724,  723,  837,  697,  721,
        !           504:  /*   100 */   714,  856,  789,  790,  788,  792,  796,  856,  705,  748,
        !           505:  /*   110 */   780,  774,  747,  779,  760,  759,  754,  753,  752,  751,
        !           506:  /*   120 */   750,  749,  640,  758,  757,  756,  755,  856,  856,  856,
        !           507:  /*   130 */   856,  856,  856,  856,  856,  856,  856,  856,  856,  764,
        !           508:  /*   140 */   763,  856,  856,  856,  856,  809,  856,  856,  726,  856,
        !           509:  /*   150 */   856,  856,  663,  856,  856,  856,  856,  856,  842,  856,
        !           510:  /*   160 */   856,  856,  844,  856,  856,  856,  856,  856,  828,  856,
        !           511:  /*   170 */   661,  856,  856,  583,  856,  856,  856,  856,  595,  856,
        !           512:  /*   180 */   856,  856,  856,  856,  689,  688,  856,  683,  856,  856,
        !           513:  /*   190 */   856,  856,  856,  856,  856,  856,  856,  856,  573,  856,
        !           514:  /*   200 */   856,  856,  856,  856,  720,  720,  621,  708,  708,  791,
        !           515:  /*   210 */   708,  682,  673,  708,  856,  854,  852,  854,  690,  653,
        !           516:  /*   220 */   731,  690,  690,  653,  720,  690,  690,  690,  720,  731,
        !           517:  /*   230 */   653,  653,  651,  690,  836,  833,  690,  801,  651,  651,
        !           518:  /*   240 */   636,  856,  801,  651,  700,  698,  700,  698,  690,  709,
        !           519:  /*   250 */   690,  690,  856,  767,  766,  765,  856,  709,  715,  701,
        !           520:  /*   260 */   713,  711,  720,  856,  651,  651,  636,  651,  651,  639,
        !           521:  /*   270 */   572,  572,  572,  651,  572,  624,  624,  777,  776,  775,
        !           522:  /*   280 */   768,  604,  856,  856,  856,  856,  856,  816,  856,  856,
        !           523:  /*   290 */   856,  856,  856,  856,  856,  856,  856,  856,  856,  856,
        !           524:  /*   300 */   856,  856,  856,  856,  856,  856,  716,  737,  856,  856,
        !           525:  /*   310 */   856,  856,  856,  856,  808,  856,  856,  856,  856,  856,
        !           526:  /*   320 */   856,  856,  856,  856,  856,  856,  856,  856,  856,  856,
        !           527:  /*   330 */   856,  856,  856,  832,  831,  856,  856,  856,  856,  856,
        !           528:  /*   340 */   856,  856,  856,  856,  856,  856,  856,  856,  856,  856,
        !           529:  /*   350 */   856,  712,  856,  856,  856,  856,  856,  856,  856,  856,
        !           530:  /*   360 */   856,  856,  666,  856,  739,  856,  702,  856,  856,  856,
        !           531:  /*   370 */   738,  743,  856,  856,  856,  856,  856,  565,  569,  567,
        !           532:  /*   380 */   855,  853,  851,  850,  815,  821,  818,  820,  819,  817,
        !           533:  /*   390 */   814,  813,  812,  811,  810,  807,  725,  722,  719,  849,
        !           534:  /*   400 */   806,  662,  660,  843,  841,  732,  840,  838,  823,  728,
        !           535:  /*   410 */   727,  654,  799,  798,  580,  827,  826,  825,  734,  733,
        !           536:  /*   420 */   830,  829,  835,  834,  824,  579,  585,  643,  642,  650,
        !           537:  /*   430 */   648,  647,  646,  645,  644,  641,  587,  598,  599,  597,
        !           538:  /*   440 */   596,  615,  612,  614,  611,  613,  610,  609,  608,  607,
        !           539:  /*   450 */   606,  635,  623,  622,  802,  629,  628,  633,  632,  631,
        !           540:  /*   460 */   630,  627,  626,  625,  620,  746,  745,  735,  778,  672,
        !           541:  /*   470 */   671,  678,  677,  676,  687,  804,  805,  803,  699,  686,
        !           542:  /*   480 */   680,  679,  590,  589,  696,  695,  694,  693,  692,  684,
        !           543:  /*   490 */   674,  704,  786,  783,  784,  772,  785,  691,  795,  794,
        !           544:  /*   500 */   781,  848,  847,  846,  845,  787,  782,  669,  668,  667,
        !           545:  /*   510 */   771,  773,  770,  769,  762,  761,  744,  742,  741,  740,
        !           546:  /*   520 */   736,  710,  588,  703,  718,  717,  602,  601,  600,  670,
        !           547:  /*   530 */   665,  664,  619,  707,  706,  618,  638,  637,  634,  617,
        !           548:  /*   540 */   616,  605,  603,  584,  582,  578,  577,  576,  575,  593,
        !           549:  /*   550 */   592,  591,  574,  659,  658,  657,  656,  655,  652,  571,
        !           550:  /*   560 */   568,  566,  564,
        !           551: };
        !           552: 
        !           553: /* The next table maps tokens into fallback tokens.  If a construct
        !           554: ** like the following:
        !           555: ** 
        !           556: **      %fallback ID X Y Z.
        !           557: **
        !           558: ** appears in the grammar, then ID becomes a fallback token for X, Y,
        !           559: ** and Z.  Whenever one of the tokens X, Y, or Z is input to the parser
        !           560: ** but it does not parse, the type of the token is changed to ID and
        !           561: ** the parse is retried before an error is thrown.
        !           562: */
        !           563: #ifdef YYFALLBACK
        !           564: static const YYCODETYPE yyFallback[] = {
        !           565:     0,  /*          $ => nothing */
        !           566:     0,  /* END_OF_FILE => nothing */
        !           567:     0,  /*    ILLEGAL => nothing */
        !           568:     0,  /*      SPACE => nothing */
        !           569:     0,  /* UNCLOSED_STRING => nothing */
        !           570:     0,  /*    COMMENT => nothing */
        !           571:     0,  /*   FUNCTION => nothing */
        !           572:     0,  /*     COLUMN => nothing */
        !           573:     0,  /* AGG_FUNCTION => nothing */
        !           574:     0,  /*       SEMI => nothing */
        !           575:    23,  /*    EXPLAIN => ID */
        !           576:    23,  /*      BEGIN => ID */
        !           577:     0,  /* TRANSACTION => nothing */
        !           578:     0,  /*     COMMIT => nothing */
        !           579:    23,  /*        END => ID */
        !           580:     0,  /*   ROLLBACK => nothing */
        !           581:     0,  /*     CREATE => nothing */
        !           582:     0,  /*      TABLE => nothing */
        !           583:    23,  /*       TEMP => ID */
        !           584:     0,  /*         LP => nothing */
        !           585:     0,  /*         RP => nothing */
        !           586:     0,  /*         AS => nothing */
        !           587:     0,  /*      COMMA => nothing */
        !           588:     0,  /*         ID => nothing */
        !           589:    23,  /*      ABORT => ID */
        !           590:    23,  /*      AFTER => ID */
        !           591:    23,  /*        ASC => ID */
        !           592:    23,  /*     ATTACH => ID */
        !           593:    23,  /*     BEFORE => ID */
        !           594:    23,  /*    CASCADE => ID */
        !           595:    23,  /*    CLUSTER => ID */
        !           596:    23,  /*   CONFLICT => ID */
        !           597:    23,  /*       COPY => ID */
        !           598:    23,  /*   DATABASE => ID */
        !           599:    23,  /*   DEFERRED => ID */
        !           600:    23,  /* DELIMITERS => ID */
        !           601:    23,  /*       DESC => ID */
        !           602:    23,  /*     DETACH => ID */
        !           603:    23,  /*       EACH => ID */
        !           604:    23,  /*       FAIL => ID */
        !           605:    23,  /*        FOR => ID */
        !           606:    23,  /*       GLOB => ID */
        !           607:    23,  /*     IGNORE => ID */
        !           608:    23,  /*  IMMEDIATE => ID */
        !           609:    23,  /*  INITIALLY => ID */
        !           610:    23,  /*    INSTEAD => ID */
        !           611:    23,  /*       LIKE => ID */
        !           612:    23,  /*      MATCH => ID */
        !           613:    23,  /*        KEY => ID */
        !           614:    23,  /*         OF => ID */
        !           615:    23,  /*     OFFSET => ID */
        !           616:    23,  /*     PRAGMA => ID */
        !           617:    23,  /*      RAISE => ID */
        !           618:    23,  /*    REPLACE => ID */
        !           619:    23,  /*   RESTRICT => ID */
        !           620:    23,  /*        ROW => ID */
        !           621:    23,  /*  STATEMENT => ID */
        !           622:    23,  /*    TRIGGER => ID */
        !           623:    23,  /*     VACUUM => ID */
        !           624:    23,  /*       VIEW => ID */
        !           625: };
        !           626: #endif /* YYFALLBACK */
        !           627: 
        !           628: /* The following structure represents a single element of the
        !           629: ** parser's stack.  Information stored includes:
        !           630: **
        !           631: **   +  The state number for the parser at this level of the stack.
        !           632: **
        !           633: **   +  The value of the token stored at this level of the stack.
        !           634: **      (In other words, the "major" token.)
        !           635: **
        !           636: **   +  The semantic value stored at this level of the stack.  This is
        !           637: **      the information used by the action routines in the grammar.
        !           638: **      It is sometimes called the "minor" token.
        !           639: */
        !           640: struct yyStackEntry {
        !           641:   YYACTIONTYPE stateno;  /* The state-number */
        !           642:   YYCODETYPE major;      /* The major token value.  This is the code
        !           643:                          ** number for the token at this stack level */
        !           644:   YYMINORTYPE minor;     /* The user-supplied minor token value.  This
        !           645:                          ** is the value of the token  */
        !           646: };
        !           647: typedef struct yyStackEntry yyStackEntry;
        !           648: 
        !           649: /* The state of the parser is completely contained in an instance of
        !           650: ** the following structure */
        !           651: struct yyParser {
        !           652:   int yyidx;                    /* Index of top element in stack */
        !           653: #ifdef YYTRACKMAXSTACKDEPTH
        !           654:   int yyidxMax;                 /* Maximum value of yyidx */
        !           655: #endif
        !           656:   int yyerrcnt;                 /* Shifts left before out of the error */
        !           657:   sqliteParserARG_SDECL                /* A place to hold %extra_argument */
        !           658: #if YYSTACKDEPTH<=0
        !           659:   int yystksz;                  /* Current side of the stack */
        !           660:   yyStackEntry *yystack;        /* The parser's stack */
        !           661: #else
        !           662:   yyStackEntry yystack[YYSTACKDEPTH];  /* The parser's stack */
        !           663: #endif
        !           664: };
        !           665: typedef struct yyParser yyParser;
        !           666: 
        !           667: #ifndef NDEBUG
        !           668: #include <stdio.h>
        !           669: static FILE *yyTraceFILE = 0;
        !           670: static char *yyTracePrompt = 0;
        !           671: #endif /* NDEBUG */
        !           672: 
        !           673: #ifndef NDEBUG
        !           674: /* 
        !           675: ** Turn parser tracing on by giving a stream to which to write the trace
        !           676: ** and a prompt to preface each trace message.  Tracing is turned off
        !           677: ** by making either argument NULL 
        !           678: **
        !           679: ** Inputs:
        !           680: ** <ul>
        !           681: ** <li> A FILE* to which trace output should be written.
        !           682: **      If NULL, then tracing is turned off.
        !           683: ** <li> A prefix string written at the beginning of every
        !           684: **      line of trace output.  If NULL, then tracing is
        !           685: **      turned off.
        !           686: ** </ul>
        !           687: **
        !           688: ** Outputs:
        !           689: ** None.
        !           690: */
        !           691: void sqliteParserTrace(FILE *TraceFILE, char *zTracePrompt){
        !           692:   yyTraceFILE = TraceFILE;
        !           693:   yyTracePrompt = zTracePrompt;
        !           694:   if( yyTraceFILE==0 ) yyTracePrompt = 0;
        !           695:   else if( yyTracePrompt==0 ) yyTraceFILE = 0;
        !           696: }
        !           697: #endif /* NDEBUG */
        !           698: 
        !           699: #ifndef NDEBUG
        !           700: /* For tracing shifts, the names of all terminals and nonterminals
        !           701: ** are required.  The following table supplies these names */
        !           702: static const char *const yyTokenName[] = { 
        !           703:   "$",             "END_OF_FILE",   "ILLEGAL",       "SPACE",       
        !           704:   "UNCLOSED_STRING",  "COMMENT",       "FUNCTION",      "COLUMN",      
        !           705:   "AGG_FUNCTION",  "SEMI",          "EXPLAIN",       "BEGIN",       
        !           706:   "TRANSACTION",   "COMMIT",        "END",           "ROLLBACK",    
        !           707:   "CREATE",        "TABLE",         "TEMP",          "LP",          
        !           708:   "RP",            "AS",            "COMMA",         "ID",          
        !           709:   "ABORT",         "AFTER",         "ASC",           "ATTACH",      
        !           710:   "BEFORE",        "CASCADE",       "CLUSTER",       "CONFLICT",    
        !           711:   "COPY",          "DATABASE",      "DEFERRED",      "DELIMITERS",  
        !           712:   "DESC",          "DETACH",        "EACH",          "FAIL",        
        !           713:   "FOR",           "GLOB",          "IGNORE",        "IMMEDIATE",   
        !           714:   "INITIALLY",     "INSTEAD",       "LIKE",          "MATCH",       
        !           715:   "KEY",           "OF",            "OFFSET",        "PRAGMA",      
        !           716:   "RAISE",         "REPLACE",       "RESTRICT",      "ROW",         
        !           717:   "STATEMENT",     "TRIGGER",       "VACUUM",        "VIEW",        
        !           718:   "OR",            "AND",           "NOT",           "EQ",          
        !           719:   "NE",            "ISNULL",        "NOTNULL",       "IS",          
        !           720:   "BETWEEN",       "IN",            "GT",            "GE",          
        !           721:   "LT",            "LE",            "BITAND",        "BITOR",       
        !           722:   "LSHIFT",        "RSHIFT",        "PLUS",          "MINUS",       
        !           723:   "STAR",          "SLASH",         "REM",           "CONCAT",      
        !           724:   "UMINUS",        "UPLUS",         "BITNOT",        "STRING",      
        !           725:   "JOIN_KW",       "INTEGER",       "CONSTRAINT",    "DEFAULT",     
        !           726:   "FLOAT",         "NULL",          "PRIMARY",       "UNIQUE",      
        !           727:   "CHECK",         "REFERENCES",    "COLLATE",       "ON",          
        !           728:   "DELETE",        "UPDATE",        "INSERT",        "SET",         
        !           729:   "DEFERRABLE",    "FOREIGN",       "DROP",          "UNION",       
        !           730:   "ALL",           "INTERSECT",     "EXCEPT",        "SELECT",      
        !           731:   "DISTINCT",      "DOT",           "FROM",          "JOIN",        
        !           732:   "USING",         "ORDER",         "BY",            "GROUP",       
        !           733:   "HAVING",        "LIMIT",         "WHERE",         "INTO",        
        !           734:   "VALUES",        "VARIABLE",      "CASE",          "WHEN",        
        !           735:   "THEN",          "ELSE",          "INDEX",         "error",       
        !           736:   "input",         "cmdlist",       "ecmd",          "explain",     
        !           737:   "cmdx",          "cmd",           "trans_opt",     "onconf",      
        !           738:   "nm",            "create_table",  "create_table_args",  "temp",        
        !           739:   "columnlist",    "conslist_opt",  "select",        "column",      
        !           740:   "columnid",      "type",          "carglist",      "id",          
        !           741:   "ids",           "typename",      "signed",        "carg",        
        !           742:   "ccons",         "sortorder",     "expr",          "idxlist_opt", 
        !           743:   "refargs",       "defer_subclause",  "refarg",        "refact",      
        !           744:   "init_deferred_pred_opt",  "conslist",      "tcons",         "idxlist",     
        !           745:   "defer_subclause_opt",  "orconf",        "resolvetype",   "oneselect",   
        !           746:   "multiselect_op",  "distinct",      "selcollist",    "from",        
        !           747:   "where_opt",     "groupby_opt",   "having_opt",    "orderby_opt", 
        !           748:   "limit_opt",     "sclp",          "as",            "seltablist",  
        !           749:   "stl_prefix",    "joinop",        "dbnm",          "on_opt",      
        !           750:   "using_opt",     "seltablist_paren",  "joinop2",       "sortlist",    
        !           751:   "sortitem",      "collate",       "exprlist",      "setlist",     
        !           752:   "insert_cmd",    "inscollist_opt",  "itemlist",      "inscollist",  
        !           753:   "likeop",        "case_operand",  "case_exprlist",  "case_else",   
        !           754:   "expritem",      "uniqueflag",    "idxitem",       "plus_num",    
        !           755:   "minus_num",     "plus_opt",      "number",        "trigger_decl",
        !           756:   "trigger_cmd_list",  "trigger_time",  "trigger_event",  "foreach_clause",
        !           757:   "when_clause",   "trigger_cmd",   "database_kw_opt",  "key_opt",     
        !           758: };
        !           759: #endif /* NDEBUG */
        !           760: 
        !           761: #ifndef NDEBUG
        !           762: /* For tracing reduce actions, the names of all rules are required.
        !           763: */
        !           764: static const char *const yyRuleName[] = {
        !           765:  /*   0 */ "input ::= cmdlist",
        !           766:  /*   1 */ "cmdlist ::= cmdlist ecmd",
        !           767:  /*   2 */ "cmdlist ::= ecmd",
        !           768:  /*   3 */ "ecmd ::= explain cmdx SEMI",
        !           769:  /*   4 */ "ecmd ::= SEMI",
        !           770:  /*   5 */ "cmdx ::= cmd",
        !           771:  /*   6 */ "explain ::= EXPLAIN",
        !           772:  /*   7 */ "explain ::=",
        !           773:  /*   8 */ "cmd ::= BEGIN trans_opt onconf",
        !           774:  /*   9 */ "trans_opt ::=",
        !           775:  /*  10 */ "trans_opt ::= TRANSACTION",
        !           776:  /*  11 */ "trans_opt ::= TRANSACTION nm",
        !           777:  /*  12 */ "cmd ::= COMMIT trans_opt",
        !           778:  /*  13 */ "cmd ::= END trans_opt",
        !           779:  /*  14 */ "cmd ::= ROLLBACK trans_opt",
        !           780:  /*  15 */ "cmd ::= create_table create_table_args",
        !           781:  /*  16 */ "create_table ::= CREATE temp TABLE nm",
        !           782:  /*  17 */ "temp ::= TEMP",
        !           783:  /*  18 */ "temp ::=",
        !           784:  /*  19 */ "create_table_args ::= LP columnlist conslist_opt RP",
        !           785:  /*  20 */ "create_table_args ::= AS select",
        !           786:  /*  21 */ "columnlist ::= columnlist COMMA column",
        !           787:  /*  22 */ "columnlist ::= column",
        !           788:  /*  23 */ "column ::= columnid type carglist",
        !           789:  /*  24 */ "columnid ::= nm",
        !           790:  /*  25 */ "id ::= ID",
        !           791:  /*  26 */ "ids ::= ID",
        !           792:  /*  27 */ "ids ::= STRING",
        !           793:  /*  28 */ "nm ::= ID",
        !           794:  /*  29 */ "nm ::= STRING",
        !           795:  /*  30 */ "nm ::= JOIN_KW",
        !           796:  /*  31 */ "type ::=",
        !           797:  /*  32 */ "type ::= typename",
        !           798:  /*  33 */ "type ::= typename LP signed RP",
        !           799:  /*  34 */ "type ::= typename LP signed COMMA signed RP",
        !           800:  /*  35 */ "typename ::= ids",
        !           801:  /*  36 */ "typename ::= typename ids",
        !           802:  /*  37 */ "signed ::= INTEGER",
        !           803:  /*  38 */ "signed ::= PLUS INTEGER",
        !           804:  /*  39 */ "signed ::= MINUS INTEGER",
        !           805:  /*  40 */ "carglist ::= carglist carg",
        !           806:  /*  41 */ "carglist ::=",
        !           807:  /*  42 */ "carg ::= CONSTRAINT nm ccons",
        !           808:  /*  43 */ "carg ::= ccons",
        !           809:  /*  44 */ "carg ::= DEFAULT STRING",
        !           810:  /*  45 */ "carg ::= DEFAULT ID",
        !           811:  /*  46 */ "carg ::= DEFAULT INTEGER",
        !           812:  /*  47 */ "carg ::= DEFAULT PLUS INTEGER",
        !           813:  /*  48 */ "carg ::= DEFAULT MINUS INTEGER",
        !           814:  /*  49 */ "carg ::= DEFAULT FLOAT",
        !           815:  /*  50 */ "carg ::= DEFAULT PLUS FLOAT",
        !           816:  /*  51 */ "carg ::= DEFAULT MINUS FLOAT",
        !           817:  /*  52 */ "carg ::= DEFAULT NULL",
        !           818:  /*  53 */ "ccons ::= NULL onconf",
        !           819:  /*  54 */ "ccons ::= NOT NULL onconf",
        !           820:  /*  55 */ "ccons ::= PRIMARY KEY sortorder onconf",
        !           821:  /*  56 */ "ccons ::= UNIQUE onconf",
        !           822:  /*  57 */ "ccons ::= CHECK LP expr RP onconf",
        !           823:  /*  58 */ "ccons ::= REFERENCES nm idxlist_opt refargs",
        !           824:  /*  59 */ "ccons ::= defer_subclause",
        !           825:  /*  60 */ "ccons ::= COLLATE id",
        !           826:  /*  61 */ "refargs ::=",
        !           827:  /*  62 */ "refargs ::= refargs refarg",
        !           828:  /*  63 */ "refarg ::= MATCH nm",
        !           829:  /*  64 */ "refarg ::= ON DELETE refact",
        !           830:  /*  65 */ "refarg ::= ON UPDATE refact",
        !           831:  /*  66 */ "refarg ::= ON INSERT refact",
        !           832:  /*  67 */ "refact ::= SET NULL",
        !           833:  /*  68 */ "refact ::= SET DEFAULT",
        !           834:  /*  69 */ "refact ::= CASCADE",
        !           835:  /*  70 */ "refact ::= RESTRICT",
        !           836:  /*  71 */ "defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt",
        !           837:  /*  72 */ "defer_subclause ::= DEFERRABLE init_deferred_pred_opt",
        !           838:  /*  73 */ "init_deferred_pred_opt ::=",
        !           839:  /*  74 */ "init_deferred_pred_opt ::= INITIALLY DEFERRED",
        !           840:  /*  75 */ "init_deferred_pred_opt ::= INITIALLY IMMEDIATE",
        !           841:  /*  76 */ "conslist_opt ::=",
        !           842:  /*  77 */ "conslist_opt ::= COMMA conslist",
        !           843:  /*  78 */ "conslist ::= conslist COMMA tcons",
        !           844:  /*  79 */ "conslist ::= conslist tcons",
        !           845:  /*  80 */ "conslist ::= tcons",
        !           846:  /*  81 */ "tcons ::= CONSTRAINT nm",
        !           847:  /*  82 */ "tcons ::= PRIMARY KEY LP idxlist RP onconf",
        !           848:  /*  83 */ "tcons ::= UNIQUE LP idxlist RP onconf",
        !           849:  /*  84 */ "tcons ::= CHECK expr onconf",
        !           850:  /*  85 */ "tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt",
        !           851:  /*  86 */ "defer_subclause_opt ::=",
        !           852:  /*  87 */ "defer_subclause_opt ::= defer_subclause",
        !           853:  /*  88 */ "onconf ::=",
        !           854:  /*  89 */ "onconf ::= ON CONFLICT resolvetype",
        !           855:  /*  90 */ "orconf ::=",
        !           856:  /*  91 */ "orconf ::= OR resolvetype",
        !           857:  /*  92 */ "resolvetype ::= ROLLBACK",
        !           858:  /*  93 */ "resolvetype ::= ABORT",
        !           859:  /*  94 */ "resolvetype ::= FAIL",
        !           860:  /*  95 */ "resolvetype ::= IGNORE",
        !           861:  /*  96 */ "resolvetype ::= REPLACE",
        !           862:  /*  97 */ "cmd ::= DROP TABLE nm",
        !           863:  /*  98 */ "cmd ::= CREATE temp VIEW nm AS select",
        !           864:  /*  99 */ "cmd ::= DROP VIEW nm",
        !           865:  /* 100 */ "cmd ::= select",
        !           866:  /* 101 */ "select ::= oneselect",
        !           867:  /* 102 */ "select ::= select multiselect_op oneselect",
        !           868:  /* 103 */ "multiselect_op ::= UNION",
        !           869:  /* 104 */ "multiselect_op ::= UNION ALL",
        !           870:  /* 105 */ "multiselect_op ::= INTERSECT",
        !           871:  /* 106 */ "multiselect_op ::= EXCEPT",
        !           872:  /* 107 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt",
        !           873:  /* 108 */ "distinct ::= DISTINCT",
        !           874:  /* 109 */ "distinct ::= ALL",
        !           875:  /* 110 */ "distinct ::=",
        !           876:  /* 111 */ "sclp ::= selcollist COMMA",
        !           877:  /* 112 */ "sclp ::=",
        !           878:  /* 113 */ "selcollist ::= sclp expr as",
        !           879:  /* 114 */ "selcollist ::= sclp STAR",
        !           880:  /* 115 */ "selcollist ::= sclp nm DOT STAR",
        !           881:  /* 116 */ "as ::= AS nm",
        !           882:  /* 117 */ "as ::= ids",
        !           883:  /* 118 */ "as ::=",
        !           884:  /* 119 */ "from ::=",
        !           885:  /* 120 */ "from ::= FROM seltablist",
        !           886:  /* 121 */ "stl_prefix ::= seltablist joinop",
        !           887:  /* 122 */ "stl_prefix ::=",
        !           888:  /* 123 */ "seltablist ::= stl_prefix nm dbnm as on_opt using_opt",
        !           889:  /* 124 */ "seltablist ::= stl_prefix LP seltablist_paren RP as on_opt using_opt",
        !           890:  /* 125 */ "seltablist_paren ::= select",
        !           891:  /* 126 */ "seltablist_paren ::= seltablist",
        !           892:  /* 127 */ "dbnm ::=",
        !           893:  /* 128 */ "dbnm ::= DOT nm",
        !           894:  /* 129 */ "joinop ::= COMMA",
        !           895:  /* 130 */ "joinop ::= JOIN",
        !           896:  /* 131 */ "joinop ::= JOIN_KW JOIN",
        !           897:  /* 132 */ "joinop ::= JOIN_KW nm JOIN",
        !           898:  /* 133 */ "joinop ::= JOIN_KW nm nm JOIN",
        !           899:  /* 134 */ "on_opt ::= ON expr",
        !           900:  /* 135 */ "on_opt ::=",
        !           901:  /* 136 */ "using_opt ::= USING LP idxlist RP",
        !           902:  /* 137 */ "using_opt ::=",
        !           903:  /* 138 */ "orderby_opt ::=",
        !           904:  /* 139 */ "orderby_opt ::= ORDER BY sortlist",
        !           905:  /* 140 */ "sortlist ::= sortlist COMMA sortitem collate sortorder",
        !           906:  /* 141 */ "sortlist ::= sortitem collate sortorder",
        !           907:  /* 142 */ "sortitem ::= expr",
        !           908:  /* 143 */ "sortorder ::= ASC",
        !           909:  /* 144 */ "sortorder ::= DESC",
        !           910:  /* 145 */ "sortorder ::=",
        !           911:  /* 146 */ "collate ::=",
        !           912:  /* 147 */ "collate ::= COLLATE id",
        !           913:  /* 148 */ "groupby_opt ::=",
        !           914:  /* 149 */ "groupby_opt ::= GROUP BY exprlist",
        !           915:  /* 150 */ "having_opt ::=",
        !           916:  /* 151 */ "having_opt ::= HAVING expr",
        !           917:  /* 152 */ "limit_opt ::=",
        !           918:  /* 153 */ "limit_opt ::= LIMIT signed",
        !           919:  /* 154 */ "limit_opt ::= LIMIT signed OFFSET signed",
        !           920:  /* 155 */ "limit_opt ::= LIMIT signed COMMA signed",
        !           921:  /* 156 */ "cmd ::= DELETE FROM nm dbnm where_opt",
        !           922:  /* 157 */ "where_opt ::=",
        !           923:  /* 158 */ "where_opt ::= WHERE expr",
        !           924:  /* 159 */ "cmd ::= UPDATE orconf nm dbnm SET setlist where_opt",
        !           925:  /* 160 */ "setlist ::= setlist COMMA nm EQ expr",
        !           926:  /* 161 */ "setlist ::= nm EQ expr",
        !           927:  /* 162 */ "cmd ::= insert_cmd INTO nm dbnm inscollist_opt VALUES LP itemlist RP",
        !           928:  /* 163 */ "cmd ::= insert_cmd INTO nm dbnm inscollist_opt select",
        !           929:  /* 164 */ "insert_cmd ::= INSERT orconf",
        !           930:  /* 165 */ "insert_cmd ::= REPLACE",
        !           931:  /* 166 */ "itemlist ::= itemlist COMMA expr",
        !           932:  /* 167 */ "itemlist ::= expr",
        !           933:  /* 168 */ "inscollist_opt ::=",
        !           934:  /* 169 */ "inscollist_opt ::= LP inscollist RP",
        !           935:  /* 170 */ "inscollist ::= inscollist COMMA nm",
        !           936:  /* 171 */ "inscollist ::= nm",
        !           937:  /* 172 */ "expr ::= LP expr RP",
        !           938:  /* 173 */ "expr ::= NULL",
        !           939:  /* 174 */ "expr ::= ID",
        !           940:  /* 175 */ "expr ::= JOIN_KW",
        !           941:  /* 176 */ "expr ::= nm DOT nm",
        !           942:  /* 177 */ "expr ::= nm DOT nm DOT nm",
        !           943:  /* 178 */ "expr ::= INTEGER",
        !           944:  /* 179 */ "expr ::= FLOAT",
        !           945:  /* 180 */ "expr ::= STRING",
        !           946:  /* 181 */ "expr ::= VARIABLE",
        !           947:  /* 182 */ "expr ::= ID LP exprlist RP",
        !           948:  /* 183 */ "expr ::= ID LP STAR RP",
        !           949:  /* 184 */ "expr ::= expr AND expr",
        !           950:  /* 185 */ "expr ::= expr OR expr",
        !           951:  /* 186 */ "expr ::= expr LT expr",
        !           952:  /* 187 */ "expr ::= expr GT expr",
        !           953:  /* 188 */ "expr ::= expr LE expr",
        !           954:  /* 189 */ "expr ::= expr GE expr",
        !           955:  /* 190 */ "expr ::= expr NE expr",
        !           956:  /* 191 */ "expr ::= expr EQ expr",
        !           957:  /* 192 */ "expr ::= expr BITAND expr",
        !           958:  /* 193 */ "expr ::= expr BITOR expr",
        !           959:  /* 194 */ "expr ::= expr LSHIFT expr",
        !           960:  /* 195 */ "expr ::= expr RSHIFT expr",
        !           961:  /* 196 */ "expr ::= expr likeop expr",
        !           962:  /* 197 */ "expr ::= expr NOT likeop expr",
        !           963:  /* 198 */ "likeop ::= LIKE",
        !           964:  /* 199 */ "likeop ::= GLOB",
        !           965:  /* 200 */ "expr ::= expr PLUS expr",
        !           966:  /* 201 */ "expr ::= expr MINUS expr",
        !           967:  /* 202 */ "expr ::= expr STAR expr",
        !           968:  /* 203 */ "expr ::= expr SLASH expr",
        !           969:  /* 204 */ "expr ::= expr REM expr",
        !           970:  /* 205 */ "expr ::= expr CONCAT expr",
        !           971:  /* 206 */ "expr ::= expr ISNULL",
        !           972:  /* 207 */ "expr ::= expr IS NULL",
        !           973:  /* 208 */ "expr ::= expr NOTNULL",
        !           974:  /* 209 */ "expr ::= expr NOT NULL",
        !           975:  /* 210 */ "expr ::= expr IS NOT NULL",
        !           976:  /* 211 */ "expr ::= NOT expr",
        !           977:  /* 212 */ "expr ::= BITNOT expr",
        !           978:  /* 213 */ "expr ::= MINUS expr",
        !           979:  /* 214 */ "expr ::= PLUS expr",
        !           980:  /* 215 */ "expr ::= LP select RP",
        !           981:  /* 216 */ "expr ::= expr BETWEEN expr AND expr",
        !           982:  /* 217 */ "expr ::= expr NOT BETWEEN expr AND expr",
        !           983:  /* 218 */ "expr ::= expr IN LP exprlist RP",
        !           984:  /* 219 */ "expr ::= expr IN LP select RP",
        !           985:  /* 220 */ "expr ::= expr NOT IN LP exprlist RP",
        !           986:  /* 221 */ "expr ::= expr NOT IN LP select RP",
        !           987:  /* 222 */ "expr ::= expr IN nm dbnm",
        !           988:  /* 223 */ "expr ::= expr NOT IN nm dbnm",
        !           989:  /* 224 */ "expr ::= CASE case_operand case_exprlist case_else END",
        !           990:  /* 225 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr",
        !           991:  /* 226 */ "case_exprlist ::= WHEN expr THEN expr",
        !           992:  /* 227 */ "case_else ::= ELSE expr",
        !           993:  /* 228 */ "case_else ::=",
        !           994:  /* 229 */ "case_operand ::= expr",
        !           995:  /* 230 */ "case_operand ::=",
        !           996:  /* 231 */ "exprlist ::= exprlist COMMA expritem",
        !           997:  /* 232 */ "exprlist ::= expritem",
        !           998:  /* 233 */ "expritem ::= expr",
        !           999:  /* 234 */ "expritem ::=",
        !          1000:  /* 235 */ "cmd ::= CREATE uniqueflag INDEX nm ON nm dbnm LP idxlist RP onconf",
        !          1001:  /* 236 */ "uniqueflag ::= UNIQUE",
        !          1002:  /* 237 */ "uniqueflag ::=",
        !          1003:  /* 238 */ "idxlist_opt ::=",
        !          1004:  /* 239 */ "idxlist_opt ::= LP idxlist RP",
        !          1005:  /* 240 */ "idxlist ::= idxlist COMMA idxitem",
        !          1006:  /* 241 */ "idxlist ::= idxitem",
        !          1007:  /* 242 */ "idxitem ::= nm sortorder",
        !          1008:  /* 243 */ "cmd ::= DROP INDEX nm dbnm",
        !          1009:  /* 244 */ "cmd ::= COPY orconf nm dbnm FROM nm USING DELIMITERS STRING",
        !          1010:  /* 245 */ "cmd ::= COPY orconf nm dbnm FROM nm",
        !          1011:  /* 246 */ "cmd ::= VACUUM",
        !          1012:  /* 247 */ "cmd ::= VACUUM nm",
        !          1013:  /* 248 */ "cmd ::= PRAGMA ids EQ nm",
        !          1014:  /* 249 */ "cmd ::= PRAGMA ids EQ ON",
        !          1015:  /* 250 */ "cmd ::= PRAGMA ids EQ plus_num",
        !          1016:  /* 251 */ "cmd ::= PRAGMA ids EQ minus_num",
        !          1017:  /* 252 */ "cmd ::= PRAGMA ids LP nm RP",
        !          1018:  /* 253 */ "cmd ::= PRAGMA ids",
        !          1019:  /* 254 */ "plus_num ::= plus_opt number",
        !          1020:  /* 255 */ "minus_num ::= MINUS number",
        !          1021:  /* 256 */ "number ::= INTEGER",
        !          1022:  /* 257 */ "number ::= FLOAT",
        !          1023:  /* 258 */ "plus_opt ::= PLUS",
        !          1024:  /* 259 */ "plus_opt ::=",
        !          1025:  /* 260 */ "cmd ::= CREATE trigger_decl BEGIN trigger_cmd_list END",
        !          1026:  /* 261 */ "trigger_decl ::= temp TRIGGER nm trigger_time trigger_event ON nm dbnm foreach_clause when_clause",
        !          1027:  /* 262 */ "trigger_time ::= BEFORE",
        !          1028:  /* 263 */ "trigger_time ::= AFTER",
        !          1029:  /* 264 */ "trigger_time ::= INSTEAD OF",
        !          1030:  /* 265 */ "trigger_time ::=",
        !          1031:  /* 266 */ "trigger_event ::= DELETE",
        !          1032:  /* 267 */ "trigger_event ::= INSERT",
        !          1033:  /* 268 */ "trigger_event ::= UPDATE",
        !          1034:  /* 269 */ "trigger_event ::= UPDATE OF inscollist",
        !          1035:  /* 270 */ "foreach_clause ::=",
        !          1036:  /* 271 */ "foreach_clause ::= FOR EACH ROW",
        !          1037:  /* 272 */ "foreach_clause ::= FOR EACH STATEMENT",
        !          1038:  /* 273 */ "when_clause ::=",
        !          1039:  /* 274 */ "when_clause ::= WHEN expr",
        !          1040:  /* 275 */ "trigger_cmd_list ::= trigger_cmd SEMI trigger_cmd_list",
        !          1041:  /* 276 */ "trigger_cmd_list ::=",
        !          1042:  /* 277 */ "trigger_cmd ::= UPDATE orconf nm SET setlist where_opt",
        !          1043:  /* 278 */ "trigger_cmd ::= insert_cmd INTO nm inscollist_opt VALUES LP itemlist RP",
        !          1044:  /* 279 */ "trigger_cmd ::= insert_cmd INTO nm inscollist_opt select",
        !          1045:  /* 280 */ "trigger_cmd ::= DELETE FROM nm where_opt",
        !          1046:  /* 281 */ "trigger_cmd ::= select",
        !          1047:  /* 282 */ "expr ::= RAISE LP IGNORE RP",
        !          1048:  /* 283 */ "expr ::= RAISE LP ROLLBACK COMMA nm RP",
        !          1049:  /* 284 */ "expr ::= RAISE LP ABORT COMMA nm RP",
        !          1050:  /* 285 */ "expr ::= RAISE LP FAIL COMMA nm RP",
        !          1051:  /* 286 */ "cmd ::= DROP TRIGGER nm dbnm",
        !          1052:  /* 287 */ "cmd ::= ATTACH database_kw_opt ids AS nm key_opt",
        !          1053:  /* 288 */ "key_opt ::= USING ids",
        !          1054:  /* 289 */ "key_opt ::=",
        !          1055:  /* 290 */ "database_kw_opt ::= DATABASE",
        !          1056:  /* 291 */ "database_kw_opt ::=",
        !          1057:  /* 292 */ "cmd ::= DETACH database_kw_opt nm",
        !          1058: };
        !          1059: #endif /* NDEBUG */
        !          1060: 
        !          1061: 
        !          1062: #if YYSTACKDEPTH<=0
        !          1063: /*
        !          1064: ** Try to increase the size of the parser stack.
        !          1065: */
        !          1066: static void yyGrowStack(yyParser *p){
        !          1067:   int newSize;
        !          1068:   yyStackEntry *pNew;
        !          1069: 
        !          1070:   newSize = p->yystksz*2 + 100;
        !          1071:   pNew = realloc(p->yystack, newSize*sizeof(pNew[0]));
        !          1072:   if( pNew ){
        !          1073:     p->yystack = pNew;
        !          1074:     p->yystksz = newSize;
        !          1075: #ifndef NDEBUG
        !          1076:     if( yyTraceFILE ){
        !          1077:       fprintf(yyTraceFILE,"%sStack grows to %d entries!\n",
        !          1078:               yyTracePrompt, p->yystksz);
        !          1079:     }
        !          1080: #endif
        !          1081:   }
        !          1082: }
        !          1083: #endif
        !          1084: 
        !          1085: /* 
        !          1086: ** This function allocates a new parser.
        !          1087: ** The only argument is a pointer to a function which works like
        !          1088: ** malloc.
        !          1089: **
        !          1090: ** Inputs:
        !          1091: ** A pointer to the function used to allocate memory.
        !          1092: **
        !          1093: ** Outputs:
        !          1094: ** A pointer to a parser.  This pointer is used in subsequent calls
        !          1095: ** to sqliteParser and sqliteParserFree.
        !          1096: */
        !          1097: void *sqliteParserAlloc(void *(*mallocProc)(size_t)){
        !          1098:   yyParser *pParser;
        !          1099:   pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) );
        !          1100:   if( pParser ){
        !          1101:     pParser->yyidx = -1;
        !          1102: #ifdef YYTRACKMAXSTACKDEPTH
        !          1103:     pParser->yyidxMax = 0;
        !          1104: #endif
        !          1105: #if YYSTACKDEPTH<=0
        !          1106:     pParser->yystack = NULL;
        !          1107:     pParser->yystksz = 0;
        !          1108:     yyGrowStack(pParser);
        !          1109: #endif
        !          1110:   }
        !          1111:   return pParser;
        !          1112: }
        !          1113: 
        !          1114: /* The following function deletes the value associated with a
        !          1115: ** symbol.  The symbol can be either a terminal or nonterminal.
        !          1116: ** "yymajor" is the symbol code, and "yypminor" is a pointer to
        !          1117: ** the value.
        !          1118: */
        !          1119: static void yy_destructor(
        !          1120:   yyParser *yypParser,    /* The parser */
        !          1121:   YYCODETYPE yymajor,     /* Type code for object to destroy */
        !          1122:   YYMINORTYPE *yypminor   /* The object to be destroyed */
        !          1123: ){
        !          1124:   sqliteParserARG_FETCH;
        !          1125:   switch( yymajor ){
        !          1126:     /* Here is inserted the actions which take place when a
        !          1127:     ** terminal or non-terminal is destroyed.  This can happen
        !          1128:     ** when the symbol is popped from the stack during a
        !          1129:     ** reduce or during error processing or when a parser is 
        !          1130:     ** being destroyed before it is finished parsing.
        !          1131:     **
        !          1132:     ** Note: during a reduce, the only symbols destroyed are those
        !          1133:     ** which appear on the RHS of the rule, but which are not used
        !          1134:     ** inside the C code.
        !          1135:     */
        !          1136:     case 146: /* select */
        !          1137:     case 171: /* oneselect */
        !          1138:     case 189: /* seltablist_paren */
        !          1139: {
        !          1140: #line 286 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1141: sqliteSelectDelete((yypminor->yy179));
        !          1142: #line 1143 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1143: }
        !          1144:       break;
        !          1145:     case 158: /* expr */
        !          1146:     case 176: /* where_opt */
        !          1147:     case 178: /* having_opt */
        !          1148:     case 187: /* on_opt */
        !          1149:     case 192: /* sortitem */
        !          1150:     case 204: /* expritem */
        !          1151: {
        !          1152: #line 533 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1153: sqliteExprDelete((yypminor->yy242));
        !          1154: #line 1155 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1155: }
        !          1156:       break;
        !          1157:     case 159: /* idxlist_opt */
        !          1158:     case 167: /* idxlist */
        !          1159:     case 188: /* using_opt */
        !          1160:     case 197: /* inscollist_opt */
        !          1161:     case 199: /* inscollist */
        !          1162: {
        !          1163: #line 746 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1164: sqliteIdListDelete((yypminor->yy320));
        !          1165: #line 1166 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1166: }
        !          1167:       break;
        !          1168:     case 174: /* selcollist */
        !          1169:     case 177: /* groupby_opt */
        !          1170:     case 179: /* orderby_opt */
        !          1171:     case 181: /* sclp */
        !          1172:     case 191: /* sortlist */
        !          1173:     case 194: /* exprlist */
        !          1174:     case 195: /* setlist */
        !          1175:     case 198: /* itemlist */
        !          1176:     case 202: /* case_exprlist */
        !          1177: {
        !          1178: #line 322 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1179: sqliteExprListDelete((yypminor->yy322));
        !          1180: #line 1181 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1181: }
        !          1182:       break;
        !          1183:     case 175: /* from */
        !          1184:     case 183: /* seltablist */
        !          1185:     case 184: /* stl_prefix */
        !          1186: {
        !          1187: #line 353 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1188: sqliteSrcListDelete((yypminor->yy307));
        !          1189: #line 1190 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1190: }
        !          1191:       break;
        !          1192:     case 212: /* trigger_cmd_list */
        !          1193:     case 217: /* trigger_cmd */
        !          1194: {
        !          1195: #line 828 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1196: sqliteDeleteTriggerStep((yypminor->yy19));
        !          1197: #line 1198 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1198: }
        !          1199:       break;
        !          1200:     case 214: /* trigger_event */
        !          1201: {
        !          1202: #line 812 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1203: sqliteIdListDelete((yypminor->yy290).b);
        !          1204: #line 1205 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1205: }
        !          1206:       break;
        !          1207:     default:  break;   /* If no destructor action specified: do nothing */
        !          1208:   }
        !          1209: }
        !          1210: 
        !          1211: /*
        !          1212: ** Pop the parser's stack once.
        !          1213: **
        !          1214: ** If there is a destructor routine associated with the token which
        !          1215: ** is popped from the stack, then call it.
        !          1216: **
        !          1217: ** Return the major token number for the symbol popped.
        !          1218: */
        !          1219: static int yy_pop_parser_stack(yyParser *pParser){
        !          1220:   YYCODETYPE yymajor;
        !          1221:   yyStackEntry *yytos = &pParser->yystack[pParser->yyidx];
        !          1222: 
        !          1223:   if( pParser->yyidx<0 ) return 0;
        !          1224: #ifndef NDEBUG
        !          1225:   if( yyTraceFILE && pParser->yyidx>=0 ){
        !          1226:     fprintf(yyTraceFILE,"%sPopping %s\n",
        !          1227:       yyTracePrompt,
        !          1228:       yyTokenName[yytos->major]);
        !          1229:   }
        !          1230: #endif
        !          1231:   yymajor = yytos->major;
        !          1232:   yy_destructor(pParser, yymajor, &yytos->minor);
        !          1233:   pParser->yyidx--;
        !          1234:   return yymajor;
        !          1235: }
        !          1236: 
        !          1237: /* 
        !          1238: ** Deallocate and destroy a parser.  Destructors are all called for
        !          1239: ** all stack elements before shutting the parser down.
        !          1240: **
        !          1241: ** Inputs:
        !          1242: ** <ul>
        !          1243: ** <li>  A pointer to the parser.  This should be a pointer
        !          1244: **       obtained from sqliteParserAlloc.
        !          1245: ** <li>  A pointer to a function used to reclaim memory obtained
        !          1246: **       from malloc.
        !          1247: ** </ul>
        !          1248: */
        !          1249: void sqliteParserFree(
        !          1250:   void *p,                    /* The parser to be deleted */
        !          1251:   void (*freeProc)(void*)     /* Function used to reclaim memory */
        !          1252: ){
        !          1253:   yyParser *pParser = (yyParser*)p;
        !          1254:   if( pParser==0 ) return;
        !          1255:   while( pParser->yyidx>=0 ) yy_pop_parser_stack(pParser);
        !          1256: #if YYSTACKDEPTH<=0
        !          1257:   free(pParser->yystack);
        !          1258: #endif
        !          1259:   (*freeProc)((void*)pParser);
        !          1260: }
        !          1261: 
        !          1262: /*
        !          1263: ** Return the peak depth of the stack for a parser.
        !          1264: */
        !          1265: #ifdef YYTRACKMAXSTACKDEPTH
        !          1266: int sqliteParserStackPeak(void *p){
        !          1267:   yyParser *pParser = (yyParser*)p;
        !          1268:   return pParser->yyidxMax;
        !          1269: }
        !          1270: #endif
        !          1271: 
        !          1272: /*
        !          1273: ** Find the appropriate action for a parser given the terminal
        !          1274: ** look-ahead token iLookAhead.
        !          1275: **
        !          1276: ** If the look-ahead token is YYNOCODE, then check to see if the action is
        !          1277: ** independent of the look-ahead.  If it is, return the action, otherwise
        !          1278: ** return YY_NO_ACTION.
        !          1279: */
        !          1280: static int yy_find_shift_action(
        !          1281:   yyParser *pParser,        /* The parser */
        !          1282:   YYCODETYPE iLookAhead     /* The look-ahead token */
        !          1283: ){
        !          1284:   int i;
        !          1285:   int stateno = pParser->yystack[pParser->yyidx].stateno;
        !          1286:  
        !          1287:   if( stateno>YY_SHIFT_COUNT
        !          1288:    || (i = yy_shift_ofst[stateno])==YY_SHIFT_USE_DFLT ){
        !          1289:     return yy_default[stateno];
        !          1290:   }
        !          1291:   assert( iLookAhead!=YYNOCODE );
        !          1292:   i += iLookAhead;
        !          1293:   if( i<0 || i>=YY_ACTTAB_COUNT || yy_lookahead[i]!=iLookAhead ){
        !          1294:     if( iLookAhead>0 ){
        !          1295: #ifdef YYFALLBACK
        !          1296:       YYCODETYPE iFallback;            /* Fallback token */
        !          1297:       if( iLookAhead<sizeof(yyFallback)/sizeof(yyFallback[0])
        !          1298:              && (iFallback = yyFallback[iLookAhead])!=0 ){
        !          1299: #ifndef NDEBUG
        !          1300:         if( yyTraceFILE ){
        !          1301:           fprintf(yyTraceFILE, "%sFALLBACK %s => %s\n",
        !          1302:              yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]);
        !          1303:         }
        !          1304: #endif
        !          1305:         return yy_find_shift_action(pParser, iFallback);
        !          1306:       }
        !          1307: #endif
        !          1308: #ifdef YYWILDCARD
        !          1309:       {
        !          1310:         int j = i - iLookAhead + YYWILDCARD;
        !          1311:         if( 
        !          1312: #if YY_SHIFT_MIN+YYWILDCARD<0
        !          1313:           j>=0 &&
        !          1314: #endif
        !          1315: #if YY_SHIFT_MAX+YYWILDCARD>=YY_ACTTAB_COUNT
        !          1316:           j<YY_ACTTAB_COUNT &&
        !          1317: #endif
        !          1318:           yy_lookahead[j]==YYWILDCARD
        !          1319:         ){
        !          1320: #ifndef NDEBUG
        !          1321:           if( yyTraceFILE ){
        !          1322:             fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n",
        !          1323:                yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[YYWILDCARD]);
        !          1324:           }
        !          1325: #endif /* NDEBUG */
        !          1326:           return yy_action[j];
        !          1327:         }
        !          1328:       }
        !          1329: #endif /* YYWILDCARD */
        !          1330:     }
        !          1331:     return yy_default[stateno];
        !          1332:   }else{
        !          1333:     return yy_action[i];
        !          1334:   }
        !          1335: }
        !          1336: 
        !          1337: /*
        !          1338: ** Find the appropriate action for a parser given the non-terminal
        !          1339: ** look-ahead token iLookAhead.
        !          1340: **
        !          1341: ** If the look-ahead token is YYNOCODE, then check to see if the action is
        !          1342: ** independent of the look-ahead.  If it is, return the action, otherwise
        !          1343: ** return YY_NO_ACTION.
        !          1344: */
        !          1345: static int yy_find_reduce_action(
        !          1346:   int stateno,              /* Current state number */
        !          1347:   YYCODETYPE iLookAhead     /* The look-ahead token */
        !          1348: ){
        !          1349:   int i;
        !          1350: #ifdef YYERRORSYMBOL
        !          1351:   if( stateno>YY_REDUCE_COUNT ){
        !          1352:     return yy_default[stateno];
        !          1353:   }
        !          1354: #else
        !          1355:   assert( stateno<=YY_REDUCE_COUNT );
        !          1356: #endif
        !          1357:   i = yy_reduce_ofst[stateno];
        !          1358:   assert( i!=YY_REDUCE_USE_DFLT );
        !          1359:   assert( iLookAhead!=YYNOCODE );
        !          1360:   i += iLookAhead;
        !          1361: #ifdef YYERRORSYMBOL
        !          1362:   if( i<0 || i>=YY_ACTTAB_COUNT || yy_lookahead[i]!=iLookAhead ){
        !          1363:     return yy_default[stateno];
        !          1364:   }
        !          1365: #else
        !          1366:   assert( i>=0 && i<YY_ACTTAB_COUNT );
        !          1367:   assert( yy_lookahead[i]==iLookAhead );
        !          1368: #endif
        !          1369:   return yy_action[i];
        !          1370: }
        !          1371: 
        !          1372: /*
        !          1373: ** The following routine is called if the stack overflows.
        !          1374: */
        !          1375: static void yyStackOverflow(yyParser *yypParser, YYMINORTYPE *yypMinor){
        !          1376:    sqliteParserARG_FETCH;
        !          1377:    yypParser->yyidx--;
        !          1378: #ifndef NDEBUG
        !          1379:    if( yyTraceFILE ){
        !          1380:      fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt);
        !          1381:    }
        !          1382: #endif
        !          1383:    while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser);
        !          1384:    /* Here code is inserted which will execute if the parser
        !          1385:    ** stack every overflows */
        !          1386:    sqliteParserARG_STORE; /* Suppress warning about unused %extra_argument var */
        !          1387: }
        !          1388: 
        !          1389: /*
        !          1390: ** Perform a shift action.
        !          1391: */
        !          1392: static void yy_shift(
        !          1393:   yyParser *yypParser,          /* The parser to be shifted */
        !          1394:   int yyNewState,               /* The new state to shift in */
        !          1395:   int yyMajor,                  /* The major token to shift in */
        !          1396:   YYMINORTYPE *yypMinor         /* Pointer to the minor token to shift in */
        !          1397: ){
        !          1398:   yyStackEntry *yytos;
        !          1399:   yypParser->yyidx++;
        !          1400: #ifdef YYTRACKMAXSTACKDEPTH
        !          1401:   if( yypParser->yyidx>yypParser->yyidxMax ){
        !          1402:     yypParser->yyidxMax = yypParser->yyidx;
        !          1403:   }
        !          1404: #endif
        !          1405: #if YYSTACKDEPTH>0 
        !          1406:   if( yypParser->yyidx>=YYSTACKDEPTH ){
        !          1407:     yyStackOverflow(yypParser, yypMinor);
        !          1408:     return;
        !          1409:   }
        !          1410: #else
        !          1411:   if( yypParser->yyidx>=yypParser->yystksz ){
        !          1412:     yyGrowStack(yypParser);
        !          1413:     if( yypParser->yyidx>=yypParser->yystksz ){
        !          1414:       yyStackOverflow(yypParser, yypMinor);
        !          1415:       return;
        !          1416:     }
        !          1417:   }
        !          1418: #endif
        !          1419:   yytos = &yypParser->yystack[yypParser->yyidx];
        !          1420:   yytos->stateno = (YYACTIONTYPE)yyNewState;
        !          1421:   yytos->major = (YYCODETYPE)yyMajor;
        !          1422:   yytos->minor = *yypMinor;
        !          1423: #ifndef NDEBUG
        !          1424:   if( yyTraceFILE && yypParser->yyidx>0 ){
        !          1425:     int i;
        !          1426:     fprintf(yyTraceFILE,"%sShift %d\n",yyTracePrompt,yyNewState);
        !          1427:     fprintf(yyTraceFILE,"%sStack:",yyTracePrompt);
        !          1428:     for(i=1; i<=yypParser->yyidx; i++)
        !          1429:       fprintf(yyTraceFILE," %s",yyTokenName[yypParser->yystack[i].major]);
        !          1430:     fprintf(yyTraceFILE,"\n");
        !          1431:   }
        !          1432: #endif
        !          1433: }
        !          1434: 
        !          1435: /* The following table contains information about every rule that
        !          1436: ** is used during the reduce.
        !          1437: */
        !          1438: static const struct {
        !          1439:   YYCODETYPE lhs;         /* Symbol on the left-hand side of the rule */
        !          1440:   unsigned char nrhs;     /* Number of right-hand side symbols in the rule */
        !          1441: } yyRuleInfo[] = {
        !          1442:   { 132, 1 },
        !          1443:   { 133, 2 },
        !          1444:   { 133, 1 },
        !          1445:   { 134, 3 },
        !          1446:   { 134, 1 },
        !          1447:   { 136, 1 },
        !          1448:   { 135, 1 },
        !          1449:   { 135, 0 },
        !          1450:   { 137, 3 },
        !          1451:   { 138, 0 },
        !          1452:   { 138, 1 },
        !          1453:   { 138, 2 },
        !          1454:   { 137, 2 },
        !          1455:   { 137, 2 },
        !          1456:   { 137, 2 },
        !          1457:   { 137, 2 },
        !          1458:   { 141, 4 },
        !          1459:   { 143, 1 },
        !          1460:   { 143, 0 },
        !          1461:   { 142, 4 },
        !          1462:   { 142, 2 },
        !          1463:   { 144, 3 },
        !          1464:   { 144, 1 },
        !          1465:   { 147, 3 },
        !          1466:   { 148, 1 },
        !          1467:   { 151, 1 },
        !          1468:   { 152, 1 },
        !          1469:   { 152, 1 },
        !          1470:   { 140, 1 },
        !          1471:   { 140, 1 },
        !          1472:   { 140, 1 },
        !          1473:   { 149, 0 },
        !          1474:   { 149, 1 },
        !          1475:   { 149, 4 },
        !          1476:   { 149, 6 },
        !          1477:   { 153, 1 },
        !          1478:   { 153, 2 },
        !          1479:   { 154, 1 },
        !          1480:   { 154, 2 },
        !          1481:   { 154, 2 },
        !          1482:   { 150, 2 },
        !          1483:   { 150, 0 },
        !          1484:   { 155, 3 },
        !          1485:   { 155, 1 },
        !          1486:   { 155, 2 },
        !          1487:   { 155, 2 },
        !          1488:   { 155, 2 },
        !          1489:   { 155, 3 },
        !          1490:   { 155, 3 },
        !          1491:   { 155, 2 },
        !          1492:   { 155, 3 },
        !          1493:   { 155, 3 },
        !          1494:   { 155, 2 },
        !          1495:   { 156, 2 },
        !          1496:   { 156, 3 },
        !          1497:   { 156, 4 },
        !          1498:   { 156, 2 },
        !          1499:   { 156, 5 },
        !          1500:   { 156, 4 },
        !          1501:   { 156, 1 },
        !          1502:   { 156, 2 },
        !          1503:   { 160, 0 },
        !          1504:   { 160, 2 },
        !          1505:   { 162, 2 },
        !          1506:   { 162, 3 },
        !          1507:   { 162, 3 },
        !          1508:   { 162, 3 },
        !          1509:   { 163, 2 },
        !          1510:   { 163, 2 },
        !          1511:   { 163, 1 },
        !          1512:   { 163, 1 },
        !          1513:   { 161, 3 },
        !          1514:   { 161, 2 },
        !          1515:   { 164, 0 },
        !          1516:   { 164, 2 },
        !          1517:   { 164, 2 },
        !          1518:   { 145, 0 },
        !          1519:   { 145, 2 },
        !          1520:   { 165, 3 },
        !          1521:   { 165, 2 },
        !          1522:   { 165, 1 },
        !          1523:   { 166, 2 },
        !          1524:   { 166, 6 },
        !          1525:   { 166, 5 },
        !          1526:   { 166, 3 },
        !          1527:   { 166, 10 },
        !          1528:   { 168, 0 },
        !          1529:   { 168, 1 },
        !          1530:   { 139, 0 },
        !          1531:   { 139, 3 },
        !          1532:   { 169, 0 },
        !          1533:   { 169, 2 },
        !          1534:   { 170, 1 },
        !          1535:   { 170, 1 },
        !          1536:   { 170, 1 },
        !          1537:   { 170, 1 },
        !          1538:   { 170, 1 },
        !          1539:   { 137, 3 },
        !          1540:   { 137, 6 },
        !          1541:   { 137, 3 },
        !          1542:   { 137, 1 },
        !          1543:   { 146, 1 },
        !          1544:   { 146, 3 },
        !          1545:   { 172, 1 },
        !          1546:   { 172, 2 },
        !          1547:   { 172, 1 },
        !          1548:   { 172, 1 },
        !          1549:   { 171, 9 },
        !          1550:   { 173, 1 },
        !          1551:   { 173, 1 },
        !          1552:   { 173, 0 },
        !          1553:   { 181, 2 },
        !          1554:   { 181, 0 },
        !          1555:   { 174, 3 },
        !          1556:   { 174, 2 },
        !          1557:   { 174, 4 },
        !          1558:   { 182, 2 },
        !          1559:   { 182, 1 },
        !          1560:   { 182, 0 },
        !          1561:   { 175, 0 },
        !          1562:   { 175, 2 },
        !          1563:   { 184, 2 },
        !          1564:   { 184, 0 },
        !          1565:   { 183, 6 },
        !          1566:   { 183, 7 },
        !          1567:   { 189, 1 },
        !          1568:   { 189, 1 },
        !          1569:   { 186, 0 },
        !          1570:   { 186, 2 },
        !          1571:   { 185, 1 },
        !          1572:   { 185, 1 },
        !          1573:   { 185, 2 },
        !          1574:   { 185, 3 },
        !          1575:   { 185, 4 },
        !          1576:   { 187, 2 },
        !          1577:   { 187, 0 },
        !          1578:   { 188, 4 },
        !          1579:   { 188, 0 },
        !          1580:   { 179, 0 },
        !          1581:   { 179, 3 },
        !          1582:   { 191, 5 },
        !          1583:   { 191, 3 },
        !          1584:   { 192, 1 },
        !          1585:   { 157, 1 },
        !          1586:   { 157, 1 },
        !          1587:   { 157, 0 },
        !          1588:   { 193, 0 },
        !          1589:   { 193, 2 },
        !          1590:   { 177, 0 },
        !          1591:   { 177, 3 },
        !          1592:   { 178, 0 },
        !          1593:   { 178, 2 },
        !          1594:   { 180, 0 },
        !          1595:   { 180, 2 },
        !          1596:   { 180, 4 },
        !          1597:   { 180, 4 },
        !          1598:   { 137, 5 },
        !          1599:   { 176, 0 },
        !          1600:   { 176, 2 },
        !          1601:   { 137, 7 },
        !          1602:   { 195, 5 },
        !          1603:   { 195, 3 },
        !          1604:   { 137, 9 },
        !          1605:   { 137, 6 },
        !          1606:   { 196, 2 },
        !          1607:   { 196, 1 },
        !          1608:   { 198, 3 },
        !          1609:   { 198, 1 },
        !          1610:   { 197, 0 },
        !          1611:   { 197, 3 },
        !          1612:   { 199, 3 },
        !          1613:   { 199, 1 },
        !          1614:   { 158, 3 },
        !          1615:   { 158, 1 },
        !          1616:   { 158, 1 },
        !          1617:   { 158, 1 },
        !          1618:   { 158, 3 },
        !          1619:   { 158, 5 },
        !          1620:   { 158, 1 },
        !          1621:   { 158, 1 },
        !          1622:   { 158, 1 },
        !          1623:   { 158, 1 },
        !          1624:   { 158, 4 },
        !          1625:   { 158, 4 },
        !          1626:   { 158, 3 },
        !          1627:   { 158, 3 },
        !          1628:   { 158, 3 },
        !          1629:   { 158, 3 },
        !          1630:   { 158, 3 },
        !          1631:   { 158, 3 },
        !          1632:   { 158, 3 },
        !          1633:   { 158, 3 },
        !          1634:   { 158, 3 },
        !          1635:   { 158, 3 },
        !          1636:   { 158, 3 },
        !          1637:   { 158, 3 },
        !          1638:   { 158, 3 },
        !          1639:   { 158, 4 },
        !          1640:   { 200, 1 },
        !          1641:   { 200, 1 },
        !          1642:   { 158, 3 },
        !          1643:   { 158, 3 },
        !          1644:   { 158, 3 },
        !          1645:   { 158, 3 },
        !          1646:   { 158, 3 },
        !          1647:   { 158, 3 },
        !          1648:   { 158, 2 },
        !          1649:   { 158, 3 },
        !          1650:   { 158, 2 },
        !          1651:   { 158, 3 },
        !          1652:   { 158, 4 },
        !          1653:   { 158, 2 },
        !          1654:   { 158, 2 },
        !          1655:   { 158, 2 },
        !          1656:   { 158, 2 },
        !          1657:   { 158, 3 },
        !          1658:   { 158, 5 },
        !          1659:   { 158, 6 },
        !          1660:   { 158, 5 },
        !          1661:   { 158, 5 },
        !          1662:   { 158, 6 },
        !          1663:   { 158, 6 },
        !          1664:   { 158, 4 },
        !          1665:   { 158, 5 },
        !          1666:   { 158, 5 },
        !          1667:   { 202, 5 },
        !          1668:   { 202, 4 },
        !          1669:   { 203, 2 },
        !          1670:   { 203, 0 },
        !          1671:   { 201, 1 },
        !          1672:   { 201, 0 },
        !          1673:   { 194, 3 },
        !          1674:   { 194, 1 },
        !          1675:   { 204, 1 },
        !          1676:   { 204, 0 },
        !          1677:   { 137, 11 },
        !          1678:   { 205, 1 },
        !          1679:   { 205, 0 },
        !          1680:   { 159, 0 },
        !          1681:   { 159, 3 },
        !          1682:   { 167, 3 },
        !          1683:   { 167, 1 },
        !          1684:   { 206, 2 },
        !          1685:   { 137, 4 },
        !          1686:   { 137, 9 },
        !          1687:   { 137, 6 },
        !          1688:   { 137, 1 },
        !          1689:   { 137, 2 },
        !          1690:   { 137, 4 },
        !          1691:   { 137, 4 },
        !          1692:   { 137, 4 },
        !          1693:   { 137, 4 },
        !          1694:   { 137, 5 },
        !          1695:   { 137, 2 },
        !          1696:   { 207, 2 },
        !          1697:   { 208, 2 },
        !          1698:   { 210, 1 },
        !          1699:   { 210, 1 },
        !          1700:   { 209, 1 },
        !          1701:   { 209, 0 },
        !          1702:   { 137, 5 },
        !          1703:   { 211, 10 },
        !          1704:   { 213, 1 },
        !          1705:   { 213, 1 },
        !          1706:   { 213, 2 },
        !          1707:   { 213, 0 },
        !          1708:   { 214, 1 },
        !          1709:   { 214, 1 },
        !          1710:   { 214, 1 },
        !          1711:   { 214, 3 },
        !          1712:   { 215, 0 },
        !          1713:   { 215, 3 },
        !          1714:   { 215, 3 },
        !          1715:   { 216, 0 },
        !          1716:   { 216, 2 },
        !          1717:   { 212, 3 },
        !          1718:   { 212, 0 },
        !          1719:   { 217, 6 },
        !          1720:   { 217, 8 },
        !          1721:   { 217, 5 },
        !          1722:   { 217, 4 },
        !          1723:   { 217, 1 },
        !          1724:   { 158, 4 },
        !          1725:   { 158, 6 },
        !          1726:   { 158, 6 },
        !          1727:   { 158, 6 },
        !          1728:   { 137, 4 },
        !          1729:   { 137, 6 },
        !          1730:   { 219, 2 },
        !          1731:   { 219, 0 },
        !          1732:   { 218, 1 },
        !          1733:   { 218, 0 },
        !          1734:   { 137, 3 },
        !          1735: };
        !          1736: 
        !          1737: static void yy_accept(yyParser*);  /* Forward Declaration */
        !          1738: 
        !          1739: /*
        !          1740: ** Perform a reduce action and the shift that must immediately
        !          1741: ** follow the reduce.
        !          1742: */
        !          1743: static void yy_reduce(
        !          1744:   yyParser *yypParser,         /* The parser */
        !          1745:   int yyruleno                 /* Number of the rule by which to reduce */
        !          1746: ){
        !          1747:   int yygoto;                     /* The next state */
        !          1748:   int yyact;                      /* The next action */
        !          1749:   YYMINORTYPE yygotominor;        /* The LHS of the rule reduced */
        !          1750:   yyStackEntry *yymsp;            /* The top of the parser's stack */
        !          1751:   int yysize;                     /* Amount to pop the stack */
        !          1752:   sqliteParserARG_FETCH;
        !          1753:   yymsp = &yypParser->yystack[yypParser->yyidx];
        !          1754: #ifndef NDEBUG
        !          1755:   if( yyTraceFILE && yyruleno>=0 
        !          1756:         && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){
        !          1757:     fprintf(yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt,
        !          1758:       yyRuleName[yyruleno]);
        !          1759:   }
        !          1760: #endif /* NDEBUG */
        !          1761: 
        !          1762:   /* Silence complaints from purify about yygotominor being uninitialized
        !          1763:   ** in some cases when it is copied into the stack after the following
        !          1764:   ** switch.  yygotominor is uninitialized when a rule reduces that does
        !          1765:   ** not set the value of its left-hand side nonterminal.  Leaving the
        !          1766:   ** value of the nonterminal uninitialized is utterly harmless as long
        !          1767:   ** as the value is never used.  So really the only thing this code
        !          1768:   ** accomplishes is to quieten purify.  
        !          1769:   **
        !          1770:   ** 2007-01-16:  The wireshark project (www.wireshark.org) reports that
        !          1771:   ** without this code, their parser segfaults.  I'm not sure what there
        !          1772:   ** parser is doing to make this happen.  This is the second bug report
        !          1773:   ** from wireshark this week.  Clearly they are stressing Lemon in ways
        !          1774:   ** that it has not been previously stressed...  (SQLite ticket #2172)
        !          1775:   */
        !          1776:   /*memset(&yygotominor, 0, sizeof(yygotominor));*/
        !          1777:   yygotominor = yyzerominor;
        !          1778: 
        !          1779: 
        !          1780:   switch( yyruleno ){
        !          1781:   /* Beginning here are the reduction cases.  A typical example
        !          1782:   ** follows:
        !          1783:   **   case 0:
        !          1784:   **  #line <lineno> <grammarfile>
        !          1785:   **     { ... }           // User supplied code
        !          1786:   **  #line <lineno> <thisfile>
        !          1787:   **     break;
        !          1788:   */
        !          1789:       case 5: /* cmdx ::= cmd */
        !          1790: #line 72 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1791: { sqliteExec(pParse); }
        !          1792: #line 1793 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1793:         break;
        !          1794:       case 6: /* explain ::= EXPLAIN */
        !          1795: #line 73 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1796: { sqliteBeginParse(pParse, 1); }
        !          1797: #line 1798 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1798:         break;
        !          1799:       case 7: /* explain ::= */
        !          1800: #line 74 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1801: { sqliteBeginParse(pParse, 0); }
        !          1802: #line 1803 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1803:         break;
        !          1804:       case 8: /* cmd ::= BEGIN trans_opt onconf */
        !          1805: #line 79 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1806: {sqliteBeginTransaction(pParse,yymsp[0].minor.yy372);}
        !          1807: #line 1808 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1808:         break;
        !          1809:       case 12: /* cmd ::= COMMIT trans_opt */
        !          1810:       case 13: /* cmd ::= END trans_opt */ yytestcase(yyruleno==13);
        !          1811: #line 83 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1812: {sqliteCommitTransaction(pParse);}
        !          1813: #line 1814 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1814:         break;
        !          1815:       case 14: /* cmd ::= ROLLBACK trans_opt */
        !          1816: #line 85 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1817: {sqliteRollbackTransaction(pParse);}
        !          1818: #line 1819 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1819:         break;
        !          1820:       case 16: /* create_table ::= CREATE temp TABLE nm */
        !          1821: #line 90 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1822: {
        !          1823:    sqliteStartTable(pParse,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0,yymsp[-2].minor.yy372,0);
        !          1824: }
        !          1825: #line 1826 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1826:         break;
        !          1827:       case 17: /* temp ::= TEMP */
        !          1828:       case 74: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ yytestcase(yyruleno==74);
        !          1829:       case 108: /* distinct ::= DISTINCT */ yytestcase(yyruleno==108);
        !          1830: #line 94 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1831: {yygotominor.yy372 = 1;}
        !          1832: #line 1833 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1833:         break;
        !          1834:       case 18: /* temp ::= */
        !          1835:       case 73: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==73);
        !          1836:       case 75: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ yytestcase(yyruleno==75);
        !          1837:       case 86: /* defer_subclause_opt ::= */ yytestcase(yyruleno==86);
        !          1838:       case 109: /* distinct ::= ALL */ yytestcase(yyruleno==109);
        !          1839:       case 110: /* distinct ::= */ yytestcase(yyruleno==110);
        !          1840: #line 95 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1841: {yygotominor.yy372 = 0;}
        !          1842: #line 1843 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1843:         break;
        !          1844:       case 19: /* create_table_args ::= LP columnlist conslist_opt RP */
        !          1845: #line 96 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1846: {
        !          1847:   sqliteEndTable(pParse,&yymsp[0].minor.yy0,0);
        !          1848: }
        !          1849: #line 1850 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1850:         break;
        !          1851:       case 20: /* create_table_args ::= AS select */
        !          1852: #line 99 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1853: {
        !          1854:   sqliteEndTable(pParse,0,yymsp[0].minor.yy179);
        !          1855:   sqliteSelectDelete(yymsp[0].minor.yy179);
        !          1856: }
        !          1857: #line 1858 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1858:         break;
        !          1859:       case 24: /* columnid ::= nm */
        !          1860: #line 111 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1861: {sqliteAddColumn(pParse,&yymsp[0].minor.yy0);}
        !          1862: #line 1863 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1863:         break;
        !          1864:       case 25: /* id ::= ID */
        !          1865:       case 26: /* ids ::= ID */ yytestcase(yyruleno==26);
        !          1866:       case 27: /* ids ::= STRING */ yytestcase(yyruleno==27);
        !          1867:       case 28: /* nm ::= ID */ yytestcase(yyruleno==28);
        !          1868:       case 29: /* nm ::= STRING */ yytestcase(yyruleno==29);
        !          1869:       case 30: /* nm ::= JOIN_KW */ yytestcase(yyruleno==30);
        !          1870:       case 35: /* typename ::= ids */ yytestcase(yyruleno==35);
        !          1871:       case 128: /* dbnm ::= DOT nm */ yytestcase(yyruleno==128);
        !          1872:       case 254: /* plus_num ::= plus_opt number */ yytestcase(yyruleno==254);
        !          1873:       case 255: /* minus_num ::= MINUS number */ yytestcase(yyruleno==255);
        !          1874:       case 256: /* number ::= INTEGER */ yytestcase(yyruleno==256);
        !          1875:       case 257: /* number ::= FLOAT */ yytestcase(yyruleno==257);
        !          1876: #line 117 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1877: {yygotominor.yy0 = yymsp[0].minor.yy0;}
        !          1878: #line 1879 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1879:         break;
        !          1880:       case 32: /* type ::= typename */
        !          1881: #line 160 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1882: {sqliteAddColumnType(pParse,&yymsp[0].minor.yy0,&yymsp[0].minor.yy0);}
        !          1883: #line 1884 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1884:         break;
        !          1885:       case 33: /* type ::= typename LP signed RP */
        !          1886: #line 161 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1887: {sqliteAddColumnType(pParse,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);}
        !          1888: #line 1889 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1889:         break;
        !          1890:       case 34: /* type ::= typename LP signed COMMA signed RP */
        !          1891: #line 163 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1892: {sqliteAddColumnType(pParse,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0);}
        !          1893: #line 1894 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1894:         break;
        !          1895:       case 36: /* typename ::= typename ids */
        !          1896:       case 242: /* idxitem ::= nm sortorder */ yytestcase(yyruleno==242);
        !          1897: #line 166 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1898: {yygotominor.yy0 = yymsp[-1].minor.yy0;}
        !          1899: #line 1900 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1900:         break;
        !          1901:       case 37: /* signed ::= INTEGER */
        !          1902:       case 38: /* signed ::= PLUS INTEGER */ yytestcase(yyruleno==38);
        !          1903: #line 168 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1904: { yygotominor.yy372 = atoi(yymsp[0].minor.yy0.z); }
        !          1905: #line 1906 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1906:         break;
        !          1907:       case 39: /* signed ::= MINUS INTEGER */
        !          1908: #line 170 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1909: { yygotominor.yy372 = -atoi(yymsp[0].minor.yy0.z); }
        !          1910: #line 1911 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1911:         break;
        !          1912:       case 44: /* carg ::= DEFAULT STRING */
        !          1913:       case 45: /* carg ::= DEFAULT ID */ yytestcase(yyruleno==45);
        !          1914:       case 46: /* carg ::= DEFAULT INTEGER */ yytestcase(yyruleno==46);
        !          1915:       case 47: /* carg ::= DEFAULT PLUS INTEGER */ yytestcase(yyruleno==47);
        !          1916:       case 49: /* carg ::= DEFAULT FLOAT */ yytestcase(yyruleno==49);
        !          1917:       case 50: /* carg ::= DEFAULT PLUS FLOAT */ yytestcase(yyruleno==50);
        !          1918: #line 175 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1919: {sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,0);}
        !          1920: #line 1921 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1921:         break;
        !          1922:       case 48: /* carg ::= DEFAULT MINUS INTEGER */
        !          1923:       case 51: /* carg ::= DEFAULT MINUS FLOAT */ yytestcase(yyruleno==51);
        !          1924: #line 179 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1925: {sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,1);}
        !          1926: #line 1927 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1927:         break;
        !          1928:       case 54: /* ccons ::= NOT NULL onconf */
        !          1929: #line 189 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1930: {sqliteAddNotNull(pParse, yymsp[0].minor.yy372);}
        !          1931: #line 1932 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1932:         break;
        !          1933:       case 55: /* ccons ::= PRIMARY KEY sortorder onconf */
        !          1934: #line 190 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1935: {sqliteAddPrimaryKey(pParse,0,yymsp[0].minor.yy372);}
        !          1936: #line 1937 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1937:         break;
        !          1938:       case 56: /* ccons ::= UNIQUE onconf */
        !          1939: #line 191 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1940: {sqliteCreateIndex(pParse,0,0,0,yymsp[0].minor.yy372,0,0);}
        !          1941: #line 1942 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1942:         break;
        !          1943:       case 57: /* ccons ::= CHECK LP expr RP onconf */
        !          1944: #line 192 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1945: {
        !          1946:   yy_destructor(yypParser,158,&yymsp[-2].minor);
        !          1947: }
        !          1948: #line 1949 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1949:         break;
        !          1950:       case 58: /* ccons ::= REFERENCES nm idxlist_opt refargs */
        !          1951: #line 194 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1952: {sqliteCreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy320,yymsp[0].minor.yy372);}
        !          1953: #line 1954 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1954:         break;
        !          1955:       case 59: /* ccons ::= defer_subclause */
        !          1956: #line 195 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1957: {sqliteDeferForeignKey(pParse,yymsp[0].minor.yy372);}
        !          1958: #line 1959 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1959:         break;
        !          1960:       case 60: /* ccons ::= COLLATE id */
        !          1961: #line 196 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1962: {
        !          1963:    sqliteAddCollateType(pParse, sqliteCollateType(yymsp[0].minor.yy0.z, yymsp[0].minor.yy0.n));
        !          1964: }
        !          1965: #line 1966 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1966:         break;
        !          1967:       case 61: /* refargs ::= */
        !          1968: #line 206 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1969: { yygotominor.yy372 = OE_Restrict * 0x010101; }
        !          1970: #line 1971 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1971:         break;
        !          1972:       case 62: /* refargs ::= refargs refarg */
        !          1973: #line 207 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1974: { yygotominor.yy372 = (yymsp[-1].minor.yy372 & yymsp[0].minor.yy407.mask) | yymsp[0].minor.yy407.value; }
        !          1975: #line 1976 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1976:         break;
        !          1977:       case 63: /* refarg ::= MATCH nm */
        !          1978: #line 209 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1979: { yygotominor.yy407.value = 0;     yygotominor.yy407.mask = 0x000000; }
        !          1980: #line 1981 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1981:         break;
        !          1982:       case 64: /* refarg ::= ON DELETE refact */
        !          1983: #line 210 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1984: { yygotominor.yy407.value = yymsp[0].minor.yy372;     yygotominor.yy407.mask = 0x0000ff; }
        !          1985: #line 1986 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1986:         break;
        !          1987:       case 65: /* refarg ::= ON UPDATE refact */
        !          1988: #line 211 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1989: { yygotominor.yy407.value = yymsp[0].minor.yy372<<8;  yygotominor.yy407.mask = 0x00ff00; }
        !          1990: #line 1991 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1991:         break;
        !          1992:       case 66: /* refarg ::= ON INSERT refact */
        !          1993: #line 212 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1994: { yygotominor.yy407.value = yymsp[0].minor.yy372<<16; yygotominor.yy407.mask = 0xff0000; }
        !          1995: #line 1996 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          1996:         break;
        !          1997:       case 67: /* refact ::= SET NULL */
        !          1998: #line 214 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          1999: { yygotominor.yy372 = OE_SetNull; }
        !          2000: #line 2001 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2001:         break;
        !          2002:       case 68: /* refact ::= SET DEFAULT */
        !          2003: #line 215 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2004: { yygotominor.yy372 = OE_SetDflt; }
        !          2005: #line 2006 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2006:         break;
        !          2007:       case 69: /* refact ::= CASCADE */
        !          2008: #line 216 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2009: { yygotominor.yy372 = OE_Cascade; }
        !          2010: #line 2011 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2011:         break;
        !          2012:       case 70: /* refact ::= RESTRICT */
        !          2013: #line 217 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2014: { yygotominor.yy372 = OE_Restrict; }
        !          2015: #line 2016 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2016:         break;
        !          2017:       case 71: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
        !          2018:       case 72: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ yytestcase(yyruleno==72);
        !          2019:       case 87: /* defer_subclause_opt ::= defer_subclause */ yytestcase(yyruleno==87);
        !          2020:       case 164: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==164);
        !          2021: #line 219 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2022: {yygotominor.yy372 = yymsp[0].minor.yy372;}
        !          2023: #line 2024 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2024:         break;
        !          2025:       case 82: /* tcons ::= PRIMARY KEY LP idxlist RP onconf */
        !          2026: #line 236 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2027: {sqliteAddPrimaryKey(pParse,yymsp[-2].minor.yy320,yymsp[0].minor.yy372);}
        !          2028: #line 2029 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2029:         break;
        !          2030:       case 83: /* tcons ::= UNIQUE LP idxlist RP onconf */
        !          2031: #line 238 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2032: {sqliteCreateIndex(pParse,0,0,yymsp[-2].minor.yy320,yymsp[0].minor.yy372,0,0);}
        !          2033: #line 2034 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2034:         break;
        !          2035:       case 84: /* tcons ::= CHECK expr onconf */
        !          2036: #line 239 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2037: {
        !          2038:   yy_destructor(yypParser,158,&yymsp[-1].minor);
        !          2039: }
        !          2040: #line 2041 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2041:         break;
        !          2042:       case 85: /* tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt */
        !          2043: #line 241 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2044: {
        !          2045:     sqliteCreateForeignKey(pParse, yymsp[-6].minor.yy320, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy320, yymsp[-1].minor.yy372);
        !          2046:     sqliteDeferForeignKey(pParse, yymsp[0].minor.yy372);
        !          2047: }
        !          2048: #line 2049 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2049:         break;
        !          2050:       case 88: /* onconf ::= */
        !          2051:       case 90: /* orconf ::= */ yytestcase(yyruleno==90);
        !          2052: #line 255 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2053: { yygotominor.yy372 = OE_Default; }
        !          2054: #line 2055 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2055:         break;
        !          2056:       case 89: /* onconf ::= ON CONFLICT resolvetype */
        !          2057:       case 91: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==91);
        !          2058: #line 256 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2059: { yygotominor.yy372 = yymsp[0].minor.yy372; }
        !          2060: #line 2061 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2061:         break;
        !          2062:       case 92: /* resolvetype ::= ROLLBACK */
        !          2063: #line 259 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2064: { yygotominor.yy372 = OE_Rollback; }
        !          2065: #line 2066 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2066:         break;
        !          2067:       case 93: /* resolvetype ::= ABORT */
        !          2068:       case 236: /* uniqueflag ::= UNIQUE */ yytestcase(yyruleno==236);
        !          2069: #line 260 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2070: { yygotominor.yy372 = OE_Abort; }
        !          2071: #line 2072 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2072:         break;
        !          2073:       case 94: /* resolvetype ::= FAIL */
        !          2074: #line 261 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2075: { yygotominor.yy372 = OE_Fail; }
        !          2076: #line 2077 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2077:         break;
        !          2078:       case 95: /* resolvetype ::= IGNORE */
        !          2079: #line 262 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2080: { yygotominor.yy372 = OE_Ignore; }
        !          2081: #line 2082 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2082:         break;
        !          2083:       case 96: /* resolvetype ::= REPLACE */
        !          2084: #line 263 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2085: { yygotominor.yy372 = OE_Replace; }
        !          2086: #line 2087 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2087:         break;
        !          2088:       case 97: /* cmd ::= DROP TABLE nm */
        !          2089: #line 267 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2090: {sqliteDropTable(pParse,&yymsp[0].minor.yy0,0);}
        !          2091: #line 2092 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2092:         break;
        !          2093:       case 98: /* cmd ::= CREATE temp VIEW nm AS select */
        !          2094: #line 271 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2095: {
        !          2096:   sqliteCreateView(pParse, &yymsp[-5].minor.yy0, &yymsp[-2].minor.yy0, yymsp[0].minor.yy179, yymsp[-4].minor.yy372);
        !          2097: }
        !          2098: #line 2099 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2099:         break;
        !          2100:       case 99: /* cmd ::= DROP VIEW nm */
        !          2101: #line 274 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2102: {
        !          2103:   sqliteDropTable(pParse, &yymsp[0].minor.yy0, 1);
        !          2104: }
        !          2105: #line 2106 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2106:         break;
        !          2107:       case 100: /* cmd ::= select */
        !          2108: #line 280 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2109: {
        !          2110:   sqliteSelect(pParse, yymsp[0].minor.yy179, SRT_Callback, 0, 0, 0, 0);
        !          2111:   sqliteSelectDelete(yymsp[0].minor.yy179);
        !          2112: }
        !          2113: #line 2114 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2114:         break;
        !          2115:       case 101: /* select ::= oneselect */
        !          2116:       case 125: /* seltablist_paren ::= select */ yytestcase(yyruleno==125);
        !          2117: #line 290 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2118: {yygotominor.yy179 = yymsp[0].minor.yy179;}
        !          2119: #line 2120 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2120:         break;
        !          2121:       case 102: /* select ::= select multiselect_op oneselect */
        !          2122: #line 291 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2123: {
        !          2124:   if( yymsp[0].minor.yy179 ){
        !          2125:     yymsp[0].minor.yy179->op = yymsp[-1].minor.yy372;
        !          2126:     yymsp[0].minor.yy179->pPrior = yymsp[-2].minor.yy179;
        !          2127:   }
        !          2128:   yygotominor.yy179 = yymsp[0].minor.yy179;
        !          2129: }
        !          2130: #line 2131 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2131:         break;
        !          2132:       case 103: /* multiselect_op ::= UNION */
        !          2133: #line 299 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2134: {yygotominor.yy372 = TK_UNION;}
        !          2135: #line 2136 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2136:         break;
        !          2137:       case 104: /* multiselect_op ::= UNION ALL */
        !          2138: #line 300 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2139: {yygotominor.yy372 = TK_ALL;}
        !          2140: #line 2141 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2141:         break;
        !          2142:       case 105: /* multiselect_op ::= INTERSECT */
        !          2143: #line 301 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2144: {yygotominor.yy372 = TK_INTERSECT;}
        !          2145: #line 2146 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2146:         break;
        !          2147:       case 106: /* multiselect_op ::= EXCEPT */
        !          2148: #line 302 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2149: {yygotominor.yy372 = TK_EXCEPT;}
        !          2150: #line 2151 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2151:         break;
        !          2152:       case 107: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
        !          2153: #line 304 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2154: {
        !          2155:   yygotominor.yy179 = sqliteSelectNew(yymsp[-6].minor.yy322,yymsp[-5].minor.yy307,yymsp[-4].minor.yy242,yymsp[-3].minor.yy322,yymsp[-2].minor.yy242,yymsp[-1].minor.yy322,yymsp[-7].minor.yy372,yymsp[0].minor.yy124.limit,yymsp[0].minor.yy124.offset);
        !          2156: }
        !          2157: #line 2158 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2158:         break;
        !          2159:       case 111: /* sclp ::= selcollist COMMA */
        !          2160: #line 325 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2161: {yygotominor.yy322 = yymsp[-1].minor.yy322;}
        !          2162: #line 2163 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2163:         break;
        !          2164:       case 112: /* sclp ::= */
        !          2165:       case 138: /* orderby_opt ::= */ yytestcase(yyruleno==138);
        !          2166:       case 148: /* groupby_opt ::= */ yytestcase(yyruleno==148);
        !          2167: #line 326 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2168: {yygotominor.yy322 = 0;}
        !          2169: #line 2170 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2170:         break;
        !          2171:       case 113: /* selcollist ::= sclp expr as */
        !          2172: #line 327 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2173: {
        !          2174:    yygotominor.yy322 = sqliteExprListAppend(yymsp[-2].minor.yy322,yymsp[-1].minor.yy242,yymsp[0].minor.yy0.n?&yymsp[0].minor.yy0:0);
        !          2175: }
        !          2176: #line 2177 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2177:         break;
        !          2178:       case 114: /* selcollist ::= sclp STAR */
        !          2179: #line 330 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2180: {
        !          2181:   yygotominor.yy322 = sqliteExprListAppend(yymsp[-1].minor.yy322, sqliteExpr(TK_ALL, 0, 0, 0), 0);
        !          2182: }
        !          2183: #line 2184 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2184:         break;
        !          2185:       case 115: /* selcollist ::= sclp nm DOT STAR */
        !          2186: #line 333 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2187: {
        !          2188:   Expr *pRight = sqliteExpr(TK_ALL, 0, 0, 0);
        !          2189:   Expr *pLeft = sqliteExpr(TK_ID, 0, 0, &yymsp[-2].minor.yy0);
        !          2190:   yygotominor.yy322 = sqliteExprListAppend(yymsp[-3].minor.yy322, sqliteExpr(TK_DOT, pLeft, pRight, 0), 0);
        !          2191: }
        !          2192: #line 2193 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2193:         break;
        !          2194:       case 116: /* as ::= AS nm */
        !          2195:       case 117: /* as ::= ids */ yytestcase(yyruleno==117);
        !          2196:       case 288: /* key_opt ::= USING ids */ yytestcase(yyruleno==288);
        !          2197: #line 343 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2198: { yygotominor.yy0 = yymsp[0].minor.yy0; }
        !          2199: #line 2200 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2200:         break;
        !          2201:       case 118: /* as ::= */
        !          2202: #line 345 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2203: { yygotominor.yy0.n = 0; }
        !          2204: #line 2205 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2205:         break;
        !          2206:       case 119: /* from ::= */
        !          2207: #line 357 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2208: {yygotominor.yy307 = sqliteMalloc(sizeof(*yygotominor.yy307));}
        !          2209: #line 2210 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2210:         break;
        !          2211:       case 120: /* from ::= FROM seltablist */
        !          2212: #line 358 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2213: {yygotominor.yy307 = yymsp[0].minor.yy307;}
        !          2214: #line 2215 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2215:         break;
        !          2216:       case 121: /* stl_prefix ::= seltablist joinop */
        !          2217: #line 363 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2218: {
        !          2219:    yygotominor.yy307 = yymsp[-1].minor.yy307;
        !          2220:    if( yygotominor.yy307 && yygotominor.yy307->nSrc>0 ) yygotominor.yy307->a[yygotominor.yy307->nSrc-1].jointype = yymsp[0].minor.yy372;
        !          2221: }
        !          2222: #line 2223 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2223:         break;
        !          2224:       case 122: /* stl_prefix ::= */
        !          2225: #line 367 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2226: {yygotominor.yy307 = 0;}
        !          2227: #line 2228 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2228:         break;
        !          2229:       case 123: /* seltablist ::= stl_prefix nm dbnm as on_opt using_opt */
        !          2230: #line 368 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2231: {
        !          2232:   yygotominor.yy307 = sqliteSrcListAppend(yymsp[-5].minor.yy307,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0);
        !          2233:   if( yymsp[-2].minor.yy0.n ) sqliteSrcListAddAlias(yygotominor.yy307,&yymsp[-2].minor.yy0);
        !          2234:   if( yymsp[-1].minor.yy242 ){
        !          2235:     if( yygotominor.yy307 && yygotominor.yy307->nSrc>1 ){ yygotominor.yy307->a[yygotominor.yy307->nSrc-2].pOn = yymsp[-1].minor.yy242; }
        !          2236:     else { sqliteExprDelete(yymsp[-1].minor.yy242); }
        !          2237:   }
        !          2238:   if( yymsp[0].minor.yy320 ){
        !          2239:     if( yygotominor.yy307 && yygotominor.yy307->nSrc>1 ){ yygotominor.yy307->a[yygotominor.yy307->nSrc-2].pUsing = yymsp[0].minor.yy320; }
        !          2240:     else { sqliteIdListDelete(yymsp[0].minor.yy320); }
        !          2241:   }
        !          2242: }
        !          2243: #line 2244 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2244:         break;
        !          2245:       case 124: /* seltablist ::= stl_prefix LP seltablist_paren RP as on_opt using_opt */
        !          2246: #line 381 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2247: {
        !          2248:   yygotominor.yy307 = sqliteSrcListAppend(yymsp[-6].minor.yy307,0,0);
        !          2249:   yygotominor.yy307->a[yygotominor.yy307->nSrc-1].pSelect = yymsp[-4].minor.yy179;
        !          2250:   if( yymsp[-2].minor.yy0.n ) sqliteSrcListAddAlias(yygotominor.yy307,&yymsp[-2].minor.yy0);
        !          2251:   if( yymsp[-1].minor.yy242 ){
        !          2252:     if( yygotominor.yy307 && yygotominor.yy307->nSrc>1 ){ yygotominor.yy307->a[yygotominor.yy307->nSrc-2].pOn = yymsp[-1].minor.yy242; }
        !          2253:     else { sqliteExprDelete(yymsp[-1].minor.yy242); }
        !          2254:   }
        !          2255:   if( yymsp[0].minor.yy320 ){
        !          2256:     if( yygotominor.yy307 && yygotominor.yy307->nSrc>1 ){ yygotominor.yy307->a[yygotominor.yy307->nSrc-2].pUsing = yymsp[0].minor.yy320; }
        !          2257:     else { sqliteIdListDelete(yymsp[0].minor.yy320); }
        !          2258:   }
        !          2259: }
        !          2260: #line 2261 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2261:         break;
        !          2262:       case 126: /* seltablist_paren ::= seltablist */
        !          2263: #line 402 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2264: {
        !          2265:    yygotominor.yy179 = sqliteSelectNew(0,yymsp[0].minor.yy307,0,0,0,0,0,-1,0);
        !          2266: }
        !          2267: #line 2268 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2268:         break;
        !          2269:       case 127: /* dbnm ::= */
        !          2270: #line 407 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2271: {yygotominor.yy0.z=0; yygotominor.yy0.n=0;}
        !          2272: #line 2273 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2273:         break;
        !          2274:       case 129: /* joinop ::= COMMA */
        !          2275:       case 130: /* joinop ::= JOIN */ yytestcase(yyruleno==130);
        !          2276: #line 412 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2277: { yygotominor.yy372 = JT_INNER; }
        !          2278: #line 2279 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2279:         break;
        !          2280:       case 131: /* joinop ::= JOIN_KW JOIN */
        !          2281: #line 414 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2282: { yygotominor.yy372 = sqliteJoinType(pParse,&yymsp[-1].minor.yy0,0,0); }
        !          2283: #line 2284 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2284:         break;
        !          2285:       case 132: /* joinop ::= JOIN_KW nm JOIN */
        !          2286: #line 415 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2287: { yygotominor.yy372 = sqliteJoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); }
        !          2288: #line 2289 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2289:         break;
        !          2290:       case 133: /* joinop ::= JOIN_KW nm nm JOIN */
        !          2291: #line 417 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2292: { yygotominor.yy372 = sqliteJoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0); }
        !          2293: #line 2294 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2294:         break;
        !          2295:       case 134: /* on_opt ::= ON expr */
        !          2296:       case 142: /* sortitem ::= expr */ yytestcase(yyruleno==142);
        !          2297:       case 151: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==151);
        !          2298:       case 158: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==158);
        !          2299:       case 227: /* case_else ::= ELSE expr */ yytestcase(yyruleno==227);
        !          2300:       case 229: /* case_operand ::= expr */ yytestcase(yyruleno==229);
        !          2301:       case 233: /* expritem ::= expr */ yytestcase(yyruleno==233);
        !          2302: #line 421 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2303: {yygotominor.yy242 = yymsp[0].minor.yy242;}
        !          2304: #line 2305 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2305:         break;
        !          2306:       case 135: /* on_opt ::= */
        !          2307:       case 150: /* having_opt ::= */ yytestcase(yyruleno==150);
        !          2308:       case 157: /* where_opt ::= */ yytestcase(yyruleno==157);
        !          2309:       case 228: /* case_else ::= */ yytestcase(yyruleno==228);
        !          2310:       case 230: /* case_operand ::= */ yytestcase(yyruleno==230);
        !          2311:       case 234: /* expritem ::= */ yytestcase(yyruleno==234);
        !          2312: #line 422 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2313: {yygotominor.yy242 = 0;}
        !          2314: #line 2315 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2315:         break;
        !          2316:       case 136: /* using_opt ::= USING LP idxlist RP */
        !          2317:       case 169: /* inscollist_opt ::= LP inscollist RP */ yytestcase(yyruleno==169);
        !          2318:       case 239: /* idxlist_opt ::= LP idxlist RP */ yytestcase(yyruleno==239);
        !          2319: #line 426 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2320: {yygotominor.yy320 = yymsp[-1].minor.yy320;}
        !          2321: #line 2322 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2322:         break;
        !          2323:       case 137: /* using_opt ::= */
        !          2324:       case 168: /* inscollist_opt ::= */ yytestcase(yyruleno==168);
        !          2325:       case 238: /* idxlist_opt ::= */ yytestcase(yyruleno==238);
        !          2326: #line 427 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2327: {yygotominor.yy320 = 0;}
        !          2328: #line 2329 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2329:         break;
        !          2330:       case 139: /* orderby_opt ::= ORDER BY sortlist */
        !          2331:       case 149: /* groupby_opt ::= GROUP BY exprlist */ yytestcase(yyruleno==149);
        !          2332: #line 438 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2333: {yygotominor.yy322 = yymsp[0].minor.yy322;}
        !          2334: #line 2335 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2335:         break;
        !          2336:       case 140: /* sortlist ::= sortlist COMMA sortitem collate sortorder */
        !          2337: #line 439 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2338: {
        !          2339:   yygotominor.yy322 = sqliteExprListAppend(yymsp[-4].minor.yy322,yymsp[-2].minor.yy242,0);
        !          2340:   if( yygotominor.yy322 ) yygotominor.yy322->a[yygotominor.yy322->nExpr-1].sortOrder = yymsp[-1].minor.yy372+yymsp[0].minor.yy372;
        !          2341: }
        !          2342: #line 2343 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2343:         break;
        !          2344:       case 141: /* sortlist ::= sortitem collate sortorder */
        !          2345: #line 443 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2346: {
        !          2347:   yygotominor.yy322 = sqliteExprListAppend(0,yymsp[-2].minor.yy242,0);
        !          2348:   if( yygotominor.yy322 ) yygotominor.yy322->a[0].sortOrder = yymsp[-1].minor.yy372+yymsp[0].minor.yy372;
        !          2349: }
        !          2350: #line 2351 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2351:         break;
        !          2352:       case 143: /* sortorder ::= ASC */
        !          2353:       case 145: /* sortorder ::= */ yytestcase(yyruleno==145);
        !          2354: #line 452 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2355: {yygotominor.yy372 = SQLITE_SO_ASC;}
        !          2356: #line 2357 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2357:         break;
        !          2358:       case 144: /* sortorder ::= DESC */
        !          2359: #line 453 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2360: {yygotominor.yy372 = SQLITE_SO_DESC;}
        !          2361: #line 2362 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2362:         break;
        !          2363:       case 146: /* collate ::= */
        !          2364: #line 455 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2365: {yygotominor.yy372 = SQLITE_SO_UNK;}
        !          2366: #line 2367 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2367:         break;
        !          2368:       case 147: /* collate ::= COLLATE id */
        !          2369: #line 456 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2370: {yygotominor.yy372 = sqliteCollateType(yymsp[0].minor.yy0.z, yymsp[0].minor.yy0.n);}
        !          2371: #line 2372 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2372:         break;
        !          2373:       case 152: /* limit_opt ::= */
        !          2374: #line 469 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2375: {yygotominor.yy124.limit = -1; yygotominor.yy124.offset = 0;}
        !          2376: #line 2377 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2377:         break;
        !          2378:       case 153: /* limit_opt ::= LIMIT signed */
        !          2379: #line 470 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2380: {yygotominor.yy124.limit = yymsp[0].minor.yy372; yygotominor.yy124.offset = 0;}
        !          2381: #line 2382 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2382:         break;
        !          2383:       case 154: /* limit_opt ::= LIMIT signed OFFSET signed */
        !          2384: #line 472 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2385: {yygotominor.yy124.limit = yymsp[-2].minor.yy372; yygotominor.yy124.offset = yymsp[0].minor.yy372;}
        !          2386: #line 2387 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2387:         break;
        !          2388:       case 155: /* limit_opt ::= LIMIT signed COMMA signed */
        !          2389: #line 474 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2390: {yygotominor.yy124.limit = yymsp[0].minor.yy372; yygotominor.yy124.offset = yymsp[-2].minor.yy372;}
        !          2391: #line 2392 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2392:         break;
        !          2393:       case 156: /* cmd ::= DELETE FROM nm dbnm where_opt */
        !          2394: #line 478 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2395: {
        !          2396:    sqliteDeleteFrom(pParse, sqliteSrcListAppend(0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0), yymsp[0].minor.yy242);
        !          2397: }
        !          2398: #line 2399 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2399:         break;
        !          2400:       case 159: /* cmd ::= UPDATE orconf nm dbnm SET setlist where_opt */
        !          2401: #line 494 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2402: {sqliteUpdate(pParse,sqliteSrcListAppend(0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0),yymsp[-1].minor.yy322,yymsp[0].minor.yy242,yymsp[-5].minor.yy372);}
        !          2403: #line 2404 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2404:         break;
        !          2405:       case 160: /* setlist ::= setlist COMMA nm EQ expr */
        !          2406: #line 497 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2407: {yygotominor.yy322 = sqliteExprListAppend(yymsp[-4].minor.yy322,yymsp[0].minor.yy242,&yymsp[-2].minor.yy0);}
        !          2408: #line 2409 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2409:         break;
        !          2410:       case 161: /* setlist ::= nm EQ expr */
        !          2411: #line 498 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2412: {yygotominor.yy322 = sqliteExprListAppend(0,yymsp[0].minor.yy242,&yymsp[-2].minor.yy0);}
        !          2413: #line 2414 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2414:         break;
        !          2415:       case 162: /* cmd ::= insert_cmd INTO nm dbnm inscollist_opt VALUES LP itemlist RP */
        !          2416: #line 504 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2417: {sqliteInsert(pParse, sqliteSrcListAppend(0,&yymsp[-6].minor.yy0,&yymsp[-5].minor.yy0), yymsp[-1].minor.yy322, 0, yymsp[-4].minor.yy320, yymsp[-8].minor.yy372);}
        !          2418: #line 2419 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2419:         break;
        !          2420:       case 163: /* cmd ::= insert_cmd INTO nm dbnm inscollist_opt select */
        !          2421: #line 506 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2422: {sqliteInsert(pParse, sqliteSrcListAppend(0,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0), 0, yymsp[0].minor.yy179, yymsp[-1].minor.yy320, yymsp[-5].minor.yy372);}
        !          2423: #line 2424 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2424:         break;
        !          2425:       case 165: /* insert_cmd ::= REPLACE */
        !          2426: #line 510 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2427: {yygotominor.yy372 = OE_Replace;}
        !          2428: #line 2429 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2429:         break;
        !          2430:       case 166: /* itemlist ::= itemlist COMMA expr */
        !          2431:       case 231: /* exprlist ::= exprlist COMMA expritem */ yytestcase(yyruleno==231);
        !          2432: #line 516 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2433: {yygotominor.yy322 = sqliteExprListAppend(yymsp[-2].minor.yy322,yymsp[0].minor.yy242,0);}
        !          2434: #line 2435 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2435:         break;
        !          2436:       case 167: /* itemlist ::= expr */
        !          2437:       case 232: /* exprlist ::= expritem */ yytestcase(yyruleno==232);
        !          2438: #line 517 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2439: {yygotominor.yy322 = sqliteExprListAppend(0,yymsp[0].minor.yy242,0);}
        !          2440: #line 2441 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2441:         break;
        !          2442:       case 170: /* inscollist ::= inscollist COMMA nm */
        !          2443:       case 240: /* idxlist ::= idxlist COMMA idxitem */ yytestcase(yyruleno==240);
        !          2444: #line 526 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2445: {yygotominor.yy320 = sqliteIdListAppend(yymsp[-2].minor.yy320,&yymsp[0].minor.yy0);}
        !          2446: #line 2447 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2447:         break;
        !          2448:       case 171: /* inscollist ::= nm */
        !          2449:       case 241: /* idxlist ::= idxitem */ yytestcase(yyruleno==241);
        !          2450: #line 527 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2451: {yygotominor.yy320 = sqliteIdListAppend(0,&yymsp[0].minor.yy0);}
        !          2452: #line 2453 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2453:         break;
        !          2454:       case 172: /* expr ::= LP expr RP */
        !          2455: #line 535 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2456: {yygotominor.yy242 = yymsp[-1].minor.yy242; sqliteExprSpan(yygotominor.yy242,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); }
        !          2457: #line 2458 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2458:         break;
        !          2459:       case 173: /* expr ::= NULL */
        !          2460: #line 536 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2461: {yygotominor.yy242 = sqliteExpr(TK_NULL, 0, 0, &yymsp[0].minor.yy0);}
        !          2462: #line 2463 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2463:         break;
        !          2464:       case 174: /* expr ::= ID */
        !          2465:       case 175: /* expr ::= JOIN_KW */ yytestcase(yyruleno==175);
        !          2466: #line 537 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2467: {yygotominor.yy242 = sqliteExpr(TK_ID, 0, 0, &yymsp[0].minor.yy0);}
        !          2468: #line 2469 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2469:         break;
        !          2470:       case 176: /* expr ::= nm DOT nm */
        !          2471: #line 539 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2472: {
        !          2473:   Expr *temp1 = sqliteExpr(TK_ID, 0, 0, &yymsp[-2].minor.yy0);
        !          2474:   Expr *temp2 = sqliteExpr(TK_ID, 0, 0, &yymsp[0].minor.yy0);
        !          2475:   yygotominor.yy242 = sqliteExpr(TK_DOT, temp1, temp2, 0);
        !          2476: }
        !          2477: #line 2478 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2478:         break;
        !          2479:       case 177: /* expr ::= nm DOT nm DOT nm */
        !          2480: #line 544 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2481: {
        !          2482:   Expr *temp1 = sqliteExpr(TK_ID, 0, 0, &yymsp[-4].minor.yy0);
        !          2483:   Expr *temp2 = sqliteExpr(TK_ID, 0, 0, &yymsp[-2].minor.yy0);
        !          2484:   Expr *temp3 = sqliteExpr(TK_ID, 0, 0, &yymsp[0].minor.yy0);
        !          2485:   Expr *temp4 = sqliteExpr(TK_DOT, temp2, temp3, 0);
        !          2486:   yygotominor.yy242 = sqliteExpr(TK_DOT, temp1, temp4, 0);
        !          2487: }
        !          2488: #line 2489 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2489:         break;
        !          2490:       case 178: /* expr ::= INTEGER */
        !          2491: #line 551 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2492: {yygotominor.yy242 = sqliteExpr(TK_INTEGER, 0, 0, &yymsp[0].minor.yy0);}
        !          2493: #line 2494 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2494:         break;
        !          2495:       case 179: /* expr ::= FLOAT */
        !          2496: #line 552 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2497: {yygotominor.yy242 = sqliteExpr(TK_FLOAT, 0, 0, &yymsp[0].minor.yy0);}
        !          2498: #line 2499 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2499:         break;
        !          2500:       case 180: /* expr ::= STRING */
        !          2501: #line 553 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2502: {yygotominor.yy242 = sqliteExpr(TK_STRING, 0, 0, &yymsp[0].minor.yy0);}
        !          2503: #line 2504 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2504:         break;
        !          2505:       case 181: /* expr ::= VARIABLE */
        !          2506: #line 554 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2507: {
        !          2508:   yygotominor.yy242 = sqliteExpr(TK_VARIABLE, 0, 0, &yymsp[0].minor.yy0);
        !          2509:   if( yygotominor.yy242 ) yygotominor.yy242->iTable = ++pParse->nVar;
        !          2510: }
        !          2511: #line 2512 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2512:         break;
        !          2513:       case 182: /* expr ::= ID LP exprlist RP */
        !          2514: #line 558 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2515: {
        !          2516:   yygotominor.yy242 = sqliteExprFunction(yymsp[-1].minor.yy322, &yymsp[-3].minor.yy0);
        !          2517:   sqliteExprSpan(yygotominor.yy242,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
        !          2518: }
        !          2519: #line 2520 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2520:         break;
        !          2521:       case 183: /* expr ::= ID LP STAR RP */
        !          2522: #line 562 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2523: {
        !          2524:   yygotominor.yy242 = sqliteExprFunction(0, &yymsp[-3].minor.yy0);
        !          2525:   sqliteExprSpan(yygotominor.yy242,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
        !          2526: }
        !          2527: #line 2528 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2528:         break;
        !          2529:       case 184: /* expr ::= expr AND expr */
        !          2530: #line 566 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2531: {yygotominor.yy242 = sqliteExpr(TK_AND, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
        !          2532: #line 2533 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2533:         break;
        !          2534:       case 185: /* expr ::= expr OR expr */
        !          2535: #line 567 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2536: {yygotominor.yy242 = sqliteExpr(TK_OR, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
        !          2537: #line 2538 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2538:         break;
        !          2539:       case 186: /* expr ::= expr LT expr */
        !          2540: #line 568 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2541: {yygotominor.yy242 = sqliteExpr(TK_LT, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
        !          2542: #line 2543 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2543:         break;
        !          2544:       case 187: /* expr ::= expr GT expr */
        !          2545: #line 569 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2546: {yygotominor.yy242 = sqliteExpr(TK_GT, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
        !          2547: #line 2548 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2548:         break;
        !          2549:       case 188: /* expr ::= expr LE expr */
        !          2550: #line 570 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2551: {yygotominor.yy242 = sqliteExpr(TK_LE, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
        !          2552: #line 2553 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2553:         break;
        !          2554:       case 189: /* expr ::= expr GE expr */
        !          2555: #line 571 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2556: {yygotominor.yy242 = sqliteExpr(TK_GE, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
        !          2557: #line 2558 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2558:         break;
        !          2559:       case 190: /* expr ::= expr NE expr */
        !          2560: #line 572 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2561: {yygotominor.yy242 = sqliteExpr(TK_NE, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
        !          2562: #line 2563 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2563:         break;
        !          2564:       case 191: /* expr ::= expr EQ expr */
        !          2565: #line 573 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2566: {yygotominor.yy242 = sqliteExpr(TK_EQ, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
        !          2567: #line 2568 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2568:         break;
        !          2569:       case 192: /* expr ::= expr BITAND expr */
        !          2570: #line 574 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2571: {yygotominor.yy242 = sqliteExpr(TK_BITAND, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
        !          2572: #line 2573 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2573:         break;
        !          2574:       case 193: /* expr ::= expr BITOR expr */
        !          2575: #line 575 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2576: {yygotominor.yy242 = sqliteExpr(TK_BITOR, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
        !          2577: #line 2578 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2578:         break;
        !          2579:       case 194: /* expr ::= expr LSHIFT expr */
        !          2580: #line 576 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2581: {yygotominor.yy242 = sqliteExpr(TK_LSHIFT, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
        !          2582: #line 2583 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2583:         break;
        !          2584:       case 195: /* expr ::= expr RSHIFT expr */
        !          2585: #line 577 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2586: {yygotominor.yy242 = sqliteExpr(TK_RSHIFT, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
        !          2587: #line 2588 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2588:         break;
        !          2589:       case 196: /* expr ::= expr likeop expr */
        !          2590: #line 578 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2591: {
        !          2592:   ExprList *pList = sqliteExprListAppend(0, yymsp[0].minor.yy242, 0);
        !          2593:   pList = sqliteExprListAppend(pList, yymsp[-2].minor.yy242, 0);
        !          2594:   yygotominor.yy242 = sqliteExprFunction(pList, 0);
        !          2595:   if( yygotominor.yy242 ) yygotominor.yy242->op = yymsp[-1].minor.yy372;
        !          2596:   sqliteExprSpan(yygotominor.yy242, &yymsp[-2].minor.yy242->span, &yymsp[0].minor.yy242->span);
        !          2597: }
        !          2598: #line 2599 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2599:         break;
        !          2600:       case 197: /* expr ::= expr NOT likeop expr */
        !          2601: #line 585 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2602: {
        !          2603:   ExprList *pList = sqliteExprListAppend(0, yymsp[0].minor.yy242, 0);
        !          2604:   pList = sqliteExprListAppend(pList, yymsp[-3].minor.yy242, 0);
        !          2605:   yygotominor.yy242 = sqliteExprFunction(pList, 0);
        !          2606:   if( yygotominor.yy242 ) yygotominor.yy242->op = yymsp[-1].minor.yy372;
        !          2607:   yygotominor.yy242 = sqliteExpr(TK_NOT, yygotominor.yy242, 0, 0);
        !          2608:   sqliteExprSpan(yygotominor.yy242,&yymsp[-3].minor.yy242->span,&yymsp[0].minor.yy242->span);
        !          2609: }
        !          2610: #line 2611 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2611:         break;
        !          2612:       case 198: /* likeop ::= LIKE */
        !          2613: #line 594 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2614: {yygotominor.yy372 = TK_LIKE;}
        !          2615: #line 2616 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2616:         break;
        !          2617:       case 199: /* likeop ::= GLOB */
        !          2618: #line 595 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2619: {yygotominor.yy372 = TK_GLOB;}
        !          2620: #line 2621 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2621:         break;
        !          2622:       case 200: /* expr ::= expr PLUS expr */
        !          2623: #line 596 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2624: {yygotominor.yy242 = sqliteExpr(TK_PLUS, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
        !          2625: #line 2626 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2626:         break;
        !          2627:       case 201: /* expr ::= expr MINUS expr */
        !          2628: #line 597 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2629: {yygotominor.yy242 = sqliteExpr(TK_MINUS, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
        !          2630: #line 2631 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2631:         break;
        !          2632:       case 202: /* expr ::= expr STAR expr */
        !          2633: #line 598 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2634: {yygotominor.yy242 = sqliteExpr(TK_STAR, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
        !          2635: #line 2636 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2636:         break;
        !          2637:       case 203: /* expr ::= expr SLASH expr */
        !          2638: #line 599 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2639: {yygotominor.yy242 = sqliteExpr(TK_SLASH, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
        !          2640: #line 2641 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2641:         break;
        !          2642:       case 204: /* expr ::= expr REM expr */
        !          2643: #line 600 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2644: {yygotominor.yy242 = sqliteExpr(TK_REM, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
        !          2645: #line 2646 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2646:         break;
        !          2647:       case 205: /* expr ::= expr CONCAT expr */
        !          2648: #line 601 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2649: {yygotominor.yy242 = sqliteExpr(TK_CONCAT, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
        !          2650: #line 2651 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2651:         break;
        !          2652:       case 206: /* expr ::= expr ISNULL */
        !          2653: #line 602 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2654: {
        !          2655:   yygotominor.yy242 = sqliteExpr(TK_ISNULL, yymsp[-1].minor.yy242, 0, 0);
        !          2656:   sqliteExprSpan(yygotominor.yy242,&yymsp[-1].minor.yy242->span,&yymsp[0].minor.yy0);
        !          2657: }
        !          2658: #line 2659 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2659:         break;
        !          2660:       case 207: /* expr ::= expr IS NULL */
        !          2661: #line 606 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2662: {
        !          2663:   yygotominor.yy242 = sqliteExpr(TK_ISNULL, yymsp[-2].minor.yy242, 0, 0);
        !          2664:   sqliteExprSpan(yygotominor.yy242,&yymsp[-2].minor.yy242->span,&yymsp[0].minor.yy0);
        !          2665: }
        !          2666: #line 2667 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2667:         break;
        !          2668:       case 208: /* expr ::= expr NOTNULL */
        !          2669: #line 610 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2670: {
        !          2671:   yygotominor.yy242 = sqliteExpr(TK_NOTNULL, yymsp[-1].minor.yy242, 0, 0);
        !          2672:   sqliteExprSpan(yygotominor.yy242,&yymsp[-1].minor.yy242->span,&yymsp[0].minor.yy0);
        !          2673: }
        !          2674: #line 2675 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2675:         break;
        !          2676:       case 209: /* expr ::= expr NOT NULL */
        !          2677: #line 614 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2678: {
        !          2679:   yygotominor.yy242 = sqliteExpr(TK_NOTNULL, yymsp[-2].minor.yy242, 0, 0);
        !          2680:   sqliteExprSpan(yygotominor.yy242,&yymsp[-2].minor.yy242->span,&yymsp[0].minor.yy0);
        !          2681: }
        !          2682: #line 2683 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2683:         break;
        !          2684:       case 210: /* expr ::= expr IS NOT NULL */
        !          2685: #line 618 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2686: {
        !          2687:   yygotominor.yy242 = sqliteExpr(TK_NOTNULL, yymsp[-3].minor.yy242, 0, 0);
        !          2688:   sqliteExprSpan(yygotominor.yy242,&yymsp[-3].minor.yy242->span,&yymsp[0].minor.yy0);
        !          2689: }
        !          2690: #line 2691 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2691:         break;
        !          2692:       case 211: /* expr ::= NOT expr */
        !          2693: #line 622 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2694: {
        !          2695:   yygotominor.yy242 = sqliteExpr(TK_NOT, yymsp[0].minor.yy242, 0, 0);
        !          2696:   sqliteExprSpan(yygotominor.yy242,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy242->span);
        !          2697: }
        !          2698: #line 2699 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2699:         break;
        !          2700:       case 212: /* expr ::= BITNOT expr */
        !          2701: #line 626 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2702: {
        !          2703:   yygotominor.yy242 = sqliteExpr(TK_BITNOT, yymsp[0].minor.yy242, 0, 0);
        !          2704:   sqliteExprSpan(yygotominor.yy242,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy242->span);
        !          2705: }
        !          2706: #line 2707 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2707:         break;
        !          2708:       case 213: /* expr ::= MINUS expr */
        !          2709: #line 630 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2710: {
        !          2711:   yygotominor.yy242 = sqliteExpr(TK_UMINUS, yymsp[0].minor.yy242, 0, 0);
        !          2712:   sqliteExprSpan(yygotominor.yy242,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy242->span);
        !          2713: }
        !          2714: #line 2715 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2715:         break;
        !          2716:       case 214: /* expr ::= PLUS expr */
        !          2717: #line 634 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2718: {
        !          2719:   yygotominor.yy242 = sqliteExpr(TK_UPLUS, yymsp[0].minor.yy242, 0, 0);
        !          2720:   sqliteExprSpan(yygotominor.yy242,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy242->span);
        !          2721: }
        !          2722: #line 2723 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2723:         break;
        !          2724:       case 215: /* expr ::= LP select RP */
        !          2725: #line 638 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2726: {
        !          2727:   yygotominor.yy242 = sqliteExpr(TK_SELECT, 0, 0, 0);
        !          2728:   if( yygotominor.yy242 ) yygotominor.yy242->pSelect = yymsp[-1].minor.yy179;
        !          2729:   sqliteExprSpan(yygotominor.yy242,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);
        !          2730: }
        !          2731: #line 2732 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2732:         break;
        !          2733:       case 216: /* expr ::= expr BETWEEN expr AND expr */
        !          2734: #line 643 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2735: {
        !          2736:   ExprList *pList = sqliteExprListAppend(0, yymsp[-2].minor.yy242, 0);
        !          2737:   pList = sqliteExprListAppend(pList, yymsp[0].minor.yy242, 0);
        !          2738:   yygotominor.yy242 = sqliteExpr(TK_BETWEEN, yymsp[-4].minor.yy242, 0, 0);
        !          2739:   if( yygotominor.yy242 ) yygotominor.yy242->pList = pList;
        !          2740:   sqliteExprSpan(yygotominor.yy242,&yymsp[-4].minor.yy242->span,&yymsp[0].minor.yy242->span);
        !          2741: }
        !          2742: #line 2743 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2743:         break;
        !          2744:       case 217: /* expr ::= expr NOT BETWEEN expr AND expr */
        !          2745: #line 650 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2746: {
        !          2747:   ExprList *pList = sqliteExprListAppend(0, yymsp[-2].minor.yy242, 0);
        !          2748:   pList = sqliteExprListAppend(pList, yymsp[0].minor.yy242, 0);
        !          2749:   yygotominor.yy242 = sqliteExpr(TK_BETWEEN, yymsp[-5].minor.yy242, 0, 0);
        !          2750:   if( yygotominor.yy242 ) yygotominor.yy242->pList = pList;
        !          2751:   yygotominor.yy242 = sqliteExpr(TK_NOT, yygotominor.yy242, 0, 0);
        !          2752:   sqliteExprSpan(yygotominor.yy242,&yymsp[-5].minor.yy242->span,&yymsp[0].minor.yy242->span);
        !          2753: }
        !          2754: #line 2755 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2755:         break;
        !          2756:       case 218: /* expr ::= expr IN LP exprlist RP */
        !          2757: #line 658 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2758: {
        !          2759:   yygotominor.yy242 = sqliteExpr(TK_IN, yymsp[-4].minor.yy242, 0, 0);
        !          2760:   if( yygotominor.yy242 ) yygotominor.yy242->pList = yymsp[-1].minor.yy322;
        !          2761:   sqliteExprSpan(yygotominor.yy242,&yymsp[-4].minor.yy242->span,&yymsp[0].minor.yy0);
        !          2762: }
        !          2763: #line 2764 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2764:         break;
        !          2765:       case 219: /* expr ::= expr IN LP select RP */
        !          2766: #line 663 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2767: {
        !          2768:   yygotominor.yy242 = sqliteExpr(TK_IN, yymsp[-4].minor.yy242, 0, 0);
        !          2769:   if( yygotominor.yy242 ) yygotominor.yy242->pSelect = yymsp[-1].minor.yy179;
        !          2770:   sqliteExprSpan(yygotominor.yy242,&yymsp[-4].minor.yy242->span,&yymsp[0].minor.yy0);
        !          2771: }
        !          2772: #line 2773 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2773:         break;
        !          2774:       case 220: /* expr ::= expr NOT IN LP exprlist RP */
        !          2775: #line 668 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2776: {
        !          2777:   yygotominor.yy242 = sqliteExpr(TK_IN, yymsp[-5].minor.yy242, 0, 0);
        !          2778:   if( yygotominor.yy242 ) yygotominor.yy242->pList = yymsp[-1].minor.yy322;
        !          2779:   yygotominor.yy242 = sqliteExpr(TK_NOT, yygotominor.yy242, 0, 0);
        !          2780:   sqliteExprSpan(yygotominor.yy242,&yymsp[-5].minor.yy242->span,&yymsp[0].minor.yy0);
        !          2781: }
        !          2782: #line 2783 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2783:         break;
        !          2784:       case 221: /* expr ::= expr NOT IN LP select RP */
        !          2785: #line 674 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2786: {
        !          2787:   yygotominor.yy242 = sqliteExpr(TK_IN, yymsp[-5].minor.yy242, 0, 0);
        !          2788:   if( yygotominor.yy242 ) yygotominor.yy242->pSelect = yymsp[-1].minor.yy179;
        !          2789:   yygotominor.yy242 = sqliteExpr(TK_NOT, yygotominor.yy242, 0, 0);
        !          2790:   sqliteExprSpan(yygotominor.yy242,&yymsp[-5].minor.yy242->span,&yymsp[0].minor.yy0);
        !          2791: }
        !          2792: #line 2793 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2793:         break;
        !          2794:       case 222: /* expr ::= expr IN nm dbnm */
        !          2795: #line 680 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2796: {
        !          2797:   SrcList *pSrc = sqliteSrcListAppend(0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);
        !          2798:   yygotominor.yy242 = sqliteExpr(TK_IN, yymsp[-3].minor.yy242, 0, 0);
        !          2799:   if( yygotominor.yy242 ) yygotominor.yy242->pSelect = sqliteSelectNew(0,pSrc,0,0,0,0,0,-1,0);
        !          2800:   sqliteExprSpan(yygotominor.yy242,&yymsp[-3].minor.yy242->span,yymsp[0].minor.yy0.z?&yymsp[0].minor.yy0:&yymsp[-1].minor.yy0);
        !          2801: }
        !          2802: #line 2803 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2803:         break;
        !          2804:       case 223: /* expr ::= expr NOT IN nm dbnm */
        !          2805: #line 686 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2806: {
        !          2807:   SrcList *pSrc = sqliteSrcListAppend(0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);
        !          2808:   yygotominor.yy242 = sqliteExpr(TK_IN, yymsp[-4].minor.yy242, 0, 0);
        !          2809:   if( yygotominor.yy242 ) yygotominor.yy242->pSelect = sqliteSelectNew(0,pSrc,0,0,0,0,0,-1,0);
        !          2810:   yygotominor.yy242 = sqliteExpr(TK_NOT, yygotominor.yy242, 0, 0);
        !          2811:   sqliteExprSpan(yygotominor.yy242,&yymsp[-4].minor.yy242->span,yymsp[0].minor.yy0.z?&yymsp[0].minor.yy0:&yymsp[-1].minor.yy0);
        !          2812: }
        !          2813: #line 2814 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2814:         break;
        !          2815:       case 224: /* expr ::= CASE case_operand case_exprlist case_else END */
        !          2816: #line 696 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2817: {
        !          2818:   yygotominor.yy242 = sqliteExpr(TK_CASE, yymsp[-3].minor.yy242, yymsp[-1].minor.yy242, 0);
        !          2819:   if( yygotominor.yy242 ) yygotominor.yy242->pList = yymsp[-2].minor.yy322;
        !          2820:   sqliteExprSpan(yygotominor.yy242, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0);
        !          2821: }
        !          2822: #line 2823 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2823:         break;
        !          2824:       case 225: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
        !          2825: #line 703 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2826: {
        !          2827:   yygotominor.yy322 = sqliteExprListAppend(yymsp[-4].minor.yy322, yymsp[-2].minor.yy242, 0);
        !          2828:   yygotominor.yy322 = sqliteExprListAppend(yygotominor.yy322, yymsp[0].minor.yy242, 0);
        !          2829: }
        !          2830: #line 2831 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2831:         break;
        !          2832:       case 226: /* case_exprlist ::= WHEN expr THEN expr */
        !          2833: #line 707 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2834: {
        !          2835:   yygotominor.yy322 = sqliteExprListAppend(0, yymsp[-2].minor.yy242, 0);
        !          2836:   yygotominor.yy322 = sqliteExprListAppend(yygotominor.yy322, yymsp[0].minor.yy242, 0);
        !          2837: }
        !          2838: #line 2839 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2839:         break;
        !          2840:       case 235: /* cmd ::= CREATE uniqueflag INDEX nm ON nm dbnm LP idxlist RP onconf */
        !          2841: #line 732 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2842: {
        !          2843:   SrcList *pSrc = sqliteSrcListAppend(0, &yymsp[-5].minor.yy0, &yymsp[-4].minor.yy0);
        !          2844:   if( yymsp[-9].minor.yy372!=OE_None ) yymsp[-9].minor.yy372 = yymsp[0].minor.yy372;
        !          2845:   if( yymsp[-9].minor.yy372==OE_Default) yymsp[-9].minor.yy372 = OE_Abort;
        !          2846:   sqliteCreateIndex(pParse, &yymsp[-7].minor.yy0, pSrc, yymsp[-2].minor.yy320, yymsp[-9].minor.yy372, &yymsp[-10].minor.yy0, &yymsp[-1].minor.yy0);
        !          2847: }
        !          2848: #line 2849 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2849:         break;
        !          2850:       case 237: /* uniqueflag ::= */
        !          2851: #line 741 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2852: { yygotominor.yy372 = OE_None; }
        !          2853: #line 2854 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2854:         break;
        !          2855:       case 243: /* cmd ::= DROP INDEX nm dbnm */
        !          2856: #line 758 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2857: {
        !          2858:   sqliteDropIndex(pParse, sqliteSrcListAppend(0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0));
        !          2859: }
        !          2860: #line 2861 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2861:         break;
        !          2862:       case 244: /* cmd ::= COPY orconf nm dbnm FROM nm USING DELIMITERS STRING */
        !          2863: #line 766 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2864: {sqliteCopy(pParse,sqliteSrcListAppend(0,&yymsp[-6].minor.yy0,&yymsp[-5].minor.yy0),&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0,yymsp[-7].minor.yy372);}
        !          2865: #line 2866 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2866:         break;
        !          2867:       case 245: /* cmd ::= COPY orconf nm dbnm FROM nm */
        !          2868: #line 768 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2869: {sqliteCopy(pParse,sqliteSrcListAppend(0,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0),&yymsp[0].minor.yy0,0,yymsp[-4].minor.yy372);}
        !          2870: #line 2871 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2871:         break;
        !          2872:       case 246: /* cmd ::= VACUUM */
        !          2873: #line 772 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2874: {sqliteVacuum(pParse,0);}
        !          2875: #line 2876 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2876:         break;
        !          2877:       case 247: /* cmd ::= VACUUM nm */
        !          2878: #line 773 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2879: {sqliteVacuum(pParse,&yymsp[0].minor.yy0);}
        !          2880: #line 2881 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2881:         break;
        !          2882:       case 248: /* cmd ::= PRAGMA ids EQ nm */
        !          2883:       case 249: /* cmd ::= PRAGMA ids EQ ON */ yytestcase(yyruleno==249);
        !          2884:       case 250: /* cmd ::= PRAGMA ids EQ plus_num */ yytestcase(yyruleno==250);
        !          2885: #line 777 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2886: {sqlitePragma(pParse,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);}
        !          2887: #line 2888 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2888:         break;
        !          2889:       case 251: /* cmd ::= PRAGMA ids EQ minus_num */
        !          2890: #line 780 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2891: {sqlitePragma(pParse,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);}
        !          2892: #line 2893 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2893:         break;
        !          2894:       case 252: /* cmd ::= PRAGMA ids LP nm RP */
        !          2895: #line 781 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2896: {sqlitePragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);}
        !          2897: #line 2898 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2898:         break;
        !          2899:       case 253: /* cmd ::= PRAGMA ids */
        !          2900: #line 782 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2901: {sqlitePragma(pParse,&yymsp[0].minor.yy0,&yymsp[0].minor.yy0,0);}
        !          2902: #line 2903 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2903:         break;
        !          2904:       case 260: /* cmd ::= CREATE trigger_decl BEGIN trigger_cmd_list END */
        !          2905: #line 792 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2906: {
        !          2907:   Token all;
        !          2908:   all.z = yymsp[-4].minor.yy0.z;
        !          2909:   all.n = (yymsp[0].minor.yy0.z - yymsp[-4].minor.yy0.z) + yymsp[0].minor.yy0.n;
        !          2910:   sqliteFinishTrigger(pParse, yymsp[-1].minor.yy19, &all);
        !          2911: }
        !          2912: #line 2913 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2913:         break;
        !          2914:       case 261: /* trigger_decl ::= temp TRIGGER nm trigger_time trigger_event ON nm dbnm foreach_clause when_clause */
        !          2915: #line 800 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2916: {
        !          2917:   SrcList *pTab = sqliteSrcListAppend(0, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0);
        !          2918:   sqliteBeginTrigger(pParse, &yymsp[-7].minor.yy0, yymsp[-6].minor.yy372, yymsp[-5].minor.yy290.a, yymsp[-5].minor.yy290.b, pTab, yymsp[-1].minor.yy372, yymsp[0].minor.yy182, yymsp[-9].minor.yy372);
        !          2919: }
        !          2920: #line 2921 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2921:         break;
        !          2922:       case 262: /* trigger_time ::= BEFORE */
        !          2923:       case 265: /* trigger_time ::= */ yytestcase(yyruleno==265);
        !          2924: #line 806 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2925: { yygotominor.yy372 = TK_BEFORE; }
        !          2926: #line 2927 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2927:         break;
        !          2928:       case 263: /* trigger_time ::= AFTER */
        !          2929: #line 807 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2930: { yygotominor.yy372 = TK_AFTER;  }
        !          2931: #line 2932 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2932:         break;
        !          2933:       case 264: /* trigger_time ::= INSTEAD OF */
        !          2934: #line 808 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2935: { yygotominor.yy372 = TK_INSTEAD;}
        !          2936: #line 2937 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2937:         break;
        !          2938:       case 266: /* trigger_event ::= DELETE */
        !          2939: #line 813 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2940: { yygotominor.yy290.a = TK_DELETE; yygotominor.yy290.b = 0; }
        !          2941: #line 2942 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2942:         break;
        !          2943:       case 267: /* trigger_event ::= INSERT */
        !          2944: #line 814 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2945: { yygotominor.yy290.a = TK_INSERT; yygotominor.yy290.b = 0; }
        !          2946: #line 2947 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2947:         break;
        !          2948:       case 268: /* trigger_event ::= UPDATE */
        !          2949: #line 815 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2950: { yygotominor.yy290.a = TK_UPDATE; yygotominor.yy290.b = 0;}
        !          2951: #line 2952 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2952:         break;
        !          2953:       case 269: /* trigger_event ::= UPDATE OF inscollist */
        !          2954: #line 816 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2955: {yygotominor.yy290.a = TK_UPDATE; yygotominor.yy290.b = yymsp[0].minor.yy320; }
        !          2956: #line 2957 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2957:         break;
        !          2958:       case 270: /* foreach_clause ::= */
        !          2959:       case 271: /* foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==271);
        !          2960: #line 819 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2961: { yygotominor.yy372 = TK_ROW; }
        !          2962: #line 2963 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2963:         break;
        !          2964:       case 272: /* foreach_clause ::= FOR EACH STATEMENT */
        !          2965: #line 821 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2966: { yygotominor.yy372 = TK_STATEMENT; }
        !          2967: #line 2968 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2968:         break;
        !          2969:       case 273: /* when_clause ::= */
        !          2970: #line 824 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2971: { yygotominor.yy182 = 0; }
        !          2972: #line 2973 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2973:         break;
        !          2974:       case 274: /* when_clause ::= WHEN expr */
        !          2975: #line 825 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2976: { yygotominor.yy182 = yymsp[0].minor.yy242; }
        !          2977: #line 2978 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2978:         break;
        !          2979:       case 275: /* trigger_cmd_list ::= trigger_cmd SEMI trigger_cmd_list */
        !          2980: #line 829 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2981: {
        !          2982:   yymsp[-2].minor.yy19->pNext = yymsp[0].minor.yy19;
        !          2983:   yygotominor.yy19 = yymsp[-2].minor.yy19;
        !          2984: }
        !          2985: #line 2986 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2986:         break;
        !          2987:       case 276: /* trigger_cmd_list ::= */
        !          2988: #line 833 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2989: { yygotominor.yy19 = 0; }
        !          2990: #line 2991 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2991:         break;
        !          2992:       case 277: /* trigger_cmd ::= UPDATE orconf nm SET setlist where_opt */
        !          2993: #line 839 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2994: { yygotominor.yy19 = sqliteTriggerUpdateStep(&yymsp[-3].minor.yy0, yymsp[-1].minor.yy322, yymsp[0].minor.yy242, yymsp[-4].minor.yy372); }
        !          2995: #line 2996 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          2996:         break;
        !          2997:       case 278: /* trigger_cmd ::= insert_cmd INTO nm inscollist_opt VALUES LP itemlist RP */
        !          2998: #line 844 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          2999: {yygotominor.yy19 = sqliteTriggerInsertStep(&yymsp[-5].minor.yy0, yymsp[-4].minor.yy320, yymsp[-1].minor.yy322, 0, yymsp[-7].minor.yy372);}
        !          3000: #line 3001 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          3001:         break;
        !          3002:       case 279: /* trigger_cmd ::= insert_cmd INTO nm inscollist_opt select */
        !          3003: #line 847 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          3004: {yygotominor.yy19 = sqliteTriggerInsertStep(&yymsp[-2].minor.yy0, yymsp[-1].minor.yy320, 0, yymsp[0].minor.yy179, yymsp[-4].minor.yy372);}
        !          3005: #line 3006 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          3006:         break;
        !          3007:       case 280: /* trigger_cmd ::= DELETE FROM nm where_opt */
        !          3008: #line 851 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          3009: {yygotominor.yy19 = sqliteTriggerDeleteStep(&yymsp[-1].minor.yy0, yymsp[0].minor.yy242);}
        !          3010: #line 3011 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          3011:         break;
        !          3012:       case 281: /* trigger_cmd ::= select */
        !          3013: #line 854 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          3014: {yygotominor.yy19 = sqliteTriggerSelectStep(yymsp[0].minor.yy179); }
        !          3015: #line 3016 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          3016:         break;
        !          3017:       case 282: /* expr ::= RAISE LP IGNORE RP */
        !          3018: #line 857 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          3019: {
        !          3020:   yygotominor.yy242 = sqliteExpr(TK_RAISE, 0, 0, 0); 
        !          3021:   yygotominor.yy242->iColumn = OE_Ignore;
        !          3022:   sqliteExprSpan(yygotominor.yy242, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0);
        !          3023: }
        !          3024: #line 3025 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          3025:         break;
        !          3026:       case 283: /* expr ::= RAISE LP ROLLBACK COMMA nm RP */
        !          3027: #line 862 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          3028: {
        !          3029:   yygotominor.yy242 = sqliteExpr(TK_RAISE, 0, 0, &yymsp[-1].minor.yy0); 
        !          3030:   yygotominor.yy242->iColumn = OE_Rollback;
        !          3031:   sqliteExprSpan(yygotominor.yy242, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0);
        !          3032: }
        !          3033: #line 3034 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          3034:         break;
        !          3035:       case 284: /* expr ::= RAISE LP ABORT COMMA nm RP */
        !          3036: #line 867 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          3037: {
        !          3038:   yygotominor.yy242 = sqliteExpr(TK_RAISE, 0, 0, &yymsp[-1].minor.yy0); 
        !          3039:   yygotominor.yy242->iColumn = OE_Abort;
        !          3040:   sqliteExprSpan(yygotominor.yy242, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0);
        !          3041: }
        !          3042: #line 3043 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          3043:         break;
        !          3044:       case 285: /* expr ::= RAISE LP FAIL COMMA nm RP */
        !          3045: #line 872 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          3046: {
        !          3047:   yygotominor.yy242 = sqliteExpr(TK_RAISE, 0, 0, &yymsp[-1].minor.yy0); 
        !          3048:   yygotominor.yy242->iColumn = OE_Fail;
        !          3049:   sqliteExprSpan(yygotominor.yy242, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0);
        !          3050: }
        !          3051: #line 3052 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          3052:         break;
        !          3053:       case 286: /* cmd ::= DROP TRIGGER nm dbnm */
        !          3054: #line 879 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          3055: {
        !          3056:   sqliteDropTrigger(pParse,sqliteSrcListAppend(0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0));
        !          3057: }
        !          3058: #line 3059 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          3059:         break;
        !          3060:       case 287: /* cmd ::= ATTACH database_kw_opt ids AS nm key_opt */
        !          3061: #line 884 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          3062: {
        !          3063:   sqliteAttach(pParse, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);
        !          3064: }
        !          3065: #line 3066 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          3066:         break;
        !          3067:       case 289: /* key_opt ::= */
        !          3068: #line 889 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          3069: { yygotominor.yy0.z = 0; yygotominor.yy0.n = 0; }
        !          3070: #line 3071 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          3071:         break;
        !          3072:       case 292: /* cmd ::= DETACH database_kw_opt nm */
        !          3073: #line 895 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          3074: {
        !          3075:   sqliteDetach(pParse, &yymsp[0].minor.yy0);
        !          3076: }
        !          3077: #line 3078 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          3078:         break;
        !          3079:       default:
        !          3080:       /* (0) input ::= cmdlist */ yytestcase(yyruleno==0);
        !          3081:       /* (1) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==1);
        !          3082:       /* (2) cmdlist ::= ecmd */ yytestcase(yyruleno==2);
        !          3083:       /* (3) ecmd ::= explain cmdx SEMI */ yytestcase(yyruleno==3);
        !          3084:       /* (4) ecmd ::= SEMI */ yytestcase(yyruleno==4);
        !          3085:       /* (9) trans_opt ::= */ yytestcase(yyruleno==9);
        !          3086:       /* (10) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==10);
        !          3087:       /* (11) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==11);
        !          3088:       /* (15) cmd ::= create_table create_table_args */ yytestcase(yyruleno==15);
        !          3089:       /* (21) columnlist ::= columnlist COMMA column */ yytestcase(yyruleno==21);
        !          3090:       /* (22) columnlist ::= column */ yytestcase(yyruleno==22);
        !          3091:       /* (23) column ::= columnid type carglist */ yytestcase(yyruleno==23);
        !          3092:       /* (31) type ::= */ yytestcase(yyruleno==31);
        !          3093:       /* (40) carglist ::= carglist carg */ yytestcase(yyruleno==40);
        !          3094:       /* (41) carglist ::= */ yytestcase(yyruleno==41);
        !          3095:       /* (42) carg ::= CONSTRAINT nm ccons */ yytestcase(yyruleno==42);
        !          3096:       /* (43) carg ::= ccons */ yytestcase(yyruleno==43);
        !          3097:       /* (52) carg ::= DEFAULT NULL */ yytestcase(yyruleno==52);
        !          3098:       /* (53) ccons ::= NULL onconf */ yytestcase(yyruleno==53);
        !          3099:       /* (76) conslist_opt ::= */ yytestcase(yyruleno==76);
        !          3100:       /* (77) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==77);
        !          3101:       /* (78) conslist ::= conslist COMMA tcons */ yytestcase(yyruleno==78);
        !          3102:       /* (79) conslist ::= conslist tcons */ yytestcase(yyruleno==79);
        !          3103:       /* (80) conslist ::= tcons */ yytestcase(yyruleno==80);
        !          3104:       /* (81) tcons ::= CONSTRAINT nm */ yytestcase(yyruleno==81);
        !          3105:       /* (258) plus_opt ::= PLUS */ yytestcase(yyruleno==258);
        !          3106:       /* (259) plus_opt ::= */ yytestcase(yyruleno==259);
        !          3107:       /* (290) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==290);
        !          3108:       /* (291) database_kw_opt ::= */ yytestcase(yyruleno==291);
        !          3109:         break;
        !          3110:   };
        !          3111:   yygoto = yyRuleInfo[yyruleno].lhs;
        !          3112:   yysize = yyRuleInfo[yyruleno].nrhs;
        !          3113:   yypParser->yyidx -= yysize;
        !          3114:   yyact = yy_find_reduce_action(yymsp[-yysize].stateno,(YYCODETYPE)yygoto);
        !          3115:   if( yyact < YYNSTATE ){
        !          3116: #ifdef NDEBUG
        !          3117:     /* If we are not debugging and the reduce action popped at least
        !          3118:     ** one element off the stack, then we can push the new element back
        !          3119:     ** onto the stack here, and skip the stack overflow test in yy_shift().
        !          3120:     ** That gives a significant speed improvement. */
        !          3121:     if( yysize ){
        !          3122:       yypParser->yyidx++;
        !          3123:       yymsp -= yysize-1;
        !          3124:       yymsp->stateno = (YYACTIONTYPE)yyact;
        !          3125:       yymsp->major = (YYCODETYPE)yygoto;
        !          3126:       yymsp->minor = yygotominor;
        !          3127:     }else
        !          3128: #endif
        !          3129:     {
        !          3130:       yy_shift(yypParser,yyact,yygoto,&yygotominor);
        !          3131:     }
        !          3132:   }else{
        !          3133:     assert( yyact == YYNSTATE + YYNRULE + 1 );
        !          3134:     yy_accept(yypParser);
        !          3135:   }
        !          3136: }
        !          3137: 
        !          3138: /*
        !          3139: ** The following code executes when the parse fails
        !          3140: */
        !          3141: #ifndef YYNOERRORRECOVERY
        !          3142: static void yy_parse_failed(
        !          3143:   yyParser *yypParser           /* The parser */
        !          3144: ){
        !          3145:   sqliteParserARG_FETCH;
        !          3146: #ifndef NDEBUG
        !          3147:   if( yyTraceFILE ){
        !          3148:     fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt);
        !          3149:   }
        !          3150: #endif
        !          3151:   while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser);
        !          3152:   /* Here code is inserted which will be executed whenever the
        !          3153:   ** parser fails */
        !          3154:   sqliteParserARG_STORE; /* Suppress warning about unused %extra_argument variable */
        !          3155: }
        !          3156: #endif /* YYNOERRORRECOVERY */
        !          3157: 
        !          3158: /*
        !          3159: ** The following code executes when a syntax error first occurs.
        !          3160: */
        !          3161: static void yy_syntax_error(
        !          3162:   yyParser *yypParser,           /* The parser */
        !          3163:   int yymajor,                   /* The major type of the error token */
        !          3164:   YYMINORTYPE yyminor            /* The minor type of the error token */
        !          3165: ){
        !          3166:   sqliteParserARG_FETCH;
        !          3167: #define TOKEN (yyminor.yy0)
        !          3168: #line 23 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.y"
        !          3169: 
        !          3170:   if( pParse->zErrMsg==0 ){
        !          3171:     if( TOKEN.z[0] ){
        !          3172:       sqliteErrorMsg(pParse, "near \"%T\": syntax error", &TOKEN);
        !          3173:     }else{
        !          3174:       sqliteErrorMsg(pParse, "incomplete SQL statement");
        !          3175:     }
        !          3176:   }
        !          3177: #line 3178 "/home/felipe/dev/php5/ext/sqlite/libsqlite/src/parse.c"
        !          3178:   sqliteParserARG_STORE; /* Suppress warning about unused %extra_argument variable */
        !          3179: }
        !          3180: 
        !          3181: /*
        !          3182: ** The following is executed when the parser accepts
        !          3183: */
        !          3184: static void yy_accept(
        !          3185:   yyParser *yypParser           /* The parser */
        !          3186: ){
        !          3187:   sqliteParserARG_FETCH;
        !          3188: #ifndef NDEBUG
        !          3189:   if( yyTraceFILE ){
        !          3190:     fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt);
        !          3191:   }
        !          3192: #endif
        !          3193:   while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser);
        !          3194:   /* Here code is inserted which will be executed whenever the
        !          3195:   ** parser accepts */
        !          3196:   sqliteParserARG_STORE; /* Suppress warning about unused %extra_argument variable */
        !          3197: }
        !          3198: 
        !          3199: /* The main parser program.
        !          3200: ** The first argument is a pointer to a structure obtained from
        !          3201: ** "sqliteParserAlloc" which describes the current state of the parser.
        !          3202: ** The second argument is the major token number.  The third is
        !          3203: ** the minor token.  The fourth optional argument is whatever the
        !          3204: ** user wants (and specified in the grammar) and is available for
        !          3205: ** use by the action routines.
        !          3206: **
        !          3207: ** Inputs:
        !          3208: ** <ul>
        !          3209: ** <li> A pointer to the parser (an opaque structure.)
        !          3210: ** <li> The major token number.
        !          3211: ** <li> The minor token number.
        !          3212: ** <li> An option argument of a grammar-specified type.
        !          3213: ** </ul>
        !          3214: **
        !          3215: ** Outputs:
        !          3216: ** None.
        !          3217: */
        !          3218: void sqliteParser(
        !          3219:   void *yyp,                   /* The parser */
        !          3220:   int yymajor,                 /* The major token code number */
        !          3221:   sqliteParserTOKENTYPE yyminor       /* The value for the token */
        !          3222:   sqliteParserARG_PDECL               /* Optional %extra_argument parameter */
        !          3223: ){
        !          3224:   YYMINORTYPE yyminorunion;
        !          3225:   int yyact;            /* The parser action. */
        !          3226:   int yyendofinput;     /* True if we are at the end of input */
        !          3227: #ifdef YYERRORSYMBOL
        !          3228:   int yyerrorhit = 0;   /* True if yymajor has invoked an error */
        !          3229: #endif
        !          3230:   yyParser *yypParser;  /* The parser */
        !          3231: 
        !          3232:   /* (re)initialize the parser, if necessary */
        !          3233:   yypParser = (yyParser*)yyp;
        !          3234:   if( yypParser->yyidx<0 ){
        !          3235: #if YYSTACKDEPTH<=0
        !          3236:     if( yypParser->yystksz <=0 ){
        !          3237:       /*memset(&yyminorunion, 0, sizeof(yyminorunion));*/
        !          3238:       yyminorunion = yyzerominor;
        !          3239:       yyStackOverflow(yypParser, &yyminorunion);
        !          3240:       return;
        !          3241:     }
        !          3242: #endif
        !          3243:     yypParser->yyidx = 0;
        !          3244:     yypParser->yyerrcnt = -1;
        !          3245:     yypParser->yystack[0].stateno = 0;
        !          3246:     yypParser->yystack[0].major = 0;
        !          3247:   }
        !          3248:   yyminorunion.yy0 = yyminor;
        !          3249:   yyendofinput = (yymajor==0);
        !          3250:   sqliteParserARG_STORE;
        !          3251: 
        !          3252: #ifndef NDEBUG
        !          3253:   if( yyTraceFILE ){
        !          3254:     fprintf(yyTraceFILE,"%sInput %s\n",yyTracePrompt,yyTokenName[yymajor]);
        !          3255:   }
        !          3256: #endif
        !          3257: 
        !          3258:   do{
        !          3259:     yyact = yy_find_shift_action(yypParser,(YYCODETYPE)yymajor);
        !          3260:     if( yyact<YYNSTATE ){
        !          3261:       assert( !yyendofinput );  /* Impossible to shift the $ token */
        !          3262:       yy_shift(yypParser,yyact,yymajor,&yyminorunion);
        !          3263:       yypParser->yyerrcnt--;
        !          3264:       yymajor = YYNOCODE;
        !          3265:     }else if( yyact < YYNSTATE + YYNRULE ){
        !          3266:       yy_reduce(yypParser,yyact-YYNSTATE);
        !          3267:     }else{
        !          3268:       assert( yyact == YY_ERROR_ACTION );
        !          3269: #ifdef YYERRORSYMBOL
        !          3270:       int yymx;
        !          3271: #endif
        !          3272: #ifndef NDEBUG
        !          3273:       if( yyTraceFILE ){
        !          3274:         fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt);
        !          3275:       }
        !          3276: #endif
        !          3277: #ifdef YYERRORSYMBOL
        !          3278:       /* A syntax error has occurred.
        !          3279:       ** The response to an error depends upon whether or not the
        !          3280:       ** grammar defines an error token "ERROR".  
        !          3281:       **
        !          3282:       ** This is what we do if the grammar does define ERROR:
        !          3283:       **
        !          3284:       **  * Call the %syntax_error function.
        !          3285:       **
        !          3286:       **  * Begin popping the stack until we enter a state where
        !          3287:       **    it is legal to shift the error symbol, then shift
        !          3288:       **    the error symbol.
        !          3289:       **
        !          3290:       **  * Set the error count to three.
        !          3291:       **
        !          3292:       **  * Begin accepting and shifting new tokens.  No new error
        !          3293:       **    processing will occur until three tokens have been
        !          3294:       **    shifted successfully.
        !          3295:       **
        !          3296:       */
        !          3297:       if( yypParser->yyerrcnt<0 ){
        !          3298:         yy_syntax_error(yypParser,yymajor,yyminorunion);
        !          3299:       }
        !          3300:       yymx = yypParser->yystack[yypParser->yyidx].major;
        !          3301:       if( yymx==YYERRORSYMBOL || yyerrorhit ){
        !          3302: #ifndef NDEBUG
        !          3303:         if( yyTraceFILE ){
        !          3304:           fprintf(yyTraceFILE,"%sDiscard input token %s\n",
        !          3305:              yyTracePrompt,yyTokenName[yymajor]);
        !          3306:         }
        !          3307: #endif
        !          3308:         yy_destructor(yypParser, (YYCODETYPE)yymajor,&yyminorunion);
        !          3309:         yymajor = YYNOCODE;
        !          3310:       }else{
        !          3311:          while(
        !          3312:           yypParser->yyidx >= 0 &&
        !          3313:           yymx != YYERRORSYMBOL &&
        !          3314:           (yyact = yy_find_reduce_action(
        !          3315:                         yypParser->yystack[yypParser->yyidx].stateno,
        !          3316:                         YYERRORSYMBOL)) >= YYNSTATE
        !          3317:         ){
        !          3318:           yy_pop_parser_stack(yypParser);
        !          3319:         }
        !          3320:         if( yypParser->yyidx < 0 || yymajor==0 ){
        !          3321:           yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion);
        !          3322:           yy_parse_failed(yypParser);
        !          3323:           yymajor = YYNOCODE;
        !          3324:         }else if( yymx!=YYERRORSYMBOL ){
        !          3325:           YYMINORTYPE u2;
        !          3326:           u2.YYERRSYMDT = 0;
        !          3327:           yy_shift(yypParser,yyact,YYERRORSYMBOL,&u2);
        !          3328:         }
        !          3329:       }
        !          3330:       yypParser->yyerrcnt = 3;
        !          3331:       yyerrorhit = 1;
        !          3332: #elif defined(YYNOERRORRECOVERY)
        !          3333:       /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to
        !          3334:       ** do any kind of error recovery.  Instead, simply invoke the syntax
        !          3335:       ** error routine and continue going as if nothing had happened.
        !          3336:       **
        !          3337:       ** Applications can set this macro (for example inside %include) if
        !          3338:       ** they intend to abandon the parse upon the first syntax error seen.
        !          3339:       */
        !          3340:       yy_syntax_error(yypParser,yymajor,yyminorunion);
        !          3341:       yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion);
        !          3342:       yymajor = YYNOCODE;
        !          3343:       
        !          3344: #else  /* YYERRORSYMBOL is not defined */
        !          3345:       /* This is what we do if the grammar does not define ERROR:
        !          3346:       **
        !          3347:       **  * Report an error message, and throw away the input token.
        !          3348:       **
        !          3349:       **  * If the input token is $, then fail the parse.
        !          3350:       **
        !          3351:       ** As before, subsequent error messages are suppressed until
        !          3352:       ** three input tokens have been successfully shifted.
        !          3353:       */
        !          3354:       if( yypParser->yyerrcnt<=0 ){
        !          3355:         yy_syntax_error(yypParser,yymajor,yyminorunion);
        !          3356:       }
        !          3357:       yypParser->yyerrcnt = 3;
        !          3358:       yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion);
        !          3359:       if( yyendofinput ){
        !          3360:         yy_parse_failed(yypParser);
        !          3361:       }
        !          3362:       yymajor = YYNOCODE;
        !          3363: #endif
        !          3364:     }
        !          3365:   }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 );
        !          3366:   return;
        !          3367: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>