sqllogictest

Check-in [8a016b9169]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Adjust the Makefile to omit unused features of SQLite. This makes coverage testing easier.
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 8a016b9169690d4907bbbe1d9c2d6e7382097a59
User & Date: drh 2009-01-16 16:15:51.000
Context
2009-01-23
21:37
Fixed issue with responses from ODBC3 drivers. check-in: 01ecc32bef user: shaneh tags: trunk
2009-01-16
16:15
Adjust the Makefile to omit unused features of SQLite. This makes coverage testing easier. check-in: 8a016b9169 user: drh tags: trunk
14:11
Update SQLite to version 3.6.10. check-in: 28ed264df2 user: drh tags: trunk
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/Makefile.
1
2
3
4
5
6
7
8
9
10
11


12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27





























28
29
30
31
32
33
34
35
36
37
38
#!/usr/bin/make
#
#### The suffix to add to executable files.  ".exe" for windows.
#    Nothing for unix.
#
E =

#### C Compile and options for use in building executables that 
#    will run on the target platform.
#
CC = gcc -g -Wall



#### Extra arguments for linking the finished binary. 
#
LIB = $(LDFLAGS)

# You should not need to change anything below this line
###############################################################################
#
OBJ = \
  md5.o \
  sqlite3.o

INC = \
  slt_sqlite.c \
  slt_odbc3.c






























sqllogictest$(E):	sqllogictest.c sqllogictest.h $(OBJ) $(INC)
	$(CC) -o sqllogictest$(E) sqllogictest.c $(OBJ)

md5.o:	md5.c
	$(CC) -c md5.c

sqlite3.o:	sqlite3.c sqlite3.h
	$(CC) -c sqlite3.c -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION

clean:
	rm -f $(OBJ)











>
>
















>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







|



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/usr/bin/make
#
#### The suffix to add to executable files.  ".exe" for windows.
#    Nothing for unix.
#
E =

#### C Compile and options for use in building executables that 
#    will run on the target platform.
#
CC = gcc -g -Wall
#CC = gcc -g -Wall -DOMIT_ODBC=1 -fprofile-arcs -ftest-coverage
#CC += -DSQLITE_COVERAGE_TEST

#### Extra arguments for linking the finished binary. 
#
LIB = $(LDFLAGS)

# You should not need to change anything below this line
###############################################################################
#
OBJ = \
  md5.o \
  sqlite3.o

INC = \
  slt_sqlite.c \
  slt_odbc3.c

OPTS += -DSQLITE_THREADSAFE=0

# The following OMIT options must match the OMIT options used to build
# the amalgamation.
#
OPTS += -DSQLITE_OMIT_ALTERTABLE
OPTS += -DSQLITE_OMIT_ANALYZE
OPTS += -DSQLITE_OMIT_ATTACH
OPTS += -DSQLITE_OMIT_AUTHORIZATION
OPTS += -DSQLITE_OMIT_AUTOINCREMENT
OPTS += -DSQLITE_OMIT_AUTOVACUUM
OPTS += -DSQLITE_OMIT_BUILTIN_TEST
OPTS += -DSQLITE_OMIT_COMPLETE
OPTS += -DSQLITE_OMIT_CONFLICT_CLAUSE
OPTS += -DSQLITE_OMIT_DATETIME_FUNCS
OPTS += -DSQLITE_OMIT_GET_TABLE
OPTS += -DSQLITE_OMIT_INCRBLOB
OPTS += -DSQLITE_OMIT_LOAD_EXTENSION
OPTS += -DSQLITE_OMIT_MEMORYDB
OPTS += -DSQLITE_OMIT_PRAGMA
OPTS += -DSQLITE_OMIT_REINDEX
OPTS += -DSQLITE_OMIT_SHARED_CACHE
OPTS += -DSQLITE_OMIT_TCL_VARIABLE
OPTS += -DSQLITE_OMIT_TRACE
OPTS += -DSQLITE_OMIT_TRACE
OPTS += -DSQLITE_OMIT_UTF16
OPTS += -DSQLITE_OMIT_VACUUM
OPTS += -DSQLITE_OMIT_VIRTUALTABLE

sqllogictest$(E):	sqllogictest.c sqllogictest.h $(OBJ) $(INC)
	$(CC) -o sqllogictest$(E) sqllogictest.c $(OBJ)

md5.o:	md5.c
	$(CC) -c md5.c

sqlite3.o:	sqlite3.c sqlite3.h
	$(CC) -c sqlite3.c $(OPTS)

clean:
	rm -f $(OBJ)
Changes to src/sqlite3.c.
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
** the "sqlite3.h" header file at hand, you will find a copy in the first
** 6736 lines past this header comment.)  Additional code files may be
** needed if you want a wrapper to interface SQLite with your choice of
** programming language.  The code for the "sqlite3" command-line shell
** is also in a separate file.  This file contains only code for the core
** SQLite library.
**
** This amalgamation was generated on 2009-01-15 16:00:39 UTC.
*/
#define SQLITE_CORE 1
#define SQLITE_AMALGAMATION 1
#ifndef SQLITE_PRIVATE
# define SQLITE_PRIVATE static
#endif
#ifndef SQLITE_API







|







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
** the "sqlite3.h" header file at hand, you will find a copy in the first
** 6736 lines past this header comment.)  Additional code files may be
** needed if you want a wrapper to interface SQLite with your choice of
** programming language.  The code for the "sqlite3" command-line shell
** is also in a separate file.  This file contains only code for the core
** SQLite library.
**
** This amalgamation was generated on 2009-01-16 15:02:40 UTC.
*/
#define SQLITE_CORE 1
#define SQLITE_AMALGAMATION 1
#ifndef SQLITE_PRIVATE
# define SQLITE_PRIVATE static
#endif
#ifndef SQLITE_API
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
**    May you do good and not evil.
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.
**
*************************************************************************
** Internal interface definitions for SQLite.
**
** @(#) $Id: sqliteInt.h,v 1.824 2009/01/14 23:03:41 drh Exp $
*/
#ifndef _SQLITEINT_H_
#define _SQLITEINT_H_

/*
** Include the configuration header output by 'configure' if we're using the
** autoconf-based build







|







37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
**    May you do good and not evil.
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.
**
*************************************************************************
** Internal interface definitions for SQLite.
**
** @(#) $Id: sqliteInt.h,v 1.825 2009/01/15 17:40:43 drh Exp $
*/
#ifndef _SQLITEINT_H_
#define _SQLITEINT_H_

/*
** Include the configuration header output by 'configure' if we're using the
** autoconf-based build
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
#define TK_REGISTER                       131
#define TK_VARIABLE                       132
#define TK_CASE                           133
#define TK_WHEN                           134
#define TK_THEN                           135
#define TK_ELSE                           136
#define TK_INDEX                          137
#define TK_ALTER                          138
#define TK_ADD                            139
#define TK_COLUMNKW                       140
#define TK_TO_TEXT                        141
#define TK_TO_BLOB                        142
#define TK_TO_NUMERIC                     143
#define TK_TO_INT                         144
#define TK_TO_REAL                        145
#define TK_END_OF_FILE                    146
#define TK_ILLEGAL                        147
#define TK_SPACE                          148
#define TK_UNCLOSED_STRING                149
#define TK_FUNCTION                       150
#define TK_COLUMN                         151
#define TK_AGG_FUNCTION                   152
#define TK_AGG_COLUMN                     153
#define TK_CONST_FUNC                     154

/************** End of parse.h ***********************************************/
/************** Continuing where we left off in sqliteInt.h ******************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>







<
<
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|







7466
7467
7468
7469
7470
7471
7472



7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
#define TK_REGISTER                       131
#define TK_VARIABLE                       132
#define TK_CASE                           133
#define TK_WHEN                           134
#define TK_THEN                           135
#define TK_ELSE                           136
#define TK_INDEX                          137



#define TK_TO_TEXT                        138
#define TK_TO_BLOB                        139
#define TK_TO_NUMERIC                     140
#define TK_TO_INT                         141
#define TK_TO_REAL                        142
#define TK_END_OF_FILE                    143
#define TK_ILLEGAL                        144
#define TK_SPACE                          145
#define TK_UNCLOSED_STRING                146
#define TK_FUNCTION                       147
#define TK_COLUMN                         148
#define TK_AGG_FUNCTION                   149
#define TK_AGG_COLUMN                     150
#define TK_CONST_FUNC                     151

/************** End of parse.h ***********************************************/
/************** Continuing where we left off in sqliteInt.h ******************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
#define OP_Ge                                  75   /* same as TK_GE       */
#define OP_RowKey                               8
#define OP_SCopy                                9
#define OP_Eq                                  71   /* same as TK_EQ       */
#define OP_OpenWrite                           10
#define OP_NotNull                             69   /* same as TK_NOTNULL  */
#define OP_If                                  11
#define OP_ToInt                              144   /* same as TK_TO_INT   */
#define OP_String8                             91   /* same as TK_STRING   */
#define OP_VRowid                              12
#define OP_CollSeq                             13
#define OP_OpenRead                            14
#define OP_Expire                              15
#define OP_AutoCommit                          16
#define OP_Gt                                  72   /* same as TK_GT       */







|







8183
8184
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
#define OP_Ge                                  75   /* same as TK_GE       */
#define OP_RowKey                               8
#define OP_SCopy                                9
#define OP_Eq                                  71   /* same as TK_EQ       */
#define OP_OpenWrite                           10
#define OP_NotNull                             69   /* same as TK_NOTNULL  */
#define OP_If                                  11
#define OP_ToInt                              141   /* same as TK_TO_INT   */
#define OP_String8                             91   /* same as TK_STRING   */
#define OP_VRowid                              12
#define OP_CollSeq                             13
#define OP_OpenRead                            14
#define OP_Expire                              15
#define OP_AutoCommit                          16
#define OP_Gt                                  72   /* same as TK_GT       */
8232
8233
8234
8235
8236
8237
8238
8239
8240
8241
8242
8243
8244
8245
8246
#define OP_RowData                             45
#define OP_MemMax                              46
#define OP_Or                                  63   /* same as TK_OR       */
#define OP_NotExists                           47
#define OP_Gosub                               48
#define OP_Divide                              84   /* same as TK_SLASH    */
#define OP_Integer                             49
#define OP_ToNumeric                          143   /* same as TK_TO_NUMERIC*/
#define OP_Prev                                50
#define OP_RowSetRead                          51
#define OP_Concat                              86   /* same as TK_CONCAT   */
#define OP_RowSetAdd                           52
#define OP_BitAnd                              77   /* same as TK_BITAND   */
#define OP_VColumn                             53
#define OP_CreateTable                         54







|







8229
8230
8231
8232
8233
8234
8235
8236
8237
8238
8239
8240
8241
8242
8243
#define OP_RowData                             45
#define OP_MemMax                              46
#define OP_Or                                  63   /* same as TK_OR       */
#define OP_NotExists                           47
#define OP_Gosub                               48
#define OP_Divide                              84   /* same as TK_SLASH    */
#define OP_Integer                             49
#define OP_ToNumeric                          140   /* same as TK_TO_NUMERIC*/
#define OP_Prev                                50
#define OP_RowSetRead                          51
#define OP_Concat                              86   /* same as TK_CONCAT   */
#define OP_RowSetAdd                           52
#define OP_BitAnd                              77   /* same as TK_BITAND   */
#define OP_VColumn                             53
#define OP_CreateTable                         54
8258
8259
8260
8261
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271
8272
8273
8274
8275
8276
8277
8278
8279
8280
8281
8282
8283
8284
8285
8286
#define OP_IdxGE                               66
#define OP_IdxDelete                           67
#define OP_Vacuum                              76
#define OP_IfNot                               87
#define OP_DropTable                           88
#define OP_SeekLt                              89
#define OP_MakeRecord                          92
#define OP_ToBlob                             142   /* same as TK_TO_BLOB  */
#define OP_ResultRow                           93
#define OP_Delete                              94
#define OP_AggFinal                            95
#define OP_Compare                             96
#define OP_ShiftLeft                           79   /* same as TK_LSHIFT   */
#define OP_Goto                                97
#define OP_TableLock                           98
#define OP_Clear                               99
#define OP_Le                                  73   /* same as TK_LE       */
#define OP_VerifyCookie                       100
#define OP_AggStep                            101
#define OP_ToText                             141   /* same as TK_TO_TEXT  */
#define OP_Not                                 19   /* same as TK_NOT      */
#define OP_ToReal                             145   /* same as TK_TO_REAL  */
#define OP_SetNumColumns                      102
#define OP_Transaction                        103
#define OP_VFilter                            104
#define OP_Ne                                  70   /* same as TK_NE       */
#define OP_VDestroy                           105
#define OP_ContextPop                         106
#define OP_BitOr                               78   /* same as TK_BITOR    */







|











|

|







8255
8256
8257
8258
8259
8260
8261
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271
8272
8273
8274
8275
8276
8277
8278
8279
8280
8281
8282
8283
#define OP_IdxGE                               66
#define OP_IdxDelete                           67
#define OP_Vacuum                              76
#define OP_IfNot                               87
#define OP_DropTable                           88
#define OP_SeekLt                              89
#define OP_MakeRecord                          92
#define OP_ToBlob                             139   /* same as TK_TO_BLOB  */
#define OP_ResultRow                           93
#define OP_Delete                              94
#define OP_AggFinal                            95
#define OP_Compare                             96
#define OP_ShiftLeft                           79   /* same as TK_LSHIFT   */
#define OP_Goto                                97
#define OP_TableLock                           98
#define OP_Clear                               99
#define OP_Le                                  73   /* same as TK_LE       */
#define OP_VerifyCookie                       100
#define OP_AggStep                            101
#define OP_ToText                             138   /* same as TK_TO_TEXT  */
#define OP_Not                                 19   /* same as TK_NOT      */
#define OP_ToReal                             142   /* same as TK_TO_REAL  */
#define OP_SetNumColumns                      102
#define OP_Transaction                        103
#define OP_VFilter                            104
#define OP_Ne                                  70   /* same as TK_NE       */
#define OP_VDestroy                           105
#define OP_ContextPop                         106
#define OP_BitOr                               78   /* same as TK_BITOR    */
8315
8316
8317
8318
8319
8320
8321
8322
8323
8324
8325
8326
8327
8328
8329
8330
8331
/* The following opcode values are never used */
#define OP_NotUsed_132                        132
#define OP_NotUsed_133                        133
#define OP_NotUsed_134                        134
#define OP_NotUsed_135                        135
#define OP_NotUsed_136                        136
#define OP_NotUsed_137                        137
#define OP_NotUsed_138                        138
#define OP_NotUsed_139                        139
#define OP_NotUsed_140                        140


/* Properties such as "out2" or "jump" that are specified in
** comments following the "case" for each opcode in the vdbe.c
** are encoded into bitvectors as follows:
*/
#define OPFLG_JUMP            0x0001  /* jump:  P2 holds jmp target */







<
<
<







8312
8313
8314
8315
8316
8317
8318



8319
8320
8321
8322
8323
8324
8325
/* The following opcode values are never used */
#define OP_NotUsed_132                        132
#define OP_NotUsed_133                        133
#define OP_NotUsed_134                        134
#define OP_NotUsed_135                        135
#define OP_NotUsed_136                        136
#define OP_NotUsed_137                        137





/* Properties such as "out2" or "jump" that are specified in
** comments following the "case" for each opcode in the vdbe.c
** are encoded into bitvectors as follows:
*/
#define OPFLG_JUMP            0x0001  /* jump:  P2 holds jmp target */
8348
8349
8350
8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
8363
/*  80 */ 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x05,\
/*  88 */ 0x00, 0x11, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00,\
/*  96 */ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\
/* 104 */ 0x01, 0x00, 0x00, 0x01, 0x08, 0x11, 0x00, 0x02,\
/* 112 */ 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02,\
/* 120 */ 0x01, 0x11, 0x00, 0x00, 0x05, 0x00, 0x11, 0x05,\
/* 128 */ 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,\
/* 136 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04,\
/* 144 */ 0x04, 0x04,}

/************** End of opcodes.h *********************************************/
/************** Continuing where we left off in vdbe.h ***********************/

/*
** Prototypes for the VDBE interface.  See comments on the implementation
** for a description of what each of these routines does.







|
<







8342
8343
8344
8345
8346
8347
8348
8349

8350
8351
8352
8353
8354
8355
8356
/*  80 */ 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x05,\
/*  88 */ 0x00, 0x11, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00,\
/*  96 */ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\
/* 104 */ 0x01, 0x00, 0x00, 0x01, 0x08, 0x11, 0x00, 0x02,\
/* 112 */ 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02,\
/* 120 */ 0x01, 0x11, 0x00, 0x00, 0x05, 0x00, 0x11, 0x05,\
/* 128 */ 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,\
/* 136 */ 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04,}


/************** End of opcodes.h *********************************************/
/************** Continuing where we left off in vdbe.h ***********************/

/*
** Prototypes for the VDBE interface.  See comments on the implementation
** for a description of what each of these routines does.
10118
10119
10120
10121
10122
10123
10124
10125
10126
10127
10128
10129
10130
10131
10132
10133
10134
    struct {
      int nIn;              /* Number of entries in aInLoop[] */
      struct InLoop {
        int iCur;              /* The VDBE cursor used by this IN operator */
        int addrInTop;         /* Top of the IN loop */
      } *aInLoop;           /* Information about each nested IN operator */
    } in;                 /* Used when plan.wsFlags&WHERE_IN_ABLE */
    struct {
      WherePlan *aPlan;     /* Plans for each term of the WHERE clause */
    } or;                 /* Used when plan.wsFlags&WHERE_MULTI_OR */
  } u;

  /* The following field is really not part of the current level.  But
  ** we need a place to cache virtual table index information for each
  ** virtual table in the FROM clause and the WhereLevel structure is
  ** a convenient place since there is one WhereLevel for each FROM clause
  ** element.







<
<
<







10111
10112
10113
10114
10115
10116
10117



10118
10119
10120
10121
10122
10123
10124
    struct {
      int nIn;              /* Number of entries in aInLoop[] */
      struct InLoop {
        int iCur;              /* The VDBE cursor used by this IN operator */
        int addrInTop;         /* Top of the IN loop */
      } *aInLoop;           /* Information about each nested IN operator */
    } in;                 /* Used when plan.wsFlags&WHERE_IN_ABLE */



  } u;

  /* The following field is really not part of the current level.  But
  ** we need a place to cache virtual table index information for each
  ** virtual table in the FROM clause and the WhereLevel structure is
  ** a convenient place since there is one WhereLevel for each FROM clause
  ** element.
20164
20165
20166
20167
20168
20169
20170
20171
20172
20173
20174
20175
20176
20177
20178
20179
20180
20181
20182
20183
20184
20185
     /* 131 */ "Permutation",
     /* 132 */ "NotUsed_132",
     /* 133 */ "NotUsed_133",
     /* 134 */ "NotUsed_134",
     /* 135 */ "NotUsed_135",
     /* 136 */ "NotUsed_136",
     /* 137 */ "NotUsed_137",
     /* 138 */ "NotUsed_138",
     /* 139 */ "NotUsed_139",
     /* 140 */ "NotUsed_140",
     /* 141 */ "ToText",
     /* 142 */ "ToBlob",
     /* 143 */ "ToNumeric",
     /* 144 */ "ToInt",
     /* 145 */ "ToReal",
  };
  return azName[i];
}
#endif

/************** End of opcodes.c *********************************************/
/************** Begin file os_os2.c ******************************************/







|
|
|
|
|
<
<
<







20154
20155
20156
20157
20158
20159
20160
20161
20162
20163
20164
20165



20166
20167
20168
20169
20170
20171
20172
     /* 131 */ "Permutation",
     /* 132 */ "NotUsed_132",
     /* 133 */ "NotUsed_133",
     /* 134 */ "NotUsed_134",
     /* 135 */ "NotUsed_135",
     /* 136 */ "NotUsed_136",
     /* 137 */ "NotUsed_137",
     /* 138 */ "ToText",
     /* 139 */ "ToBlob",
     /* 140 */ "ToNumeric",
     /* 141 */ "ToInt",
     /* 142 */ "ToReal",



  };
  return azName[i];
}
#endif

/************** End of opcodes.c *********************************************/
/************** Begin file os_os2.c ******************************************/
82982
82983
82984
82985
82986
82987
82988
82989
82990
82991
82992
82993
82994
82995



82996
82997
82998
82999
83000
83001
83002
83003
83004
83005
83006
83007
83008
83009
83010
83011
83012
83013
83014
83015
83016
83017
83018
83019
83020
83021
83022
83023
**    sqlite3ParserARG_FETCH     Code to extract %extra_argument from yypParser
**    YYNSTATE           the combined number of states.
**    YYNRULE            the number of rules in the grammar
**    YYERRORSYMBOL      is the code number of the error symbol.  If not
**                       defined, then do no error processing.
*/
#define YYCODETYPE unsigned char
#define YYNOCODE 251
#define YYACTIONTYPE unsigned short int
#define YYWILDCARD 62
#define sqlite3ParserTOKENTYPE Token
typedef union {
  int yyinit;
  sqlite3ParserTOKENTYPE yy0;



  struct LimitVal yy64;
  Expr* yy122;
  Select* yy159;
  IdList* yy180;
  struct {int value; int mask;} yy207;
  struct LikeOp yy318;
  TriggerStep* yy327;
  SrcList* yy347;
  int yy392;
  struct TrigEvent yy410;
  ExprList* yy442;
} YYMINORTYPE;
#ifndef YYSTACKDEPTH
#define YYSTACKDEPTH 100
#endif
#define sqlite3ParserARG_SDECL Parse *pParse;
#define sqlite3ParserARG_PDECL ,Parse *pParse
#define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse
#define sqlite3ParserARG_STORE yypParser->pParse = pParse
#define YYNSTATE 610
#define YYNRULE 319
#define YYFALLBACK 1
#define YY_NO_ACTION      (YYNSTATE+YYNRULE+2)
#define YY_ACCEPT_ACTION  (YYNSTATE+YYNRULE+1)
#define YY_ERROR_ACTION   (YYNSTATE+YYNRULE)

/* The yyzerominor constant is used to initialize instances of
** YYMINORTYPE objects to zero. */







|






>
>
>
|
|
<
<
|
|
|
|
|
|
<








|
|







82969
82970
82971
82972
82973
82974
82975
82976
82977
82978
82979
82980
82981
82982
82983
82984
82985
82986
82987


82988
82989
82990
82991
82992
82993

82994
82995
82996
82997
82998
82999
83000
83001
83002
83003
83004
83005
83006
83007
83008
83009
83010
**    sqlite3ParserARG_FETCH     Code to extract %extra_argument from yypParser
**    YYNSTATE           the combined number of states.
**    YYNRULE            the number of rules in the grammar
**    YYERRORSYMBOL      is the code number of the error symbol.  If not
**                       defined, then do no error processing.
*/
#define YYCODETYPE unsigned char
#define YYNOCODE 237
#define YYACTIONTYPE unsigned short int
#define YYWILDCARD 62
#define sqlite3ParserTOKENTYPE Token
typedef union {
  int yyinit;
  sqlite3ParserTOKENTYPE yy0;
  SrcList* yy3;
  TriggerStep* yy19;
  struct LikeOp yy150;
  struct LimitVal yy196;
  int yy228;


  struct {int value; int mask;} yy231;
  ExprList* yy258;
  Select* yy387;
  IdList* yy400;
  Expr* yy402;
  struct TrigEvent yy466;

} YYMINORTYPE;
#ifndef YYSTACKDEPTH
#define YYSTACKDEPTH 100
#endif
#define sqlite3ParserARG_SDECL Parse *pParse;
#define sqlite3ParserARG_PDECL ,Parse *pParse
#define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse
#define sqlite3ParserARG_STORE yypParser->pParse = pParse
#define YYNSTATE 546
#define YYNRULE 282
#define YYFALLBACK 1
#define YY_NO_ACTION      (YYNSTATE+YYNRULE+2)
#define YY_ACCEPT_ACTION  (YYNSTATE+YYNRULE+1)
#define YY_ERROR_ACTION   (YYNSTATE+YYNRULE)

/* The yyzerominor constant is used to initialize instances of
** YYMINORTYPE objects to zero. */
83068
83069
83070
83071
83072
83073
83074
83075
83076
83077
83078
83079
83080
83081
83082
83083
83084
83085
83086
83087
83088
83089
83090
83091
83092
83093
83094
83095
83096
83097
83098
83099
83100
83101
83102
83103
83104
83105
83106
83107
83108
83109
83110
83111
83112
83113
83114
83115
83116
83117
83118
83119
83120
83121
83122
83123
83124
83125
83126
83127
83128
83129
83130
83131
83132
83133
83134
83135
83136
83137
83138
83139
83140
83141
83142
83143







83144
83145
83146
83147
83148
83149
83150
83151
83152
83153
83154
83155
83156
83157
83158
83159
83160
83161
83162
83163
83164
83165
83166
83167
83168
83169
83170
83171
83172
83173
83174
83175
83176
83177










83178
83179
83180
83181
83182
83183
83184
83185
83186
83187
83188
83189
83190
83191
83192
83193
83194
83195
83196
83197
83198
83199
83200
83201
83202
83203
83204
83205
83206
83207
83208
83209
83210
83211
83212
83213
83214
83215
83216
83217
83218
83219
83220
83221
83222
83223
83224
83225
83226
83227
83228
83229
83230
83231
83232
83233
83234
83235
83236
83237
83238
83239
83240
83241
83242
83243
83244
83245
83246
83247
83248
83249
83250
83251
83252
83253
83254
83255
83256
83257
83258
83259
83260
83261
83262
83263
83264
83265
83266
83267
83268
83269
83270
83271
83272
83273
83274
83275
83276
83277
83278
83279
83280
83281
83282
83283
83284
83285
83286
83287
83288
83289
83290
83291
83292
83293
83294
83295
83296
83297
83298
83299
83300
83301
83302
83303
83304
83305
83306
83307
83308
83309
83310
83311
83312
83313
83314
83315
83316
83317
83318
83319
83320
83321
83322
83323
83324
83325
83326


83327
83328
83329
83330
83331
83332
83333
83334
83335
83336
83337
83338
83339
83340
83341
83342
83343
83344
83345
83346
83347
83348
83349
83350
83351
83352
83353
83354
83355
83356
83357
83358
83359
83360
83361
83362
83363
83364
83365
83366
83367
83368
83369
83370
83371

