~ubuntu-branches/ubuntu/edgy/digikam/edgy-updates

« back to all changes in this revision

Viewing changes to digikam/sqlite/parse.c

  • Committer: Bazaar Package Importer
  • Author(s): Achim Bohnet
  • Date: 2005-03-10 02:39:02 UTC
  • mfrom: (1.2.1 upstream) (2.1.1 hoary)
  • Revision ID: james.westby@ubuntu.com-20050310023902-023nymfst5mg696c
Tags: 0.7.2-2
* debian/TODO: clean
* digikam manpage: better --detect-camera description

Show diffs side-by-side

added added

removed removed

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