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