83372
83373
83374
83375
83376
83377
83378
83379
83380
83381
83382
83383
83384
83385
83386
83387
83388
83389
83390
83391
83392
83393
83394
83395
83396
83397
83398
83399
83400
83401
83402
83403
83404
83405
83406
83407
83408
83409
83410
83411
83412
83413
83414
83415
83416
83417
83418
83419
83420
83421
83422
83423
83424
83425
83426
83427
83428
83429
83430
83431
83432
83433
83434
83435
83436
83437
83438
83439
83440
83441
83442
83443
83444
83445
83446
83447
83448
83449
83450
83451
83452
83453
83454
83455
83456
83457
83458
83459
83460
83461
83462
83463
83464
83465
83466
83467
83468
83469
83470
83471
83472
83473
83474
83475
83476
83477
83478
83479
83480
83481
83482
83483
83484
83485
83486
83487
83488
83489
83490
83491
83492
83493
83494
83495
83496
83497
83498
83499
83500
83501
83502
**  yy_shift_ofst[]    For each state, the offset into yy_action for
**                     shifting terminals.
**  yy_reduce_ofst[]   For each state, the offset into yy_action for
**                     shifting non-terminals after a reduce.
**  yy_default[]       Default action for each state.
*/
static const YYACTIONTYPE yy_action[] = {
 /*     0 */   304,  930,  120,  609,    1,  178,  214,  436,   62,   62,
 /*    10 */    62,   62,  216,   64,   64,   64,   64,   65,   65,   66,
 /*    20 */    66,   66,   67,  216,  406,  403,  443,  449,   69,   64,
 /*    30 */    64,   64,   64,   65,   65,   66,   66,   66,   67,  216,
 /*    40 */   469,  467,  336,  174,   61,   60,  309,  453,  454,  450,
 /*    50 */   450,   63,   63,   62,   62,   62,   62,  200,   64,   64,
 /*    60 */    64,   64,   65,   65,   66,   66,   66,   67,  216,  304,
 /*    70 */   510,  312,  436,  509,  438,   83,   64,   64,   64,   64,
 /*    80 */    65,   65,   66,   66,   66,   67,  216,   65,   65,   66,
 /*    90 */    66,   66,   67,  216,  511,  443,  449,  325,  408,   59,
 /*   100 */   465,  218,   57,  213,  411,  496,  428,  440,  440,  440,
 /*   110 */   206,   67,  216,   61,   60,  309,  453,  454,  450,  450,
 /*   120 */    63,   63,   62,   62,   62,   62,  552,   64,   64,   64,
 /*   130 */    64,   65,   65,   66,   66,   66,   67,  216,  304,  228,
 /*   140 */   186,  469,  544,  312,  433,  170,  114,  256,  357,  261,
 /*   150 */   358,  181,  425,   20,  426,  542,  153,   85,  265,  465,
 /*   160 */   218,  150,  151,  539,  443,  449,   95,  311,  394,  412,
 /*   170 */   413,  510,  276,  427,  436,  438,  152,  553,  545,  589,
 /*   180 */   590,  539,   61,   60,  309,  453,  454,  450,  450,   63,
 /*   190 */    63,   62,   62,   62,   62,  402,   64,   64,   64,   64,
 /*   200 */    65,   65,   66,   66,   66,   67,  216,  304,  440,  440,
 /*   210 */   440,  228,  109,  411,  399,  523,  593,  330,  114,  256,
 /*   220 */   357,  261,  358,  181,  187,  330,  485,  359,  362,  363,
 /*   230 */   265,  593,  241,  443,  449,  592,  591,  248,  364,  436,
 /*   240 */   432,   35,  492,   66,   66,   66,   67,  216,  432,   42,
 /*   250 */   592,   61,   60,  309,  453,  454,  450,  450,   63,   63,
 /*   260 */    62,   62,   62,   62,  401,   64,   64,   64,   64,   65,
 /*   270 */    65,   66,   66,   66,   67,  216,  304,  570,  412,  413,
 /*   280 */   187,  501,  344,  359,  362,  363,  215,  354,  346,  221,
 /*   290 */   330,  341,  330,   56,  364,  569,  588,  217,   68,  156,
 /*   300 */    70,  155,  443,  449,   68,  187,   70,  155,  359,  362,
 /*   310 */   363,  397,  217,  432,   35,  432,   36,  148,  569,  364,
 /*   320 */    61,   60,  309,  453,  454,  450,  450,   63,   63,   62,
 /*   330 */    62,   62,   62,  433,   64,   64,   64,   64,   65,   65,
 /*   340 */    66,   66,   66,   67,  216,  387,  282,  281,  330,  304,
 /*   350 */   474,   68,  480,   70,  155,  344,  214,  154,  299,  330,
 /*   360 */   343,  467,  543,  174,  384,  475,  257,  247,  387,  282,
 /*   370 */   281,  432,   28,  411,  160,  443,  449,  258,  476,  214,
 /*   380 */   516,  496,  432,   42,  198,  492,   68,  162,   70,  155,
 /*   390 */   517,  433,   78,   61,   60,  309,  453,  454,  450,  450,
 /*   400 */    63,   63,   62,   62,   62,   62,  595,   64,   64,   64,
 /*   410 */    64,   65,   65,   66,   66,   66,   67,  216,  433,  367,
 /*   420 */   349,  433,  304,  220,  222,  544,  505,  330,  465,  330,
 /*   430 */   230,  330,  240,  163,  161,  554,   20,  431,  412,  413,
 /*   440 */     2,  430,  385,  375,  411,  198,  182,  249,  443,  449,
 /*   450 */   432,   35,  432,   50,  432,   50,  310,  460,  461,   17,
 /*   460 */   207,  335,  460,  461,  388,   81,   61,   60,  309,  453,
 /*   470 */   454,  450,  450,   63,   63,   62,   62,   62,   62,  433,
 /*   480 */    64,   64,   64,   64,   65,   65,   66,   66,   66,   67,
 /*   490 */   216,  304,  348,  504,  433,  508,  531,  486,  320,  353,
 /*   500 */   321,  306,  457,  385,   23,  331,  265,  470,  411,  412,
 /*   510 */   413,  444,  445,  551,  526,  307,  532,  443,  449,  217,
 /*   520 */   550,  496,  432,    3,  217,  381,  607,  921,  333,  921,
 /*   530 */   456,  456,  447,  448,  276,   61,   60,  309,  453,  454,
 /*   540 */   450,  450,   63,   63,   62,   62,   62,   62,  410,   64,
 /*   550 */    64,   64,   64,   65,   65,   66,   66,   66,   67,  216,
 /*   560 */   304,  446,  607,  920,  525,  920,  604,  264,  314,  474,
 /*   570 */   411,  123,  411,  412,  413,  124,  277,  487,  234,  333,
 /*   580 */   411,  456,  456,  319,  475,  411,  443,  449,  333,  377,
 /*   590 */   456,  456,  286,  333,  380,  456,  456,  476,  178,  340,
 /*   600 */   436,  420,  604,  315,   61,   60,  309,  453,  454,  450,
 /*   610 */   450,   63,   63,   62,   62,   62,   62,  330,   64,   64,
 /*   620 */    64,   64,   65,   65,   66,   66,   66,   67,  216,  304,
 /*   630 */   289,    5,  287,  268,  466,  412,  413,  412,  413,  396,
 /*   640 */   432,   29,  503,  330,  159,  412,  413,  610,  406,  403,
 /*   650 */   412,  413,  414,  415,  416,  443,  449,  333,  214,  456,
 /*   660 */   456,  488,  276,  489,   21,  436,  432,   24,  436,  487,
 /*   670 */   514,  515,  395,   61,   60,  309,  453,  454,  450,  450,
 /*   680 */    63,   63,   62,   62,   62,   62,  330,   64,   64,   64,







 /*   690 */    64,   65,   65,   66,   66,   66,   67,  216,  304,  560,
 /*   700 */   374,  560,  352,   94,  578,  330,  567,  515,  330,  432,
 /*   710 */    33,  330,  288,  330,  562,  330,  544,  330,  561,  183,
 /*   720 */   184,  185,  603,  303,  443,  449,  600,   20,  432,   54,
 /*   730 */   376,  432,   53,  436,  432,   99,  432,   97,  432,  102,
 /*   740 */   432,  103,   61,   60,  309,  453,  454,  450,  450,   63,
 /*   750 */    63,   62,   62,   62,   62,  330,   64,   64,   64,   64,
 /*   760 */    65,   65,   66,   66,   66,   67,  216,  304,  330,  405,
 /*   770 */     1,  202,  330,  512,  330,  214,  330,  171,  432,  108,
 /*   780 */   330,  421,  429,  330,  487,  342,  330,  384,   19,  386,
 /*   790 */   145,  432,  110,  443,  449,  432,   16,  432,  100,  432,
 /*   800 */    34,  351,  270,  432,   98,  433,  432,   25,  276,  432,
 /*   810 */    55,   61,   60,  309,  453,  454,  450,  450,   63,   63,
 /*   820 */    62,   62,   62,   62,  330,   64,   64,   64,   64,   65,
 /*   830 */    65,   66,   66,   66,   67,  216,  304,  330,  323,  119,
 /*   840 */   274,  330,  272,  330,  355,  330,  422,  432,  111,  330,
 /*   850 */   580,  159,  115,  233,  330,  177,  161,  439,  463,  463,
 /*   860 */   432,  112,  443,  449,  432,  113,  432,   26,  432,   37,
 /*   870 */   649,  431,  432,   38,  492,  430,  487,  432,   27,  264,
 /*   880 */    61,   71,  309,  453,  454,  450,  450,   63,   63,   62,
 /*   890 */    62,   62,   62,  330,   64,   64,   64,   64,   65,   65,
 /*   900 */    66,   66,   66,   67,  216,  304,  330,  264,  264,  528,
 /*   910 */   330,  157,  330,  252,  330,  229,  432,   39,  330,  482,
 /*   920 */   332,  478,   77,  330,   79,  330,  483,  520,  521,  432,
 /*   930 */    40,  443,  449,  432,   41,  432,   43,  432,   44,  492,
 /*   940 */   491,  432,   45,  316,  317,  433,  432,   30,  432,   31,
 /*   950 */    60,  309,  453,  454,  450,  450,   63,   63,   62,   62,
 /*   960 */    62,   62,  330,   64,   64,   64,   64,   65,   65,   66,
 /*   970 */    66,   66,   67,  216,  304,  330,  264,  564,  254,  330,
 /*   980 */   458,  330,   22,  330,  495,  432,   46,  330,  494,  535,
 /*   990 */   179,  186,  330,  267,  330,  186,  451,  497,  432,   47,
 /*  1000 */   443,  449,  432,   48,  432,   49,  432,   32,  182,  262,
 /*  1010 */   432,   10,  318,  276,  389,  432,   51,  432,   52,  276,
 /*  1020 */   309,  453,  454,  450,  450,   63,   63,   62,   62,   62,










 /*  1030 */    62,  276,   64,   64,   64,   64,   65,   65,   66,   66,
 /*  1040 */    66,   67,  216,  165,  276,  276,  189,  192,  235,  236,
 /*  1050 */   237,  168,  239,  566,  105,  581,   18,  530,  529,   73,
 /*  1060 */   337,  582,    4,  306,  605,  527,  308,  211,  366,  294,
 /*  1070 */   186,  263,  533,  231,  334,  565,  295,  186,  534,  546,
 /*  1080 */   433,  433,  573,  574,  179,   92,  232,  292,  209,  269,
 /*  1090 */   569,  339,  271,  853,  208,  273,  275,  210,  585,  195,
 /*  1100 */    92,  469,  371,  606,  602,    8,  302,  423,  280,  379,
 /*  1110 */   382,  383,  147,  242,  283,  437,  462,  284,  285,  577,
 /*  1120 */   338,   76,   75,  587,  293,  296,  297,  599,  481,  464,
 /*  1130 */    74,  328,  329,  250,  526,  438,  572,  166,  290,  393,
 /*  1140 */   392,  291,  281,  409,  537,  584,  305,  484,  259,  540,
 /*  1150 */   417,  214,  418,  214,  536,  326,  538,  419,  361,  167,
 /*  1160 */    73,  337,  169,    4,    7,  327,  347,  308,  440,  440,
 /*  1170 */   440,  441,  442,   11,   85,  334,  398,   84,  434,  345,
 /*  1180 */   243,   58,  244,   73,  337,   80,    4,  245,  435,  246,
 /*  1190 */   308,  176,  339,  479,   86,  121,  356,  350,  334,  493,
 /*  1200 */   251,  253,  469,  499,  255,  513,  500,  518,  313,  519,
 /*  1210 */   260,  523,  125,  522,  226,  339,  219,  524,  368,  190,
 /*  1220 */   191,  300,   76,   75,  502,  469,  225,  227,  547,  541,
 /*  1230 */   548,   74,  328,  329,  301,  555,  438,  549,  370,  193,
 /*  1240 */   372,  194,  557,   89,  196,   76,   75,  278,  378,  117,
 /*  1250 */   558,  568,  133,  390,   74,  328,  329,  199,  391,  438,
 /*  1260 */   322,  134,  135,  136,  575,  143,  583,  596,  139,  440,
 /*  1270 */   440,  440,  441,  442,   11,  597,  598,  601,  137,  142,
 /*  1280 */   101,  224,  104,  407,  238,  424,  650,  651,   93,  172,
 /*  1290 */    96,  173,  440,  440,  440,  441,  442,   11,  452,  455,
 /*  1300 */    72,  471,  459,  468,  472,  144,  158,    6,  473,  490,
 /*  1310 */   107,  175,  477,   82,   13,  122,   12,  180,  506,  118,
 /*  1320 */   498,  164,  507,  324,  223,   87,  126,  116,  266,  127,
 /*  1330 */    88,  128,  188,  258,  360,  369,  146,  556,  129,  373,
 /*  1340 */   179,  365,  279,  197,  131,  130,  563,    9,  571,  132,
 /*  1350 */   559,  201,   14,  576,  203,  204,  205,  579,  140,  138,
 /*  1360 */   141,   15,  586,  594,  212,  106,  400,  298,  149,  404,
 /*  1370 */   931,  608,   90,   91,
};
static const YYCODETYPE yy_lookahead[] = {
 /*     0 */    19,  142,  143,  144,  145,   24,  113,   26,   72,   73,
 /*    10 */    74,   75,   87,   77,   78,   79,   80,   81,   82,   83,
 /*    20 */    84,   85,   86,   87,    1,    2,   45,   46,   76,   77,
 /*    30 */    78,   79,   80,   81,   82,   83,   84,   85,   86,   87,
 /*    40 */    61,  165,  166,  167,   63,   64,   65,   66,   67,   68,
 /*    50 */    69,   70,   71,   72,   73,   74,   75,   25,   77,   78,
 /*    60 */    79,   80,   81,   82,   83,   84,   85,   86,   87,   19,
 /*    70 */    91,   19,   91,  173,   95,   25,   77,   78,   79,   80,
 /*    80 */    81,   82,   83,   84,   85,   86,   87,   81,   82,   83,
 /*    90 */    84,   85,   86,   87,  173,   45,   46,  146,  147,   49,
 /*   100 */    81,   82,   22,  152,   26,  150,   26,  128,  129,  130,
 /*   110 */   159,   86,   87,   63,   64,   65,   66,   67,   68,   69,
 /*   120 */    70,   71,   72,   73,   74,   75,  185,   77,   78,   79,
 /*   130 */    80,   81,   82,   83,   84,   85,   86,   87,   19,   87,
 /*   140 */    25,   61,  150,   19,  193,   93,   94,   95,   96,   97,
 /*   150 */    98,   99,  160,  161,  171,  172,   25,  125,  106,   81,
 /*   160 */    82,   81,   82,  180,   45,   46,   47,  212,  217,   91,
 /*   170 */    92,   91,  150,  172,   26,   95,  184,  185,  185,  101,
 /*   180 */   102,  180,   63,   64,   65,   66,   67,   68,   69,   70,
 /*   190 */    71,   72,   73,   74,   75,  244,   77,   78,   79,   80,
 /*   200 */    81,   82,   83,   84,   85,   86,   87,   19,  128,  129,
 /*   210 */   130,   87,   24,   26,  192,  100,  150,  150,   94,   95,
 /*   220 */    96,   97,   98,   99,   93,  150,   25,   96,   97,   98,
 /*   230 */   106,  150,  194,   45,   46,  169,  170,  150,  107,   91,
 /*   240 */   173,  174,  165,   83,   84,   85,   86,   87,  173,  174,
 /*   250 */   169,   63,   64,   65,   66,   67,   68,   69,   70,   71,
 /*   260 */    72,   73,   74,   75,  242,   77,   78,   79,   80,   81,
 /*   270 */    82,   83,   84,   85,   86,   87,   19,   11,   91,   92,
 /*   280 */    93,  204,  215,   96,   97,   98,  196,  220,  213,  214,
 /*   290 */   150,  190,  150,  203,  107,   52,  230,  231,  221,  159,
 /*   300 */   223,  224,   45,   46,  221,   93,  223,  224,   96,   97,
 /*   310 */    98,  230,  231,  173,  174,  173,  174,  116,   52,  107,
 /*   320 */    63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
 /*   330 */    73,   74,   75,  193,   77,   78,   79,   80,   81,   82,
 /*   340 */    83,   84,   85,   86,   87,  102,  103,  104,  150,   19,
 /*   350 */    12,  221,  222,  223,  224,  215,  113,  159,  162,  150,
 /*   360 */   220,  165,  166,  167,  150,   27,   95,  225,  102,  103,
 /*   370 */   104,  173,  174,   26,  150,   45,   46,  106,   40,  113,
 /*   380 */    42,  150,  173,  174,  159,  165,  221,  159,  223,  224,
 /*   390 */    52,  193,  135,   63,   64,   65,   66,   67,   68,   69,
 /*   400 */    70,   71,   72,   73,   74,   75,  241,   77,   78,   79,
 /*   410 */    80,   81,   82,   83,   84,   85,   86,   87,  193,   19,
 /*   420 */   150,  193,   19,  214,  204,  150,   23,  150,   81,  150,
 /*   430 */   216,  150,  157,  205,  206,  160,  161,  110,   91,   92,
 /*   440 */    22,  114,  217,  212,   26,  159,   46,  150,   45,   46,
 /*   450 */   173,  174,  173,  174,  173,  174,  168,  169,  170,  234,
 /*   460 */   159,  168,  169,  170,  239,  135,   63,   64,   65,   66,
 /*   470 */    67,   68,   69,   70,   71,   72,   73,   74,   75,  193,
 /*   480 */    77,   78,   79,   80,   81,   82,   83,   84,   85,   86,
 /*   490 */    87,   19,  215,   23,  193,   23,   33,  207,  219,  150,
 /*   500 */   219,  101,   23,  217,   22,  150,  106,   23,   26,   91,
 /*   510 */    92,   45,   46,  180,  181,  154,   53,   45,   46,  231,
 /*   520 */   187,  150,  173,  174,  231,  239,   22,   23,  109,   25,
 /*   530 */   111,  112,   66,   67,  150,   63,   64,   65,   66,   67,
 /*   540 */    68,   69,   70,   71,   72,   73,   74,   75,  150,   77,
 /*   550 */    78,   79,   80,   81,   82,   83,   84,   85,   86,   87,
 /*   560 */    19,   95,   22,   23,   23,   25,   62,  150,  105,   12,
 /*   570 */    26,   23,   26,   91,   92,   23,  192,   25,  148,  109,
 /*   580 */    26,  111,  112,  212,   27,   26,   45,   46,  109,  228,
 /*   590 */   111,  112,   17,  109,  233,  111,  112,   40,   24,   42,
 /*   600 */    26,  150,   62,  186,   63,   64,   65,   66,   67,   68,
 /*   610 */    69,   70,   71,   72,   73,   74,   75,  150,   77,   78,
 /*   620 */    79,   80,   81,   82,   83,   84,   85,   86,   87,   19,
 /*   630 */    55,  195,   57,   23,  165,   91,   92,   91,   92,   94,
 /*   640 */   173,  174,   83,  150,   92,   91,   92,    0,    1,    2,
 /*   650 */    91,   92,    7,    8,    9,   45,   46,  109,  113,  111,
 /*   660 */   112,  117,  150,  117,   22,   91,  173,  174,   26,  117,
 /*   670 */   189,  190,  127,   63,   64,   65,   66,   67,   68,   69,
 /*   680 */    70,   71,   72,   73,   74,   75,  150,   77,   78,   79,
 /*   690 */    80,   81,   82,   83,   84,   85,   86,   87,   19,  102,
 /*   700 */   103,  104,   19,   24,  192,  150,  189,  190,  150,  173,
 /*   710 */   174,  150,  137,  150,   28,  150,  150,  150,   32,  102,
 /*   720 */   103,  104,  247,  248,   45,   46,  160,  161,  173,  174,
 /*   730 */    44,  173,  174,   91,  173,  174,  173,  174,  173,  174,
 /*   740 */   173,  174,   63,   64,   65,   66,   67,   68,   69,   70,
 /*   750 */    71,   72,   73,   74,   75,  150,   77,   78,   79,   80,
 /*   760 */    81,   82,   83,   84,   85,   86,   87,   19,  150,  144,
 /*   770 */   145,  159,  150,  164,  150,  113,  150,   22,  173,  174,
 /*   780 */   150,  150,  173,  150,   25,  150,  150,  150,   22,  127,
 /*   790 */    24,  173,  174,   45,   46,  173,  174,  173,  174,  173,
 /*   800 */   174,  118,   17,  173,  174,  193,  173,  174,  150,  173,
 /*   810 */   174,   63,   64,   65,   66,   67,   68,   69,   70,   71,
 /*   820 */    72,   73,   74,   75,  150,   77,   78,   79,   80,   81,
 /*   830 */    82,   83,   84,   85,   86,   87,   19,  150,  245,  246,
 /*   840 */    55,  150,   57,  150,   83,  150,  150,  173,  174,  150,
 /*   850 */   192,   92,  150,  216,  150,  205,  206,  150,  128,  129,
 /*   860 */   173,  174,   45,   46,  173,  174,  173,  174,  173,  174,
 /*   870 */   115,  110,  173,  174,  165,  114,  117,  173,  174,  150,
 /*   880 */    63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
 /*   890 */    73,   74,   75,  150,   77,   78,   79,   80,   81,   82,
 /*   900 */    83,   84,   85,   86,   87,   19,  150,  150,  150,  182,
 /*   910 */   150,  159,  150,  204,  150,  186,  173,  174,  150,   30,
 /*   920 */    19,  150,  134,  150,  136,  150,   37,    7,    8,  173,
 /*   930 */   174,   45,   46,  173,  174,  173,  174,  173,  174,  165,
 /*   940 */   150,  173,  174,  186,  186,  193,  173,  174,  173,  174,
 /*   950 */    64,   65,   66,   67,   68,   69,   70,   71,   72,   73,
 /*   960 */    74,   75,  150,   77,   78,   79,   80,   81,   82,   83,
 /*   970 */    84,   85,   86,   87,   19,  150,  150,   21,  204,  150,
 /*   980 */    23,  150,   25,  150,  150,  173,  174,  150,   23,   23,
 /*   990 */    25,   25,  150,   23,  150,   25,   95,  150,  173,  174,
 /*  1000 */    45,   46,  173,  174,  173,  174,  173,  174,   46,  150,
 /*  1010 */   173,  174,  186,  150,   58,  173,  174,  173,  174,  150,
 /*  1020 */    65,   66,   67,   68,   69,   70,   71,   72,   73,   74,
 /*  1030 */    75,  150,   77,   78,   79,   80,   81,   82,   83,   84,
 /*  1040 */    85,   86,   87,    5,  150,  150,  159,  159,   10,   11,
 /*  1050 */    12,   13,   14,   97,   16,  192,   22,   94,   95,   19,
 /*  1060 */    20,  192,   22,  101,   23,  150,   26,   29,   23,   31,
 /*  1070 */    25,  150,  182,  192,   34,   23,   38,   25,  182,  150,
 /*  1080 */   193,  193,   23,   23,   25,   25,  192,  192,   50,  150,
 /*  1090 */    52,   51,  150,  137,   56,  150,  150,   59,   23,  235,
 /*  1100 */    25,   61,  236,   62,   23,   71,   25,  153,  150,  150,
 /*  1110 */   150,  150,  195,  197,  150,  165,  232,  150,  150,  150,


 /*  1120 */   227,   81,   82,  150,  150,  150,  150,  150,  176,  232,
 /*  1130 */    90,   91,   92,  208,  181,   95,  198,    6,  208,  208,
 /*  1140 */   102,  103,  104,  149,  165,  198,  108,  176,  176,  165,
 /*  1150 */   149,  113,  149,  113,  176,  149,  176,   13,  177,  151,
 /*  1160 */    19,   20,  151,   22,   25,  158,  122,   26,  128,  129,
 /*  1170 */   130,  131,  132,  133,  125,   34,  138,  123,  193,  121,
 /*  1180 */   198,  124,  199,   19,   20,  134,   22,  200,  202,  201,
 /*  1190 */    26,  115,   51,  156,  101,  156,  101,  120,   34,  210,
 /*  1200 */   209,  209,   61,  210,  209,  175,  210,  175,   43,  183,
 /*  1210 */   175,  100,   22,  177,   87,   51,  226,  175,   18,  155,
 /*  1220 */   155,  178,   81,   82,   83,   61,  229,  229,  175,  183,
 /*  1230 */   175,   90,   91,   92,  178,  156,   95,  175,  156,  155,
 /*  1240 */    41,  156,  156,  134,  155,   81,   82,  237,  156,   63,
 /*  1250 */   238,  188,   22,  156,   90,   91,   92,  188,   18,   95,
 /*  1260 */   156,  191,  191,  191,  198,  218,  198,   36,  188,  128,
 /*  1270 */   129,  130,  131,  132,  133,  156,  156,  140,  191,  218,
 /*  1280 */   163,  179,  179,    1,   15,   23,  115,  115,  240,  115,
 /*  1290 */   240,  115,  128,  129,  130,  131,  132,  133,   95,  110,
 /*  1300 */    22,   11,   23,   23,   23,   22,   22,  119,   23,  117,
 /*  1310 */   243,   25,   23,   25,  119,   22,   25,  119,   23,  246,
 /*  1320 */   118,  115,   23,  249,   47,   22,   22,   35,   23,   22,
 /*  1330 */    22,   22,   99,  106,   47,   19,   24,   20,  101,   39,
 /*  1340 */    25,   47,  137,  101,   22,   48,   48,    5,    1,  105,
 /*  1350 */    54,  126,   22,    1,  116,   17,  120,   20,  105,  116,
 /*  1360 */   126,   22,  127,   23,   15,   17,   60,  139,   22,    3,
 /*  1370 */   250,    4,   71,   71,
};
#define YY_SHIFT_USE_DFLT (-108)
#define YY_SHIFT_MAX 404
static const short yy_shift_ofst[] = {
 /*     0 */    23, 1038, 1040,  -19, 1040, 1164, 1164,  187,   78,  243,
 /*    10 */   119, 1164, 1164, 1164, 1164, 1164,  -48,  266,  347,  554,
 /*    20 */   148,   19,   19, -107,   50,  188,  257,  330,  403,  472,
 /*    30 */   541,  610,  679,  748,  817,  748,  748,  748,  748,  748,
 /*    40 */   748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
 /*    50 */   748,  748,  748,  886,  955,  955, 1141, 1164, 1164, 1164,
 /*    60 */  1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164,
 /*    70 */  1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164,
 /*    80 */  1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164,
 /*    90 */  1164, 1164, 1164, 1164, 1164, 1164, 1164,  -64,  -64,   -1,
 /*   100 */    -1,   52,    6,  160,  400,  956,  554,  554,   25,  148,
 /*   110 */   -75, -108, -108, -108,   80,  124,  338,  338,  504,  540,
 /*   120 */   647,  574,  554,  574,  574,  554,  554,  554,  554,  554,
 /*   130 */   554,  554,  554,  554,  554,  554,  554,  554,  554,  554,
 /*   140 */   554,  554,  545,  662, -107, -107, -107, -108, -108, -108,

 /*   150 */   -21,  -21,  131,  212,  470,  418,  479,  484,  557,  544,
 /*   160 */   546,  482,  548,  552,  559,  645,  554,  554,  554,  554,
 /*   170 */   554,  761,  554,  554,  642,  554,  554,  759,  554,  554,
 /*   180 */   554,  554,  554,  463,  463,  463,  554,  554,  554,  419,
 /*   190 */   554,  554,  419,  554,  686,  597,  554,  554,  419,  554,
 /*   200 */   554,  554,  419,  554,  554,  554,  419,  419,  554,  554,
 /*   210 */   554,  554,  554,  766,  327,  201,  148,  730,  730,  788,
 /*   220 */   889,  889,  683,  889,  962,  889,  148,  889,  148,  115,
 /*   230 */    32,  683,  683,   32, 1131, 1131, 1131, 1131, 1144, 1144,
 /*   240 */  1139, -107, 1049, 1044, 1054, 1058, 1057, 1051, 1076, 1076,
 /*   250 */  1093, 1077, 1093, 1077, 1093, 1077, 1095, 1095, 1165, 1095,
 /*   260 */  1111, 1095, 1190, 1127, 1127, 1165, 1095, 1095, 1095, 1190,
 /*   270 */  1200, 1076, 1200, 1076, 1200, 1076, 1076, 1199, 1109, 1200,
 /*   280 */  1076, 1186, 1186, 1230, 1049, 1076, 1240, 1240, 1240, 1240,
 /*   290 */  1049, 1186, 1230, 1076, 1231, 1231, 1076, 1076, 1137, -108,
 /*   300 */  -108, -108, -108, -108,  466,  575,  617,  785,  755,  901,
 /*   310 */   957,  965,  271,  920,  963,  966,  970, 1045, 1052, 1059,
 /*   320 */  1060, 1075, 1034, 1081, 1041, 1282, 1269, 1262, 1171, 1172,
 /*   330 */  1174, 1176, 1203, 1189, 1278, 1279, 1280, 1283, 1290, 1284,
 /*   340 */  1281, 1286, 1285, 1289, 1288, 1188, 1291, 1195, 1288, 1192,
 /*   350 */  1293, 1198, 1202, 1206, 1295, 1299, 1292, 1277, 1303, 1287,
 /*   360 */  1304, 1305, 1307, 1308, 1294, 1309, 1233, 1227, 1316, 1317,
 /*   370 */  1312, 1237, 1300, 1296, 1297, 1315, 1298, 1205, 1242, 1322,
 /*   380 */  1342, 1347, 1244, 1301, 1302, 1225, 1330, 1238, 1352, 1338,
 /*   390 */  1236, 1337, 1243, 1253, 1234, 1339, 1235, 1340, 1348, 1306,
 /*   400 */  1349, 1228, 1346, 1366, 1367,
};
#define YY_REDUCE_USE_DFLT (-142)
#define YY_REDUCE_MAX 303
static const short yy_reduce_ofst[] = {
 /*     0 */  -141,  -49,  140,   77,  198,   67,   75,   -8,   66,  225,
 /*    10 */   165,  142,  209,  277,  279,  281,  130,  286,   81,  275,
 /*    20 */   196,  288,  293,  228,   83,   83,   83,   83,   83,   83,
 /*    30 */    83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
 /*    40 */    83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
 /*    50 */    83,   83,   83,   83,   83,   83,  349,  467,  493,  536,
 /*    60 */   555,  558,  561,  563,  565,  567,  605,  618,  622,  624,
 /*    70 */   626,  630,  633,  636,  674,  687,  691,  693,  695,  699,
 /*    80 */   704,  743,  756,  760,  762,  764,  768,  773,  775,  812,
 /*    90 */   825,  829,  831,  833,  837,  842,  844,   83,   83,   83,
 /*   100 */    83,  -17,   83,   83,  333,  361,   22,  566,   83, -124,
 /*   110 */    83,   83,   83,   83,  609,    1,  481,  517,  475,  475,
 /*   120 */   625,  220,  -45,  709,  774,  417,  729,  757,  758,  384,
 /*   130 */   231,  826,  214,  371,  512,  658,  863,  869,  881,  894,
 /*   140 */   637,  895,  301,  612,  752,  887,  888,   90,  650,  593,
 /*   150 */  -100,  -79,  -59,   -7,   38,   87,   38,   38,  101,  224,
 /*   160 */   270,  297,   38,  290,  355,  430,  398,  451,  631,  696,
 /*   170 */   702,  436,  355,  707,  469,  635,  771,  290,  790,  834,
 /*   180 */   847,  859,  915,  727,  890,  896,  921,  929,  939,   38,
 /*   190 */   942,  945,   38,  946,  864,  866,  958,  959,   38,  960,
 /*   200 */   961,  964,   38,  967,  968,  969,   38,   38,  973,  974,
 /*   210 */   975,  976,  977,  954,  917,  916,  950,  884,  897,  893,
 /*   220 */   952,  971,  925,  972,  953,  978,  979,  980,  984,  981,
 /*   230 */   938,  930,  931,  947,  994, 1001, 1003, 1006, 1008, 1011,
 /*   240 */  1007,  985,  982,  983,  987,  988,  986,  990, 1037, 1039,
 /*   250 */   991,  989,  992,  993,  995,  996, 1030, 1032, 1026, 1035,
 /*   260 */  1036, 1042, 1043,  997,  998, 1046, 1053, 1055, 1062, 1056,
 /*   270 */  1064, 1079, 1065, 1082, 1084, 1085, 1086, 1010, 1012, 1089,
 /*   280 */  1092, 1063, 1069, 1047, 1066, 1097, 1070, 1071, 1072, 1087,
 /*   290 */  1068, 1080, 1061, 1104, 1048, 1050, 1119, 1120, 1067, 1117,
 /*   300 */  1102, 1103, 1073, 1074,
};
static const YYACTIONTYPE yy_default[] = {
 /*     0 */   615,  929,  848,  736,  929,  848,  929,  929,  875,  929,
 /*    10 */   904,  846,  929,  929,  929,  929,  820,  929,  875,  929,
 /*    20 */   652,  875,  875,  740,  771,  929,  929,  929,  929,  929,
 /*    30 */   929,  929,  929,  772,  929,  850,  845,  841,  843,  842,
 /*    40 */   849,  773,  762,  769,  776,  751,  888,  778,  779,  785,
 /*    50 */   786,  905,  903,  808,  807,  826,  929,  929,  929,  929,
 /*    60 */   929,  929,  929,  929,  929,  929,  929,  929,  929,  929,
 /*    70 */   929,  929,  929,  929,  929,  929,  929,  929,  929,  929,
 /*    80 */   929,  929,  929,  929,  929,  929,  929,  929,  929,  929,
 /*    90 */   929,  929,  929,  929,  929,  929,  929,  810,  832,  809,
 /*   100 */   819,  645,  811,  812,  705,  640,  929,  929,  813,  929,
 /*   110 */   814,  827,  828,  829,  929,  929,  929,  929,  929,  929,
 /*   120 */   615,  736,  929,  736,  736,  929,  929,  929,  929,  929,
 /*   130 */   929,  929,  929,  929,  929,  929,  929,  929,  929,  929,
 /*   140 */   929,  929,  929,  929,  929,  929,  929,  730,  740,  922,
 /*   150 */   929,  929,  696,  929,  929,  929,  929,  929,  929,  929,
 /*   160 */   929,  929,  929,  929,  929,  623,  621,  929,  929,  929,
 /*   170 */   929,  728,  929,  929,  654,  929,  929,  738,  929,  929,
 /*   180 */   929,  929,  929,  929,  929,  929,  929,  929,  929,  642,
 /*   190 */   929,  929,  717,  929,  881,  929,  929,  929,  895,  929,
 /*   200 */   929,  929,  893,  929,  929,  929,  719,  781,  861,  929,
 /*   210 */   908,  910,  929,  929,  728,  737,  929,  929,  929,  844,
 /*   220 */   765,  765,  753,  765,  675,  765,  929,  765,  929,  678,
 /*   230 */   775,  753,  753,  775,  620,  620,  620,  620,  631,  631,
 /*   240 */   695,  929,  775,  766,  768,  758,  770,  929,  744,  744,
 /*   250 */   752,  757,  752,  757,  752,  757,  707,  707,  692,  707,
 /*   260 */   678,  707,  854,  858,  858,  692,  707,  707,  707,  854,
 /*   270 */   637,  744,  637,  744,  637,  744,  744,  885,  887,  637,
 /*   280 */   744,  709,  709,  787,  775,  744,  716,  716,  716,  716,
 /*   290 */   775,  709,  787,  744,  907,  907,  744,  744,  915,  662,
 /*   300 */   680,  680,  922,  927,  929,  929,  929,  929,  794,  929,
 /*   310 */   929,  929,  929,  929,  929,  929,  929,  929,  929,  929,
 /*   320 */   929,  929,  868,  929,  929,  929,  629,  929,  799,  795,
 /*   330 */   929,  796,  929,  722,  929,  929,  929,  929,  929,  929,
 /*   340 */   929,  929,  929,  929,  847,  929,  759,  929,  767,  929,
 /*   350 */   929,  929,  929,  929,  929,  929,  929,  929,  929,  929,
 /*   360 */   929,  929,  929,  929,  929,  929,  929,  929,  929,  929,
 /*   370 */   929,  929,  929,  929,  883,  884,  929,  929,  929,  929,
 /*   380 */   929,  929,  929,  929,  929,  929,  929,  929,  929,  929,
 /*   390 */   929,  929,  929,  929,  929,  929,  929,  929,  929,  914,
 /*   400 */   929,  929,  917,  616,  929,  611,  613,  614,  618,  619,
 /*   410 */   622,  649,  650,  651,  624,  625,  626,  627,  628,  630,
 /*   420 */   634,  632,  633,  635,  641,  643,  661,  663,  647,  665,
 /*   430 */   726,  727,  791,  720,  721,  725,  648,  802,  793,  797,
 /*   440 */   798,  800,  801,  815,  816,  818,  824,  831,  834,  817,
 /*   450 */   822,  823,  825,  830,  833,  723,  724,  837,  655,  656,
 /*   460 */   659,  660,  871,  873,  872,  874,  658,  657,  803,  806,
 /*   470 */   839,  840,  896,  897,  898,  899,  900,  835,  745,  838,
 /*   480 */   821,  760,  763,  764,  761,  729,  739,  747,  748,  749,
 /*   490 */   750,  734,  735,  741,  756,  789,  790,  754,  755,  742,
 /*   500 */   743,  731,  732,  733,  836,  792,  804,  805,  666,  667,
 /*   510 */   799,  668,  669,  670,  708,  711,  712,  713,  671,  690,
 /*   520 */   693,  694,  672,  679,  673,  674,  681,  682,  683,  686,
 /*   530 */   687,  688,  689,  684,  685,  855,  856,  859,  857,  676,
 /*   540 */   677,  691,  664,  653,  646,  697,  700,  701,  702,  703,
 /*   550 */   704,  706,  698,  699,  644,  636,  638,  746,  877,  886,
 /*   560 */   882,  878,  879,  880,  639,  851,  852,  710,  783,  784,
 /*   570 */   876,  889,  891,  788,  892,  894,  890,  919,  714,  715,
 /*   580 */   718,  860,  901,  774,  777,  780,  782,  862,  863,  864,
 /*   590 */   865,  866,  869,  870,  867,  902,  906,  909,  911,  912,
 /*   600 */   913,  916,  918,  923,  924,  925,  928,  926,  617,  612,
};
#define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0]))

