PHP  
 PHP: Test and Code Coverage Analysis
downloads | QA | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | my php.net 
 

LTP GCOV extension - code coverage report
Current view: directory - var/php_gcov/PHP_5_2/lcov_data/ext/sqlite/libsqlite/src - parse.c
Test: PHP Code Coverage
Date: 2009-11-19 Instrumented lines: 335
Code covered: 55.5 % Executed lines: 186
Legend: not executed executed

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

Generated by: LTP GCOV extension version 1.5

Generated at Thu, 19 Nov 2009 08:20:28 +0000 (5 days ago)

Copyright © 2005-2009 The PHP Group
All rights reserved.