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