/* The next table maps tokens into fallback tokens.  If a construct
** like the following:
** 
**      %fallback ID X Y Z.







|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<
<
<
<
<
<
<
>
>
>
>
>
>
>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<
<
<
<
<
<
<
<
<
<
>
>
>
>
>
>
>
>
>
>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<


|

|


|

|

|
|
|
|

|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|

|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<
<
<
<
<
<
<
<
|
<
<
|
|
|
<
|
|
|
<
>
>
|
|
|
|
|
|
|
|
|
|
<
|
|
|
|
<
<
<
|
|
|
|
|
|
|
|


|

|
|
|
|
|
|
|
|
<
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<
<
<
<

|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<
<
<


|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<
<
<
<
<
<







83055
83056
83057
83058
83059
83060
83061
83062
83063
83064
83065
83066
83067
83068
83069
83070
83071
83072
83073
83074
83075
83076
83077
83078
83079
83080
83081
83082
83083
83084
83085
83086
83087
83088
83089
83090
83091
83092
83093
83094
83095
83096
83097
83098
83099
83100
83101
83102
83103
83104
83105
83106
83107
83108
83109
83110
83111
83112
83113
83114
83115
83116
83117
83118
83119
83120
83121
83122
83123







83124
83125
83126
83127
83128
83129
83130
83131
83132
83133
83134
83135
83136
83137
83138
83139
83140
83141
83142
83143
83144
83145
83146
83147
83148
83149
83150
83151
83152
83153
83154










83155
83156
83157
83158
83159
83160
83161
83162
83163
83164
83165
83166
83167
83168
83169
83170
83171
83172
83173
83174
83175
83176
83177
83178
83179
83180
83181
83182
83183
83184
83185














83186
83187
83188
83189
83190
83191
83192
83193
83194
83195
83196
83197
83198
83199
83200
83201
83202
83203
83204
83205
83206
83207
83208
83209
83210
83211
83212
83213
83214
83215
83216
83217
83218
83219
83220
83221
83222
83223
83224
83225
83226
83227
83228
83229
83230
83231
83232
83233
83234
83235
83236
83237
83238
83239
83240
83241
83242
83243
83244
83245
83246
83247
83248
83249
83250
83251
83252
83253
83254
83255
83256
83257
83258
83259
83260
83261
83262
83263
83264
83265
83266
83267
83268
83269
83270
83271
83272
83273
83274
83275
83276
83277
83278
83279
83280








83281


83282
83283
83284

83285
83286
83287

83288
83289
83290
83291
83292
83293
83294
83295
83296
83297
83298
83299

83300
83301
83302
83303



83304
83305
83306
83307
83308
83309
83310
83311
83312
83313
83314
83315
83316
83317
83318
83319
83320
83321
83322
83323

83324
83325
83326
83327
83328
83329
83330
83331
83332
83333
83334
83335
83336
83337
83338
83339
83340
83341
83342
83343
83344
83345
83346
83347
83348
83349
83350
83351
83352




83353
83354
83355
83356
83357
83358
83359
83360
83361
83362
83363
83364
83365
83366
83367
83368
83369
83370
83371
83372
83373
83374
83375
83376
83377
83378
83379
83380
83381
83382
83383
83384



83385
83386
83387
83388
83389
83390
83391
83392
83393
83394
83395
83396
83397
83398
83399
83400
83401
83402
83403
83404
83405
83406
83407
83408
83409
83410
83411
83412
83413
83414
83415
83416
83417
83418
83419
83420
83421
83422
83423
83424
83425
83426
83427
83428
83429
83430
83431
83432
83433
83434
83435
83436
83437
83438
83439
83440
83441






83442
83443
83444
83445
83446
83447
83448
**  yy_shift_ofst[]    For each state, the offset into yy_action for
**                     shifting terminals.
**  yy_reduce_ofst[]   For each state, the offset into yy_action for
**                     shifting non-terminals after a reduce.
**  yy_default[]       Default action for each state.
*/
static const YYACTIONTYPE yy_action[] = {
 /*     0 */   273,  829,  106,  545,    2,  163,  192,  394,   56,   56,
 /*    10 */    56,   56,  194,   58,   58,   58,   58,   59,   59,   60,
 /*    20 */    60,   60,   61,  194,  423,  196,  401,  407,   63,   58,
 /*    30 */    58,   58,   58,   59,   59,   60,   60,   60,   61,  194,
 /*    40 */   427,  279,  418,  419,   55,   54,  278,  411,  412,  408,
 /*    50 */   408,   57,   57,   56,   56,   56,   56,  318,   58,   58,
 /*    60 */    58,   58,   59,   59,   60,   60,   60,   61,  194,  273,
 /*    70 */   468,  281,  394,  467,  396,   77,   58,   58,   58,   58,
 /*    80 */    59,   59,   60,   60,   60,   61,  194,   59,   59,   60,
 /*    90 */    60,   60,   61,  194,  502,  401,  407,  364,  361,   53,
 /*   100 */   276,  218,   51,  195,  512,   17,  386,  398,  398,  398,
 /*   110 */   425,  302,  159,   55,   54,  278,  411,  412,  408,  408,
 /*   120 */    57,   57,   56,   56,   56,   56,  469,   58,   58,   58,
 /*   130 */    58,   59,   59,   60,   60,   60,   61,  194,  273,  206,
 /*   140 */   432,  427,  502,   97,  281,  155,  102,  234,  323,  239,
 /*   150 */   324,  166,  383,   17,  470,  433,  317,  138,  243,   61,
 /*   160 */   194,  135,  136,  387,  401,  407,  291,  366,  434,  510,
 /*   170 */   474,  468,  191,  385,  343,  396,  137,  511,  346,  189,
 /*   180 */   475,  497,   55,   54,  278,  411,  412,  408,  408,   57,
 /*   190 */    57,   56,   56,   56,   56,  528,   58,   58,   58,   58,
 /*   200 */    59,   59,   60,   60,   60,   61,  194,  273,  398,  398,
 /*   210 */   398,  369,  206,  391,   60,   60,   60,   61,  194,  102,
 /*   220 */   234,  323,  239,  324,  166,  172,  296,  192,  325,  328,
 /*   230 */   329,  243,  219,  401,  407,  369,  527,  358,  167,  330,
 /*   240 */   450,  352,   62,  438,   64,  140,   16,  369,  131,  390,
 /*   250 */    38,   55,   54,  278,  411,  412,  408,  408,   57,   57,
 /*   260 */    56,   56,   56,   56,  503,   58,   58,   58,   58,   59,
 /*   270 */    59,   60,   60,   60,   61,  194,  370,  371,  172,  459,
 /*   280 */   273,  325,  328,  329,  242,  296,  353,  260,  259,  312,
 /*   290 */   199,  296,  330,  275,  296,  193,   62,  192,   64,  140,
 /*   300 */   370,  371,   50,  141,  461,  235,  401,  407,  390,   31,
 /*   310 */   527,  226,  370,  371,  390,   31,  236,  390,   31,   62,
 /*   320 */   284,   64,  140,   72,   55,   54,  278,  411,  412,  408,
 /*   330 */   408,   57,   57,   56,   56,   56,   56,  391,   58,   58,
 /*   340 */    58,   58,   59,   59,   60,   60,   60,   61,  194,  296,
 /*   350 */   310,  319,  450,  273,  242,  320,  314,  463,  139,  310,
 /*   360 */   353,  260,  259,  172,  309,  296,  325,  328,  329,  307,
 /*   370 */   296,  192,  390,   25,  390,    3,  183,  330,  270,  401,
 /*   380 */   407,  425,  501,  159,   62,  145,   64,  140,  390,   32,
 /*   390 */   207,  200,  391,  390,   46,  315,   75,   55,   54,  278,
 /*   400 */   411,  412,  408,  408,   57,   57,   56,   56,   56,   56,
 /*   410 */   391,   58,   58,   58,   58,   59,   59,   60,   60,   60,
 /*   420 */    61,  194,  273,  296,  462,  227,  466,  333,  520,  296,
 /*   430 */   444,    1,  519,  296,  351,  369,  301,  418,  419,  289,
 /*   440 */   225,  415,  402,  403,  342,  183,  390,   26,  401,  407,
 /*   450 */    15,  394,  390,   38,  167,  354,  390,   46,  509,  484,
 /*   460 */   147,  472,  473,  405,  406,  508,   55,   54,  278,  411,
 /*   470 */   412,  408,  408,   57,   57,   56,   56,   56,   56,  391,
 /*   480 */    58,   58,   58,   58,   59,   59,   60,   60,   60,   61,
 /*   490 */   194,  273,  404,  198,  391,  483,  428,  369,  195,  296,
 /*   500 */   370,  371,  290,  351,  432,  369,  148,  146,  297,  275,
 /*   510 */   299,   20,  414,  414,  243,  369,  394,  401,  407,  433,
 /*   520 */   363,    2,  390,   21,  347,  525,  473,  299,  350,  414,
 /*   530 */   414,  254,  434,  450,  306,   55,   54,  278,  411,  412,
 /*   540 */   408,  408,   57,   57,   56,   56,   56,   56,  109,   58,
 /*   550 */    58,   58,   58,   59,   59,   60,   60,   60,   61,  194,
 /*   560 */   273,  248,  370,  371,  246,    5,  110,  296,  445,  296,
 /*   570 */   370,  371,  230,  255,  296,  546,  364,  361,  450,  296,
 /*   580 */   370,  371,  299,  212,  414,  414,  401,  407,  446,  454,
 /*   590 */   390,   29,  390,   48,  208,  368,  447,  390,   47,  252,
 /*   600 */   263,  250,  390,   89,   55,   54,  278,  411,  412,  408,
 /*   610 */   408,   57,   57,   56,   56,   56,   56,  232,   58,   58,







 /*   620 */    58,   58,   59,   59,   60,   60,   60,   61,  194,  273,
 /*   630 */   296,  372,  373,  374,  299,  144,  414,  414,  266,  360,
 /*   640 */   264,  296,  378,  296,  454,  296,  454,  296,  384,  500,
 /*   650 */   163,  280,  394,  390,   87,  401,  407,  497,  192,  299,
 /*   660 */   445,  414,  414,  379,  390,   92,  390,   93,  390,   96,
 /*   670 */   390,   98,  359,   55,   54,  278,  411,  412,  408,  408,
 /*   680 */    57,   57,   56,   56,   56,   56,  296,   58,   58,   58,
 /*   690 */    58,   59,   59,   60,   60,   60,   61,  194,  273,  296,
 /*   700 */    18,  489,  190,  296,  394,  296,  341,  296,  288,  390,
 /*   710 */    14,  296,  162,  146,  296,  350,  296,  394,  421,  421,
 /*   720 */   265,  490,  390,   90,  401,  407,  390,   30,  390,   88,
 /*   730 */   390,   22,  380,  254,  390,   49,  391,  390,   99,  390,
 /*   740 */   100,  242,   55,   65,  278,  411,  412,  408,  408,   57,
 /*   750 */    57,   56,   56,   56,   56,  296,   58,   58,   58,   58,
 /*   760 */    59,   59,   60,   60,   60,   61,  194,  273,  296,  394,
 /*   770 */   185,  424,  296,  283,  296,  535,  296,  285,  390,  101,
 /*   780 */   298,  211,  296,   71,  296,   73,  296,  518,  340,  518,
 /*   790 */   103,  390,   23,  401,  407,  390,   33,  390,   34,  390,
 /*   800 */    24,  168,  169,  170,  254,  390,   35,  390,   36,  390,
 /*   810 */    37,  321,   54,  278,  411,  412,  408,  408,   57,   57,
 /*   820 */    56,   56,   56,   56,  296,   58,   58,   58,   58,   59,
 /*   830 */    59,   60,   60,   60,   61,  194,  273,  296,  389,  522,
 /*   840 */   445,  296,  388,  296,  171,  296,  537,  390,   39,  443,
 /*   850 */   389,  296,  440,  296,  388,  296,  409,  296,  397,  441,
 /*   860 */   390,   40,  401,  407,  390,   41,  390,   27,  390,   28,
 /*   870 */    79,  254,  254,  242,  390,   42,  390,   43,  390,   44,
 /*   880 */   390,   45,  278,  411,  412,  408,  408,   57,   57,   56,
 /*   890 */    56,   56,   56,  242,   58,   58,   58,   58,   59,   59,
 /*   900 */    60,   60,   60,   61,  194,   67,  303,  144,    4,  286,
 /*   910 */   187,  142,  277,  538,  539,  524,  254,  254,  156,  481,
 /*   920 */   300,   67,  303,  254,    4,  478,  479,  308,  277,  287,










 /*   930 */   174,  416,  445,   19,  436,  177,  300,  305,  449,  452,
 /*   940 */   134,  164,  453,  150,  391,  391,  455,  427,  213,  214,
 /*   950 */   215,  153,  217,  305,   95,  789,  488,  487,  209,  210,
 /*   960 */   493,  240,  171,  427,  391,  269,  180,   70,   69,  391,
 /*   970 */   485,  245,  332,  171,  171,  486,   68,  294,  295,  491,
 /*   980 */   523,  396,  171,   70,   69,  460,  531,  532,  164,   86,
 /*   990 */   527,  492,   68,  294,  295,  241,  542,  396,   86,  192,
 /*  1000 */   504,  247,  249,  251,  253,   67,  303,  337,    4,  381,
 /*  1010 */   258,  585,  277,  345,  398,  398,  398,  399,  400,    9,
 /*  1020 */   300,  348,  349,  261,  262,  133,  220,  395,  304,  420,
 /*  1030 */   398,  398,  398,  399,  400,    9,  422,  305,  484,  228,
 /*  1040 */   356,  268,  259,  439,  442,  237,  274,  427,  267,  495,
 /*  1050 */   498,  192,  494,  496,  357,  327,  530,  151,  367,  541,
 /*  1060 */   375,  376,  377,  292,    7,  293,   79,   70,   69,  152,
 /*  1070 */   154,  311,  392,  221,  313,   52,   68,  294,  295,  222,
 /*  1080 */    74,  396,   78,  224,  161,  437,  223,  107,   80,  393,
 /*  1090 */   197,  316,  322,  282,  481,  471,  476,  229,  111,  451,
 /*  1100 */   231,  238,  457,  233,  480,  458,  477,  482,  271,  204,
 /*  1110 */   203,  499,  505,  334,  398,  398,  398,  399,  400,    9,
 /*  1120 */   272,  513,  175,  338,  176,  205,  506,  507,  336,  178,
 /*  1130 */    83,  179,  515,  256,  181,  516,  344,  105,  526,  119,
 /*  1140 */   129,  184,  533,  355,   91,  365,  120,  216,  121,  122,
 /*  1150 */   123,  125,  202,  382,  128,  586,   94,  587,  157,  158,
 /*  1160 */   540,  410,  413,   66,  429,  417,  426,  130,  143,  104,
 /*  1170 */   430,  448,  431,  160,  435,   76,    6,   10,   11,  108,
 /*  1180 */   165,  456,  149,  464,  465,  201,   81,  326,  112,  173,
 /*  1190 */   244,  113,   82,  114,  236,  335,  132,  514,  115,  164,
 /*  1200 */   182,  331,  339,  117,  116,  257,  521,    8,  529,  517,
 /*  1210 */   118,  186,   12,  534,  188,  536,  124,  126,  127,   13,
 /*  1220 */   543,  362,  830,  544,  830,  830,  830,  830,  830,  830,
 /*  1230 */    84,  830,  830,   85,














};
static const YYCODETYPE yy_lookahead[] = {
 /*     0 */    19,  139,  140,  141,  142,   24,  113,   26,   72,   73,
 /*    10 */    74,   75,   87,   77,   78,   79,   80,   81,   82,   83,
 /*    20 */    84,   85,   86,   87,   81,   82,   45,   46,   76,   77,
 /*    30 */    78,   79,   80,   81,   82,   83,   84,   85,   86,   87,
 /*    40 */    61,  165,  166,  167,   63,   64,   65,   66,   67,   68,
 /*    50 */    69,   70,   71,   72,   73,   74,   75,   19,   77,   78,
 /*    60 */    79,   80,   81,   82,   83,   84,   85,   86,   87,   19,
 /*    70 */    91,   19,   91,  170,   95,   25,   77,   78,   79,   80,
 /*    80 */    81,   82,   83,   84,   85,   86,   87,   81,   82,   83,
 /*    90 */    84,   85,   86,   87,  147,   45,   46,    1,    2,   49,
 /*   100 */   151,  154,   22,  227,  157,  158,   26,  128,  129,  130,
 /*   110 */   162,  163,  164,   63,   64,   65,   66,   67,   68,   69,
 /*   120 */    70,   71,   72,   73,   74,   75,  170,   77,   78,   79,
 /*   130 */    80,   81,   82,   83,   84,   85,   86,   87,   19,   87,
 /*   140 */    12,   61,  147,   24,   19,   93,   94,   95,   96,   97,
 /*   150 */    98,   99,  157,  158,  161,   27,  118,   25,  106,   86,
 /*   160 */    87,   81,   82,  170,   45,   46,  143,  144,   40,  182,
 /*   170 */    42,   91,  149,  169,  225,   95,  181,  182,  229,  156,
 /*   180 */    52,  177,   63,   64,   65,   66,   67,   68,   69,   70,
 /*   190 */    71,   72,   73,   74,   75,   11,   77,   78,   79,   80,
 /*   200 */    81,   82,   83,   84,   85,   86,   87,   19,  128,  129,
 /*   210 */   130,   26,   87,  190,   83,   84,   85,   86,   87,   94,
 /*   220 */    95,   96,   97,   98,   99,   93,  147,  113,   96,   97,
 /*   230 */    98,  106,  191,   45,   46,   26,   52,  214,   46,  107,
 /*   240 */   162,  127,  218,  219,  220,  221,   22,   26,   24,  170,
 /*   250 */   171,   63,   64,   65,   66,   67,   68,   69,   70,   71,
 /*   260 */    72,   73,   74,   75,  182,   77,   78,   79,   80,   81,
 /*   270 */    82,   83,   84,   85,   86,   87,   91,   92,   93,  201,
 /*   280 */    19,   96,   97,   98,  147,  147,  102,  103,  104,  210,
 /*   290 */   211,  147,  107,  101,  147,  193,  218,  113,  220,  221,
 /*   300 */    91,   92,  200,  156,   83,   95,   45,   46,  170,  171,
 /*   310 */    52,  147,   91,   92,  170,  171,  106,  170,  171,  218,
 /*   320 */   183,  220,  221,  135,   63,   64,   65,   66,   67,   68,
 /*   330 */    69,   70,   71,   72,   73,   74,   75,  190,   77,   78,
 /*   340 */    79,   80,   81,   82,   83,   84,   85,   86,   87,  147,
 /*   350 */   212,  147,  162,   19,  147,  217,  212,   23,  156,  212,
 /*   360 */   102,  103,  104,   93,  217,  147,   96,   97,   98,  187,
 /*   370 */   147,  113,  170,  171,  170,  171,  156,  107,  159,   45,
 /*   380 */    46,  162,  163,  164,  218,  147,  220,  221,  170,  171,
 /*   390 */   183,  201,  190,  170,  171,  147,  135,   63,   64,   65,
 /*   400 */    66,   67,   68,   69,   70,   71,   72,   73,   74,   75,
 /*   410 */   190,   77,   78,   79,   80,   81,   82,   83,   84,   85,
 /*   420 */    86,   87,   19,  147,   23,  147,   23,   19,   28,  147,
 /*   430 */   204,   22,   32,  147,  214,   26,  165,  166,  167,  216,
 /*   440 */   222,   23,   45,   46,   44,  156,  170,  171,   45,   46,
 /*   450 */   230,   26,  170,  171,   46,  235,  170,  171,  177,  178,
 /*   460 */   156,  186,  187,   66,   67,  184,   63,   64,   65,   66,
 /*   470 */    67,   68,   69,   70,   71,   72,   73,   74,   75,  190,
 /*   480 */    77,   78,   79,   80,   81,   82,   83,   84,   85,   86,
 /*   490 */    87,   19,   95,  211,  190,   23,   23,   26,  227,  147,
 /*   500 */    91,   92,  216,  214,   12,   26,  202,  203,  147,  101,
 /*   510 */   109,   22,  111,  112,  106,   26,   91,   45,   46,   27,
 /*   520 */   141,  142,  170,  171,  235,  186,  187,  109,  147,  111,
 /*   530 */   112,  147,   40,  162,   42,   63,   64,   65,   66,   67,
 /*   540 */    68,   69,   70,   71,   72,   73,   74,   75,   23,   77,
 /*   550 */    78,   79,   80,   81,   82,   83,   84,   85,   86,   87,
 /*   560 */    19,   17,   91,   92,   23,  192,   23,  147,   25,  147,
 /*   570 */    91,   92,  201,  189,  147,    0,    1,    2,  162,  147,
 /*   580 */    91,   92,  109,  145,  111,  112,   45,   46,  117,  147,
 /*   590 */   170,  171,  170,  171,  213,  147,  117,  170,  171,   55,
 /*   600 */    17,   57,  170,  171,   63,   64,   65,   66,   67,   68,
 /*   610 */    69,   70,   71,   72,   73,   74,   75,  201,   77,   78,
 /*   620 */    79,   80,   81,   82,   83,   84,   85,   86,   87,   19,
 /*   630 */   147,    7,    8,    9,  109,   92,  111,  112,   55,   94,
 /*   640 */    57,  147,  147,  147,  147,  147,  147,  147,  168,  169,
 /*   650 */    24,  209,   26,  170,  171,   45,   46,  177,  113,  109,
 /*   660 */   117,  111,  112,  147,  170,  171,  170,  171,  170,  171,
 /*   670 */   170,  171,  127,   63,   64,   65,   66,   67,   68,   69,
 /*   680 */    70,   71,   72,   73,   74,   75,  147,   77,   78,   79,
 /*   690 */    80,   81,   82,   83,   84,   85,   86,   87,   19,  147,
 /*   700 */    22,   33,  156,  147,   26,  147,  209,  147,  209,  170,
 /*   710 */   171,  147,  202,  203,  147,  147,  147,   91,  128,  129,
 /*   720 */   137,   53,  170,  171,   45,   46,  170,  171,  170,  171,
 /*   730 */   170,  171,  147,  147,  170,  171,  190,  170,  171,  170,
 /*   740 */   171,  147,   63,   64,   65,   66,   67,   68,   69,   70,
 /*   750 */    71,   72,   73,   74,   75,  147,   77,   78,   79,   80,
 /*   760 */    81,   82,   83,   84,   85,   86,   87,   19,  147,   91,
 /*   770 */    25,  162,  147,  105,  147,  189,  147,  183,  170,  171,
 /*   780 */    19,  213,  147,  134,  147,  136,  147,  102,  103,  104,
 /*   790 */   147,  170,  171,   45,   46,  170,  171,  170,  171,  170,
 /*   800 */   171,  102,  103,  104,  147,  170,  171,  170,  171,  170,
 /*   810 */   171,   83,   64,   65,   66,   67,   68,   69,   70,   71,
 /*   820 */    72,   73,   74,   75,  147,   77,   78,   79,   80,   81,
 /*   830 */    82,   83,   84,   85,   86,   87,   19,  147,  110,   21,
 /*   840 */    25,  147,  114,  147,   25,  147,  189,  170,  171,   25,
 /*   850 */   110,  147,   30,  147,  114,  147,   95,  147,  147,   37,
 /*   860 */   170,  171,   45,   46,  170,  171,  170,  171,  170,  171,
 /*   870 */   125,  147,  147,  147,  170,  171,  170,  171,  170,  171,
 /*   880 */   170,  171,   65,   66,   67,   68,   69,   70,   71,   72,
 /*   890 */    73,   74,   75,  147,   77,   78,   79,   80,   81,   82,
 /*   900 */    83,   84,   85,   86,   87,   19,   20,   92,   22,  183,
 /*   910 */   156,  156,   26,  189,  189,   97,  147,  147,   22,  100,
 /*   920 */    34,   19,   20,  147,   22,    7,    8,  147,   26,  183,








 /*   930 */   156,   23,  117,   25,  147,  156,   34,   51,  147,   23,


 /*   940 */   116,   25,  147,    5,  190,  190,  147,   61,   10,   11,
 /*   950 */    12,   13,   14,   51,   16,  137,   94,   95,  189,  189,
 /*   960 */    23,  147,   25,   61,  190,  189,  231,   81,   82,  190,

 /*   970 */   147,   23,   23,   25,   25,  179,   90,   91,   92,  179,
 /*   980 */    23,   95,   25,   81,   82,   83,   23,   23,   25,   25,
 /*   990 */    52,  179,   90,   91,   92,  147,   23,   95,   25,  113,

 /*  1000 */   147,  147,  147,  147,  147,   19,   20,  232,   22,  150,
 /*  1010 */   147,  115,   26,  147,  128,  129,  130,  131,  132,  133,
 /*  1020 */    34,  147,  147,  147,  147,  192,  194,  162,  224,  228,
 /*  1030 */   128,  129,  130,  131,  132,  133,  228,   51,  178,  205,
 /*  1040 */   102,  103,  104,  173,  173,  173,  108,   61,  205,  162,
 /*  1050 */   162,  113,  173,  173,  205,  174,  195,    6,  146,  195,
 /*  1060 */   146,  146,   13,  146,   25,  155,  125,   81,   82,  148,
 /*  1070 */   148,  121,  190,  195,  122,  124,   90,   91,   92,  196,
 /*  1080 */   134,   95,  123,  198,  115,  153,  197,  153,  101,  199,
 /*  1090 */   223,  120,  101,   43,  100,  172,  172,  206,   22,  207,
 /*  1100 */   206,  172,  207,  206,  174,  207,  180,  172,  175,   87,
 /*  1110 */   226,  180,  172,   18,  128,  129,  130,  131,  132,  133,

 /*  1120 */   175,  153,  152,   41,  152,  226,  172,  172,  153,  152,
 /*  1130 */   134,  153,  153,  233,  152,  234,  153,   63,  185,   22,
 /*  1140 */   215,  185,  195,   18,  160,    1,  188,   15,  188,  188,
 /*  1150 */   188,  185,  176,   23,  215,  115,  176,  115,  115,  115,



 /*  1160 */   195,   95,  110,   22,   11,   23,   23,   22,   22,   35,
 /*  1170 */    23,  117,   23,   25,   23,   25,  119,   25,  119,   22,
 /*  1180 */   119,  118,  115,   23,   23,   47,   22,   47,   22,   99,
 /*  1190 */    23,   22,   22,   22,  106,   19,   24,   20,  101,   25,
 /*  1200 */   101,   47,   39,   22,   48,  137,   48,    5,    1,   54,
 /*  1210 */   105,  126,   22,    1,  116,   20,  116,  105,  126,   22,
 /*  1220 */   127,    3,  236,    4,  236,  236,  236,  236,  236,  236,
 /*  1230 */    71,  236,  236,   71,
};
#define YY_SHIFT_USE_DFLT (-108)
#define YY_SHIFT_MAX 362
static const short yy_shift_ofst[] = {
 /*     0 */    96,  886,  938,  -19,  886,  986,  986,  185,  258,  986,
 /*    10 */   986,  986,  986,  986,  -48,  184,  209,  425,  -57,  -57,
 /*    20 */  -107,   50,  119,  188,  261,  334,  403,  472,  541,  610,
 /*    30 */   679,  610,  610,  610,  610,  610,  610,  610,  610,  610,
 /*    40 */   610,  610,  610,  610,  610,  610,  610,  748,  817,  817,
 /*    50 */   902,  986,  986,  986,  986,  986,  986,  986,  986,  986,
 /*    60 */   986,  986,  986,  986,  986,  986,  986,  986,  986,  986,
 /*    70 */   986,  986,  986,  986,  986,  986,  986,  986,  986,  986,

 /*    80 */   986,  986,  986,  986,  986,  986,  986,  -64,  -64,   -1,
 /*    90 */    -1,   52,    6,  131,  408,  818,   73,  425,  -75, -108,
 /*   100 */  -108, -108,   80,  125,  128,  128,  575,  626,  209,  626,
 /*   110 */   626,  209,  209,  209,  209,  209,  209,  209,  209,  209,
 /*   120 */   209,  209,  209,  209,  209,  209,  209,  209,  545,  114,
 /*   130 */  -107, -107, -107, -108, -108,  -21,  -21,  132,  270,  401,
 /*   140 */   409,  418,  473,  492,  471,  479,  489,  525,  543,  221,
 /*   150 */   624,  209,  209,  209,  209,  209,  728,  209,  209,  678,
 /*   160 */   209,  209,  815,  209,  209,  209,  209,  209,  668,  668,
 /*   170 */   668,  209,  209,  209,  550,  209,  209,  550,  209,  400,
 /*   180 */   685,  209,  209,  550,  209,  209,  209,  550,  209,  550,
 /*   190 */   550,  224,  740,  824,  425,  590,  590,  649,  822,  822,
 /*   200 */    38,  822,  192,  822,  425,  822,  425,  819,  745,   38,
 /*   210 */    38,  745, 1051, 1051, 1051, 1051, 1049, 1049, 1039, -107,
 /*   220 */   941,  952,  959,  950,  951,  946,  969,  969,  987,  971,
 /*   230 */   987,  971,  987,  971,  991,  991, 1050,  991,  994,  991,
 /*   240 */  1076, 1022, 1022, 1050,  991,  991,  991, 1076, 1095,  969,
 /*   250 */  1095,  969, 1095,  969,  969, 1082,  996, 1095,  969, 1074,
 /*   260 */  1074, 1117,  941, 1125, 1125, 1125, 1125,  941, 1074, 1117,
 /*   270 */  -108, -108, -108,  397,  583,  699,  544,  896,  761,  908,
 /*   280 */   916,  210,  918,  862,  937,  948,  949,  957,  963,  964,
 /*   290 */   973, 1144, 1132, 1130, 1040, 1042, 1043, 1044, 1066, 1052,
 /*   300 */  1141, 1142, 1143, 1145, 1153, 1146, 1147, 1148, 1149, 1151,
 /*   310 */  1150, 1057, 1152, 1059, 1150, 1054, 1157, 1061, 1063, 1067,
 /*   320 */  1160, 1161, 1134, 1138, 1164, 1140, 1166, 1167, 1169, 1170,
 /*   330 */  1154, 1171, 1090, 1088, 1176, 1177, 1172, 1097, 1163, 1155,
 /*   340 */  1156, 1174, 1158, 1068, 1099, 1181, 1202, 1207, 1105, 1159,
 /*   350 */  1162, 1085, 1190, 1098, 1212, 1195, 1100, 1112, 1092, 1197,
 /*   360 */  1093, 1218, 1219,




};
#define YY_REDUCE_USE_DFLT (-139)
#define YY_REDUCE_MAX 272
static const short yy_reduce_ofst[] = {
 /*     0 */  -138,  147,   23,   78,  202,  138,   79,   -5,  220,  218,
 /*    10 */   282,  144,  223,  286,   24,  289,  -53,  219, -124,  271,
 /*    20 */   304,  166,  166,  166,  166,  166,  166,  166,  166,  166,
 /*    30 */   166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
 /*    40 */   166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
 /*    50 */   204,  276,  352,  420,  422,  427,  432,  483,  494,  496,
 /*    60 */   498,  500,  539,  552,  556,  558,  560,  564,  567,  569,
 /*    70 */   608,  621,  625,  627,  629,  635,  637,  639,  677,  690,
 /*    80 */   694,  696,  698,  704,  706,  708,  710,  166,  166,  166,
 /*    90 */   166,  480,  166,  166,  281,  -51,  101,  -52,  101,  101,
 /*   100 */   101,  101,   -7,    4,  275,  339,  379,  190,  442,  371,
 /*   110 */   416,  137,  207,  594,  726,  384,  497,  746,  381,  499,
 /*   120 */   586,  657,  724,  725,  769,  770,  568,  776,  546,  754,
 /*   130 */   755,  774,  779,  102,  510,  -97,  -44,  -13,   82,   41,
 /*   140 */   164,   41,   41,  182,  238,  248,  278,   41,  226,  361,
 /*   150 */   438,  448,  495,  516,  585,  643,  373,  361,  711,  609,
 /*   160 */   780,  787,  226,  791,  795,  799,  814,  823,  796,  800,
 /*   170 */   812,  848,  853,  854,   41,  855,  856,   41,  857,  735,
 /*   180 */   775,  863,  866,   41,  874,  875,  876,   41,  877,   41,
 /*   190 */    41,  859,  833,  832,  865,  801,  808,  804,  870,  871,
 /*   200 */   834,  872,  860,  879,  887,  880,  888,  881,  861,  843,
 /*   210 */   849,  864,  912,  914,  915,  917,  921,  922,  910,  882,
 /*   220 */   878,  883,  889,  885,  890,  867,  932,  934,  891,  892,
 /*   230 */   894,  895,  897,  898,  923,  924,  926,  929,  930,  935,
 /*   240 */   933,  884,  899,  931,  940,  954,  955,  945,  970,  968,
 /*   250 */   972,  975,  977,  978,  979,  900,  901,  982,  983,  953,
 /*   260 */   956,  925,  947,  958,  960,  961,  962,  965,  966,  939,
 /*   270 */   984,  976,  980,



};
static const YYACTIONTYPE yy_default[] = {
 /*     0 */   551,  784,  828,  672,  828,  784,  828,  828,  828,  782,
 /*    10 */   828,  828,  828,  828,  756,  828,  828,  588,  801,  801,
 /*    20 */   676,  707,  828,  828,  828,  828,  828,  828,  828,  708,
 /*    30 */   828,  786,  781,  777,  779,  778,  785,  709,  698,  705,
 /*    40 */   712,  687,  814,  714,  715,  721,  722,  744,  743,  762,
 /*    50 */   828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
 /*    60 */   828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
 /*    70 */   828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
 /*    80 */   828,  828,  828,  828,  828,  828,  828,  746,  768,  745,
 /*    90 */   755,  581,  747,  748,  641,  576,  749,  828,  750,  763,
 /*   100 */   764,  765,  828,  828,  828,  828,  551,  672,  828,  672,
 /*   110 */   672,  828,  828,  828,  828,  828,  828,  828,  828,  828,
 /*   120 */   828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
 /*   130 */   828,  828,  828,  666,  676,  828,  828,  632,  828,  828,
 /*   140 */   828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
 /*   150 */   559,  557,  828,  828,  828,  828,  664,  828,  828,  590,
 /*   160 */   828,  828,  674,  828,  828,  828,  828,  828,  828,  828,
 /*   170 */   828,  828,  828,  828,  578,  828,  828,  653,  828,  807,
 /*   180 */   828,  828,  828,  821,  828,  828,  828,  819,  828,  655,
 /*   190 */   717,  828,  664,  673,  828,  828,  828,  780,  701,  701,
 /*   200 */   689,  701,  611,  701,  828,  701,  828,  614,  711,  689,
 /*   210 */   689,  711,  556,  556,  556,  556,  567,  567,  631,  828,
 /*   220 */   711,  702,  704,  694,  706,  828,  680,  680,  688,  693,
 /*   230 */   688,  693,  688,  693,  643,  643,  628,  643,  614,  643,
 /*   240 */   790,  794,  794,  628,  643,  643,  643,  790,  573,  680,
 /*   250 */   573,  680,  573,  680,  680,  811,  813,  573,  680,  645,
 /*   260 */   645,  723,  711,  652,  652,  652,  652,  711,  645,  723,
 /*   270 */   598,  616,  616,  828,  828,  828,  828,  730,  828,  828,
 /*   280 */   828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
 /*   290 */   828,  828,  565,  828,  735,  731,  828,  732,  828,  658,
 /*   300 */   828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
 /*   310 */   783,  828,  695,  828,  703,  828,  828,  828,  828,  828,
 /*   320 */   828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
 /*   330 */   828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
 /*   340 */   809,  810,  828,  828,  828,  828,  828,  828,  828,  828,
 /*   350 */   828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
 /*   360 */   828,  552,  828,  547,  549,  550,  554,  555,  558,  585,
 /*   370 */   586,  587,  560,  561,  562,  563,  564,  566,  570,  568,
 /*   380 */   569,  571,  577,  579,  597,  599,  583,  601,  662,  663,
 /*   390 */   727,  656,  657,  661,  584,  738,  729,  733,  734,  736,
 /*   400 */   737,  751,  752,  754,  760,  767,  770,  753,  758,  759,
 /*   410 */   761,  766,  769,  659,  660,  773,  591,  592,  595,  596,
 /*   420 */   797,  799,  798,  800,  594,  593,  739,  742,  775,  776,
 /*   430 */   822,  823,  824,  825,  826,  771,  681,  774,  757,  696,
 /*   440 */   699,  700,  697,  665,  675,  683,  684,  685,  686,  670,
 /*   450 */   671,  677,  692,  725,  726,  690,  691,  678,  679,  667,
 /*   460 */   668,  669,  772,  728,  740,  741,  602,  603,  735,  604,
 /*   470 */   605,  606,  644,  647,  648,  649,  607,  626,  629,  630,
 /*   480 */   608,  615,  609,  610,  617,  618,  619,  622,  623,  624,
 /*   490 */   625,  620,  621,  791,  792,  795,  793,  612,  613,  627,
 /*   500 */   600,  589,  582,  633,  636,  637,  638,  639,  640,  642,
 /*   510 */   634,  635,  580,  572,  574,  682,  803,  812,  808,  804,
 /*   520 */   805,  806,  575,  787,  788,  646,  719,  720,  802,  815,
 /*   530 */   817,  724,  818,  820,  816,  650,  651,  654,  796,  827,
 /*   540 */   710,  713,  716,  718,  553,  548,






};
#define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0]))

/* The next table maps tokens into fallback tokens.  If a construct
** like the following:
** 
**      %fallback ID X Y Z.
83642
83643
83644
83645
83646
83647
83648
83649
83650
83651
83652
83653
83654
83655
83656
83657
83658
    0,  /*   REGISTER => nothing */
    0,  /*   VARIABLE => nothing */
    0,  /*       CASE => nothing */
    0,  /*       WHEN => nothing */
    0,  /*       THEN => nothing */
    0,  /*       ELSE => nothing */
    0,  /*      INDEX => nothing */
    0,  /*      ALTER => nothing */
    0,  /*        ADD => nothing */
    0,  /*   COLUMNKW => nothing */
};
#endif /* YYFALLBACK */

/* The following structure represents a single element of the
** parser's stack.  Information stored includes:
**
**   +  The state number for the parser at this level of the stack.







<
<
<







83588
83589
83590
83591
83592
83593
83594



83595
83596
83597
83598
83599
83600
83601
    0,  /*   REGISTER => nothing */
    0,  /*   VARIABLE => nothing */
    0,  /*       CASE => nothing */
    0,  /*       WHEN => nothing */
    0,  /*       THEN => nothing */
    0,  /*       ELSE => nothing */
    0,  /*      INDEX => nothing */



};
#endif /* YYFALLBACK */

/* The following structure represents a single element of the
** parser's stack.  Information stored includes:
**
**   +  The state number for the parser at this level of the stack.
83756
83757
83758
83759
83760
83761
83762
83763
83764
83765
83766
83767
83768
83769
83770
83771
83772
83773
83774
83775
83776
83777
83778
83779
83780
83781
83782
83783
83784
83785
83786
83787
83788
83789
83790
83791
83792
83793
83794
83795
83796
83797
83798
  "DROP",          "UNION",         "ALL",           "EXCEPT",      
  "INTERSECT",     "SELECT",        "DISTINCT",      "DOT",         
  "FROM",          "JOIN",          "INDEXED",       "BY",          
  "USING",         "ORDER",         "GROUP",         "HAVING",      
  "LIMIT",         "WHERE",         "INTO",          "VALUES",      
  "INTEGER",       "FLOAT",         "BLOB",          "REGISTER",    
  "VARIABLE",      "CASE",          "WHEN",          "THEN",        
  "ELSE",          "INDEX",         "ALTER",         "ADD",         
  "COLUMNKW",      "error",         "input",         "cmdlist",     
  "ecmd",          "explain",       "cmdx",          "cmd",         
  "transtype",     "trans_opt",     "nm",            "savepoint_opt",
  "create_table",  "create_table_args",  "temp",          "ifnotexists", 
  "dbnm",          "columnlist",    "conslist_opt",  "select",      
  "column",        "columnid",      "type",          "carglist",    
  "id",            "ids",           "typetoken",     "typename",    
  "signed",        "plus_num",      "minus_num",     "carg",        
  "ccons",         "term",          "expr",          "onconf",      
  "sortorder",     "autoinc",       "idxlist_opt",   "refargs",     
  "defer_subclause",  "refarg",        "refact",        "init_deferred_pred_opt",
  "conslist",      "tcons",         "idxlist",       "defer_subclause_opt",
  "orconf",        "resolvetype",   "raisetype",     "ifexists",    
  "fullname",      "oneselect",     "multiselect_op",  "distinct",    
  "selcollist",    "from",          "where_opt",     "groupby_opt", 
  "having_opt",    "orderby_opt",   "limit_opt",     "sclp",        
  "as",            "seltablist",    "stl_prefix",    "joinop",      
  "indexed_opt",   "on_opt",        "using_opt",     "joinop2",     
  "inscollist",    "sortlist",      "sortitem",      "nexprlist",   
  "setlist",       "insert_cmd",    "inscollist_opt",  "itemlist",    
  "exprlist",      "likeop",        "escape",        "between_op",  
  "in_op",         "case_operand",  "case_exprlist",  "case_else",   
  "uniqueflag",    "collate",       "nmnum",         "plus_opt",    
  "number",        "trigger_decl",  "trigger_cmd_list",  "trigger_time",
  "trigger_event",  "foreach_clause",  "when_clause",   "trigger_cmd", 
  "database_kw_opt",  "key_opt",       "add_column_fullname",  "kwcolumn_opt",
  "create_vtab",   "vtabarglist",   "vtabarg",       "vtabargtoken",
  "lp",            "anylist",     
};
#endif /* NDEBUG */

#ifndef NDEBUG
/* For tracing reduce actions, the names of all rules are required.
*/
static const char *const yyRuleName[] = {







|
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|


<
<
<







83699
83700
83701
83702
83703
83704
83705
83706

83707
83708
83709
83710
83711
83712
83713
83714
83715
83716
83717
83718
83719
83720
83721
83722
83723
83724
83725
83726
83727
83728
83729
83730



83731
83732
83733
83734
83735
83736
83737
  "DROP",          "UNION",         "ALL",           "EXCEPT",      
  "INTERSECT",     "SELECT",        "DISTINCT",      "DOT",         
  "FROM",          "JOIN",          "INDEXED",       "BY",          
  "USING",         "ORDER",         "GROUP",         "HAVING",      
  "LIMIT",         "WHERE",         "INTO",          "VALUES",      
  "INTEGER",       "FLOAT",         "BLOB",          "REGISTER",    
  "VARIABLE",      "CASE",          "WHEN",          "THEN",        
  "ELSE",          "INDEX",         "error",         "input",       

  "cmdlist",       "ecmd",          "explain",       "cmdx",        
  "cmd",           "transtype",     "trans_opt",     "nm",          
  "savepoint_opt",  "create_table",  "create_table_args",  "temp",        
  "ifnotexists",   "dbnm",          "columnlist",    "conslist_opt",
  "select",        "column",        "columnid",      "type",        
  "carglist",      "id",            "ids",           "typetoken",   
  "typename",      "signed",        "plus_num",      "minus_num",   
  "carg",          "ccons",         "term",          "expr",        
  "onconf",        "sortorder",     "autoinc",       "idxlist_opt", 
  "refargs",       "defer_subclause",  "refarg",        "refact",      
  "init_deferred_pred_opt",  "conslist",      "tcons",         "idxlist",     
  "defer_subclause_opt",  "orconf",        "resolvetype",   "raisetype",   
  "ifexists",      "fullname",      "oneselect",     "multiselect_op",
  "distinct",      "selcollist",    "from",          "where_opt",   
  "groupby_opt",   "having_opt",    "orderby_opt",   "limit_opt",   
  "sclp",          "as",            "seltablist",    "stl_prefix",  
  "joinop",        "indexed_opt",   "on_opt",        "using_opt",   
  "joinop2",       "inscollist",    "sortlist",      "sortitem",    
  "nexprlist",     "setlist",       "insert_cmd",    "inscollist_opt",
  "itemlist",      "exprlist",      "likeop",        "escape",      
  "between_op",    "in_op",         "case_operand",  "case_exprlist",
  "case_else",     "uniqueflag",    "collate",       "plus_opt",    
  "number",        "trigger_decl",  "trigger_cmd_list",  "trigger_time",
  "trigger_event",  "foreach_clause",  "when_clause",   "trigger_cmd", 



};
#endif /* NDEBUG */

#ifndef NDEBUG
/* For tracing reduce actions, the names of all rules are required.
*/
static const char *const yyRuleName[] = {
84043
84044
84045
84046
84047
84048
84049
84050
84051
84052
84053
84054
84055
84056
84057
84058
84059
84060
84061
84062
84063
84064
84065
84066
84067
84068
84069
84070
84071
84072
84073
84074
84075
84076
84077
84078
84079
84080
84081
84082
84083
84084
84085
84086
84087
84088
84089
84090
84091
84092
84093
84094
84095
84096
84097
84098
84099
84100
84101
84102
84103
84104
84105
84106
84107
84108
84109
84110
84111
84112
84113
84114
84115
84116
84117
84118
84119
84120
84121
84122
84123
84124
 /* 244 */ "idxlist_opt ::=",
 /* 245 */ "idxlist_opt ::= LP idxlist RP",
 /* 246 */ "idxlist ::= idxlist COMMA nm collate sortorder",
 /* 247 */ "idxlist ::= nm collate sortorder",
 /* 248 */ "collate ::=",
 /* 249 */ "collate ::= COLLATE ids",
 /* 250 */ "cmd ::= DROP INDEX ifexists fullname",
 /* 251 */ "cmd ::= VACUUM",
 /* 252 */ "cmd ::= VACUUM nm",
 /* 253 */ "cmd ::= PRAGMA nm dbnm EQ nmnum",
 /* 254 */ "cmd ::= PRAGMA nm dbnm EQ ON",
 /* 255 */ "cmd ::= PRAGMA nm dbnm EQ DELETE",
 /* 256 */ "cmd ::= PRAGMA nm dbnm EQ minus_num",
 /* 257 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP",
 /* 258 */ "cmd ::= PRAGMA nm dbnm",
 /* 259 */ "nmnum ::= plus_num",
 /* 260 */ "nmnum ::= nm",
 /* 261 */ "plus_num ::= plus_opt number",
 /* 262 */ "minus_num ::= MINUS number",
 /* 263 */ "number ::= INTEGER|FLOAT",
 /* 264 */ "plus_opt ::= PLUS",
 /* 265 */ "plus_opt ::=",
 /* 266 */ "cmd ::= CREATE trigger_decl BEGIN trigger_cmd_list END",
 /* 267 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
 /* 268 */ "trigger_time ::= BEFORE",
 /* 269 */ "trigger_time ::= AFTER",
 /* 270 */ "trigger_time ::= INSTEAD OF",
 /* 271 */ "trigger_time ::=",
 /* 272 */ "trigger_event ::= DELETE|INSERT",
 /* 273 */ "trigger_event ::= UPDATE",
 /* 274 */ "trigger_event ::= UPDATE OF inscollist",
 /* 275 */ "foreach_clause ::=",
 /* 276 */ "foreach_clause ::= FOR EACH ROW",
 /* 277 */ "when_clause ::=",
 /* 278 */ "when_clause ::= WHEN expr",
 /* 279 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
 /* 280 */ "trigger_cmd_list ::= trigger_cmd SEMI",
 /* 281 */ "trigger_cmd ::= UPDATE orconf nm SET setlist where_opt",
 /* 282 */ "trigger_cmd ::= insert_cmd INTO nm inscollist_opt VALUES LP itemlist RP",
 /* 283 */ "trigger_cmd ::= insert_cmd INTO nm inscollist_opt select",
 /* 284 */ "trigger_cmd ::= DELETE FROM nm where_opt",
 /* 285 */ "trigger_cmd ::= select",
 /* 286 */ "expr ::= RAISE LP IGNORE RP",
 /* 287 */ "expr ::= RAISE LP raisetype COMMA nm RP",
 /* 288 */ "raisetype ::= ROLLBACK",
 /* 289 */ "raisetype ::= ABORT",
 /* 290 */ "raisetype ::= FAIL",
 /* 291 */ "cmd ::= DROP TRIGGER ifexists fullname",
 /* 292 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt",
 /* 293 */ "cmd ::= DETACH database_kw_opt expr",
 /* 294 */ "key_opt ::=",
 /* 295 */ "key_opt ::= KEY expr",
 /* 296 */ "database_kw_opt ::= DATABASE",
 /* 297 */ "database_kw_opt ::=",
 /* 298 */ "cmd ::= REINDEX",
 /* 299 */ "cmd ::= REINDEX nm dbnm",
 /* 300 */ "cmd ::= ANALYZE",
 /* 301 */ "cmd ::= ANALYZE nm dbnm",
 /* 302 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
 /* 303 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt column",
 /* 304 */ "add_column_fullname ::= fullname",
 /* 305 */ "kwcolumn_opt ::=",
 /* 306 */ "kwcolumn_opt ::= COLUMNKW",
 /* 307 */ "cmd ::= create_vtab",
 /* 308 */ "cmd ::= create_vtab LP vtabarglist RP",
 /* 309 */ "create_vtab ::= CREATE VIRTUAL TABLE nm dbnm USING nm",
 /* 310 */ "vtabarglist ::= vtabarg",
 /* 311 */ "vtabarglist ::= vtabarglist COMMA vtabarg",
 /* 312 */ "vtabarg ::=",
 /* 313 */ "vtabarg ::= vtabarg vtabargtoken",
 /* 314 */ "vtabargtoken ::= ANY",
 /* 315 */ "vtabargtoken ::= lp anylist RP",
 /* 316 */ "lp ::= LP",
 /* 317 */ "anylist ::=",
 /* 318 */ "anylist ::= anylist ANY",
};
#endif /* NDEBUG */


#if YYSTACKDEPTH<=0
/*
** Try to increase the size of the parser stack.







<
<
<
<
<
<
<
<
<
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







83982
83983
83984
83985
83986
83987
83988










83989
83990
83991
83992
83993
83994
83995
83996
83997
83998
83999
84000
84001
84002
84003
84004
84005
84006
84007
84008
84009
84010
84011
84012
84013
84014
84015
84016
84017
84018
84019



























84020
84021
84022
84023
84024
84025
84026
 /* 244 */ "idxlist_opt ::=",
 /* 245 */ "idxlist_opt ::= LP idxlist RP",
 /* 246 */ "idxlist ::= idxlist COMMA nm collate sortorder",
 /* 247 */ "idxlist ::= nm collate sortorder",
 /* 248 */ "collate ::=",
 /* 249 */ "collate ::= COLLATE ids",
 /* 250 */ "cmd ::= DROP INDEX ifexists fullname",










 /* 251 */ "plus_num ::= plus_opt number",
 /* 252 */ "minus_num ::= MINUS number",
 /* 253 */ "number ::= INTEGER|FLOAT",
 /* 254 */ "plus_opt ::= PLUS",
 /* 255 */ "plus_opt ::=",
 /* 256 */ "cmd ::= CREATE trigger_decl BEGIN trigger_cmd_list END",
 /* 257 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
 /* 258 */ "trigger_time ::= BEFORE",
 /* 259 */ "trigger_time ::= AFTER",
 /* 260 */ "trigger_time ::= INSTEAD OF",
 /* 261 */ "trigger_time ::=",
 /* 262 */ "trigger_event ::= DELETE|INSERT",
 /* 263 */ "trigger_event ::= UPDATE",
 /* 264 */ "trigger_event ::= UPDATE OF inscollist",
 /* 265 */ "foreach_clause ::=",
 /* 266 */ "foreach_clause ::= FOR EACH ROW",
 /* 267 */ "when_clause ::=",
 /* 268 */ "when_clause ::= WHEN expr",
 /* 269 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
 /* 270 */ "trigger_cmd_list ::= trigger_cmd SEMI",
 /* 271 */ "trigger_cmd ::= UPDATE orconf nm SET setlist where_opt",
 /* 272 */ "trigger_cmd ::= insert_cmd INTO nm inscollist_opt VALUES LP itemlist RP",
 /* 273 */ "trigger_cmd ::= insert_cmd INTO nm inscollist_opt select",
 /* 274 */ "trigger_cmd ::= DELETE FROM nm where_opt",
 /* 275 */ "trigger_cmd ::= select",
 /* 276 */ "expr ::= RAISE LP IGNORE RP",
 /* 277 */ "expr ::= RAISE LP raisetype COMMA nm RP",
 /* 278 */ "raisetype ::= ROLLBACK",
 /* 279 */ "raisetype ::= ABORT",
 /* 280 */ "raisetype ::= FAIL",
 /* 281 */ "cmd ::= DROP TRIGGER ifexists fullname",



























};
#endif /* NDEBUG */


#if YYSTACKDEPTH<=0
/*
** Try to increase the size of the parser stack.
84189
84190
84191
84192
84193
84194
84195
84196
84197
84198
84199
84200
84201
84202
84203
84204
84205
84206
84207
84208
84209
84210
84211
84212
84213
84214
84215
84216
84217
84218
84219
84220
84221
84222
84223
84224
84225
84226
84227
84228
84229
84230
84231
84232
84233
84234
84235
84236
84237
84238
84239
84240
84241
84242
84243
84244
84245
84246
84247
84248
84249
84250
84251
84252
84253
84254
84255
84256
84257
84258
84259
84260
84261
84262
84263
    ** reduce or during error processing or when a parser is 
    ** being destroyed before it is finished parsing.
    **
    ** Note: during a reduce, the only symbols destroyed are those
    ** which appear on the RHS of the rule, but which are not used
    ** inside the C code.
    */
    case 159: /* select */
    case 193: /* oneselect */
{
sqlite3SelectDelete(pParse->db, (yypminor->yy159));
}
      break;
    case 173: /* term */
    case 174: /* expr */
    case 198: /* where_opt */
    case 200: /* having_opt */
    case 209: /* on_opt */
    case 214: /* sortitem */
    case 222: /* escape */
    case 225: /* case_operand */
    case 227: /* case_else */
    case 238: /* when_clause */
    case 241: /* key_opt */
{
sqlite3ExprDelete(pParse->db, (yypminor->yy122));
}
      break;
    case 178: /* idxlist_opt */
    case 186: /* idxlist */
    case 196: /* selcollist */
    case 199: /* groupby_opt */
    case 201: /* orderby_opt */
    case 203: /* sclp */
    case 213: /* sortlist */
    case 215: /* nexprlist */
    case 216: /* setlist */
    case 219: /* itemlist */
    case 220: /* exprlist */
    case 226: /* case_exprlist */
{
sqlite3ExprListDelete(pParse->db, (yypminor->yy442));
}
      break;
    case 192: /* fullname */
    case 197: /* from */
    case 205: /* seltablist */
    case 206: /* stl_prefix */
{
sqlite3SrcListDelete(pParse->db, (yypminor->yy347));
}
      break;
    case 210: /* using_opt */
    case 212: /* inscollist */
    case 218: /* inscollist_opt */
{
sqlite3IdListDelete(pParse->db, (yypminor->yy180));
}
      break;
    case 234: /* trigger_cmd_list */
    case 239: /* trigger_cmd */
{
sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy327));
}
      break;
    case 236: /* trigger_event */
{
sqlite3IdListDelete(pParse->db, (yypminor->yy410).b);
}
      break;
    default:  break;   /* If no destructor action specified: do nothing */
  }
}

/*







|
|

|


|
|
|
|
|
|
|
|
|
|
<

|


|
|
|
|
|
|
|
|
|
|
|
|

|


|
|
|
|

|


|
|
|

|


|
|

|


|

|







84091
84092
84093
84094
84095
84096
84097
84098
84099
84100
84101
84102
84103
84104
84105
84106
84107
84108
84109
84110
84111
84112
84113

84114
84115
84116
84117
84118
84119
84120
84121
84122
84123
84124
84125
84126
84127
84128
84129
84130
84131
84132
84133
84134
84135
84136
84137
84138
84139
84140
84141
84142
84143
84144
84145
84146
84147
84148
84149
84150
84151
84152
84153
84154
84155
84156
84157
84158
84159
84160
84161
84162
84163
84164
    ** reduce or during error processing or when a parser is 
    ** being destroyed before it is finished parsing.
    **
    ** Note: during a reduce, the only symbols destroyed are those
    ** which appear on the RHS of the rule, but which are not used
    ** inside the C code.
    */
    case 156: /* select */
    case 190: /* oneselect */
{
sqlite3SelectDelete(pParse->db, (yypminor->yy387));
}
      break;
    case 170: /* term */
    case 171: /* expr */
    case 195: /* where_opt */
    case 197: /* having_opt */
    case 206: /* on_opt */
    case 211: /* sortitem */
    case 219: /* escape */
    case 222: /* case_operand */
    case 224: /* case_else */
    case 234: /* when_clause */

{
sqlite3ExprDelete(pParse->db, (yypminor->yy402));
}
      break;
    case 175: /* idxlist_opt */
    case 183: /* idxlist */
    case 193: /* selcollist */
    case 196: /* groupby_opt */
    case 198: /* orderby_opt */
    case 200: /* sclp */
    case 210: /* sortlist */
    case 212: /* nexprlist */
    case 213: /* setlist */
    case 216: /* itemlist */
    case 217: /* exprlist */
    case 223: /* case_exprlist */
{
sqlite3ExprListDelete(pParse->db, (yypminor->yy258));
}
      break;
    case 189: /* fullname */
    case 194: /* from */
    case 202: /* seltablist */
    case 203: /* stl_prefix */
{
sqlite3SrcListDelete(pParse->db, (yypminor->yy3));
}
      break;
    case 207: /* using_opt */
    case 209: /* inscollist */
    case 215: /* inscollist_opt */
{
sqlite3IdListDelete(pParse->db, (yypminor->yy400));
}
      break;
    case 230: /* trigger_cmd_list */
    case 235: /* trigger_cmd */
{
sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy19));
}
      break;
    case 232: /* trigger_event */
{
sqlite3IdListDelete(pParse->db, (yypminor->yy466).b);
}
      break;
    default:  break;   /* If no destructor action specified: do nothing */
  }
}

/*
84482
84483
84484
84485
84486
84487
84488






84489
84490
84491
84492
84493


84494
84495
84496
84497
84498
84499
84500
84501
84502
84503
84504
84505
84506
84507
84508


84509
84510
84511
84512
84513
84514
84515
84516
84517
84518
84519
84520
84521
84522
84523
84524
84525
84526
84527
84528
84529
84530
84531
84532
84533
84534
84535
84536
84537
84538
84539
84540
84541
84542
84543
84544
84545
84546
84547
84548
84549
84550
84551
84552
84553
84554
84555
84556
84557
84558






84559
84560



84561





84562
84563
84564
84565
84566
84567
84568
84569
84570
84571
84572
84573
84574
84575
84576
84577
84578
84579
84580
84581
84582
84583
84584
84585
84586
84587
84588
84589
84590

84591
84592
84593

84594
84595
84596
84597
84598
84599
84600
84601
84602

84603
84604
84605

84606
84607


84608
84609



84610
84611
84612

84613
84614
84615
84616
84617
84618
84619
84620
84621
84622
84623
84624
84625
84626
84627
84628
84629
84630
84631
84632
84633
84634
84635
84636
84637
84638
84639
84640
84641
84642
84643
84644



84645


84646
84647
84648
84649
84650
84651
84652
84653
84654
84655
84656
84657
84658
84659
84660
84661
84662
84663
84664
84665
84666
84667
84668
84669
84670
84671








84672
84673
84674
84675
84676
84677
84678
84679
84680
84681
84682
84683
84684
84685
84686
84687
84688
84689
84690
84691
84692
84693
84694
84695
84696
84697







84698
84699
84700
84701
84702
84703
84704
84705
84706
84707
84708
84709
84710
84711
84712
84713
84714
84715
84716
84717
84718
84719
84720
84721
84722




84723



84724
84725
84726
84727
84728
84729
84730
84731
84732
84733
84734
84735
84736
84737
84738
84739
84740
84741
84742
84743
84744
84745
84746
84747
84748
84749
84750
84751
84752
84753
84754
84755
84756
84757
84758
84759
84760
84761
84762
84763
84764
84765
84766
84767
84768
84769
84770
84771
84772
84773
84774
84775
84776
84777
84778
84779
84780
84781
84782
84783
84784
84785
84786
84787
84788
84789
84790
84791
84792
84793
84794
84795
84796
84797
84798
84799
84800
84801
84802
84803
84804
84805
84806
84807
84808
84809
84810
84811
84812
84813
84814
/* The following table contains information about every rule that
** is used during the reduce.
*/
static const struct {
  YYCODETYPE lhs;         /* Symbol on the left-hand side of the rule */
  unsigned char nrhs;     /* Number of right-hand side symbols in the rule */
} yyRuleInfo[] = {






  { 142, 1 },
  { 143, 2 },
  { 143, 1 },
  { 144, 1 },
  { 144, 3 },


  { 145, 0 },
  { 145, 1 },
  { 145, 3 },
  { 146, 1 },
  { 147, 3 },
  { 149, 0 },
  { 149, 1 },
  { 149, 2 },
  { 148, 0 },
  { 148, 1 },
  { 148, 1 },
  { 148, 1 },
  { 147, 2 },
  { 147, 2 },
  { 147, 2 },


  { 151, 1 },
  { 151, 0 },
  { 147, 2 },
  { 147, 3 },
  { 147, 5 },
  { 147, 2 },
  { 152, 6 },
  { 155, 0 },
  { 155, 3 },
  { 154, 1 },
  { 154, 0 },
  { 153, 4 },
  { 153, 2 },
  { 157, 3 },
  { 157, 1 },
  { 160, 3 },
  { 161, 1 },
  { 164, 1 },
  { 165, 1 },
  { 150, 1 },
  { 150, 1 },
  { 150, 1 },
  { 162, 0 },
  { 162, 1 },
  { 166, 1 },
  { 166, 4 },
  { 166, 6 },
  { 167, 1 },
  { 167, 2 },
  { 168, 1 },
  { 168, 1 },
  { 163, 2 },
  { 163, 0 },
  { 171, 3 },
  { 171, 1 },
  { 172, 2 },
  { 172, 4 },
  { 172, 3 },
  { 172, 3 },
  { 172, 2 },
  { 172, 2 },
  { 172, 3 },
  { 172, 5 },
  { 172, 2 },
  { 172, 4 },
  { 172, 4 },
  { 172, 1 },
  { 172, 2 },
  { 177, 0 },
  { 177, 1 },






  { 179, 0 },
  { 179, 2 },



  { 181, 2 },





  { 181, 3 },
  { 181, 3 },
  { 181, 3 },
  { 182, 2 },
  { 182, 2 },
  { 182, 1 },
  { 182, 1 },
  { 180, 3 },
  { 180, 2 },
  { 183, 0 },
  { 183, 2 },
  { 183, 2 },
  { 158, 0 },
  { 158, 2 },
  { 184, 3 },
  { 184, 2 },
  { 184, 1 },
  { 185, 2 },
  { 185, 7 },
  { 185, 5 },
  { 185, 5 },
  { 185, 10 },
  { 187, 0 },
  { 187, 1 },
  { 175, 0 },
  { 175, 3 },
  { 188, 0 },
  { 188, 2 },
  { 189, 1 },

  { 189, 1 },
  { 189, 1 },
  { 147, 4 },

  { 191, 2 },
  { 191, 0 },
  { 147, 8 },
  { 147, 4 },
  { 147, 1 },
  { 159, 1 },
  { 159, 3 },
  { 194, 1 },
  { 194, 2 },

  { 194, 1 },
  { 193, 9 },
  { 195, 1 },

  { 195, 1 },
  { 195, 0 },


  { 203, 2 },
  { 203, 0 },



  { 196, 3 },
  { 196, 2 },
  { 196, 4 },

  { 204, 2 },
  { 204, 1 },
  { 204, 0 },
  { 197, 0 },
  { 197, 2 },
  { 206, 2 },
  { 206, 0 },
  { 205, 7 },
  { 205, 7 },
  { 205, 7 },
  { 156, 0 },
  { 156, 2 },
  { 192, 2 },
  { 207, 1 },
  { 207, 2 },
  { 207, 3 },
  { 207, 4 },
  { 209, 2 },
  { 209, 0 },
  { 208, 0 },
  { 208, 3 },
  { 208, 2 },
  { 210, 4 },
  { 210, 0 },
  { 201, 0 },
  { 201, 3 },
  { 213, 4 },
  { 213, 2 },
  { 214, 1 },
  { 176, 1 },
  { 176, 1 },
  { 176, 0 },



  { 199, 0 },


  { 199, 3 },
  { 200, 0 },
  { 200, 2 },
  { 202, 0 },
  { 202, 2 },
  { 202, 4 },
  { 202, 4 },
  { 147, 5 },
  { 198, 0 },
  { 198, 2 },
  { 147, 7 },
  { 216, 5 },
  { 216, 3 },
  { 147, 8 },
  { 147, 5 },
  { 147, 6 },
  { 217, 2 },
  { 217, 1 },
  { 219, 3 },
  { 219, 1 },
  { 218, 0 },
  { 218, 3 },
  { 212, 3 },
  { 212, 1 },
  { 174, 1 },
  { 174, 3 },








  { 173, 1 },
  { 174, 1 },
  { 174, 1 },
  { 174, 3 },
  { 174, 5 },
  { 173, 1 },
  { 173, 1 },
  { 174, 1 },
  { 174, 1 },
  { 174, 3 },
  { 174, 6 },
  { 174, 5 },
  { 174, 4 },
  { 173, 1 },
  { 174, 3 },
  { 174, 3 },
  { 174, 3 },
  { 174, 3 },
  { 174, 3 },
  { 174, 3 },
  { 174, 3 },
  { 174, 3 },
  { 221, 1 },
  { 221, 2 },
  { 221, 1 },
  { 221, 2 },







  { 222, 2 },
  { 222, 0 },
  { 174, 4 },
  { 174, 2 },
  { 174, 3 },
  { 174, 3 },
  { 174, 4 },
  { 174, 2 },
  { 174, 2 },
  { 174, 2 },
  { 174, 2 },
  { 223, 1 },
  { 223, 2 },
  { 174, 5 },
  { 224, 1 },
  { 224, 2 },
  { 174, 5 },
  { 174, 3 },
  { 174, 5 },
  { 174, 4 },
  { 174, 4 },
  { 174, 5 },
  { 226, 5 },
  { 226, 4 },
  { 227, 2 },




  { 227, 0 },



  { 225, 1 },
  { 225, 0 },
  { 220, 1 },
  { 220, 0 },
  { 215, 3 },
  { 215, 1 },
  { 147, 11 },
  { 228, 1 },
  { 228, 0 },
  { 178, 0 },
  { 178, 3 },
  { 186, 5 },
  { 186, 3 },
  { 229, 0 },
  { 229, 2 },
  { 147, 4 },
  { 147, 1 },
  { 147, 2 },
  { 147, 5 },
  { 147, 5 },
  { 147, 5 },
  { 147, 5 },
  { 147, 6 },
  { 147, 3 },
  { 230, 1 },
  { 230, 1 },
  { 169, 2 },
  { 170, 2 },
  { 232, 1 },
  { 231, 1 },
  { 231, 0 },
  { 147, 5 },
  { 233, 11 },
  { 235, 1 },
  { 235, 1 },
  { 235, 2 },
  { 235, 0 },
  { 236, 1 },
  { 236, 1 },
  { 236, 3 },
  { 237, 0 },
  { 237, 3 },
  { 238, 0 },
  { 238, 2 },
  { 234, 3 },
  { 234, 2 },
  { 239, 6 },
  { 239, 8 },
  { 239, 5 },
  { 239, 4 },
  { 239, 1 },
  { 174, 4 },
  { 174, 6 },
  { 190, 1 },
  { 190, 1 },
  { 190, 1 },
  { 147, 4 },
  { 147, 6 },
  { 147, 3 },
  { 241, 0 },
  { 241, 2 },
  { 240, 1 },
  { 240, 0 },
  { 147, 1 },
  { 147, 3 },
  { 147, 1 },
  { 147, 3 },
  { 147, 6 },
  { 147, 6 },
  { 242, 1 },
  { 243, 0 },
  { 243, 1 },
  { 147, 1 },
  { 147, 4 },
  { 244, 7 },
  { 245, 1 },
  { 245, 3 },
  { 246, 0 },
  { 246, 2 },
  { 247, 1 },
  { 247, 3 },
  { 248, 1 },
  { 249, 0 },
  { 249, 2 },
};

static void yy_accept(yyParser*);  /* Forward Declaration */

/*
** Perform a reduce action and the shift that must immediately
** follow the reduce.







>
>
>
>
>
>

|

|
|
>
>


|
|
|
|
<
|
|
|
|
|
|
|
|
>
>


|
<
<
|
<
<
<
|
|
<
<

|
<

|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>
>
>
>
>
|

>
>
>
|
>
>
>
>
>

|
|

|
|
|
|
<
<
<
<
<
<
|
<

|
|
|
|
|
|
|
|
<
|
|
|
>
|
|
|
>

|
|
<
|
|
<
|
|
>
|
|
|
>
|
|
>
>


>
>
>
|
|
|
>

|
|
<
<


|
|
|
<
<
<
|
|
<
<
<
<
|
|
<

|
<
<
|
<
|
|
|
|
>
>
>

>
>
|
<
<
<
<
<
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>
>
>
>
>
>
>
|
<
<
|
<
<
<
<
<
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>
>
>
>
>
>
|
<
<
|
<
<
<
|
|
<
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>
>
>
|
>
>
>


<
|
|
<
<
<
<
<
<
|
|
|
|
|
<
|
<
<
<
<
<
<
<
<
|
<
|
|
|
|
|
|
|
<
<
<
<
<
<
<
<
|
|
<
<
<
<
<
|
<
<
|
<
<
<
<
|
|
|
<
|
|
|
|
<
|
<
|
|
|
|
|
|
|
<
<
<
|
<
|
|
<







84383
84384
84385
84386
84387
84388
84389
84390
84391
84392
84393
84394
84395
84396
84397
84398
84399
84400
84401
84402
84403
84404
84405
84406
84407
84408

84409
84410
84411
84412
84413
84414
84415
84416
84417
84418
84419
84420
84421


84422



84423
84424


84425
84426

84427
84428
84429
84430
84431

84432
84433
84434
84435
84436
84437
84438
84439
84440
84441
84442
84443
84444
84445
84446
84447
84448
84449
84450
84451
84452
84453
84454
84455
84456
84457
84458
84459
84460
84461
84462
84463
84464
84465
84466
84467
84468
84469
84470
84471
84472
84473
84474
84475
84476
84477
84478
84479
84480
84481
84482
84483
84484






84485

84486
84487
84488
84489
84490
84491
84492
84493
84494

84495
84496
84497
84498
84499
84500
84501
84502
84503
84504
84505

84506
84507

84508
84509
84510
84511
84512
84513
84514
84515
84516
84517
84518
84519
84520
84521
84522
84523
84524
84525
84526
84527
84528
84529
84530


84531
84532
84533
84534
84535



84536
84537




84538
84539

84540
84541


84542

84543
84544
84545
84546
84547
84548
84549
84550
84551
84552
84553






84554
84555
84556
84557
84558
84559
84560
84561
84562
84563
84564
84565
84566
84567
84568
84569
84570
84571
84572
84573
84574
84575
84576
84577
84578
84579
84580
84581


84582






84583
84584
84585
84586
84587
84588
84589
84590
84591
84592
84593
84594
84595
84596
84597
84598
84599
84600
84601
84602
84603
84604
84605
84606


84607



84608
84609


84610
84611
84612
84613
84614
84615
84616
84617
84618
84619
84620
84621
84622
84623
84624
84625
84626
84627
84628
84629
84630
84631
84632
84633

84634
84635






84636
84637
84638
84639
84640

84641








84642

84643
84644
84645
84646
84647
84648
84649








84650
84651





84652


84653




84654
84655
84656

84657
84658
84659
84660

84661

84662
84663
84664
84665
84666
84667
84668



84669

84670
84671

84672
84673
84674
84675
84676
84677
84678
/* The following table contains information about every rule that
** is used during the reduce.
*/
static const struct {
  YYCODETYPE lhs;         /* Symbol on the left-hand side of the rule */
  unsigned char nrhs;     /* Number of right-hand side symbols in the rule */
} yyRuleInfo[] = {
  { 139, 1 },
  { 140, 2 },
  { 140, 1 },
  { 141, 1 },
  { 141, 3 },
  { 142, 0 },
  { 142, 1 },
  { 142, 3 },
  { 143, 1 },
  { 144, 3 },
  { 146, 0 },
  { 146, 1 },
  { 146, 2 },
  { 145, 0 },
  { 145, 1 },
  { 145, 1 },
  { 145, 1 },
  { 144, 2 },
  { 144, 2 },

  { 144, 2 },
  { 148, 1 },
  { 148, 0 },
  { 144, 2 },
  { 144, 3 },
  { 144, 5 },
  { 144, 2 },
  { 149, 6 },
  { 152, 0 },
  { 152, 3 },
  { 151, 1 },
  { 151, 0 },
  { 150, 4 },


  { 150, 2 },



  { 154, 3 },
  { 154, 1 },


  { 157, 3 },
  { 158, 1 },

  { 161, 1 },
  { 162, 1 },
  { 147, 1 },
  { 147, 1 },
  { 147, 1 },

  { 159, 0 },
  { 159, 1 },
  { 163, 1 },
  { 163, 4 },
  { 163, 6 },
  { 164, 1 },
  { 164, 2 },
  { 165, 1 },
  { 165, 1 },
  { 160, 2 },
  { 160, 0 },
  { 168, 3 },
  { 168, 1 },
  { 169, 2 },
  { 169, 4 },
  { 169, 3 },
  { 169, 3 },
  { 169, 2 },
  { 169, 2 },
  { 169, 3 },
  { 169, 5 },
  { 169, 2 },
  { 169, 4 },
  { 169, 4 },
  { 169, 1 },
  { 169, 2 },
  { 174, 0 },
  { 174, 1 },
  { 176, 0 },
  { 176, 2 },
  { 178, 2 },
  { 178, 3 },
  { 178, 3 },
  { 178, 3 },
  { 179, 2 },
  { 179, 2 },
  { 179, 1 },
  { 179, 1 },
  { 177, 3 },
  { 177, 2 },
  { 180, 0 },
  { 180, 2 },
  { 180, 2 },
  { 155, 0 },
  { 155, 2 },
  { 181, 3 },
  { 181, 2 },
  { 181, 1 },
  { 182, 2 },
  { 182, 7 },
  { 182, 5 },
  { 182, 5 },
  { 182, 10 },






  { 184, 0 },

  { 184, 1 },
  { 172, 0 },
  { 172, 3 },
  { 185, 0 },
  { 185, 2 },
  { 186, 1 },
  { 186, 1 },
  { 186, 1 },
  { 144, 4 },

  { 188, 2 },
  { 188, 0 },
  { 144, 8 },
  { 144, 4 },
  { 144, 1 },
  { 156, 1 },
  { 156, 3 },
  { 191, 1 },
  { 191, 2 },
  { 191, 1 },
  { 190, 9 },

  { 192, 1 },
  { 192, 1 },

  { 192, 0 },
  { 200, 2 },
  { 200, 0 },
  { 193, 3 },
  { 193, 2 },
  { 193, 4 },
  { 201, 2 },
  { 201, 1 },
  { 201, 0 },
  { 194, 0 },
  { 194, 2 },
  { 203, 2 },
  { 203, 0 },
  { 202, 7 },
  { 202, 7 },
  { 202, 7 },
  { 153, 0 },
  { 153, 2 },
  { 189, 2 },
  { 204, 1 },
  { 204, 2 },
  { 204, 3 },
  { 204, 4 },


  { 206, 2 },
  { 206, 0 },
  { 205, 0 },
  { 205, 3 },
  { 205, 2 },



  { 207, 4 },
  { 207, 0 },




  { 198, 0 },
  { 198, 3 },

  { 210, 4 },
  { 210, 2 },


  { 211, 1 },

  { 173, 1 },
  { 173, 1 },
  { 173, 0 },
  { 196, 0 },
  { 196, 3 },
  { 197, 0 },
  { 197, 2 },
  { 199, 0 },
  { 199, 2 },
  { 199, 4 },
  { 199, 4 },






  { 144, 5 },
  { 195, 0 },
  { 195, 2 },
  { 144, 7 },
  { 213, 5 },
  { 213, 3 },
  { 144, 8 },
  { 144, 5 },
  { 144, 6 },
  { 214, 2 },
  { 214, 1 },
  { 216, 3 },
  { 216, 1 },
  { 215, 0 },
  { 215, 3 },
  { 209, 3 },
  { 209, 1 },
  { 171, 1 },
  { 171, 3 },
  { 170, 1 },
  { 171, 1 },
  { 171, 1 },
  { 171, 3 },
  { 171, 5 },
  { 170, 1 },
  { 170, 1 },
  { 171, 1 },
  { 171, 1 },


  { 171, 3 },






  { 171, 6 },
  { 171, 5 },
  { 171, 4 },
  { 170, 1 },
  { 171, 3 },
  { 171, 3 },
  { 171, 3 },
  { 171, 3 },
  { 171, 3 },
  { 171, 3 },
  { 171, 3 },
  { 171, 3 },
  { 218, 1 },
  { 218, 2 },
  { 218, 1 },
  { 218, 2 },
  { 219, 2 },
  { 219, 0 },
  { 171, 4 },
  { 171, 2 },
  { 171, 3 },
  { 171, 3 },
  { 171, 4 },
  { 171, 2 },


  { 171, 2 },



  { 171, 2 },
  { 171, 2 },


  { 220, 1 },
  { 220, 2 },
  { 171, 5 },
  { 221, 1 },
  { 221, 2 },
  { 171, 5 },
  { 171, 3 },
  { 171, 5 },
  { 171, 4 },
  { 171, 4 },
  { 171, 5 },
  { 223, 5 },
  { 223, 4 },
  { 224, 2 },
  { 224, 0 },
  { 222, 1 },
  { 222, 0 },
  { 217, 1 },
  { 217, 0 },
  { 212, 3 },
  { 212, 1 },
  { 144, 11 },
  { 225, 1 },
  { 225, 0 },

  { 175, 0 },
  { 175, 3 },






  { 183, 5 },
  { 183, 3 },
  { 226, 0 },
  { 226, 2 },
  { 144, 4 },

  { 166, 2 },








  { 167, 2 },

  { 228, 1 },
  { 227, 1 },
  { 227, 0 },
  { 144, 5 },
  { 229, 11 },
  { 231, 1 },
  { 231, 1 },








  { 231, 2 },
  { 231, 0 },





  { 232, 1 },


  { 232, 1 },




  { 232, 3 },
  { 233, 0 },
  { 233, 3 },

  { 234, 0 },
  { 234, 2 },
  { 230, 3 },
  { 230, 2 },

  { 235, 6 },

  { 235, 8 },
  { 235, 5 },
  { 235, 4 },
  { 235, 1 },
  { 171, 4 },
  { 171, 6 },
  { 187, 1 },



  { 187, 1 },

  { 187, 1 },
  { 144, 4 },

};

static void yy_accept(yyParser*);  /* Forward Declaration */

/*
** Perform a reduce action and the shift that must immediately
** follow the reduce.
84880
84881
84882
84883
84884
84885
84886
84887
84888
84889
84890
84891
84892
84893
84894
84895
84896
84897
84898
84899
84900
84901
84902
84903
84904
84905
84906
84907
84908
84909
84910
84911
84912
84913
84914
84915
84916
84917
84918
84919
84920
84921
84922
84923
84924
84925
84926
84927
84928
84929
84930
84931
84932
      case 53: /* carg ::= CONSTRAINT nm ccons */
      case 54: /* carg ::= ccons */
      case 60: /* ccons ::= NULL onconf */
      case 87: /* conslist ::= conslist COMMA tcons */
      case 88: /* conslist ::= conslist tcons */
      case 89: /* conslist ::= tcons */
      case 90: /* tcons ::= CONSTRAINT nm */
      case 264: /* plus_opt ::= PLUS */
      case 265: /* plus_opt ::= */
      case 275: /* foreach_clause ::= */
      case 276: /* foreach_clause ::= FOR EACH ROW */
      case 296: /* database_kw_opt ::= DATABASE */
      case 297: /* database_kw_opt ::= */
      case 305: /* kwcolumn_opt ::= */
      case 306: /* kwcolumn_opt ::= COLUMNKW */
      case 310: /* vtabarglist ::= vtabarg */
      case 311: /* vtabarglist ::= vtabarglist COMMA vtabarg */
      case 313: /* vtabarg ::= vtabarg vtabargtoken */
      case 317: /* anylist ::= */
{
}
        break;
      case 5: /* explain ::= */
{ sqlite3BeginParse(pParse, 0); }
        break;
      case 6: /* explain ::= EXPLAIN */
{ sqlite3BeginParse(pParse, 1); }
        break;
      case 7: /* explain ::= EXPLAIN QUERY PLAN */
{ sqlite3BeginParse(pParse, 2); }
        break;
      case 8: /* cmdx ::= cmd */
{ sqlite3FinishCoding(pParse); }
        break;
      case 9: /* cmd ::= BEGIN transtype trans_opt */
{sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy392);}
        break;
      case 13: /* transtype ::= */
{yygotominor.yy392 = TK_DEFERRED;}
        break;
      case 14: /* transtype ::= DEFERRED */
      case 15: /* transtype ::= IMMEDIATE */
      case 16: /* transtype ::= EXCLUSIVE */
      case 112: /* multiselect_op ::= UNION */
      case 114: /* multiselect_op ::= EXCEPT|INTERSECT */
{yygotominor.yy392 = yymsp[0].major;}
        break;
      case 17: /* cmd ::= COMMIT trans_opt */
      case 18: /* cmd ::= END trans_opt */
{sqlite3CommitTransaction(pParse);}
        break;
      case 19: /* cmd ::= ROLLBACK trans_opt */
{sqlite3RollbackTransaction(pParse);}







|
|
|
|
<
<
<
<
<
<
<
<
















|


|






|







84744
84745
84746
84747
84748
84749
84750
84751
84752
84753
84754








84755
84756
84757
84758
84759
84760
84761
84762
84763
84764
84765
84766
84767
84768
84769
84770
84771
84772
84773
84774
84775
84776
84777
84778
84779
84780
84781
84782
84783
84784
84785
84786
84787
84788
      case 53: /* carg ::= CONSTRAINT nm ccons */
      case 54: /* carg ::= ccons */
      case 60: /* ccons ::= NULL onconf */
      case 87: /* conslist ::= conslist COMMA tcons */
      case 88: /* conslist ::= conslist tcons */
      case 89: /* conslist ::= tcons */
      case 90: /* tcons ::= CONSTRAINT nm */
      case 254: /* plus_opt ::= PLUS */
      case 255: /* plus_opt ::= */
      case 265: /* foreach_clause ::= */
      case 266: /* foreach_clause ::= FOR EACH ROW */








{
}
        break;
      case 5: /* explain ::= */
{ sqlite3BeginParse(pParse, 0); }
        break;
      case 6: /* explain ::= EXPLAIN */
{ sqlite3BeginParse(pParse, 1); }
        break;
      case 7: /* explain ::= EXPLAIN QUERY PLAN */
{ sqlite3BeginParse(pParse, 2); }
        break;
      case 8: /* cmdx ::= cmd */
{ sqlite3FinishCoding(pParse); }
        break;
      case 9: /* cmd ::= BEGIN transtype trans_opt */
{sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy228);}
        break;
      case 13: /* transtype ::= */
{yygotominor.yy228 = TK_DEFERRED;}
        break;
      case 14: /* transtype ::= DEFERRED */
      case 15: /* transtype ::= IMMEDIATE */
      case 16: /* transtype ::= EXCLUSIVE */
      case 112: /* multiselect_op ::= UNION */
      case 114: /* multiselect_op ::= EXCEPT|INTERSECT */
{yygotominor.yy228 = yymsp[0].major;}
        break;
      case 17: /* cmd ::= COMMIT trans_opt */
      case 18: /* cmd ::= END trans_opt */
{sqlite3CommitTransaction(pParse);}
        break;
      case 19: /* cmd ::= ROLLBACK trans_opt */
{sqlite3RollbackTransaction(pParse);}
84944
84945
84946
84947
84948
84949
84950
84951
84952
84953
84954
84955
84956
84957
84958
84959
84960
84961
84962
84963
84964
84965
84966
84967
84968
84969
84970
84971
84972
84973
84974
84975
84976
84977
84978
84979
84980
84981
84982
84983
84984
84985
84986
84987
84988
84989
84990
84991
84992
      case 24: /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */
{
  sqlite3Savepoint(pParse, SAVEPOINT_ROLLBACK, &yymsp[0].minor.yy0);
}
        break;
      case 26: /* create_table ::= CREATE temp TABLE ifnotexists nm dbnm */
{
   sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy392,0,0,yymsp[-2].minor.yy392);
}
        break;
      case 27: /* ifnotexists ::= */
      case 30: /* temp ::= */
      case 68: /* autoinc ::= */
      case 82: /* init_deferred_pred_opt ::= */
      case 84: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
      case 95: /* defer_subclause_opt ::= */
      case 106: /* ifexists ::= */
      case 117: /* distinct ::= ALL */
      case 118: /* distinct ::= */
      case 220: /* between_op ::= BETWEEN */
      case 223: /* in_op ::= IN */
{yygotominor.yy392 = 0;}
        break;
      case 28: /* ifnotexists ::= IF NOT EXISTS */
      case 29: /* temp ::= TEMP */
      case 69: /* autoinc ::= AUTOINCR */
      case 83: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */
      case 105: /* ifexists ::= IF EXISTS */
      case 116: /* distinct ::= DISTINCT */
      case 221: /* between_op ::= NOT BETWEEN */
      case 224: /* in_op ::= NOT IN */
{yygotominor.yy392 = 1;}
        break;
      case 31: /* create_table_args ::= LP columnlist conslist_opt RP */
{
  sqlite3EndTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0);
}
        break;
      case 32: /* create_table_args ::= AS select */
{
  sqlite3EndTable(pParse,0,0,yymsp[0].minor.yy159);
  sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy159);
}
        break;
      case 35: /* column ::= columnid type carglist */
{
  yygotominor.yy0.z = yymsp[-2].minor.yy0.z;
  yygotominor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-2].minor.yy0.z) + pParse->sLastToken.n;
}







|













|









|








|
|







84800
84801
84802
84803
84804
84805
84806
84807
84808
84809
84810
84811
84812
84813
84814
84815
84816
84817
84818
84819
84820
84821
84822
84823
84824
84825
84826
84827
84828
84829
84830
84831
84832
84833
84834
84835
84836
84837
84838
84839
84840
84841
84842
84843
84844
84845
84846
84847
84848
      case 24: /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */
{
  sqlite3Savepoint(pParse, SAVEPOINT_ROLLBACK, &yymsp[0].minor.yy0);
}
        break;
      case 26: /* create_table ::= CREATE temp TABLE ifnotexists nm dbnm */
{
   sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy228,0,0,yymsp[-2].minor.yy228);
}
        break;
      case 27: /* ifnotexists ::= */
      case 30: /* temp ::= */
      case 68: /* autoinc ::= */
      case 82: /* init_deferred_pred_opt ::= */
      case 84: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
      case 95: /* defer_subclause_opt ::= */
      case 106: /* ifexists ::= */
      case 117: /* distinct ::= ALL */
      case 118: /* distinct ::= */
      case 220: /* between_op ::= BETWEEN */
      case 223: /* in_op ::= IN */
{yygotominor.yy228 = 0;}
        break;
      case 28: /* ifnotexists ::= IF NOT EXISTS */
      case 29: /* temp ::= TEMP */
      case 69: /* autoinc ::= AUTOINCR */
      case 83: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */
      case 105: /* ifexists ::= IF EXISTS */
      case 116: /* distinct ::= DISTINCT */
      case 221: /* between_op ::= NOT BETWEEN */
      case 224: /* in_op ::= NOT IN */
{yygotominor.yy228 = 1;}
        break;
      case 31: /* create_table_args ::= LP columnlist conslist_opt RP */
{
  sqlite3EndTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0);
}
        break;
      case 32: /* create_table_args ::= AS select */
{
  sqlite3EndTable(pParse,0,0,yymsp[0].minor.yy387);
  sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy387);
}
        break;
      case 35: /* column ::= columnid type carglist */
{
  yygotominor.yy0.z = yymsp[-2].minor.yy0.z;
  yygotominor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-2].minor.yy0.z) + pParse->sLastToken.n;
}
85005
85006
85007
85008
85009
85010
85011
85012
85013
85014
85015
85016
85017
85018
85019
85020
85021
85022
85023
      case 44: /* typetoken ::= typename */
      case 47: /* typename ::= ids */
      case 124: /* as ::= AS nm */
      case 125: /* as ::= ids */
      case 135: /* dbnm ::= DOT nm */
      case 144: /* indexed_opt ::= INDEXED BY nm */
      case 249: /* collate ::= COLLATE ids */
      case 259: /* nmnum ::= plus_num */
      case 260: /* nmnum ::= nm */
      case 261: /* plus_num ::= plus_opt number */
      case 262: /* minus_num ::= MINUS number */
      case 263: /* number ::= INTEGER|FLOAT */
{yygotominor.yy0 = yymsp[0].minor.yy0;}
        break;
      case 43: /* type ::= typetoken */
{sqlite3AddColumnType(pParse,&yymsp[0].minor.yy0);}
        break;
      case 45: /* typetoken ::= typename LP signed RP */
{







<
<
|
|
|







84861
84862
84863
84864
84865
84866
84867


84868
84869
84870
84871
84872
84873
84874
84875
84876
84877
      case 44: /* typetoken ::= typename */
      case 47: /* typename ::= ids */
      case 124: /* as ::= AS nm */
      case 125: /* as ::= ids */
      case 135: /* dbnm ::= DOT nm */
      case 144: /* indexed_opt ::= INDEXED BY nm */
      case 249: /* collate ::= COLLATE ids */


      case 251: /* plus_num ::= plus_opt number */
      case 252: /* minus_num ::= MINUS number */
      case 253: /* number ::= INTEGER|FLOAT */
{yygotominor.yy0 = yymsp[0].minor.yy0;}
        break;
      case 43: /* type ::= typetoken */
{sqlite3AddColumnType(pParse,&yymsp[0].minor.yy0);}
        break;
      case 45: /* typetoken ::= typename LP signed RP */
{
85032
85033
85034
85035
85036
85037
85038
85039
85040
85041
85042
85043
85044
85045
85046
85047
85048
85049
85050
85051
85052
85053
85054
85055
85056
85057
85058
85059
85060
85061
85062
85063
85064
85065
85066
85067
85068
85069
85070
85071
85072
85073
85074
85075
85076
85077
85078
85079
85080
85081
85082
85083
85084
85085
85086
85087
85088
85089
85090
85091
85092
85093
85094
85095
85096
85097
85098
85099
85100
85101
85102
85103
85104
85105
85106
85107
85108
85109
85110
85111
85112
85113
85114
85115
85116
85117
85118
85119
85120
85121
85122
85123
85124
85125
85126
85127
85128
85129
85130
85131
85132
85133
85134
85135
85136
85137
85138
85139
85140
85141
85142
85143
85144
85145
85146
85147
85148
85149
85150
85151
85152
85153
85154
85155
85156
85157
85158
85159
85160
85161
85162
85163
85164
85165
85166
85167
85168
85169
85170
85171
85172
85173
85174
85175
85176
85177
85178
85179
85180
85181
85182
85183
85184
85185
85186
85187
85188
85189
85190
85191
85192
85193
85194
85195
85196
85197
85198
85199
85200
85201
85202
85203
85204
85205
85206
85207
85208
85209
85210
85211
85212
85213
85214
85215
85216
85217
85218
85219
85220
85221
85222
85223
85224
85225
85226
85227
85228
85229
85230
85231
85232
85233
85234
85235
85236
85237
85238
85239
85240
85241
85242
85243
85244
85245
85246
85247
85248
85249
85250
85251
85252
85253
85254
85255
85256
85257
85258
85259
85260
85261
85262
85263
85264
85265
85266
85267
85268
85269
85270
85271
85272
85273
85274
85275
85276
85277
85278
85279
85280
85281
85282
85283
85284
85285
85286
85287
85288
85289
85290
85291
85292
85293
85294
85295
85296
85297
85298
85299
85300
85301
85302
85303
85304
85305
85306
85307
85308
85309
85310
85311
85312
85313
85314
85315
85316
85317
85318
85319
85320
85321
85322
85323
85324
85325
85326
85327
85328
85329
85330
85331
85332
85333
85334
85335
85336
85337
85338
85339
85340
85341
85342
85343
85344
85345
85346
85347
85348
85349
85350
85351
85352
85353
85354
85355
85356
85357
85358
85359
85360
85361
85362
85363
85364
85365
85366
85367
85368
85369
85370
85371
85372
85373
85374
85375
85376
85377
85378
85379
85380
85381
85382
85383
85384
85385
85386
85387
85388
85389
85390
85391
85392
85393
85394
85395
85396
85397
85398
85399
85400
85401
85402
85403
85404
85405
85406
85407
85408
85409
85410
85411
85412
85413
85414
85415
85416
85417
85418
85419
85420
85421
85422
85423
85424
85425
85426
85427
85428
85429
85430
85431
85432
85433
85434
85435
85436
85437
85438
85439
85440
85441
85442
85443
85444
85445
85446
85447
85448
85449
85450
85451
85452
85453
85454
85455
85456
85457
85458
85459
85460
85461
85462
85463
85464
85465
85466
85467
85468
85469
85470
85471
85472
85473
85474
85475
85476
85477
85478
85479
85480
85481
85482
85483
85484
85485
85486
85487
85488
85489
85490
85491
85492
85493
85494
85495
85496
85497
85498
85499
85500
85501
85502
85503
85504
85505
85506
85507
85508
85509
85510
85511
85512
85513
85514
85515
85516
85517
85518
85519
85520
85521
85522
85523
85524
85525
85526
85527
85528
85529
85530
85531
85532
85533
85534
85535
85536
85537
85538
85539
85540
85541
85542
85543
85544
85545
85546
85547
85548
85549
85550
85551
85552
85553
85554
85555
85556
85557
85558
85559
85560
85561
85562
85563
85564
85565
85566
85567
85568
85569
85570
85571
85572
85573
85574
85575
85576
85577
85578
85579
85580
85581
85582
85583
85584
85585
85586
85587
85588
85589
85590
85591
85592
85593
85594
85595
85596
85597
85598
85599
85600
85601
85602
85603
85604
85605
85606
85607
85608
85609
85610
85611
85612
85613
85614
85615
85616
85617
85618
85619
85620
85621
85622
85623
85624
85625
85626
85627
85628
85629
85630
85631
85632
85633
85634
85635
85636
85637
85638
85639
85640
85641
85642
85643
85644
85645
85646
85647
85648
85649
85650
85651
85652
85653
85654
85655
85656
85657
85658
85659
85660
85661
85662
85663
85664
85665
85666
85667
85668
85669
85670
85671
85672
85673
85674
85675
85676
85677
85678
85679
85680
85681
85682
85683
85684
85685
85686
85687
85688
85689
85690
85691
85692
85693
85694
85695
85696
85697
85698
85699
85700
85701
85702
85703
85704
85705
85706
85707
85708
85709
85710
85711
85712
85713
85714
85715
85716
85717
85718
85719
85720
85721
85722
85723
85724
85725
85726
85727
85728
85729
85730
85731
85732
85733
85734
85735
85736
85737
85738
85739
85740
85741
85742
85743
85744
85745
85746
85747
85748
85749
85750
85751
85752
85753
85754
85755
85756
85757
85758
85759
85760
85761
85762
85763
85764
85765
85766
85767
85768
85769
85770
85771
85772
85773
85774
85775
85776
85777
85778
85779
85780

85781
85782
85783
85784
85785
85786
85787
85788
85789
85790
85791
85792
85793
85794
85795
85796
85797
85798
85799

85800
85801
85802
85803
85804
85805
85806
85807
85808
85809
85810
85811
85812
85813
85814
85815
85816
85817
85818
85819
85820
85821
85822
85823
85824
85825
85826
85827
85828

85829
85830
85831
85832
85833
85834
85835
85836
85837
85838
85839
85840
85841
85842
85843

85844
85845

85846



85847
85848
85849
85850
85851
85852
85853
85854
85855
85856

85857
85858
85859
85860
85861
85862
85863
85864
85865
85866
85867
85868
85869
85870
85871
85872
85873
85874
85875
85876
85877
85878
85879
85880
}
        break;
      case 48: /* typename ::= typename ids */
{yygotominor.yy0.z=yymsp[-1].minor.yy0.z; yygotominor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);}
        break;
      case 55: /* ccons ::= DEFAULT term */
      case 57: /* ccons ::= DEFAULT PLUS term */
{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy122);}
        break;
      case 56: /* ccons ::= DEFAULT LP expr RP */
{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy122);}
        break;
      case 58: /* ccons ::= DEFAULT MINUS term */
{
  Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy122, 0, 0);
  sqlite3ExprSpan(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy122->span);
  sqlite3AddDefaultValue(pParse,p);
}
        break;
      case 59: /* ccons ::= DEFAULT id */
{
  Expr *p = sqlite3PExpr(pParse, TK_STRING, 0, 0, &yymsp[0].minor.yy0);
  sqlite3AddDefaultValue(pParse,p);
}
        break;
      case 61: /* ccons ::= NOT NULL onconf */
{sqlite3AddNotNull(pParse, yymsp[0].minor.yy392);}
        break;
      case 62: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */
{sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy392,yymsp[0].minor.yy392,yymsp[-2].minor.yy392);}
        break;
      case 63: /* ccons ::= UNIQUE onconf */
{sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy392,0,0,0,0);}
        break;
      case 64: /* ccons ::= CHECK LP expr RP */
{sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy122);}
        break;
      case 65: /* ccons ::= REFERENCES nm idxlist_opt refargs */
{sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy442,yymsp[0].minor.yy392);}
        break;
      case 66: /* ccons ::= defer_subclause */
{sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy392);}
        break;
      case 67: /* ccons ::= COLLATE ids */
{sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);}
        break;
      case 70: /* refargs ::= */
{ yygotominor.yy392 = OE_Restrict * 0x010101; }
        break;
      case 71: /* refargs ::= refargs refarg */
{ yygotominor.yy392 = (yymsp[-1].minor.yy392 & ~yymsp[0].minor.yy207.mask) | yymsp[0].minor.yy207.value; }
        break;
      case 72: /* refarg ::= MATCH nm */
{ yygotominor.yy207.value = 0;     yygotominor.yy207.mask = 0x000000; }
        break;
      case 73: /* refarg ::= ON DELETE refact */
{ yygotominor.yy207.value = yymsp[0].minor.yy392;     yygotominor.yy207.mask = 0x0000ff; }
        break;
      case 74: /* refarg ::= ON UPDATE refact */
{ yygotominor.yy207.value = yymsp[0].minor.yy392<<8;  yygotominor.yy207.mask = 0x00ff00; }
        break;
      case 75: /* refarg ::= ON INSERT refact */
{ yygotominor.yy207.value = yymsp[0].minor.yy392<<16; yygotominor.yy207.mask = 0xff0000; }
        break;
      case 76: /* refact ::= SET NULL */
{ yygotominor.yy392 = OE_SetNull; }
        break;
      case 77: /* refact ::= SET DEFAULT */
{ yygotominor.yy392 = OE_SetDflt; }
        break;
      case 78: /* refact ::= CASCADE */
{ yygotominor.yy392 = OE_Cascade; }
        break;
      case 79: /* refact ::= RESTRICT */
{ yygotominor.yy392 = OE_Restrict; }
        break;
      case 80: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
      case 81: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
      case 96: /* defer_subclause_opt ::= defer_subclause */
      case 98: /* onconf ::= ON CONFLICT resolvetype */
      case 100: /* orconf ::= OR resolvetype */
      case 101: /* resolvetype ::= raisetype */
      case 173: /* insert_cmd ::= INSERT orconf */
{yygotominor.yy392 = yymsp[0].minor.yy392;}
        break;
      case 85: /* conslist_opt ::= */
{yygotominor.yy0.n = 0; yygotominor.yy0.z = 0;}
        break;
      case 86: /* conslist_opt ::= COMMA conslist */
{yygotominor.yy0 = yymsp[-1].minor.yy0;}
        break;
      case 91: /* tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf */
{sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy442,yymsp[0].minor.yy392,yymsp[-2].minor.yy392,0);}
        break;
      case 92: /* tcons ::= UNIQUE LP idxlist RP onconf */
{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy442,yymsp[0].minor.yy392,0,0,0,0);}
        break;
      case 93: /* tcons ::= CHECK LP expr RP onconf */
{sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy122);}
        break;
      case 94: /* tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt */
{
    sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy442, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy442, yymsp[-1].minor.yy392);
    sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy392);
}
        break;
      case 97: /* onconf ::= */
      case 99: /* orconf ::= */
{yygotominor.yy392 = OE_Default;}
        break;
      case 102: /* resolvetype ::= IGNORE */
{yygotominor.yy392 = OE_Ignore;}
        break;
      case 103: /* resolvetype ::= REPLACE */
      case 174: /* insert_cmd ::= REPLACE */
{yygotominor.yy392 = OE_Replace;}
        break;
      case 104: /* cmd ::= DROP TABLE ifexists fullname */
{
  sqlite3DropTable(pParse, yymsp[0].minor.yy347, 0, yymsp[-1].minor.yy392);
}
        break;
      case 107: /* cmd ::= CREATE temp VIEW ifnotexists nm dbnm AS select */
{
  sqlite3CreateView(pParse, &yymsp[-7].minor.yy0, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, yymsp[0].minor.yy159, yymsp[-6].minor.yy392, yymsp[-4].minor.yy392);
}
        break;
      case 108: /* cmd ::= DROP VIEW ifexists fullname */
{
  sqlite3DropTable(pParse, yymsp[0].minor.yy347, 1, yymsp[-1].minor.yy392);
}
        break;
      case 109: /* cmd ::= select */
{
  SelectDest dest = {SRT_Output, 0, 0, 0, 0};
  sqlite3Select(pParse, yymsp[0].minor.yy159, &dest);
  sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy159);
}
        break;
      case 110: /* select ::= oneselect */
{yygotominor.yy159 = yymsp[0].minor.yy159;}
        break;
      case 111: /* select ::= select multiselect_op oneselect */
{
  if( yymsp[0].minor.yy159 ){
    yymsp[0].minor.yy159->op = (u8)yymsp[-1].minor.yy392;
    yymsp[0].minor.yy159->pPrior = yymsp[-2].minor.yy159;
  }else{
    sqlite3SelectDelete(pParse->db, yymsp[-2].minor.yy159);
  }
  yygotominor.yy159 = yymsp[0].minor.yy159;
}
        break;
      case 113: /* multiselect_op ::= UNION ALL */
{yygotominor.yy392 = TK_ALL;}
        break;
      case 115: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
{
  yygotominor.yy159 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy442,yymsp[-5].minor.yy347,yymsp[-4].minor.yy122,yymsp[-3].minor.yy442,yymsp[-2].minor.yy122,yymsp[-1].minor.yy442,yymsp[-7].minor.yy392,yymsp[0].minor.yy64.pLimit,yymsp[0].minor.yy64.pOffset);
}
        break;
      case 119: /* sclp ::= selcollist COMMA */
      case 245: /* idxlist_opt ::= LP idxlist RP */
{yygotominor.yy442 = yymsp[-1].minor.yy442;}
        break;
      case 120: /* sclp ::= */
      case 148: /* orderby_opt ::= */
      case 156: /* groupby_opt ::= */
      case 238: /* exprlist ::= */
      case 244: /* idxlist_opt ::= */
{yygotominor.yy442 = 0;}
        break;
      case 121: /* selcollist ::= sclp expr as */
{
   yygotominor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy442,yymsp[-1].minor.yy122,yymsp[0].minor.yy0.n?&yymsp[0].minor.yy0:0);
}
        break;
      case 122: /* selcollist ::= sclp STAR */
{
  Expr *p = sqlite3PExpr(pParse, TK_ALL, 0, 0, 0);
  yygotominor.yy442 = sqlite3ExprListAppend(pParse, yymsp[-1].minor.yy442, p, 0);
}
        break;
      case 123: /* selcollist ::= sclp nm DOT STAR */
{
  Expr *pRight = sqlite3PExpr(pParse, TK_ALL, 0, 0, &yymsp[0].minor.yy0);
  Expr *pLeft = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
  Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight, 0);
  yygotominor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy442, pDot, 0);
}
        break;
      case 126: /* as ::= */
{yygotominor.yy0.n = 0;}
        break;
      case 127: /* from ::= */
{yygotominor.yy347 = sqlite3DbMallocZero(pParse->db, sizeof(*yygotominor.yy347));}
        break;
      case 128: /* from ::= FROM seltablist */
{
  yygotominor.yy347 = yymsp[0].minor.yy347;
  sqlite3SrcListShiftJoinType(yygotominor.yy347);
}
        break;
      case 129: /* stl_prefix ::= seltablist joinop */
{
   yygotominor.yy347 = yymsp[-1].minor.yy347;
   if( yygotominor.yy347 && yygotominor.yy347->nSrc>0 ) yygotominor.yy347->a[yygotominor.yy347->nSrc-1].jointype = (u8)yymsp[0].minor.yy392;
}
        break;
      case 130: /* stl_prefix ::= */
{yygotominor.yy347 = 0;}
        break;
      case 131: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
{
  yygotominor.yy347 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy347,&yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy122,yymsp[0].minor.yy180);
  sqlite3SrcListIndexedBy(pParse, yygotominor.yy347, &yymsp[-2].minor.yy0);
}
        break;
      case 132: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */
{
    yygotominor.yy347 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy347,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy159,yymsp[-1].minor.yy122,yymsp[0].minor.yy180);
  }
        break;
      case 133: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
{
    if( yymsp[-6].minor.yy347==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy122==0 && yymsp[0].minor.yy180==0 ){
      yygotominor.yy347 = yymsp[-4].minor.yy347;
    }else{
      Select *pSubquery;
      sqlite3SrcListShiftJoinType(yymsp[-4].minor.yy347);
      pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy347,0,0,0,0,0,0,0);
      yygotominor.yy347 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy347,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy122,yymsp[0].minor.yy180);
    }
  }
        break;
      case 134: /* dbnm ::= */
      case 143: /* indexed_opt ::= */
{yygotominor.yy0.z=0; yygotominor.yy0.n=0;}
        break;
      case 136: /* fullname ::= nm dbnm */
{yygotominor.yy347 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);}
        break;
      case 137: /* joinop ::= COMMA|JOIN */
{ yygotominor.yy392 = JT_INNER; }
        break;
      case 138: /* joinop ::= JOIN_KW JOIN */
{ yygotominor.yy392 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); }
        break;
      case 139: /* joinop ::= JOIN_KW nm JOIN */
{ yygotominor.yy392 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); }
        break;
      case 140: /* joinop ::= JOIN_KW nm nm JOIN */
{ yygotominor.yy392 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0); }
        break;
      case 141: /* on_opt ::= ON expr */
      case 152: /* sortitem ::= expr */
      case 159: /* having_opt ::= HAVING expr */
      case 166: /* where_opt ::= WHERE expr */
      case 181: /* expr ::= term */
      case 209: /* escape ::= ESCAPE expr */
      case 233: /* case_else ::= ELSE expr */
      case 235: /* case_operand ::= expr */
{yygotominor.yy122 = yymsp[0].minor.yy122;}
        break;
      case 142: /* on_opt ::= */
      case 158: /* having_opt ::= */
      case 165: /* where_opt ::= */
      case 210: /* escape ::= */
      case 234: /* case_else ::= */
      case 236: /* case_operand ::= */
{yygotominor.yy122 = 0;}
        break;
      case 145: /* indexed_opt ::= NOT INDEXED */
{yygotominor.yy0.z=0; yygotominor.yy0.n=1;}
        break;
      case 146: /* using_opt ::= USING LP inscollist RP */
      case 178: /* inscollist_opt ::= LP inscollist RP */
{yygotominor.yy180 = yymsp[-1].minor.yy180;}
        break;
      case 147: /* using_opt ::= */
      case 177: /* inscollist_opt ::= */
{yygotominor.yy180 = 0;}
        break;
      case 149: /* orderby_opt ::= ORDER BY sortlist */
      case 157: /* groupby_opt ::= GROUP BY nexprlist */
      case 237: /* exprlist ::= nexprlist */
{yygotominor.yy442 = yymsp[0].minor.yy442;}
        break;
      case 150: /* sortlist ::= sortlist COMMA sortitem sortorder */
{
  yygotominor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy442,yymsp[-1].minor.yy122,0);
  if( yygotominor.yy442 ) yygotominor.yy442->a[yygotominor.yy442->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy392;
}
        break;
      case 151: /* sortlist ::= sortitem sortorder */
{
  yygotominor.yy442 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy122,0);
  if( yygotominor.yy442 && yygotominor.yy442->a ) yygotominor.yy442->a[0].sortOrder = (u8)yymsp[0].minor.yy392;
}
        break;
      case 153: /* sortorder ::= ASC */
      case 155: /* sortorder ::= */
{yygotominor.yy392 = SQLITE_SO_ASC;}
        break;
      case 154: /* sortorder ::= DESC */
{yygotominor.yy392 = SQLITE_SO_DESC;}
        break;
      case 160: /* limit_opt ::= */
{yygotominor.yy64.pLimit = 0; yygotominor.yy64.pOffset = 0;}
        break;
      case 161: /* limit_opt ::= LIMIT expr */
{yygotominor.yy64.pLimit = yymsp[0].minor.yy122; yygotominor.yy64.pOffset = 0;}
        break;
      case 162: /* limit_opt ::= LIMIT expr OFFSET expr */
{yygotominor.yy64.pLimit = yymsp[-2].minor.yy122; yygotominor.yy64.pOffset = yymsp[0].minor.yy122;}
        break;
      case 163: /* limit_opt ::= LIMIT expr COMMA expr */
{yygotominor.yy64.pOffset = yymsp[-2].minor.yy122; yygotominor.yy64.pLimit = yymsp[0].minor.yy122;}
        break;
      case 164: /* cmd ::= DELETE FROM fullname indexed_opt where_opt */
{
  sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy347, &yymsp[-1].minor.yy0);
  sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy347,yymsp[0].minor.yy122);
}
        break;
      case 167: /* cmd ::= UPDATE orconf fullname indexed_opt SET setlist where_opt */
{
  sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy347, &yymsp[-3].minor.yy0);
  sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy442,"set list"); 
  sqlite3Update(pParse,yymsp[-4].minor.yy347,yymsp[-1].minor.yy442,yymsp[0].minor.yy122,yymsp[-5].minor.yy392);
}
        break;
      case 168: /* setlist ::= setlist COMMA nm EQ expr */
{yygotominor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy442,yymsp[0].minor.yy122,&yymsp[-2].minor.yy0);}
        break;
      case 169: /* setlist ::= nm EQ expr */
{yygotominor.yy442 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy122,&yymsp[-2].minor.yy0);}
        break;
      case 170: /* cmd ::= insert_cmd INTO fullname inscollist_opt VALUES LP itemlist RP */
{sqlite3Insert(pParse, yymsp[-5].minor.yy347, yymsp[-1].minor.yy442, 0, yymsp[-4].minor.yy180, yymsp[-7].minor.yy392);}
        break;
      case 171: /* cmd ::= insert_cmd INTO fullname inscollist_opt select */
{sqlite3Insert(pParse, yymsp[-2].minor.yy347, 0, yymsp[0].minor.yy159, yymsp[-1].minor.yy180, yymsp[-4].minor.yy392);}
        break;
      case 172: /* cmd ::= insert_cmd INTO fullname inscollist_opt DEFAULT VALUES */
{sqlite3Insert(pParse, yymsp[-3].minor.yy347, 0, 0, yymsp[-2].minor.yy180, yymsp[-5].minor.yy392);}
        break;
      case 175: /* itemlist ::= itemlist COMMA expr */
      case 239: /* nexprlist ::= nexprlist COMMA expr */
{yygotominor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy442,yymsp[0].minor.yy122,0);}
        break;
      case 176: /* itemlist ::= expr */
      case 240: /* nexprlist ::= expr */
{yygotominor.yy442 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy122,0);}
        break;
      case 179: /* inscollist ::= inscollist COMMA nm */
{yygotominor.yy180 = sqlite3IdListAppend(pParse->db,yymsp[-2].minor.yy180,&yymsp[0].minor.yy0);}
        break;
      case 180: /* inscollist ::= nm */
{yygotominor.yy180 = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy0);}
        break;
      case 182: /* expr ::= LP expr RP */
{yygotominor.yy122 = yymsp[-1].minor.yy122; sqlite3ExprSpan(yygotominor.yy122,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); }
        break;
      case 183: /* term ::= NULL */
      case 188: /* term ::= INTEGER|FLOAT|BLOB */
      case 189: /* term ::= STRING */
{yygotominor.yy122 = sqlite3PExpr(pParse, yymsp[0].major, 0, 0, &yymsp[0].minor.yy0);}
        break;
      case 184: /* expr ::= ID */
      case 185: /* expr ::= JOIN_KW */
{yygotominor.yy122 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0);}
        break;
      case 186: /* expr ::= nm DOT nm */
{
  Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
  Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0);
  yygotominor.yy122 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2, 0);
}
        break;
      case 187: /* expr ::= nm DOT nm DOT nm */
{
  Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-4].minor.yy0);
  Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
  Expr *temp3 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0);
  Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3, 0);
  yygotominor.yy122 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4, 0);
}
        break;
      case 190: /* expr ::= REGISTER */
{yygotominor.yy122 = sqlite3RegisterExpr(pParse, &yymsp[0].minor.yy0);}
        break;
      case 191: /* expr ::= VARIABLE */
{
  Token *pToken = &yymsp[0].minor.yy0;
  Expr *pExpr = yygotominor.yy122 = sqlite3PExpr(pParse, TK_VARIABLE, 0, 0, pToken);
  sqlite3ExprAssignVarNumber(pParse, pExpr);
}
        break;
      case 192: /* expr ::= expr COLLATE ids */
{
  yygotominor.yy122 = sqlite3ExprSetColl(pParse, yymsp[-2].minor.yy122, &yymsp[0].minor.yy0);
}
        break;
      case 193: /* expr ::= CAST LP expr AS typetoken RP */
{
  yygotominor.yy122 = sqlite3PExpr(pParse, TK_CAST, yymsp[-3].minor.yy122, 0, &yymsp[-1].minor.yy0);
  sqlite3ExprSpan(yygotominor.yy122,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0);
}
        break;
      case 194: /* expr ::= ID LP distinct exprlist RP */
{
  if( yymsp[-1].minor.yy442 && yymsp[-1].minor.yy442->nExpr>SQLITE_MAX_FUNCTION_ARG ){
    sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].minor.yy0);
  }
  yygotominor.yy122 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy442, &yymsp[-4].minor.yy0);
  sqlite3ExprSpan(yygotominor.yy122,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0);
  if( yymsp[-2].minor.yy392 && yygotominor.yy122 ){
    yygotominor.yy122->flags |= EP_Distinct;
  }
}
        break;
      case 195: /* expr ::= ID LP STAR RP */
{
  yygotominor.yy122 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0);
  sqlite3ExprSpan(yygotominor.yy122,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
}
        break;
      case 196: /* term ::= CTIME_KW */
{
  /* The CURRENT_TIME, CURRENT_DATE, and CURRENT_TIMESTAMP values are
  ** treated as functions that return constants */
  yygotominor.yy122 = sqlite3ExprFunction(pParse, 0,&yymsp[0].minor.yy0);
  if( yygotominor.yy122 ){
    yygotominor.yy122->op = TK_CONST_FUNC;  
    yygotominor.yy122->span = yymsp[0].minor.yy0;
  }
}
        break;
      case 197: /* expr ::= expr AND expr */
      case 198: /* expr ::= expr OR expr */
      case 199: /* expr ::= expr LT|GT|GE|LE expr */
      case 200: /* expr ::= expr EQ|NE expr */
      case 201: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */
      case 202: /* expr ::= expr PLUS|MINUS expr */
      case 203: /* expr ::= expr STAR|SLASH|REM expr */
      case 204: /* expr ::= expr CONCAT expr */
{yygotominor.yy122 = sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy122,yymsp[0].minor.yy122,0);}
        break;
      case 205: /* likeop ::= LIKE_KW */
      case 207: /* likeop ::= MATCH */
{yygotominor.yy318.eOperator = yymsp[0].minor.yy0; yygotominor.yy318.not = 0;}
        break;
      case 206: /* likeop ::= NOT LIKE_KW */
      case 208: /* likeop ::= NOT MATCH */
{yygotominor.yy318.eOperator = yymsp[0].minor.yy0; yygotominor.yy318.not = 1;}
        break;
      case 211: /* expr ::= expr likeop expr escape */
{
  ExprList *pList;
  pList = sqlite3ExprListAppend(pParse,0, yymsp[-1].minor.yy122, 0);
  pList = sqlite3ExprListAppend(pParse,pList, yymsp[-3].minor.yy122, 0);
  if( yymsp[0].minor.yy122 ){
    pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy122, 0);
  }
  yygotominor.yy122 = sqlite3ExprFunction(pParse, pList, &yymsp[-2].minor.yy318.eOperator);
  if( yymsp[-2].minor.yy318.not ) yygotominor.yy122 = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy122, 0, 0);
  sqlite3ExprSpan(yygotominor.yy122, &yymsp[-3].minor.yy122->span, &yymsp[-1].minor.yy122->span);
  if( yygotominor.yy122 ) yygotominor.yy122->flags |= EP_InfixFunc;
}
        break;
      case 212: /* expr ::= expr ISNULL|NOTNULL */
{
  yygotominor.yy122 = sqlite3PExpr(pParse, yymsp[0].major, yymsp[-1].minor.yy122, 0, 0);
  sqlite3ExprSpan(yygotominor.yy122,&yymsp[-1].minor.yy122->span,&yymsp[0].minor.yy0);
}
        break;
      case 213: /* expr ::= expr IS NULL */
{
  yygotominor.yy122 = sqlite3PExpr(pParse, TK_ISNULL, yymsp[-2].minor.yy122, 0, 0);
  sqlite3ExprSpan(yygotominor.yy122,&yymsp[-2].minor.yy122->span,&yymsp[0].minor.yy0);
}
        break;
      case 214: /* expr ::= expr NOT NULL */
{
  yygotominor.yy122 = sqlite3PExpr(pParse, TK_NOTNULL, yymsp[-2].minor.yy122, 0, 0);
  sqlite3ExprSpan(yygotominor.yy122,&yymsp[-2].minor.yy122->span,&yymsp[0].minor.yy0);
}
        break;
      case 215: /* expr ::= expr IS NOT NULL */
{
  yygotominor.yy122 = sqlite3PExpr(pParse, TK_NOTNULL, yymsp[-3].minor.yy122, 0, 0);
  sqlite3ExprSpan(yygotominor.yy122,&yymsp[-3].minor.yy122->span,&yymsp[0].minor.yy0);
}
        break;
      case 216: /* expr ::= NOT expr */
      case 217: /* expr ::= BITNOT expr */
{
  yygotominor.yy122 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy122, 0, 0);
  sqlite3ExprSpan(yygotominor.yy122,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy122->span);
}
        break;
      case 218: /* expr ::= MINUS expr */
{
  yygotominor.yy122 = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy122, 0, 0);
  sqlite3ExprSpan(yygotominor.yy122,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy122->span);
}
        break;
      case 219: /* expr ::= PLUS expr */
{
  yygotominor.yy122 = sqlite3PExpr(pParse, TK_UPLUS, yymsp[0].minor.yy122, 0, 0);
  sqlite3ExprSpan(yygotominor.yy122,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy122->span);
}
        break;
      case 222: /* expr ::= expr between_op expr AND expr */
{
  ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy122, 0);
  pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy122, 0);
  yygotominor.yy122 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy122, 0, 0);
  if( yygotominor.yy122 ){
    yygotominor.yy122->pList = pList;
  }else{
    sqlite3ExprListDelete(pParse->db, pList);
  } 
  if( yymsp[-3].minor.yy392 ) yygotominor.yy122 = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy122, 0, 0);
  sqlite3ExprSpan(yygotominor.yy122,&yymsp[-4].minor.yy122->span,&yymsp[0].minor.yy122->span);
}
        break;
      case 225: /* expr ::= expr in_op LP exprlist RP */
{
    yygotominor.yy122 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy122, 0, 0);
    if( yygotominor.yy122 ){
      yygotominor.yy122->pList = yymsp[-1].minor.yy442;
      sqlite3ExprSetHeight(pParse, yygotominor.yy122);
    }else{
      sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy442);
    }
    if( yymsp[-3].minor.yy392 ) yygotominor.yy122 = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy122, 0, 0);
    sqlite3ExprSpan(yygotominor.yy122,&yymsp[-4].minor.yy122->span,&yymsp[0].minor.yy0);
  }
        break;
      case 226: /* expr ::= LP select RP */
{
    yygotominor.yy122 = sqlite3PExpr(pParse, TK_SELECT, 0, 0, 0);
    if( yygotominor.yy122 ){
      yygotominor.yy122->pSelect = yymsp[-1].minor.yy159;
      sqlite3ExprSetHeight(pParse, yygotominor.yy122);
    }else{
      sqlite3SelectDelete(pParse->db, yymsp[-1].minor.yy159);
    }
    sqlite3ExprSpan(yygotominor.yy122,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);
  }
        break;
      case 227: /* expr ::= expr in_op LP select RP */
{
    yygotominor.yy122 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy122, 0, 0);
    if( yygotominor.yy122 ){
      yygotominor.yy122->pSelect = yymsp[-1].minor.yy159;
      sqlite3ExprSetHeight(pParse, yygotominor.yy122);
    }else{
      sqlite3SelectDelete(pParse->db, yymsp[-1].minor.yy159);
    }
    if( yymsp[-3].minor.yy392 ) yygotominor.yy122 = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy122, 0, 0);
    sqlite3ExprSpan(yygotominor.yy122,&yymsp[-4].minor.yy122->span,&yymsp[0].minor.yy0);
  }
        break;
      case 228: /* expr ::= expr in_op nm dbnm */
{
    SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);
    yygotominor.yy122 = sqlite3PExpr(pParse, TK_IN, yymsp[-3].minor.yy122, 0, 0);
    if( yygotominor.yy122 ){
      yygotominor.yy122->pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0,0);
      sqlite3ExprSetHeight(pParse, yygotominor.yy122);
    }else{
      sqlite3SrcListDelete(pParse->db, pSrc);
    }
    if( yymsp[-2].minor.yy392 ) yygotominor.yy122 = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy122, 0, 0);
    sqlite3ExprSpan(yygotominor.yy122,&yymsp[-3].minor.yy122->span,yymsp[0].minor.yy0.z?&yymsp[0].minor.yy0:&yymsp[-1].minor.yy0);
  }
        break;
      case 229: /* expr ::= EXISTS LP select RP */
{
    Expr *p = yygotominor.yy122 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0, 0);
    if( p ){
      p->pSelect = yymsp[-1].minor.yy159;
      sqlite3ExprSpan(p,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
      sqlite3ExprSetHeight(pParse, yygotominor.yy122);
    }else{
      sqlite3SelectDelete(pParse->db, yymsp[-1].minor.yy159);
    }
  }
        break;
      case 230: /* expr ::= CASE case_operand case_exprlist case_else END */
{
  yygotominor.yy122 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy122, yymsp[-1].minor.yy122, 0);
  if( yygotominor.yy122 ){
    yygotominor.yy122->pList = yymsp[-2].minor.yy442;
    sqlite3ExprSetHeight(pParse, yygotominor.yy122);
  }else{
    sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy442);
  }
  sqlite3ExprSpan(yygotominor.yy122, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0);
}
        break;
      case 231: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
{
  yygotominor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy442, yymsp[-2].minor.yy122, 0);
  yygotominor.yy442 = sqlite3ExprListAppend(pParse,yygotominor.yy442, yymsp[0].minor.yy122, 0);
}
        break;
      case 232: /* case_exprlist ::= WHEN expr THEN expr */
{
  yygotominor.yy442 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy122, 0);
  yygotominor.yy442 = sqlite3ExprListAppend(pParse,yygotominor.yy442, yymsp[0].minor.yy122, 0);
}
        break;
      case 241: /* cmd ::= CREATE uniqueflag INDEX ifnotexists nm dbnm ON nm LP idxlist RP */
{
  sqlite3CreateIndex(pParse, &yymsp[-6].minor.yy0, &yymsp[-5].minor.yy0, 
                     sqlite3SrcListAppend(pParse->db,0,&yymsp[-3].minor.yy0,0), yymsp[-1].minor.yy442, yymsp[-9].minor.yy392,
                      &yymsp[-10].minor.yy0, &yymsp[0].minor.yy0, SQLITE_SO_ASC, yymsp[-7].minor.yy392);
}
        break;
      case 242: /* uniqueflag ::= UNIQUE */
      case 289: /* raisetype ::= ABORT */
{yygotominor.yy392 = OE_Abort;}
        break;
      case 243: /* uniqueflag ::= */
{yygotominor.yy392 = OE_None;}
        break;
      case 246: /* idxlist ::= idxlist COMMA nm collate sortorder */
{
  Expr *p = 0;
  if( yymsp[-1].minor.yy0.n>0 ){
    p = sqlite3PExpr(pParse, TK_COLUMN, 0, 0, 0);
    sqlite3ExprSetColl(pParse, p, &yymsp[-1].minor.yy0);
  }
  yygotominor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy442, p, &yymsp[-2].minor.yy0);
  sqlite3ExprListCheckLength(pParse, yygotominor.yy442, "index");
  if( yygotominor.yy442 ) yygotominor.yy442->a[yygotominor.yy442->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy392;
}
        break;
      case 247: /* idxlist ::= nm collate sortorder */
{
  Expr *p = 0;
  if( yymsp[-1].minor.yy0.n>0 ){
    p = sqlite3PExpr(pParse, TK_COLUMN, 0, 0, 0);
    sqlite3ExprSetColl(pParse, p, &yymsp[-1].minor.yy0);
  }
  yygotominor.yy442 = sqlite3ExprListAppend(pParse,0, p, &yymsp[-2].minor.yy0);
  sqlite3ExprListCheckLength(pParse, yygotominor.yy442, "index");
  if( yygotominor.yy442 ) yygotominor.yy442->a[yygotominor.yy442->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy392;
}
        break;
      case 248: /* collate ::= */
{yygotominor.yy0.z = 0; yygotominor.yy0.n = 0;}
        break;
      case 250: /* cmd ::= DROP INDEX ifexists fullname */
{sqlite3DropIndex(pParse, yymsp[0].minor.yy347, yymsp[-1].minor.yy392);}
        break;
      case 251: /* cmd ::= VACUUM */
      case 252: /* cmd ::= VACUUM nm */
{sqlite3Vacuum(pParse);}
        break;
      case 253: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
      case 254: /* cmd ::= PRAGMA nm dbnm EQ ON */
      case 255: /* cmd ::= PRAGMA nm dbnm EQ DELETE */
{sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);}
        break;
      case 256: /* cmd ::= PRAGMA nm dbnm EQ minus_num */
{
  sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);
}
        break;
      case 257: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */
{sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);}
        break;
      case 258: /* cmd ::= PRAGMA nm dbnm */
{sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);}
        break;
      case 266: /* cmd ::= CREATE trigger_decl BEGIN trigger_cmd_list END */
{
  Token all;
  all.z = yymsp[-3].minor.yy0.z;
  all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n;
  sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy327, &all);
}
        break;
      case 267: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
{
  sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy392, yymsp[-4].minor.yy410.a, yymsp[-4].minor.yy410.b, yymsp[-2].minor.yy347, yymsp[0].minor.yy122, yymsp[-10].minor.yy392, yymsp[-8].minor.yy392);
  yygotominor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0);
}
        break;
      case 268: /* trigger_time ::= BEFORE */
      case 271: /* trigger_time ::= */
{ yygotominor.yy392 = TK_BEFORE; }
        break;
      case 269: /* trigger_time ::= AFTER */
{ yygotominor.yy392 = TK_AFTER;  }
        break;
      case 270: /* trigger_time ::= INSTEAD OF */
{ yygotominor.yy392 = TK_INSTEAD;}
        break;
      case 272: /* trigger_event ::= DELETE|INSERT */
      case 273: /* trigger_event ::= UPDATE */
{yygotominor.yy410.a = yymsp[0].major; yygotominor.yy410.b = 0;}
        break;
      case 274: /* trigger_event ::= UPDATE OF inscollist */
{yygotominor.yy410.a = TK_UPDATE; yygotominor.yy410.b = yymsp[0].minor.yy180;}
        break;
      case 277: /* when_clause ::= */
      case 294: /* key_opt ::= */
{ yygotominor.yy122 = 0; }
        break;
      case 278: /* when_clause ::= WHEN expr */
      case 295: /* key_opt ::= KEY expr */
{ yygotominor.yy122 = yymsp[0].minor.yy122; }
        break;
      case 279: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
{
/*
  if( yymsp[-2].minor.yy327 ){
    yymsp[-2].minor.yy327->pLast->pNext = yymsp[-1].minor.yy327;
  }else{
    yymsp[-2].minor.yy327 = yymsp[-1].minor.yy327;
  }
*/
  assert( yymsp[-2].minor.yy327!=0 );
  yymsp[-2].minor.yy327->pLast->pNext = yymsp[-1].minor.yy327;
  yymsp[-2].minor.yy327->pLast = yymsp[-1].minor.yy327;
  yygotominor.yy327 = yymsp[-2].minor.yy327;
}
        break;
      case 280: /* trigger_cmd_list ::= trigger_cmd SEMI */
{ 
  /* if( yymsp[-1].minor.yy327 ) */
  assert( yymsp[-1].minor.yy327!=0 );
  yymsp[-1].minor.yy327->pLast = yymsp[-1].minor.yy327;
  yygotominor.yy327 = yymsp[-1].minor.yy327;
}
        break;
      case 281: /* trigger_cmd ::= UPDATE orconf nm SET setlist where_opt */
{ yygotominor.yy327 = sqlite3TriggerUpdateStep(pParse->db, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy442, yymsp[0].minor.yy122, yymsp[-4].minor.yy392); }
        break;
      case 282: /* trigger_cmd ::= insert_cmd INTO nm inscollist_opt VALUES LP itemlist RP */
{yygotominor.yy327 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy180, yymsp[-1].minor.yy442, 0, yymsp[-7].minor.yy392);}
        break;
      case 283: /* trigger_cmd ::= insert_cmd INTO nm inscollist_opt select */

{yygotominor.yy327 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy180, 0, yymsp[0].minor.yy159, yymsp[-4].minor.yy392);}
        break;
      case 284: /* trigger_cmd ::= DELETE FROM nm where_opt */
{yygotominor.yy327 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-1].minor.yy0, yymsp[0].minor.yy122);}
        break;
      case 285: /* trigger_cmd ::= select */
{yygotominor.yy327 = sqlite3TriggerSelectStep(pParse->db, yymsp[0].minor.yy159); }
        break;
      case 286: /* expr ::= RAISE LP IGNORE RP */
{
  yygotominor.yy122 = sqlite3PExpr(pParse, TK_RAISE, 0, 0, 0); 
  if( yygotominor.yy122 ){
    yygotominor.yy122->iColumn = OE_Ignore;
    sqlite3ExprSpan(yygotominor.yy122, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0);
  }
}
        break;
      case 287: /* expr ::= RAISE LP raisetype COMMA nm RP */
{

  yygotominor.yy122 = sqlite3PExpr(pParse, TK_RAISE, 0, 0, &yymsp[-1].minor.yy0); 
  if( yygotominor.yy122 ) {
    yygotominor.yy122->iColumn = yymsp[-3].minor.yy392;
    sqlite3ExprSpan(yygotominor.yy122, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0);
  }
}
        break;
      case 288: /* raisetype ::= ROLLBACK */
{yygotominor.yy392 = OE_Rollback;}
        break;
      case 290: /* raisetype ::= FAIL */
{yygotominor.yy392 = OE_Fail;}
        break;
      case 291: /* cmd ::= DROP TRIGGER ifexists fullname */
{
  sqlite3DropTrigger(pParse,yymsp[0].minor.yy347,yymsp[-1].minor.yy392);
}
        break;
      case 292: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
{
  sqlite3Attach(pParse, yymsp[-3].minor.yy122, yymsp[-1].minor.yy122, yymsp[0].minor.yy122);
}
        break;
      case 293: /* cmd ::= DETACH database_kw_opt expr */
{
  sqlite3Detach(pParse, yymsp[0].minor.yy122);
}
        break;
      case 298: /* cmd ::= REINDEX */

{sqlite3Reindex(pParse, 0, 0);}
        break;
      case 299: /* cmd ::= REINDEX nm dbnm */
{sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
        break;
      case 300: /* cmd ::= ANALYZE */
{sqlite3Analyze(pParse, 0, 0);}
        break;
      case 301: /* cmd ::= ANALYZE nm dbnm */
{sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
        break;
      case 302: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
{
  sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy347,&yymsp[0].minor.yy0);
}

        break;
      case 303: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt column */

{



  sqlite3AlterFinishAddColumn(pParse, &yymsp[0].minor.yy0);
}
        break;
      case 304: /* add_column_fullname ::= fullname */
{
  sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy347);
}
        break;
      case 307: /* cmd ::= create_vtab */
{sqlite3VtabFinishParse(pParse,0);}

        break;
      case 308: /* cmd ::= create_vtab LP vtabarglist RP */
{sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);}
        break;
      case 309: /* create_vtab ::= CREATE VIRTUAL TABLE nm dbnm USING nm */
{
    sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);
}
        break;
      case 312: /* vtabarg ::= */
{sqlite3VtabArgInit(pParse);}
        break;
      case 314: /* vtabargtoken ::= ANY */
      case 315: /* vtabargtoken ::= lp anylist RP */
      case 316: /* lp ::= LP */
      case 318: /* anylist ::= anylist ANY */
{sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);}
        break;
  };
  yygoto = yyRuleInfo[yyruleno].lhs;
  yysize = yyRuleInfo[yyruleno].nrhs;
  yypParser->yyidx -= yysize;
  yyact = yy_find_reduce_action(yymsp[-yysize].stateno,(YYCODETYPE)yygoto);
  if( yyact < YYNSTATE ){







|


|



|
|










|


|


|


|


|


|





|


|


|


|


|


|


|


|


|


|








|








|


|


|



|
|




|


|



|



|




|




|





|
|



|



|
|
|

|

|



|



|




|






|



|





|







|






|



|
|




|
|



|



|
|




|




|
|


|
|
|








|


|


|


|


|









|







|






|



|




|



|
|




|
|




|


|


|


|


|


|



|
|




|
|
|



|


|


|


|


|



|



|


|


|


|




|



|





|








|



|




|





|




|
|




|


|
|
|
|





|
|






|
|
|
|











|



|



|




|
|
|
|

|
|
|
|




|
|




|
|




|
|




|
|





|
|




|
|




|
|




|
|
|
|
|



|
|




|
|
|
|

|

|
|




|
|
|
|

|

|




|
|
|
|

|

|
|





|
|
|
|



|
|




|

|

|

|





|
|
|
|

|

|




|
|




|
|





|
|



|
|


|








|
|
|









|
|
|






|

<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|




|


|

|



|
|
|

|
|

|
|

|
|
|

|
|

|
<
|

|
<
|

|


<
<
<
<
<
<
<
<
<
|
<
<
<
<
|
|
<
|
|
<
<
<
<
<
<
<
<
>
|
<
<
|
<
<
|
<
<
<
<
|
<
<
|
<

|
|
>
|
|
|
<
|
<

|
|

|
|

|
<
|
<

|
<
|
<

|
<
|
<

|
>
|
<
<
|
<
<
<
<
|
|
<
<
<
<
|
>

<
>

>
>
>
|
|
<
<
<
<


|
<
>

|
|

|

|

<
<
<
<
<
<
<
<
<







84886
84887
84888
84889
84890
84891
84892
84893
84894
84895
84896
84897
84898
84899
84900
84901
84902
84903
84904
84905
84906
84907
84908
84909
84910
84911
84912
84913
84914
84915
84916
84917
84918
84919
84920
84921
84922
84923
84924
84925
84926
84927
84928
84929
84930
84931
84932
84933
84934
84935
84936
84937
84938
84939
84940
84941
84942
84943
84944
84945
84946
84947
84948
84949
84950
84951
84952
84953
84954
84955
84956
84957
84958
84959
84960
84961
84962
84963
84964
84965
84966
84967
84968
84969
84970
84971
84972
84973
84974
84975
84976
84977
84978
84979
84980
84981
84982
84983
84984
84985
84986
84987
84988
84989
84990
84991
84992
84993
84994
84995
84996
84997
84998
84999
85000
85001
85002
85003
85004
85005
85006
85007
85008
85009
85010
85011
85012
85013
85014
85015
85016
85017
85018
85019
85020
85021
85022
85023
85024
85025
85026
85027
85028
85029
85030
85031
85032
85033
85034
85035
85036
85037
85038
85039
85040
85041
85042
85043
85044
85045
85046
85047
85048
85049
85050
85051
85052
85053
85054
85055
85056
85057
85058
85059
85060
85061
85062
85063
85064
85065
85066
85067
85068
85069
85070
85071
85072
85073
85074
85075
85076
85077
85078
85079
85080
85081
85082
85083
85084
85085
85086
85087
85088
85089
85090
85091
85092
85093
85094
85095
85096
85097
85098
85099
85100
85101
85102
85103
85104
85105
85106
85107
85108
85109
85110
85111
85112
85113
85114
85115
85116
85117
85118
85119
85120
85121
85122
85123
85124
85125
85126
85127
85128
85129
85130
85131
85132
85133
85134
85135
85136
85137
85138
85139
85140
85141
85142
85143
85144
85145
85146
85147
85148
85149
85150
85151
85152
85153
85154
85155
85156
85157
85158
85159
85160
85161
85162
85163
85164
85165
85166
85167
85168
85169
85170
85171
85172
85173
85174
85175
85176
85177
85178
85179
85180
85181
85182
85183
85184
85185
85186
85187
85188
85189
85190
85191
85192
85193
85194
85195
85196
85197
85198
85199
85200
85201
85202
85203
85204
85205
85206
85207
85208
85209
85210
85211
85212
85213
85214
85215
85216
85217
85218
85219
85220
85221
85222
85223
85224
85225
85226
85227
85228
85229
85230
85231
85232
85233
85234
85235
85236
85237
85238
85239
85240
85241
85242
85243
85244
85245
85246
85247
85248
85249
85250
85251
85252
85253
85254
85255
85256
85257
85258
85259
85260
85261
85262
85263
85264
85265
85266
85267
85268
85269
85270
85271
85272
85273
85274
85275
85276
85277
85278
85279
85280
85281
85282
85283
85284
85285
85286
85287
85288
85289
85290
85291
85292
85293
85294
85295
85296
85297
85298
85299
85300
85301
85302
85303
85304
85305
85306
85307
85308
85309
85310
85311
85312
85313
85314
85315
85316
85317
85318
85319
85320
85321
85322
85323
85324
85325
85326
85327
85328
85329
85330
85331
85332
85333
85334
85335
85336
85337
85338
85339
85340
85341
85342
85343
85344
85345
85346
85347
85348
85349
85350
85351
85352
85353
85354
85355
85356
85357
85358
85359
85360
85361
85362
85363
85364
85365
85366
85367
85368
85369
85370
85371
85372
85373
85374
85375
85376
85377
85378
85379
85380
85381
85382
85383
85384
85385
85386
85387
85388
85389
85390
85391
85392
85393
85394
85395
85396
85397
85398
85399
85400
85401
85402
85403
85404
85405
85406
85407
85408
85409
85410
85411
85412
85413
85414
85415
85416
85417
85418
85419
85420
85421
85422
85423
85424
85425
85426
85427
85428
85429
85430
85431
85432
85433
85434
85435
85436
85437
85438
85439
85440
85441
85442
85443
85444
85445
85446
85447
85448
85449
85450
85451
85452
85453
85454
85455
85456
85457
85458
85459
85460
85461
85462
85463
85464
85465
85466
85467
85468
85469
85470
85471
85472
85473
85474
85475
85476
85477
85478
85479
85480
85481
85482
85483
85484
85485
85486
85487
85488
85489
85490
85491
85492
85493
85494
85495
85496
85497
85498
85499
85500
85501
85502
85503
85504
85505
85506
85507
85508
85509
85510
85511
85512
85513
85514
85515
85516
85517
85518
85519
85520
85521
85522
85523
85524
85525
85526
85527
85528
85529
85530
85531
85532
85533
85534
85535
85536
85537
85538
85539
85540
85541
85542
85543
85544
85545




















85546
85547
85548
85549
85550
85551
85552
85553
85554
85555
85556
85557
85558
85559
85560
85561
85562
85563
85564
85565
85566
85567
85568
85569
85570
85571
85572
85573
85574
85575
85576
85577

85578
85579
85580

85581
85582
85583
85584
85585









85586




85587
85588

85589
85590








85591
85592


85593


85594




85595


85596

85597
85598
85599
85600
85601
85602
85603

85604

85605
85606
85607
85608
85609
85610
85611
85612

85613

85614
85615

85616

85617
85618

85619

85620
85621
85622
85623


85624




85625
85626




85627
85628
85629

85630
85631
85632
85633
85634
85635
85636




85637
85638
85639

85640
85641
85642
85643
85644
85645
85646
85647
85648









85649
85650
85651
85652
85653
85654
85655
}
        break;
      case 48: /* typename ::= typename ids */
{yygotominor.yy0.z=yymsp[-1].minor.yy0.z; yygotominor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);}
        break;
      case 55: /* ccons ::= DEFAULT term */
      case 57: /* ccons ::= DEFAULT PLUS term */
{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy402);}
        break;
      case 56: /* ccons ::= DEFAULT LP expr RP */
{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy402);}
        break;
      case 58: /* ccons ::= DEFAULT MINUS term */
{
  Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy402, 0, 0);
  sqlite3ExprSpan(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy402->span);
  sqlite3AddDefaultValue(pParse,p);
}
        break;
      case 59: /* ccons ::= DEFAULT id */
{
  Expr *p = sqlite3PExpr(pParse, TK_STRING, 0, 0, &yymsp[0].minor.yy0);
  sqlite3AddDefaultValue(pParse,p);
}
        break;
      case 61: /* ccons ::= NOT NULL onconf */
{sqlite3AddNotNull(pParse, yymsp[0].minor.yy228);}
        break;
      case 62: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */
{sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy228,yymsp[0].minor.yy228,yymsp[-2].minor.yy228);}
        break;
      case 63: /* ccons ::= UNIQUE onconf */
{sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy228,0,0,0,0);}
        break;
      case 64: /* ccons ::= CHECK LP expr RP */
{sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy402);}
        break;
      case 65: /* ccons ::= REFERENCES nm idxlist_opt refargs */
{sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy258,yymsp[0].minor.yy228);}
        break;
      case 66: /* ccons ::= defer_subclause */
{sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy228);}
        break;
      case 67: /* ccons ::= COLLATE ids */
{sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);}
        break;
      case 70: /* refargs ::= */
{ yygotominor.yy228 = OE_Restrict * 0x010101; }
        break;
      case 71: /* refargs ::= refargs refarg */
{ yygotominor.yy228 = (yymsp[-1].minor.yy228 & ~yymsp[0].minor.yy231.mask) | yymsp[0].minor.yy231.value; }
        break;
      case 72: /* refarg ::= MATCH nm */
{ yygotominor.yy231.value = 0;     yygotominor.yy231.mask = 0x000000; }
        break;
      case 73: /* refarg ::= ON DELETE refact */
{ yygotominor.yy231.value = yymsp[0].minor.yy228;     yygotominor.yy231.mask = 0x0000ff; }
        break;
      case 74: /* refarg ::= ON UPDATE refact */
{ yygotominor.yy231.value = yymsp[0].minor.yy228<<8;  yygotominor.yy231.mask = 0x00ff00; }
        break;
      case 75: /* refarg ::= ON INSERT refact */
{ yygotominor.yy231.value = yymsp[0].minor.yy228<<16; yygotominor.yy231.mask = 0xff0000; }
        break;
      case 76: /* refact ::= SET NULL */
{ yygotominor.yy228 = OE_SetNull; }
        break;
      case 77: /* refact ::= SET DEFAULT */
{ yygotominor.yy228 = OE_SetDflt; }
        break;
      case 78: /* refact ::= CASCADE */
{ yygotominor.yy228 = OE_Cascade; }
        break;
      case 79: /* refact ::= RESTRICT */
{ yygotominor.yy228 = OE_Restrict; }
        break;
      case 80: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
      case 81: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
      case 96: /* defer_subclause_opt ::= defer_subclause */
      case 98: /* onconf ::= ON CONFLICT resolvetype */
      case 100: /* orconf ::= OR resolvetype */
      case 101: /* resolvetype ::= raisetype */
      case 173: /* insert_cmd ::= INSERT orconf */
{yygotominor.yy228 = yymsp[0].minor.yy228;}
        break;
      case 85: /* conslist_opt ::= */
{yygotominor.yy0.n = 0; yygotominor.yy0.z = 0;}
        break;
      case 86: /* conslist_opt ::= COMMA conslist */
{yygotominor.yy0 = yymsp[-1].minor.yy0;}
        break;
      case 91: /* tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf */
{sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy258,yymsp[0].minor.yy228,yymsp[-2].minor.yy228,0);}
        break;
      case 92: /* tcons ::= UNIQUE LP idxlist RP onconf */
{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy258,yymsp[0].minor.yy228,0,0,0,0);}
        break;
      case 93: /* tcons ::= CHECK LP expr RP onconf */
{sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy402);}
        break;
      case 94: /* tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt */
{
    sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy258, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy258, yymsp[-1].minor.yy228);
    sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy228);
}
        break;
      case 97: /* onconf ::= */
      case 99: /* orconf ::= */
{yygotominor.yy228 = OE_Default;}
        break;
      case 102: /* resolvetype ::= IGNORE */
{yygotominor.yy228 = OE_Ignore;}
        break;
      case 103: /* resolvetype ::= REPLACE */
      case 174: /* insert_cmd ::= REPLACE */
{yygotominor.yy228 = OE_Replace;}
        break;
      case 104: /* cmd ::= DROP TABLE ifexists fullname */
{
  sqlite3DropTable(pParse, yymsp[0].minor.yy3, 0, yymsp[-1].minor.yy228);
}
        break;
      case 107: /* cmd ::= CREATE temp VIEW ifnotexists nm dbnm AS select */
{
  sqlite3CreateView(pParse, &yymsp[-7].minor.yy0, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, yymsp[0].minor.yy387, yymsp[-6].minor.yy228, yymsp[-4].minor.yy228);
}
        break;
      case 108: /* cmd ::= DROP VIEW ifexists fullname */
{
  sqlite3DropTable(pParse, yymsp[0].minor.yy3, 1, yymsp[-1].minor.yy228);
}
        break;
      case 109: /* cmd ::= select */
{
  SelectDest dest = {SRT_Output, 0, 0, 0, 0};
  sqlite3Select(pParse, yymsp[0].minor.yy387, &dest);
  sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy387);
}
        break;
      case 110: /* select ::= oneselect */
{yygotominor.yy387 = yymsp[0].minor.yy387;}
        break;
      case 111: /* select ::= select multiselect_op oneselect */
{
  if( yymsp[0].minor.yy387 ){
    yymsp[0].minor.yy387->op = (u8)yymsp[-1].minor.yy228;
    yymsp[0].minor.yy387->pPrior = yymsp[-2].minor.yy387;
  }else{
    sqlite3SelectDelete(pParse->db, yymsp[-2].minor.yy387);
  }
  yygotominor.yy387 = yymsp[0].minor.yy387;
}
        break;
      case 113: /* multiselect_op ::= UNION ALL */
{yygotominor.yy228 = TK_ALL;}
        break;
      case 115: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
{
  yygotominor.yy387 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy258,yymsp[-5].minor.yy3,yymsp[-4].minor.yy402,yymsp[-3].minor.yy258,yymsp[-2].minor.yy402,yymsp[-1].minor.yy258,yymsp[-7].minor.yy228,yymsp[0].minor.yy196.pLimit,yymsp[0].minor.yy196.pOffset);
}
        break;
      case 119: /* sclp ::= selcollist COMMA */
      case 245: /* idxlist_opt ::= LP idxlist RP */
{yygotominor.yy258 = yymsp[-1].minor.yy258;}
        break;
      case 120: /* sclp ::= */
      case 148: /* orderby_opt ::= */
      case 156: /* groupby_opt ::= */
      case 238: /* exprlist ::= */
      case 244: /* idxlist_opt ::= */
{yygotominor.yy258 = 0;}
        break;
      case 121: /* selcollist ::= sclp expr as */
{
   yygotominor.yy258 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy258,yymsp[-1].minor.yy402,yymsp[0].minor.yy0.n?&yymsp[0].minor.yy0:0);
}
        break;
      case 122: /* selcollist ::= sclp STAR */
{
  Expr *p = sqlite3PExpr(pParse, TK_ALL, 0, 0, 0);
  yygotominor.yy258 = sqlite3ExprListAppend(pParse, yymsp[-1].minor.yy258, p, 0);
}
        break;
      case 123: /* selcollist ::= sclp nm DOT STAR */
{
  Expr *pRight = sqlite3PExpr(pParse, TK_ALL, 0, 0, &yymsp[0].minor.yy0);
  Expr *pLeft = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
  Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight, 0);
  yygotominor.yy258 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy258, pDot, 0);
}
        break;
      case 126: /* as ::= */
{yygotominor.yy0.n = 0;}
        break;
      case 127: /* from ::= */
{yygotominor.yy3 = sqlite3DbMallocZero(pParse->db, sizeof(*yygotominor.yy3));}
        break;
      case 128: /* from ::= FROM seltablist */
{
  yygotominor.yy3 = yymsp[0].minor.yy3;
  sqlite3SrcListShiftJoinType(yygotominor.yy3);
}
        break;
      case 129: /* stl_prefix ::= seltablist joinop */
{
   yygotominor.yy3 = yymsp[-1].minor.yy3;
   if( yygotominor.yy3 && yygotominor.yy3->nSrc>0 ) yygotominor.yy3->a[yygotominor.yy3->nSrc-1].jointype = (u8)yymsp[0].minor.yy228;
}
        break;
      case 130: /* stl_prefix ::= */
{yygotominor.yy3 = 0;}
        break;
      case 131: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
{
  yygotominor.yy3 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy3,&yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy402,yymsp[0].minor.yy400);
  sqlite3SrcListIndexedBy(pParse, yygotominor.yy3, &yymsp[-2].minor.yy0);
}
        break;
      case 132: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */
{
    yygotominor.yy3 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy3,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy387,yymsp[-1].minor.yy402,yymsp[0].minor.yy400);
  }
        break;
      case 133: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
{
    if( yymsp[-6].minor.yy3==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy402==0 && yymsp[0].minor.yy400==0 ){
      yygotominor.yy3 = yymsp[-4].minor.yy3;
    }else{
      Select *pSubquery;
      sqlite3SrcListShiftJoinType(yymsp[-4].minor.yy3);
      pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy3,0,0,0,0,0,0,0);
      yygotominor.yy3 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy3,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy402,yymsp[0].minor.yy400);
    }
  }
        break;
      case 134: /* dbnm ::= */
      case 143: /* indexed_opt ::= */
{yygotominor.yy0.z=0; yygotominor.yy0.n=0;}
        break;
      case 136: /* fullname ::= nm dbnm */
{yygotominor.yy3 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);}
        break;
      case 137: /* joinop ::= COMMA|JOIN */
{ yygotominor.yy228 = JT_INNER; }
        break;
      case 138: /* joinop ::= JOIN_KW JOIN */
{ yygotominor.yy228 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); }
        break;
      case 139: /* joinop ::= JOIN_KW nm JOIN */
{ yygotominor.yy228 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); }
        break;
      case 140: /* joinop ::= JOIN_KW nm nm JOIN */
{ yygotominor.yy228 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0); }
        break;
      case 141: /* on_opt ::= ON expr */
      case 152: /* sortitem ::= expr */
      case 159: /* having_opt ::= HAVING expr */
      case 166: /* where_opt ::= WHERE expr */
      case 181: /* expr ::= term */
      case 209: /* escape ::= ESCAPE expr */
      case 233: /* case_else ::= ELSE expr */
      case 235: /* case_operand ::= expr */
{yygotominor.yy402 = yymsp[0].minor.yy402;}
        break;
      case 142: /* on_opt ::= */
      case 158: /* having_opt ::= */
      case 165: /* where_opt ::= */
      case 210: /* escape ::= */
      case 234: /* case_else ::= */
      case 236: /* case_operand ::= */
{yygotominor.yy402 = 0;}
        break;
      case 145: /* indexed_opt ::= NOT INDEXED */
{yygotominor.yy0.z=0; yygotominor.yy0.n=1;}
        break;
      case 146: /* using_opt ::= USING LP inscollist RP */
      case 178: /* inscollist_opt ::= LP inscollist RP */
{yygotominor.yy400 = yymsp[-1].minor.yy400;}
        break;
      case 147: /* using_opt ::= */
      case 177: /* inscollist_opt ::= */
{yygotominor.yy400 = 0;}
        break;
      case 149: /* orderby_opt ::= ORDER BY sortlist */
      case 157: /* groupby_opt ::= GROUP BY nexprlist */
      case 237: /* exprlist ::= nexprlist */
{yygotominor.yy258 = yymsp[0].minor.yy258;}
        break;
      case 150: /* sortlist ::= sortlist COMMA sortitem sortorder */
{
  yygotominor.yy258 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy258,yymsp[-1].minor.yy402,0);
  if( yygotominor.yy258 ) yygotominor.yy258->a[yygotominor.yy258->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy228;
}
        break;
      case 151: /* sortlist ::= sortitem sortorder */
{
  yygotominor.yy258 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy402,0);
  if( yygotominor.yy258 && yygotominor.yy258->a ) yygotominor.yy258->a[0].sortOrder = (u8)yymsp[0].minor.yy228;
}
        break;
      case 153: /* sortorder ::= ASC */
      case 155: /* sortorder ::= */
{yygotominor.yy228 = SQLITE_SO_ASC;}
        break;
      case 154: /* sortorder ::= DESC */
{yygotominor.yy228 = SQLITE_SO_DESC;}
        break;
      case 160: /* limit_opt ::= */
{yygotominor.yy196.pLimit = 0; yygotominor.yy196.pOffset = 0;}
        break;
      case 161: /* limit_opt ::= LIMIT expr */
{yygotominor.yy196.pLimit = yymsp[0].minor.yy402; yygotominor.yy196.pOffset = 0;}
        break;
      case 162: /* limit_opt ::= LIMIT expr OFFSET expr */
{yygotominor.yy196.pLimit = yymsp[-2].minor.yy402; yygotominor.yy196.pOffset = yymsp[0].minor.yy402;}
        break;
      case 163: /* limit_opt ::= LIMIT expr COMMA expr */
{yygotominor.yy196.pOffset = yymsp[-2].minor.yy402; yygotominor.yy196.pLimit = yymsp[0].minor.yy402;}
        break;
      case 164: /* cmd ::= DELETE FROM fullname indexed_opt where_opt */
{
  sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy3, &yymsp[-1].minor.yy0);
  sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy3,yymsp[0].minor.yy402);
}
        break;
      case 167: /* cmd ::= UPDATE orconf fullname indexed_opt SET setlist where_opt */
{
  sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy3, &yymsp[-3].minor.yy0);
  sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy258,"set list"); 
  sqlite3Update(pParse,yymsp[-4].minor.yy3,yymsp[-1].minor.yy258,yymsp[0].minor.yy402,yymsp[-5].minor.yy228);
}
        break;
      case 168: /* setlist ::= setlist COMMA nm EQ expr */
{yygotominor.yy258 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy258,yymsp[0].minor.yy402,&yymsp[-2].minor.yy0);}
        break;
      case 169: /* setlist ::= nm EQ expr */
{yygotominor.yy258 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy402,&yymsp[-2].minor.yy0);}
        break;
      case 170: /* cmd ::= insert_cmd INTO fullname inscollist_opt VALUES LP itemlist RP */
{sqlite3Insert(pParse, yymsp[-5].minor.yy3, yymsp[-1].minor.yy258, 0, yymsp[-4].minor.yy400, yymsp[-7].minor.yy228);}
        break;
      case 171: /* cmd ::= insert_cmd INTO fullname inscollist_opt select */
{sqlite3Insert(pParse, yymsp[-2].minor.yy3, 0, yymsp[0].minor.yy387, yymsp[-1].minor.yy400, yymsp[-4].minor.yy228);}
        break;
      case 172: /* cmd ::= insert_cmd INTO fullname inscollist_opt DEFAULT VALUES */
{sqlite3Insert(pParse, yymsp[-3].minor.yy3, 0, 0, yymsp[-2].minor.yy400, yymsp[-5].minor.yy228);}
        break;
      case 175: /* itemlist ::= itemlist COMMA expr */
      case 239: /* nexprlist ::= nexprlist COMMA expr */
{yygotominor.yy258 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy258,yymsp[0].minor.yy402,0);}
        break;
      case 176: /* itemlist ::= expr */
      case 240: /* nexprlist ::= expr */
{yygotominor.yy258 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy402,0);}
        break;
      case 179: /* inscollist ::= inscollist COMMA nm */
{yygotominor.yy400 = sqlite3IdListAppend(pParse->db,yymsp[-2].minor.yy400,&yymsp[0].minor.yy0);}
        break;
      case 180: /* inscollist ::= nm */
{yygotominor.yy400 = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy0);}
        break;
      case 182: /* expr ::= LP expr RP */
{yygotominor.yy402 = yymsp[-1].minor.yy402; sqlite3ExprSpan(yygotominor.yy402,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); }
        break;
      case 183: /* term ::= NULL */
      case 188: /* term ::= INTEGER|FLOAT|BLOB */
      case 189: /* term ::= STRING */
{yygotominor.yy402 = sqlite3PExpr(pParse, yymsp[0].major, 0, 0, &yymsp[0].minor.yy0);}
        break;
      case 184: /* expr ::= ID */
      case 185: /* expr ::= JOIN_KW */
{yygotominor.yy402 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0);}
        break;
      case 186: /* expr ::= nm DOT nm */
{
  Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
  Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0);
  yygotominor.yy402 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2, 0);
}
        break;
      case 187: /* expr ::= nm DOT nm DOT nm */
{
  Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-4].minor.yy0);
  Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
  Expr *temp3 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0);
  Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3, 0);
  yygotominor.yy402 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4, 0);
}
        break;
      case 190: /* expr ::= REGISTER */
{yygotominor.yy402 = sqlite3RegisterExpr(pParse, &yymsp[0].minor.yy0);}
        break;
      case 191: /* expr ::= VARIABLE */
{
  Token *pToken = &yymsp[0].minor.yy0;
  Expr *pExpr = yygotominor.yy402 = sqlite3PExpr(pParse, TK_VARIABLE, 0, 0, pToken);
  sqlite3ExprAssignVarNumber(pParse, pExpr);
}
        break;
      case 192: /* expr ::= expr COLLATE ids */
{
  yygotominor.yy402 = sqlite3ExprSetColl(pParse, yymsp[-2].minor.yy402, &yymsp[0].minor.yy0);
}
        break;
      case 193: /* expr ::= CAST LP expr AS typetoken RP */
{
  yygotominor.yy402 = sqlite3PExpr(pParse, TK_CAST, yymsp[-3].minor.yy402, 0, &yymsp[-1].minor.yy0);
  sqlite3ExprSpan(yygotominor.yy402,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0);
}
        break;
      case 194: /* expr ::= ID LP distinct exprlist RP */
{
  if( yymsp[-1].minor.yy258 && yymsp[-1].minor.yy258->nExpr>SQLITE_MAX_FUNCTION_ARG ){
    sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].minor.yy0);
  }
  yygotominor.yy402 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy258, &yymsp[-4].minor.yy0);
  sqlite3ExprSpan(yygotominor.yy402,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0);
  if( yymsp[-2].minor.yy228 && yygotominor.yy402 ){
    yygotominor.yy402->flags |= EP_Distinct;
  }
}
        break;
      case 195: /* expr ::= ID LP STAR RP */
{
  yygotominor.yy402 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0);
  sqlite3ExprSpan(yygotominor.yy402,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
}
        break;
      case 196: /* term ::= CTIME_KW */
{
  /* The CURRENT_TIME, CURRENT_DATE, and CURRENT_TIMESTAMP values are
  ** treated as functions that return constants */
  yygotominor.yy402 = sqlite3ExprFunction(pParse, 0,&yymsp[0].minor.yy0);
  if( yygotominor.yy402 ){
    yygotominor.yy402->op = TK_CONST_FUNC;  
    yygotominor.yy402->span = yymsp[0].minor.yy0;
  }
}
        break;
      case 197: /* expr ::= expr AND expr */
      case 198: /* expr ::= expr OR expr */
      case 199: /* expr ::= expr LT|GT|GE|LE expr */
      case 200: /* expr ::= expr EQ|NE expr */
      case 201: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */
      case 202: /* expr ::= expr PLUS|MINUS expr */
      case 203: /* expr ::= expr STAR|SLASH|REM expr */
      case 204: /* expr ::= expr CONCAT expr */
{yygotominor.yy402 = sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy402,yymsp[0].minor.yy402,0);}
        break;
      case 205: /* likeop ::= LIKE_KW */
      case 207: /* likeop ::= MATCH */
{yygotominor.yy150.eOperator = yymsp[0].minor.yy0; yygotominor.yy150.not = 0;}
        break;
      case 206: /* likeop ::= NOT LIKE_KW */
      case 208: /* likeop ::= NOT MATCH */
{yygotominor.yy150.eOperator = yymsp[0].minor.yy0; yygotominor.yy150.not = 1;}
        break;
      case 211: /* expr ::= expr likeop expr escape */
{
  ExprList *pList;
  pList = sqlite3ExprListAppend(pParse,0, yymsp[-1].minor.yy402, 0);
  pList = sqlite3ExprListAppend(pParse,pList, yymsp[-3].minor.yy402, 0);
  if( yymsp[0].minor.yy402 ){
    pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy402, 0);
  }
  yygotominor.yy402 = sqlite3ExprFunction(pParse, pList, &yymsp[-2].minor.yy150.eOperator);
  if( yymsp[-2].minor.yy150.not ) yygotominor.yy402 = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy402, 0, 0);
  sqlite3ExprSpan(yygotominor.yy402, &yymsp[-3].minor.yy402->span, &yymsp[-1].minor.yy402->span);
  if( yygotominor.yy402 ) yygotominor.yy402->flags |= EP_InfixFunc;
}
        break;
      case 212: /* expr ::= expr ISNULL|NOTNULL */
{
  yygotominor.yy402 = sqlite3PExpr(pParse, yymsp[0].major, yymsp[-1].minor.yy402, 0, 0);
  sqlite3ExprSpan(yygotominor.yy402,&yymsp[-1].minor.yy402->span,&yymsp[0].minor.yy0);
}
        break;
      case 213: /* expr ::= expr IS NULL */
{
  yygotominor.yy402 = sqlite3PExpr(pParse, TK_ISNULL, yymsp[-2].minor.yy402, 0, 0);
  sqlite3ExprSpan(yygotominor.yy402,&yymsp[-2].minor.yy402->span,&yymsp[0].minor.yy0);
}
        break;
      case 214: /* expr ::= expr NOT NULL */
{
  yygotominor.yy402 = sqlite3PExpr(pParse, TK_NOTNULL, yymsp[-2].minor.yy402, 0, 0);
  sqlite3ExprSpan(yygotominor.yy402,&yymsp[-2].minor.yy402->span,&yymsp[0].minor.yy0);
}
        break;
      case 215: /* expr ::= expr IS NOT NULL */
{
  yygotominor.yy402 = sqlite3PExpr(pParse, TK_NOTNULL, yymsp[-3].minor.yy402, 0, 0);
  sqlite3ExprSpan(yygotominor.yy402,&yymsp[-3].minor.yy402->span,&yymsp[0].minor.yy0);
}
        break;
      case 216: /* expr ::= NOT expr */
      case 217: /* expr ::= BITNOT expr */
{
  yygotominor.yy402 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy402, 0, 0);
  sqlite3ExprSpan(yygotominor.yy402,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy402->span);
}
        break;
      case 218: /* expr ::= MINUS expr */
{
  yygotominor.yy402 = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy402, 0, 0);
  sqlite3ExprSpan(yygotominor.yy402,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy402->span);
}
        break;
      case 219: /* expr ::= PLUS expr */
{
  yygotominor.yy402 = sqlite3PExpr(pParse, TK_UPLUS, yymsp[0].minor.yy402, 0, 0);
  sqlite3ExprSpan(yygotominor.yy402,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy402->span);
}
        break;
      case 222: /* expr ::= expr between_op expr AND expr */
{
  ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy402, 0);
  pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy402, 0);
  yygotominor.yy402 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy402, 0, 0);
  if( yygotominor.yy402 ){
    yygotominor.yy402->pList = pList;
  }else{
    sqlite3ExprListDelete(pParse->db, pList);
  } 
  if( yymsp[-3].minor.yy228 ) yygotominor.yy402 = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy402, 0, 0);
  sqlite3ExprSpan(yygotominor.yy402,&yymsp[-4].minor.yy402->span,&yymsp[0].minor.yy402->span);
}
        break;
      case 225: /* expr ::= expr in_op LP exprlist RP */
{
    yygotominor.yy402 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy402, 0, 0);
    if( yygotominor.yy402 ){
      yygotominor.yy402->pList = yymsp[-1].minor.yy258;
      sqlite3ExprSetHeight(pParse, yygotominor.yy402);
    }else{
      sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy258);
    }
    if( yymsp[-3].minor.yy228 ) yygotominor.yy402 = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy402, 0, 0);
    sqlite3ExprSpan(yygotominor.yy402,&yymsp[-4].minor.yy402->span,&yymsp[0].minor.yy0);
  }
        break;
      case 226: /* expr ::= LP select RP */
{
    yygotominor.yy402 = sqlite3PExpr(pParse, TK_SELECT, 0, 0, 0);
    if( yygotominor.yy402 ){
      yygotominor.yy402->pSelect = yymsp[-1].minor.yy387;
      sqlite3ExprSetHeight(pParse, yygotominor.yy402);
    }else{
      sqlite3SelectDelete(pParse->db, yymsp[-1].minor.yy387);
    }
    sqlite3ExprSpan(yygotominor.yy402,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);
  }
        break;
      case 227: /* expr ::= expr in_op LP select RP */
{
    yygotominor.yy402 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy402, 0, 0);
    if( yygotominor.yy402 ){
      yygotominor.yy402->pSelect = yymsp[-1].minor.yy387;
      sqlite3ExprSetHeight(pParse, yygotominor.yy402);
    }else{
      sqlite3SelectDelete(pParse->db, yymsp[-1].minor.yy387);
    }
    if( yymsp[-3].minor.yy228 ) yygotominor.yy402 = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy402, 0, 0);
    sqlite3ExprSpan(yygotominor.yy402,&yymsp[-4].minor.yy402->span,&yymsp[0].minor.yy0);
  }
        break;
      case 228: /* expr ::= expr in_op nm dbnm */
{
    SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);
    yygotominor.yy402 = sqlite3PExpr(pParse, TK_IN, yymsp[-3].minor.yy402, 0, 0);
    if( yygotominor.yy402 ){
      yygotominor.yy402->pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0,0);
      sqlite3ExprSetHeight(pParse, yygotominor.yy402);
    }else{
      sqlite3SrcListDelete(pParse->db, pSrc);
    }
    if( yymsp[-2].minor.yy228 ) yygotominor.yy402 = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy402, 0, 0);
    sqlite3ExprSpan(yygotominor.yy402,&yymsp[-3].minor.yy402->span,yymsp[0].minor.yy0.z?&yymsp[0].minor.yy0:&yymsp[-1].minor.yy0);
  }
        break;
      case 229: /* expr ::= EXISTS LP select RP */
{
    Expr *p = yygotominor.yy402 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0, 0);
    if( p ){
      p->pSelect = yymsp[-1].minor.yy387;
      sqlite3ExprSpan(p,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
      sqlite3ExprSetHeight(pParse, yygotominor.yy402);
    }else{
      sqlite3SelectDelete(pParse->db, yymsp[-1].minor.yy387);
    }
  }
        break;
      case 230: /* expr ::= CASE case_operand case_exprlist case_else END */
{
  yygotominor.yy402 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy402, yymsp[-1].minor.yy402, 0);
  if( yygotominor.yy402 ){
    yygotominor.yy402->pList = yymsp[-2].minor.yy258;
    sqlite3ExprSetHeight(pParse, yygotominor.yy402);
  }else{
    sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy258);
  }
  sqlite3ExprSpan(yygotominor.yy402, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0);
}
        break;
      case 231: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
{
  yygotominor.yy258 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy258, yymsp[-2].minor.yy402, 0);
  yygotominor.yy258 = sqlite3ExprListAppend(pParse,yygotominor.yy258, yymsp[0].minor.yy402, 0);
}
        break;
      case 232: /* case_exprlist ::= WHEN expr THEN expr */
{
  yygotominor.yy258 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy402, 0);
  yygotominor.yy258 = sqlite3ExprListAppend(pParse,yygotominor.yy258, yymsp[0].minor.yy402, 0);
}
        break;
      case 241: /* cmd ::= CREATE uniqueflag INDEX ifnotexists nm dbnm ON nm LP idxlist RP */
{
  sqlite3CreateIndex(pParse, &yymsp[-6].minor.yy0, &yymsp[-5].minor.yy0, 
                     sqlite3SrcListAppend(pParse->db,0,&yymsp[-3].minor.yy0,0), yymsp[-1].minor.yy258, yymsp[-9].minor.yy228,
                      &yymsp[-10].minor.yy0, &yymsp[0].minor.yy0, SQLITE_SO_ASC, yymsp[-7].minor.yy228);
}
        break;
      case 242: /* uniqueflag ::= UNIQUE */
      case 279: /* raisetype ::= ABORT */
{yygotominor.yy228 = OE_Abort;}
        break;
      case 243: /* uniqueflag ::= */
{yygotominor.yy228 = OE_None;}
        break;
      case 246: /* idxlist ::= idxlist COMMA nm collate sortorder */
{
  Expr *p = 0;
  if( yymsp[-1].minor.yy0.n>0 ){
    p = sqlite3PExpr(pParse, TK_COLUMN, 0, 0, 0);
    sqlite3ExprSetColl(pParse, p, &yymsp[-1].minor.yy0);
  }
  yygotominor.yy258 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy258, p, &yymsp[-2].minor.yy0);
  sqlite3ExprListCheckLength(pParse, yygotominor.yy258, "index");
  if( yygotominor.yy258 ) yygotominor.yy258->a[yygotominor.yy258->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy228;
}
        break;
      case 247: /* idxlist ::= nm collate sortorder */
{
  Expr *p = 0;
  if( yymsp[-1].minor.yy0.n>0 ){
    p = sqlite3PExpr(pParse, TK_COLUMN, 0, 0, 0);
    sqlite3ExprSetColl(pParse, p, &yymsp[-1].minor.yy0);
  }
  yygotominor.yy258 = sqlite3ExprListAppend(pParse,0, p, &yymsp[-2].minor.yy0);
  sqlite3ExprListCheckLength(pParse, yygotominor.yy258, "index");
  if( yygotominor.yy258 ) yygotominor.yy258->a[yygotominor.yy258->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy228;
}
        break;
      case 248: /* collate ::= */
{yygotominor.yy0.z = 0; yygotominor.yy0.n = 0;}
        break;
      case 250: /* cmd ::= DROP INDEX ifexists fullname */
{sqlite3DropIndex(pParse, yymsp[0].minor.yy3, yymsp[-1].minor.yy228);}
        break;




















      case 256: /* cmd ::= CREATE trigger_decl BEGIN trigger_cmd_list END */
{
  Token all;
  all.z = yymsp[-3].minor.yy0.z;
  all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n;
  sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy19, &all);
}
        break;
      case 257: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
{
  sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy228, yymsp[-4].minor.yy466.a, yymsp[-4].minor.yy466.b, yymsp[-2].minor.yy3, yymsp[0].minor.yy402, yymsp[-10].minor.yy228, yymsp[-8].minor.yy228);
  yygotominor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0);
}
        break;
      case 258: /* trigger_time ::= BEFORE */
      case 261: /* trigger_time ::= */
{ yygotominor.yy228 = TK_BEFORE; }
        break;
      case 259: /* trigger_time ::= AFTER */
{ yygotominor.yy228 = TK_AFTER;  }
        break;
      case 260: /* trigger_time ::= INSTEAD OF */
{ yygotominor.yy228 = TK_INSTEAD;}
        break;
      case 262: /* trigger_event ::= DELETE|INSERT */
      case 263: /* trigger_event ::= UPDATE */
{yygotominor.yy466.a = yymsp[0].major; yygotominor.yy466.b = 0;}
        break;
      case 264: /* trigger_event ::= UPDATE OF inscollist */
{yygotominor.yy466.a = TK_UPDATE; yygotominor.yy466.b = yymsp[0].minor.yy400;}
        break;
      case 267: /* when_clause ::= */

{ yygotominor.yy402 = 0; }
        break;
      case 268: /* when_clause ::= WHEN expr */

{ yygotominor.yy402 = yymsp[0].minor.yy402; }
        break;
      case 269: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
{
/*









  if( yymsp[-2].minor.yy19 ){




    yymsp[-2].minor.yy19->pLast->pNext = yymsp[-1].minor.yy19;
  }else{

    yymsp[-2].minor.yy19 = yymsp[-1].minor.yy19;
  }








*/
  assert( yymsp[-2].minor.yy19!=0 );


  yymsp[-2].minor.yy19->pLast->pNext = yymsp[-1].minor.yy19;


  yymsp[-2].minor.yy19->pLast = yymsp[-1].minor.yy19;




  yygotominor.yy19 = yymsp[-2].minor.yy19;


}

        break;
      case 270: /* trigger_cmd_list ::= trigger_cmd SEMI */
{ 
  /* if( yymsp[-1].minor.yy19 ) */
  assert( yymsp[-1].minor.yy19!=0 );
  yymsp[-1].minor.yy19->pLast = yymsp[-1].minor.yy19;
  yygotominor.yy19 = yymsp[-1].minor.yy19;

}

        break;
      case 271: /* trigger_cmd ::= UPDATE orconf nm SET setlist where_opt */
{ yygotominor.yy19 = sqlite3TriggerUpdateStep(pParse->db, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy258, yymsp[0].minor.yy402, yymsp[-4].minor.yy228); }
        break;
      case 272: /* trigger_cmd ::= insert_cmd INTO nm inscollist_opt VALUES LP itemlist RP */
{yygotominor.yy19 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy400, yymsp[-1].minor.yy258, 0, yymsp[-7].minor.yy228);}
        break;
      case 273: /* trigger_cmd ::= insert_cmd INTO nm inscollist_opt select */

{yygotominor.yy19 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy400, 0, yymsp[0].minor.yy387, yymsp[-4].minor.yy228);}

        break;
      case 274: /* trigger_cmd ::= DELETE FROM nm where_opt */

{yygotominor.yy19 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-1].minor.yy0, yymsp[0].minor.yy402);}

        break;
      case 275: /* trigger_cmd ::= select */

{yygotominor.yy19 = sqlite3TriggerSelectStep(pParse->db, yymsp[0].minor.yy387); }

        break;
      case 276: /* expr ::= RAISE LP IGNORE RP */
{
  yygotominor.yy402 = sqlite3PExpr(pParse, TK_RAISE, 0, 0, 0); 


  if( yygotominor.yy402 ){




    yygotominor.yy402->iColumn = OE_Ignore;
    sqlite3ExprSpan(yygotominor.yy402, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0);




  }
}
        break;

      case 277: /* expr ::= RAISE LP raisetype COMMA nm RP */
{
  yygotominor.yy402 = sqlite3PExpr(pParse, TK_RAISE, 0, 0, &yymsp[-1].minor.yy0); 
  if( yygotominor.yy402 ) {
    yygotominor.yy402->iColumn = yymsp[-3].minor.yy228;
    sqlite3ExprSpan(yygotominor.yy402, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0);
  }




}
        break;
      case 278: /* raisetype ::= ROLLBACK */

{yygotominor.yy228 = OE_Rollback;}
        break;
      case 280: /* raisetype ::= FAIL */
{yygotominor.yy228 = OE_Fail;}
        break;
      case 281: /* cmd ::= DROP TRIGGER ifexists fullname */
{
  sqlite3DropTrigger(pParse,yymsp[0].minor.yy3,yymsp[-1].minor.yy228);
}









        break;
  };
  yygoto = yyRuleInfo[yyruleno].lhs;
  yysize = yyRuleInfo[yyruleno].nrhs;
  yypParser->yyidx -= yysize;
  yyact = yy_find_reduce_action(yymsp[-yysize].stateno,(YYCODETYPE)yygoto);
  if( yyact < YYNSTATE ){
86189
86190
86191
86192
86193
86194
86195
86196
86197
86198
86199
86200
86201
86202
86203
86204
86205

86206
86207
86208
86209

86210
86211
86212
86213
86214
86215
86216
86217
86218
86219
86220
86221
86222
86223
86224
86225
86226
86227
86228
86229
86230
86231

86232
86233
86234
86235
86236
86237
86238
86239

86240
86241
86242

86243
86244
86245
86246
86247
86248
86249
86250
86251
86252
86253
86254
86255
86256
86257
86258
86259
86260
86261
86262
86263
86264
86265
86266
86267
86268
86269
86270
86271
86272
86273
86274
86275
86276
86277
86278
86279
86280

86281
86282
86283

86284
86285
86286
86287
86288
86289

86290
86291
86292
86293
86294
86295
86296
86297
86298
86299
86300
86301
86302

86303
86304
86305
86306
86307
86308
86309
86310
86311
86312
86313
86314
86315
86316
86317
86318
86319
86320
86321
86322
86323
86324
86325
86326
86327
86328
86329
86330
86331
86332
86333
86334
86335
86336
86337
86338
86339
86340
86341
86342
86343
86344
86345
86346
86347
86348
86349
86350
86351
86352
86353
86354
86355
86356
86357
86358
86359
86360
86361
86362
86363
86364
86365
86366
86367
86368
86369
86370
86371
86372
86373
86374
86375
86376
86377
86378
86379
86380
86381
86382
86383
86384
86385
86386
86387
86388
86389
86390
86391
86392
86393
86394
86395
86396
86397
86398
86399
86400
86401
86402
86403
86404
86405
86406
86407
86408
86409
86410
86411
86412
86413
86414
86415
86416
86417
86418
86419
86420
86421
86422
86423
86424
86425
86426
86427
86428
86429
86430
86431
86432
86433
86434
86435
86436
86437
86438
86439
86440
86441
86442
86443
86444
86445
86446
86447
** The code in this file implements a function that determines whether
** or not a given identifier is really an SQL keyword.  The same thing
** might be implemented more directly using a hand-written hash table.
** But by using this automatically generated code, the size of the code
** is substantially reduced.  This is important for embedded applications
** on platforms with limited memory.
*/
/* Hash score: 171 */
static int keywordCode(const char *z, int n){
  /* zText[] encodes 801 bytes of keywords in 541 bytes */
  /*   REINDEXEDESCAPEACHECKEYBEFOREIGNOREGEXPLAINSTEADDATABASELECT       */
  /*   ABLEFTHENDEFERRABLELSEXCEPTRANSACTIONATURALTERAISEXCLUSIVE         */
  /*   XISTSAVEPOINTERSECTRIGGEREFERENCESCONSTRAINTOFFSETEMPORARY         */
  /*   UNIQUERYATTACHAVINGROUPDATEBEGINNERELEASEBETWEENOTNULLIKE          */
  /*   CASCADELETECASECOLLATECREATECURRENT_DATEDETACHIMMEDIATEJOIN        */
  /*   SERTMATCHPLANALYZEPRAGMABORTVALUESVIRTUALIMITWHENWHERENAME         */
  /*   AFTEREPLACEANDEFAULTAUTOINCREMENTCASTCOLUMNCOMMITCONFLICTCROSS     */

  /*   CURRENT_TIMESTAMPRIMARYDEFERREDISTINCTDROPFAILFROMFULLGLOBYIF      */
  /*   ISNULLORDERESTRICTOUTERIGHTROLLBACKROWUNIONUSINGVACUUMVIEW         */
  /*   INITIALLY                                                          */
  static const char zText[540] = {

    'R','E','I','N','D','E','X','E','D','E','S','C','A','P','E','A','C','H',
    'E','C','K','E','Y','B','E','F','O','R','E','I','G','N','O','R','E','G',
    'E','X','P','L','A','I','N','S','T','E','A','D','D','A','T','A','B','A',
    'S','E','L','E','C','T','A','B','L','E','F','T','H','E','N','D','E','F',
    'E','R','R','A','B','L','E','L','S','E','X','C','E','P','T','R','A','N',
    'S','A','C','T','I','O','N','A','T','U','R','A','L','T','E','R','A','I',
    'S','E','X','C','L','U','S','I','V','E','X','I','S','T','S','A','V','E',
    'P','O','I','N','T','E','R','S','E','C','T','R','I','G','G','E','R','E',
    'F','E','R','E','N','C','E','S','C','O','N','S','T','R','A','I','N','T',
    'O','F','F','S','E','T','E','M','P','O','R','A','R','Y','U','N','I','Q',
    'U','E','R','Y','A','T','T','A','C','H','A','V','I','N','G','R','O','U',
    'P','D','A','T','E','B','E','G','I','N','N','E','R','E','L','E','A','S',
    'E','B','E','T','W','E','E','N','O','T','N','U','L','L','I','K','E','C',
    'A','S','C','A','D','E','L','E','T','E','C','A','S','E','C','O','L','L',
    'A','T','E','C','R','E','A','T','E','C','U','R','R','E','N','T','_','D',
    'A','T','E','D','E','T','A','C','H','I','M','M','E','D','I','A','T','E',
    'J','O','I','N','S','E','R','T','M','A','T','C','H','P','L','A','N','A',
    'L','Y','Z','E','P','R','A','G','M','A','B','O','R','T','V','A','L','U',
    'E','S','V','I','R','T','U','A','L','I','M','I','T','W','H','E','N','W',
    'H','E','R','E','N','A','M','E','A','F','T','E','R','E','P','L','A','C',
    'E','A','N','D','E','F','A','U','L','T','A','U','T','O','I','N','C','R',
    'E','M','E','N','T','C','A','S','T','C','O','L','U','M','N','C','O','M',

    'M','I','T','C','O','N','F','L','I','C','T','C','R','O','S','S','C','U',
    'R','R','E','N','T','_','T','I','M','E','S','T','A','M','P','R','I','M',
    'A','R','Y','D','E','F','E','R','R','E','D','I','S','T','I','N','C','T',
    'D','R','O','P','F','A','I','L','F','R','O','M','F','U','L','L','G','L',
    'O','B','Y','I','F','I','S','N','U','L','L','O','R','D','E','R','E','S',
    'T','R','I','C','T','O','U','T','E','R','I','G','H','T','R','O','L','L',
    'B','A','C','K','R','O','W','U','N','I','O','N','U','S','I','N','G','V',
    'A','C','U','U','M','V','I','E','W','I','N','I','T','I','A','L','L','Y',

  };
  static const unsigned char aHash[127] = {
      70,  99, 112,  68,   0,  43,   0,   0,  76,   0,  71,   0,   0,

      41,  12,  72,  15,   0, 111,  79,  49, 106,   0,  19,   0,   0,
     116,   0, 114, 109,   0,  22,  87,   0,   9,   0,   0,  64,  65,
       0,  63,   6,   0,  47,  84,  96,   0, 113,  95,   0,   0,  44,
       0,  97,  24,   0,  17,   0, 117,  48,  23,   0,   5, 104,  25,
      90,   0,   0, 119, 100,  55, 118,  52,   7,  50,   0,  85,   0,
      94,  26,   0,  93,   0,   0,   0,  89,  86,  91,  82, 103,  14,
      38, 102,   0,  75,   0,  18,  83, 105,  31,   0, 115,  74, 107,
      57,  45,  78,   0,   0,  88,  39,   0, 110,   0,  35,   0,   0,
      28,   0,  80,  53,  58,   0,  20,  56,   0,  51,
  };
  static const unsigned char aNext[119] = {
       0,   0,   0,   0,   4,   0,   0,   0,   0,   0,   0,   0,   0,
       0,   2,   0,   0,   0,   0,   0,   0,  13,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,  32,  21,   0,   0,   0,  42,   3,  46,   0,
       0,   0,   0,  29,   0,   0,  37,   0,   0,   0,   1,  60,   0,
       0,  61,   0,  40,   0,   0,   0,   0,   0,   0,   0,  59,   0,
       0,   0,   0,  30,  54,  16,  33,  10,   0,   0,   0,   0,   0,
       0,   0,  11,  66,  73,   0,   8,   0,  98,  92,   0, 101,   0,
      81,   0,  69,   0,   0, 108,  27,  36,  67,  77,   0,  34,  62,
       0,   0,
  };
  static const unsigned char aLen[119] = {
       7,   7,   5,   4,   6,   4,   5,   3,   6,   7,   3,   6,   6,
       7,   7,   3,   8,   2,   6,   5,   4,   4,   3,  10,   4,   6,
      11,   2,   7,   5,   5,   9,   6,   9,   9,   7,  10,  10,   4,
       6,   2,   3,   4,   9,   2,   6,   5,   6,   6,   5,   6,   5,
       5,   7,   7,   7,   3,   4,   4,   7,   3,   6,   4,   7,   6,
      12,   6,   9,   4,   6,   5,   4,   7,   6,   5,   6,   7,   5,
       4,   5,   6,   5,   7,   3,   7,  13,   2,   2,   4,   6,   6,
       8,   5,  17,  12,   7,   8,   8,   2,   4,   4,   4,   4,   4,
       2,   2,   6,   5,   8,   5,   5,   8,   3,   5,   5,   6,   4,
       9,   3,
  };
  static const unsigned short int aOffset[119] = {
       0,   2,   2,   8,   9,  14,  16,  20,  23,  25,  25,  29,  33,
      36,  41,  46,  48,  53,  54,  59,  62,  65,  67,  69,  78,  81,
      86,  95,  96, 101, 105, 109, 117, 122, 128, 136, 142, 152, 159,

     162, 162, 165, 167, 167, 171, 176, 179, 184, 189, 194, 197, 203,
     206, 210, 217, 223, 223, 226, 229, 233, 234, 238, 244, 248, 255,
     261, 273, 279, 288, 290, 296, 301, 303, 310, 315, 320, 326, 332,

     337, 341, 344, 350, 354, 361, 363, 370, 372, 374, 383, 387, 393,
     399, 407, 412, 412, 428, 435, 442, 443, 450, 454, 458, 462, 466,
     469, 471, 473, 479, 483, 491, 495, 500, 508, 511, 516, 521, 527,
     531, 536,
  };
  static const unsigned char aCode[119] = {

    TK_REINDEX,    TK_INDEXED,    TK_INDEX,      TK_DESC,       TK_ESCAPE,     
    TK_EACH,       TK_CHECK,      TK_KEY,        TK_BEFORE,     TK_FOREIGN,    
    TK_FOR,        TK_IGNORE,     TK_LIKE_KW,    TK_EXPLAIN,    TK_INSTEAD,    
    TK_ADD,        TK_DATABASE,   TK_AS,         TK_SELECT,     TK_TABLE,      
    TK_JOIN_KW,    TK_THEN,       TK_END,        TK_DEFERRABLE, TK_ELSE,       
    TK_EXCEPT,     TK_TRANSACTION,TK_ON,         TK_JOIN_KW,    TK_ALTER,      
    TK_RAISE,      TK_EXCLUSIVE,  TK_EXISTS,     TK_SAVEPOINT,  TK_INTERSECT,  
    TK_TRIGGER,    TK_REFERENCES, TK_CONSTRAINT, TK_INTO,       TK_OFFSET,     
    TK_OF,         TK_SET,        TK_TEMP,       TK_TEMP,       TK_OR,         
    TK_UNIQUE,     TK_QUERY,      TK_ATTACH,     TK_HAVING,     TK_GROUP,      
    TK_UPDATE,     TK_BEGIN,      TK_JOIN_KW,    TK_RELEASE,    TK_BETWEEN,    
    TK_NOTNULL,    TK_NOT,        TK_NULL,       TK_LIKE_KW,    TK_CASCADE,    
    TK_ASC,        TK_DELETE,     TK_CASE,       TK_COLLATE,    TK_CREATE,     

    TK_CTIME_KW,   TK_DETACH,     TK_IMMEDIATE,  TK_JOIN,       TK_INSERT,     
    TK_MATCH,      TK_PLAN,       TK_ANALYZE,    TK_PRAGMA,     TK_ABORT,      
    TK_VALUES,     TK_VIRTUAL,    TK_LIMIT,      TK_WHEN,       TK_WHERE,      
    TK_RENAME,     TK_AFTER,      TK_REPLACE,    TK_AND,        TK_DEFAULT,    
    TK_AUTOINCR,   TK_TO,         TK_IN,         TK_CAST,       TK_COLUMNKW,   
    TK_COMMIT,     TK_CONFLICT,   TK_JOIN_KW,    TK_CTIME_KW,   TK_CTIME_KW,   
    TK_PRIMARY,    TK_DEFERRED,   TK_DISTINCT,   TK_IS,         TK_DROP,       
    TK_FAIL,       TK_FROM,       TK_JOIN_KW,    TK_LIKE_KW,    TK_BY,         
    TK_IF,         TK_ISNULL,     TK_ORDER,      TK_RESTRICT,   TK_JOIN_KW,    
    TK_JOIN_KW,    TK_ROLLBACK,   TK_ROW,        TK_UNION,      TK_USING,      
    TK_VACUUM,     TK_VIEW,       TK_INITIALLY,  TK_ALL,        
  };
  int h, i;
  if( n<2 ) return TK_ID;
  h = ((charMap(z[0])*4) ^
      (charMap(z[n-1])*3) ^
      n) % 127;
  for(i=((int)aHash[h])-1; i>=0; i=((int)aNext[i])-1){
    if( aLen[i]==n && sqlite3StrNICmp(&zText[aOffset[i]],z,n)==0 ){
      testcase( i==0 ); /* TK_REINDEX */
      testcase( i==1 ); /* TK_INDEXED */
      testcase( i==2 ); /* TK_INDEX */
      testcase( i==3 ); /* TK_DESC */
      testcase( i==4 ); /* TK_ESCAPE */
      testcase( i==5 ); /* TK_EACH */
      testcase( i==6 ); /* TK_CHECK */
      testcase( i==7 ); /* TK_KEY */
      testcase( i==8 ); /* TK_BEFORE */
      testcase( i==9 ); /* TK_FOREIGN */
      testcase( i==10 ); /* TK_FOR */
      testcase( i==11 ); /* TK_IGNORE */
      testcase( i==12 ); /* TK_LIKE_KW */
      testcase( i==13 ); /* TK_EXPLAIN */
      testcase( i==14 ); /* TK_INSTEAD */
      testcase( i==15 ); /* TK_ADD */
      testcase( i==16 ); /* TK_DATABASE */
      testcase( i==17 ); /* TK_AS */
      testcase( i==18 ); /* TK_SELECT */
      testcase( i==19 ); /* TK_TABLE */
      testcase( i==20 ); /* TK_JOIN_KW */
      testcase( i==21 ); /* TK_THEN */
      testcase( i==22 ); /* TK_END */
      testcase( i==23 ); /* TK_DEFERRABLE */
      testcase( i==24 ); /* TK_ELSE */
      testcase( i==25 ); /* TK_EXCEPT */
      testcase( i==26 ); /* TK_TRANSACTION */
      testcase( i==27 ); /* TK_ON */
      testcase( i==28 ); /* TK_JOIN_KW */
      testcase( i==29 ); /* TK_ALTER */
      testcase( i==30 ); /* TK_RAISE */
      testcase( i==31 ); /* TK_EXCLUSIVE */
      testcase( i==32 ); /* TK_EXISTS */
      testcase( i==33 ); /* TK_SAVEPOINT */
      testcase( i==34 ); /* TK_INTERSECT */
      testcase( i==35 ); /* TK_TRIGGER */
      testcase( i==36 ); /* TK_REFERENCES */
      testcase( i==37 ); /* TK_CONSTRAINT */
      testcase( i==38 ); /* TK_INTO */
      testcase( i==39 ); /* TK_OFFSET */
      testcase( i==40 ); /* TK_OF */
      testcase( i==41 ); /* TK_SET */
      testcase( i==42 ); /* TK_TEMP */
      testcase( i==43 ); /* TK_TEMP */
      testcase( i==44 ); /* TK_OR */
      testcase( i==45 ); /* TK_UNIQUE */
      testcase( i==46 ); /* TK_QUERY */
      testcase( i==47 ); /* TK_ATTACH */
      testcase( i==48 ); /* TK_HAVING */
      testcase( i==49 ); /* TK_GROUP */
      testcase( i==50 ); /* TK_UPDATE */
      testcase( i==51 ); /* TK_BEGIN */
      testcase( i==52 ); /* TK_JOIN_KW */
      testcase( i==53 ); /* TK_RELEASE */
      testcase( i==54 ); /* TK_BETWEEN */
      testcase( i==55 ); /* TK_NOTNULL */
      testcase( i==56 ); /* TK_NOT */
      testcase( i==57 ); /* TK_NULL */
      testcase( i==58 ); /* TK_LIKE_KW */
      testcase( i==59 ); /* TK_CASCADE */
      testcase( i==60 ); /* TK_ASC */
      testcase( i==61 ); /* TK_DELETE */
      testcase( i==62 ); /* TK_CASE */
      testcase( i==63 ); /* TK_COLLATE */
      testcase( i==64 ); /* TK_CREATE */
      testcase( i==65 ); /* TK_CTIME_KW */
      testcase( i==66 ); /* TK_DETACH */
      testcase( i==67 ); /* TK_IMMEDIATE */
      testcase( i==68 ); /* TK_JOIN */
      testcase( i==69 ); /* TK_INSERT */
      testcase( i==70 ); /* TK_MATCH */
      testcase( i==71 ); /* TK_PLAN */
      testcase( i==72 ); /* TK_ANALYZE */
      testcase( i==73 ); /* TK_PRAGMA */
      testcase( i==74 ); /* TK_ABORT */
      testcase( i==75 ); /* TK_VALUES */
      testcase( i==76 ); /* TK_VIRTUAL */
      testcase( i==77 ); /* TK_LIMIT */
      testcase( i==78 ); /* TK_WHEN */
      testcase( i==79 ); /* TK_WHERE */
      testcase( i==80 ); /* TK_RENAME */
      testcase( i==81 ); /* TK_AFTER */
      testcase( i==82 ); /* TK_REPLACE */
      testcase( i==83 ); /* TK_AND */
      testcase( i==84 ); /* TK_DEFAULT */
      testcase( i==85 ); /* TK_AUTOINCR */
      testcase( i==86 ); /* TK_TO */
      testcase( i==87 ); /* TK_IN */
      testcase( i==88 ); /* TK_CAST */
      testcase( i==89 ); /* TK_COLUMNKW */
      testcase( i==90 ); /* TK_COMMIT */
      testcase( i==91 ); /* TK_CONFLICT */
      testcase( i==92 ); /* TK_JOIN_KW */
      testcase( i==93 ); /* TK_CTIME_KW */
      testcase( i==94 ); /* TK_CTIME_KW */
      testcase( i==95 ); /* TK_PRIMARY */
      testcase( i==96 ); /* TK_DEFERRED */
      testcase( i==97 ); /* TK_DISTINCT */
      testcase( i==98 ); /* TK_IS */
      testcase( i==99 ); /* TK_DROP */
      testcase( i==100 ); /* TK_FAIL */
      testcase( i==101 ); /* TK_FROM */
      testcase( i==102 ); /* TK_JOIN_KW */
      testcase( i==103 ); /* TK_LIKE_KW */
      testcase( i==104 ); /* TK_BY */
      testcase( i==105 ); /* TK_IF */
      testcase( i==106 ); /* TK_ISNULL */
      testcase( i==107 ); /* TK_ORDER */
      testcase( i==108 ); /* TK_RESTRICT */
      testcase( i==109 ); /* TK_JOIN_KW */
      testcase( i==110 ); /* TK_JOIN_KW */
      testcase( i==111 ); /* TK_ROLLBACK */
      testcase( i==112 ); /* TK_ROW */
      testcase( i==113 ); /* TK_UNION */
      testcase( i==114 ); /* TK_USING */
      testcase( i==115 ); /* TK_VACUUM */
      testcase( i==116 ); /* TK_VIEW */
      testcase( i==117 ); /* TK_INITIALLY */
      testcase( i==118 ); /* TK_ALL */
      return aCode[i];
    }
  }
  return TK_ID;
}
SQLITE_PRIVATE int sqlite3KeywordCode(const unsigned char *z, int n){
  return keywordCode((char*)z, n);







|

|
|
|
|
<
|
|
<
>
|
<
|
|
>
|
|
<
|
|
|
|
|
<
|
<
|
|
|
|
|
|
<
<
<
|
|
>
|


|
|
<
|
|
>


|
>
|
|
|
<
|
|
|
|
|

|
|
|
|
|
|
|
|
|
<
<

|
|
|
<
|
|
|
|
|
|
<

|
|
|
|
>
|
<
|
>
|
<
<
<

|
>
|
|
<
|
|
|
|
<

|
<
|
|
>
|
|
|
<
|
|
|
|
<
|
|








|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







85964
85965
85966
85967
85968
85969
85970
85971
85972
85973
85974
85975
85976

85977
85978

85979
85980

85981
85982
85983
85984
85985

85986
85987
85988
85989
85990

85991

85992
85993
85994
85995
85996
85997



85998
85999
86000
86001
86002
86003
86004
86005

86006
86007
86008
86009
86010
86011
86012
86013
86014
86015

86016
86017
86018
86019
86020
86021
86022
86023
86024
86025
86026
86027
86028
86029
86030


86031
86032
86033
86034

86035
86036
86037
86038
86039
86040

86041
86042
86043
86044
86045
86046
86047

86048
86049
86050



86051
86052
86053
86054
86055

86056
86057
86058
86059

86060
86061

86062
86063
86064
86065
86066
86067

86068
86069
86070
86071

86072
86073
86074
86075
86076
86077
86078
86079
86080
86081
86082
86083
86084
86085
86086
86087
86088
86089
86090
86091
86092
86093
86094
86095
86096
86097
86098
86099
86100
86101
86102
86103
86104
86105
86106
86107
86108
86109
86110
86111
86112
86113
86114
86115
86116
86117
86118
86119
86120
86121
86122
86123
86124
86125
86126
86127
86128
86129
86130
86131
86132
86133
86134
86135
86136
86137
86138
86139
86140
86141
86142
86143
86144
86145
86146
86147
86148
86149
86150
86151
86152
86153
86154
86155
86156
86157
86158
86159
86160
86161
86162
86163
86164
86165
86166
86167
86168
86169
86170
86171
86172
86173
86174
86175
86176
86177
86178
86179
86180
86181
86182
86183
86184
















86185
86186
86187
86188
86189
86190
86191
** The code in this file implements a function that determines whether
** or not a given identifier is really an SQL keyword.  The same thing
** might be implemented more directly using a hand-written hash table.
** But by using this automatically generated code, the size of the code
** is substantially reduced.  This is important for embedded applications
** on platforms with limited memory.
*/
/* Hash score: 134 */
static int keywordCode(const char *z, int n){
  /* zText[] encodes 682 bytes of keywords in 452 bytes */
  /*   BEFOREIGNOREGEXPLAINDEXEDESCAPEACHECKEYCONSTRAINTERSECTABLEFT      */
  /*   HENDEFERRABLELSELECTRANSACTIONATURALIKEXCEPTRIGGERAISEXCLUSIVE     */
  /*   XISTSAVEPOINTOFFSETEMPORARYUNIQUERYBEGINNEREFERENCESBETWEEN        */

  /*   OTNULLIMITCASCADELETECASECOLLATECREATECURRENT_DATEGROUPDATE        */
  /*   IMMEDIATEJOINSERTMATCHAVINGLOBYPLANDEFAULTRELEASEVALUESWHEN        */

  /*   WHERESTRICTABORTAFTERIGHTCASTCOMMITCROSSCURRENT_TIMESTAMP          */
  /*   RIMARYDEFERREDISTINCTDROPFAILFROMFULLIFINSTEADISNULLORDER          */

  /*   OLLBACKOUTEROWUNIONUSINGVIEWINITIALLY                              */
  static const char zText[451] = {
    'B','E','F','O','R','E','I','G','N','O','R','E','G','E','X','P','L','A',
    'I','N','D','E','X','E','D','E','S','C','A','P','E','A','C','H','E','C',
    'K','E','Y','C','O','N','S','T','R','A','I','N','T','E','R','S','E','C',

    'T','A','B','L','E','F','T','H','E','N','D','E','F','E','R','R','A','B',
    'L','E','L','S','E','L','E','C','T','R','A','N','S','A','C','T','I','O',
    'N','A','T','U','R','A','L','I','K','E','X','C','E','P','T','R','I','G',
    'G','E','R','A','I','S','E','X','C','L','U','S','I','V','E','X','I','S',
    'T','S','A','V','E','P','O','I','N','T','O','F','F','S','E','T','E','M',

    'P','O','R','A','R','Y','U','N','I','Q','U','E','R','Y','B','E','G','I',

    'N','N','E','R','E','F','E','R','E','N','C','E','S','B','E','T','W','E',
    'E','N','O','T','N','U','L','L','I','M','I','T','C','A','S','C','A','D',
    'E','L','E','T','E','C','A','S','E','C','O','L','L','A','T','E','C','R',
    'E','A','T','E','C','U','R','R','E','N','T','_','D','A','T','E','G','R',
    'O','U','P','D','A','T','E','I','M','M','E','D','I','A','T','E','J','O',
    'I','N','S','E','R','T','M','A','T','C','H','A','V','I','N','G','L','O',



    'B','Y','P','L','A','N','D','E','F','A','U','L','T','R','E','L','E','A',
    'S','E','V','A','L','U','E','S','W','H','E','N','W','H','E','R','E','S',
    'T','R','I','C','T','A','B','O','R','T','A','F','T','E','R','I','G','H',
    'T','C','A','S','T','C','O','M','M','I','T','C','R','O','S','S','C','U',
    'R','R','E','N','T','_','T','I','M','E','S','T','A','M','P','R','I','M',
    'A','R','Y','D','E','F','E','R','R','E','D','I','S','T','I','N','C','T',
    'D','R','O','P','F','A','I','L','F','R','O','M','F','U','L','L','I','F',
    'I','N','S','T','E','A','D','I','S','N','U','L','L','O','R','D','E','R',

    'O','L','L','B','A','C','K','O','U','T','E','R','O','W','U','N','I','O',
    'N','U','S','I','N','G','V','I','E','W','I','N','I','T','I','A','L','L',
    'Y',
  };
  static const unsigned char aHash[127] = {
      62,  87,  96,  60,   0,  38,   0,   0,  72,   0,  63,   0,   0,
      36,   4,  67,  93,   0,  78,  73,  64,  92,   0,  23,   0,   0,
      33,   0,  99,  75,   0,  19,   0,   0,   1,   0,   0,  55,  56,
       0,  54,  11,   0,  42,  68,  84,   0,  98,  83,   0,   0,  39,
       0,  85,  21,   0,   0,   0, 101,   0,  20,   0,  10,  65,  22,

       0,   0,   0, 103,  88,  46, 102,  43,  12,  58,   0,  69,   0,
      82,  28,   0,  81,   0,   0,   0,  79,   2,  80,  77,  91,   6,
      14,  90,   0,  76,   0,  71,  70,  66,  30,   0, 100,   0,  94,
      48,  40,  50,   0,   0,  16,  34,   0,  97,   0,  15,   0,   0,
      25,   0,  74,  44,  49,   0,  17,  47,   0,  59,
  };
  static const unsigned char aNext[103] = {
       0,   0,   0,   0,   0,   0,   0,   0,   0,   9,   0,   0,   0,
       0,   0,   0,   0,   0,   5,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,  31,
      18,   0,   0,   0,   0,  27,   0,  26,   0,   0,   0,   0,   0,
       0,   0,  51,   0,   0,   8,  41,   0,  35,   0,   0,  37,   0,
       0,   0,   0,  32,   0,   0,   0,   0,   0,   0,   0,   0,  24,
       0,   0,   0,   3,  57,   0,   0,  13,   0,  86,   0,   0,  89,
       0,   7,  61,   0,  29,  95,  52,  45,   0,  53,   0,   0,


  };
  static const unsigned char aLen[103] = {
       6,   7,   3,   6,   6,   7,   7,   5,   4,   6,   4,   5,   3,
      10,   9,   2,   5,   4,   4,   3,  10,   4,   6,  11,   2,   7,

       4,   6,   7,   5,   9,   6,   9,   4,   6,   2,   3,   4,   9,
       2,   6,   5,   5,   5,  10,   7,   7,   3,   4,   5,   7,   3,
       6,   4,   7,   6,  12,   5,   6,   9,   4,   6,   5,   6,   4,
       2,   4,   3,   7,   7,   2,   6,   4,   5,   8,   5,   5,   5,
       4,   6,   5,  17,  12,   7,   8,   8,   2,   4,   4,   4,   4,
       2,   7,   6,   5,   8,   5,   3,   5,   5,   4,   9,   3,

  };
  static const unsigned short int aOffset[103] = {
       0,   2,   2,   6,  10,  13,  18,  18,  24,  25,  30,  32,  36,
      39,  46,  46,  54,  57,  60,  62,  64,  73,  75,  80,  89,  90,
      96,  99, 104, 110, 114, 122, 127, 133, 136, 136, 139, 141, 141,
     145, 150, 153, 158, 161, 165, 175, 181, 181, 184, 187, 192, 193,
     197, 203, 207, 214, 220, 232, 235, 241, 250, 252, 258, 262, 267,

     270, 272, 274, 276, 283, 287, 290, 296, 300, 303, 311, 316, 320,
     325, 329, 335, 340, 340, 356, 363, 370, 371, 378, 382, 386, 390,
     394, 396, 403, 409, 413, 421, 425, 428, 433, 438, 442, 447,



  };
  static const unsigned char aCode[103] = {
    TK_BEFORE,     TK_FOREIGN,    TK_FOR,        TK_IGNORE,     TK_LIKE_KW,    
    TK_EXPLAIN,    TK_INDEXED,    TK_INDEX,      TK_DESC,       TK_ESCAPE,     
    TK_EACH,       TK_CHECK,      TK_KEY,        TK_CONSTRAINT, TK_INTERSECT,  

    TK_IN,         TK_TABLE,      TK_JOIN_KW,    TK_THEN,       TK_END,        
    TK_DEFERRABLE, TK_ELSE,       TK_SELECT,     TK_TRANSACTION,TK_ON,         
    TK_JOIN_KW,    TK_LIKE_KW,    TK_EXCEPT,     TK_TRIGGER,    TK_RAISE,      
    TK_EXCLUSIVE,  TK_EXISTS,     TK_SAVEPOINT,  TK_INTO,       TK_OFFSET,     

    TK_OF,         TK_SET,        TK_TEMP,       TK_TEMP,       TK_OR,         
    TK_UNIQUE,     TK_QUERY,      TK_BEGIN,      TK_JOIN_KW,    TK_REFERENCES, 

    TK_BETWEEN,    TK_NOTNULL,    TK_NOT,        TK_NULL,       TK_LIMIT,      
    TK_CASCADE,    TK_ASC,        TK_DELETE,     TK_CASE,       TK_COLLATE,    
    TK_CREATE,     TK_CTIME_KW,   TK_GROUP,      TK_UPDATE,     TK_IMMEDIATE,  
    TK_JOIN,       TK_INSERT,     TK_MATCH,      TK_HAVING,     TK_LIKE_KW,    
    TK_BY,         TK_PLAN,       TK_AND,        TK_DEFAULT,    TK_RELEASE,    
    TK_AS,         TK_VALUES,     TK_WHEN,       TK_WHERE,      TK_RESTRICT,   

    TK_ABORT,      TK_AFTER,      TK_JOIN_KW,    TK_CAST,       TK_COMMIT,     
    TK_JOIN_KW,    TK_CTIME_KW,   TK_CTIME_KW,   TK_PRIMARY,    TK_DEFERRED,   
    TK_DISTINCT,   TK_IS,         TK_DROP,       TK_FAIL,       TK_FROM,       
    TK_JOIN_KW,    TK_IF,         TK_INSTEAD,    TK_ISNULL,     TK_ORDER,      

    TK_ROLLBACK,   TK_JOIN_KW,    TK_ROW,        TK_UNION,      TK_USING,      
    TK_VIEW,       TK_INITIALLY,  TK_ALL,        
  };
  int h, i;
  if( n<2 ) return TK_ID;
  h = ((charMap(z[0])*4) ^
      (charMap(z[n-1])*3) ^
      n) % 127;
  for(i=((int)aHash[h])-1; i>=0; i=((int)aNext[i])-1){
    if( aLen[i]==n && sqlite3StrNICmp(&zText[aOffset[i]],z,n)==0 ){
      testcase( i==0 ); /* TK_BEFORE */
      testcase( i==1 ); /* TK_FOREIGN */
      testcase( i==2 ); /* TK_FOR */
      testcase( i==3 ); /* TK_IGNORE */
      testcase( i==4 ); /* TK_LIKE_KW */
      testcase( i==5 ); /* TK_EXPLAIN */
      testcase( i==6 ); /* TK_INDEXED */
      testcase( i==7 ); /* TK_INDEX */
      testcase( i==8 ); /* TK_DESC */
      testcase( i==9 ); /* TK_ESCAPE */
      testcase( i==10 ); /* TK_EACH */
      testcase( i==11 ); /* TK_CHECK */
      testcase( i==12 ); /* TK_KEY */
      testcase( i==13 ); /* TK_CONSTRAINT */
      testcase( i==14 ); /* TK_INTERSECT */
      testcase( i==15 ); /* TK_IN */
      testcase( i==16 ); /* TK_TABLE */
      testcase( i==17 ); /* TK_JOIN_KW */
      testcase( i==18 ); /* TK_THEN */
      testcase( i==19 ); /* TK_END */
      testcase( i==20 ); /* TK_DEFERRABLE */
      testcase( i==21 ); /* TK_ELSE */
      testcase( i==22 ); /* TK_SELECT */
      testcase( i==23 ); /* TK_TRANSACTION */
      testcase( i==24 ); /* TK_ON */
      testcase( i==25 ); /* TK_JOIN_KW */
      testcase( i==26 ); /* TK_LIKE_KW */
      testcase( i==27 ); /* TK_EXCEPT */
      testcase( i==28 ); /* TK_TRIGGER */
      testcase( i==29 ); /* TK_RAISE */
      testcase( i==30 ); /* TK_EXCLUSIVE */
      testcase( i==31 ); /* TK_EXISTS */
      testcase( i==32 ); /* TK_SAVEPOINT */
      testcase( i==33 ); /* TK_INTO */
      testcase( i==34 ); /* TK_OFFSET */
      testcase( i==35 ); /* TK_OF */
      testcase( i==36 ); /* TK_SET */
      testcase( i==37 ); /* TK_TEMP */
      testcase( i==38 ); /* TK_TEMP */
      testcase( i==39 ); /* TK_OR */
      testcase( i==40 ); /* TK_UNIQUE */
      testcase( i==41 ); /* TK_QUERY */
      testcase( i==42 ); /* TK_BEGIN */
      testcase( i==43 ); /* TK_JOIN_KW */
      testcase( i==44 ); /* TK_REFERENCES */
      testcase( i==45 ); /* TK_BETWEEN */
      testcase( i==46 ); /* TK_NOTNULL */
      testcase( i==47 ); /* TK_NOT */
      testcase( i==48 ); /* TK_NULL */
      testcase( i==49 ); /* TK_LIMIT */
      testcase( i==50 ); /* TK_CASCADE */
      testcase( i==51 ); /* TK_ASC */
      testcase( i==52 ); /* TK_DELETE */
      testcase( i==53 ); /* TK_CASE */
      testcase( i==54 ); /* TK_COLLATE */
      testcase( i==55 ); /* TK_CREATE */
      testcase( i==56 ); /* TK_CTIME_KW */
      testcase( i==57 ); /* TK_GROUP */
      testcase( i==58 ); /* TK_UPDATE */
      testcase( i==59 ); /* TK_IMMEDIATE */
      testcase( i==60 ); /* TK_JOIN */
      testcase( i==61 ); /* TK_INSERT */
      testcase( i==62 ); /* TK_MATCH */
      testcase( i==63 ); /* TK_HAVING */
      testcase( i==64 ); /* TK_LIKE_KW */
      testcase( i==65 ); /* TK_BY */
      testcase( i==66 ); /* TK_PLAN */
      testcase( i==67 ); /* TK_AND */
      testcase( i==68 ); /* TK_DEFAULT */
      testcase( i==69 ); /* TK_RELEASE */
      testcase( i==70 ); /* TK_AS */
      testcase( i==71 ); /* TK_VALUES */
      testcase( i==72 ); /* TK_WHEN */
      testcase( i==73 ); /* TK_WHERE */
      testcase( i==74 ); /* TK_RESTRICT */
      testcase( i==75 ); /* TK_ABORT */
      testcase( i==76 ); /* TK_AFTER */
      testcase( i==77 ); /* TK_JOIN_KW */
      testcase( i==78 ); /* TK_CAST */
      testcase( i==79 ); /* TK_COMMIT */
      testcase( i==80 ); /* TK_JOIN_KW */
      testcase( i==81 ); /* TK_CTIME_KW */
      testcase( i==82 ); /* TK_CTIME_KW */
      testcase( i==83 ); /* TK_PRIMARY */
      testcase( i==84 ); /* TK_DEFERRED */
      testcase( i==85 ); /* TK_DISTINCT */
      testcase( i==86 ); /* TK_IS */
      testcase( i==87 ); /* TK_DROP */
      testcase( i==88 ); /* TK_FAIL */
      testcase( i==89 ); /* TK_FROM */
      testcase( i==90 ); /* TK_JOIN_KW */
      testcase( i==91 ); /* TK_IF */
      testcase( i==92 ); /* TK_INSTEAD */
      testcase( i==93 ); /* TK_ISNULL */
      testcase( i==94 ); /* TK_ORDER */
      testcase( i==95 ); /* TK_ROLLBACK */
      testcase( i==96 ); /* TK_JOIN_KW */
      testcase( i==97 ); /* TK_ROW */
      testcase( i==98 ); /* TK_UNION */
      testcase( i==99 ); /* TK_USING */
      testcase( i==100 ); /* TK_VIEW */
      testcase( i==101 ); /* TK_INITIALLY */
      testcase( i==102 ); /* TK_ALL */
















      return aCode[i];
    }
  }
  return TK_ID;
}
SQLITE_PRIVATE int sqlite3KeywordCode(const unsigned char *z, int n){
  return keywordCode((char*)z, n);
Added src/sqllogictest.mk.






































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#!/usr/make
#
# Makefile for SQLITE
#
# This particular makefile is designed to build the amalgamation
# for use with sqllogictest.
#
# To regenerate the sqlite3.c and sqlite3.h files used by sqllogictest,
# edit this file as appropriate for the build system and type:
#
#      make -f sqllogictest.mk sqlite3.c
#
# This makefile is only intended to build the amalgamation.  A separate
# makefile is used to build the sqllogictest binary.
#

#### The toplevel directory of the SQLite source tree.  This is the directory
#    that contains this "Makefile.in" and the "configure.in" script.
#
TOP = ../../sqlite

#### C Compiler and options for use in building executables that
#    will run on the platform that is doing the build.  This is the
#    C compiler used to build lemon and mkkeywordhash.
#
BCC = gcc -g
#BCC = /opt/ancic/bin/c89 -0

#### The OMIT options must be included in the build of the amalgamation.
#    The amalgamation contains generated code, and that code depends on
#    which features have been omitted.  So the omit options here must
#    match the omit options in the main sqllogictest makefile.
#
OPTS += -DSQLITE_THREADSAFE=0

OPTS += -DSQLITE_OMIT_ALTERTABLE
OPTS += -DSQLITE_OMIT_ANALYZE
OPTS += -DSQLITE_OMIT_ATTACH
OPTS += -DSQLITE_OMIT_AUTHORIZATION
OPTS += -DSQLITE_OMIT_AUTOINCREMENT
OPTS += -DSQLITE_OMIT_AUTOVACUUM
OPTS += -DSQLITE_OMIT_BUILTIN_TEST
OPTS += -DSQLITE_OMIT_COMPLETE
OPTS += -DSQLITE_OMIT_CONFLICT_CLAUSE
OPTS += -DSQLITE_OMIT_DATETIME_FUNCS
OPTS += -DSQLITE_OMIT_GET_TABLE
OPTS += -DSQLITE_OMIT_INCRBLOB
OPTS += -DSQLITE_OMIT_LOAD_EXTENSION
OPTS += -DSQLITE_OMIT_MEMORYDB
OPTS += -DSQLITE_OMIT_PRAGMA
OPTS += -DSQLITE_OMIT_REINDEX
OPTS += -DSQLITE_OMIT_SHARED_CACHE
OPTS += -DSQLITE_OMIT_TCL_VARIABLE
OPTS += -DSQLITE_OMIT_TRACE
OPTS += -DSQLITE_OMIT_TRACE
OPTS += -DSQLITE_OMIT_UTF16
OPTS += -DSQLITE_OMIT_VACUUM
OPTS += -DSQLITE_OMIT_VIRTUALTABLE

#### AWK  (Needed by Solaris systems)
#
NAWK = awk

################################# STOP HERE ################################
#
# The remainder of this file is legacy.  Nothing below this point is needed
# in order to build the amalgamation.  You can safely ignore everything
# below this line.
#

#### The suffix to add to executable files.  ".exe" for windows.
#    Nothing for unix.
#
#EXE = .exe
EXE =

#### C Compile and options for use in building executables that 
#    will run on the target platform.  This is usually the same
#    as BCC, unless you are cross-compiling.
#
#TCC = gcc -O6
TCC = gcc -g -rdynamic -O0 -Wall -fstrict-aliasing
#TCC = gcc -g -O0 -Wall -fprofile-arcs -ftest-coverage

#### Tools used to build a static library.
#
AR = ar cr
RANLIB = ranlib

#### Extra compiler options needed for programs that use the TCL library.
#
TCL_FLAGS =

#### Linker options needed to link against the TCL library.
#
LIBTCL = -ltcl8.5 -lm -ldl

#### Compiler options needed for programs that use the readline() library.
#
READLINE_FLAGS =
#READLINE_FLAGS = -DHAVE_READLINE=1 -I/usr/include/readline

#### Linker options needed by programs using readline() must link against.
#
#LIBREADLINE = -ldl -lpthread
#LIBREADLINE = -static -lreadline -ltermcap

#### Math library
#
MATHLIB = -lm
# MATHLIB =

# You should not have to change anything below this line
###############################################################################
include $(TOP)/main.mk