⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parse.c

📁 PHP v6.0 For Linux 运行环境:Win9X/ WinME/ WinNT/ Win2K/ WinXP
💻 C
📖 第 1 页 / 共 5 页
字号:
/* Driver template for the LEMON parser generator.** The author disclaims copyright to this source code.*//* First off, code is include which follows the "include" declaration** in the input file. */#include <stdio.h>#line 33 "ext/sqlite/libsqlite/src/parse.y"#include "sqliteInt.h"#include "parse.h"/*** An instance of this structure holds information about the** LIMIT clause of a SELECT statement.*/struct LimitVal {  int limit;    /* The LIMIT value.  -1 if there is no limit */  int offset;   /* The OFFSET.  0 if there is none */};/*** An instance of the following structure describes the event of a** TRIGGER.  "a" is the event type, one of TK_UPDATE, TK_INSERT,** TK_DELETE, or TK_INSTEAD.  If the event is of the form****      UPDATE ON (a,b,c)**** Then the "b" IdList records the list "a,b,c".*/struct TrigEvent { int a; IdList * b; };#line 34 "ext/sqlite/libsqlite/src/parse.c"/* Next is all token values, in a form suitable for use by makeheaders.** This section will be null unless lemon is run with the -m switch.*//* ** These constants (all generated automatically by the parser generator)** specify the various kinds of tokens (terminals) that the parser** understands. **** Each symbol here is a terminal symbol in the grammar.*//* Make sure the INTERFACE macro is defined.*/#ifndef INTERFACE# define INTERFACE 1#endif/* The next thing included is series of defines which control** various aspects of the generated parser.**    YYCODETYPE         is the data type used for storing terminal**                       and nonterminal numbers.  "unsigned char" is**                       used if there are fewer than 250 terminals**                       and nonterminals.  "int" is used otherwise.**    YYNOCODE           is a number of type YYCODETYPE which corresponds**                       to no legal terminal or nonterminal number.  This**                       number is used to fill in empty slots of the hash **                       table.**    YYFALLBACK         If defined, this indicates that one or more tokens**                       have fall-back values which should be used if the**                       original value of the token will not parse.**    YYACTIONTYPE       is the data type used for storing terminal**                       and nonterminal numbers.  "unsigned char" is**                       used if there are fewer than 250 rules and**                       states combined.  "int" is used otherwise.**    sqliteParserTOKENTYPE     is the data type used for minor tokens given **                       directly to the parser from the tokenizer.**    YYMINORTYPE        is the data type used for all minor tokens.**                       This is typically a union of many types, one of**                       which is sqliteParserTOKENTYPE.  The entry in the union**                       for base tokens is called "yy0".**    YYSTACKDEPTH       is the maximum depth of the parser's stack.**    sqliteParserARG_SDECL     A static variable declaration for the %extra_argument**    sqliteParserARG_PDECL     A parameter declaration for the %extra_argument**    sqliteParserARG_STORE     Code to store %extra_argument into yypParser**    sqliteParserARG_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 221#define YYACTIONTYPE unsigned short int#define sqliteParserTOKENTYPE Tokentypedef union {  sqliteParserTOKENTYPE yy0;  TriggerStep * yy19;  struct LimitVal yy124;  Select* yy179;  Expr * yy182;  Expr* yy242;  struct TrigEvent yy290;  Token yy298;  SrcList* yy307;  IdList* yy320;  ExprList* yy322;  int yy372;  struct {int value; int mask;} yy407;  int yy441;} YYMINORTYPE;#define YYSTACKDEPTH 100#define sqliteParserARG_SDECL Parse *pParse;#define sqliteParserARG_PDECL ,Parse *pParse#define sqliteParserARG_FETCH Parse *pParse = yypParser->pParse#define sqliteParserARG_STORE yypParser->pParse = pParse#define YYNSTATE 563#define YYNRULE 293#define YYERRORSYMBOL 131#define YYERRSYMDT yy441#define YYFALLBACK 1#define YY_NO_ACTION      (YYNSTATE+YYNRULE+2)#define YY_ACCEPT_ACTION  (YYNSTATE+YYNRULE+1)#define YY_ERROR_ACTION   (YYNSTATE+YYNRULE)/* Next are that tables used to determine what action to take based on the** current state and lookahead token.  These tables are used to implement** functions that take a state number and lookahead value and return an** action integer.  **** Suppose the action integer is N.  Then the action is determined as** follows****   0 <= N < YYNSTATE                  Shift N.  That is, push the lookahead**                                      token onto the stack and goto state N.****   YYNSTATE <= N < YYNSTATE+YYNRULE   Reduce by rule N-YYNSTATE.****   N == YYNSTATE+YYNRULE              A syntax error has occurred.****   N == YYNSTATE+YYNRULE+1            The parser accepts its input.****   N == YYNSTATE+YYNRULE+2            No such action.  Denotes unused**                                      slots in the yy_action[] table.**** The action table is constructed as a single large table named yy_action[].** Given state S and lookahead X, the action is computed as****      yy_action[ yy_shift_ofst[S] + X ]**** If the index value yy_shift_ofst[S]+X is out of range or if the value** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S]** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table** and that yy_default[S] should be used instead.  **** The formula above is for computing the action when the lookahead is** a terminal symbol.  If the lookahead is a non-terminal (as occurs after** a reduce action) then the yy_reduce_ofst[] array is used in place of** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of** YY_SHIFT_USE_DFLT.**** The following are the tables generated in this section:****  yy_action[]        A single table containing all actions.**  yy_lookahead[]     A table containing the lookahead for each entry in**                     yy_action.  Used to detect hash collisions.**  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 */   264,    5,  262,  119,  123,  117,  121,  129,  131,  133, /*    10 */   135,  144,  146,  148,  150,  152,  154,  568,  106,  106, /*    20 */   143,  857,    1,  562,    3,  142,  129,  131,  133,  135, /*    30 */   144,  146,  148,  150,  152,  154,  174,  103,    8,  115, /*    40 */   104,  139,  127,  125,  156,  161,  157,  162,  166,  119, /*    50 */   123,  117,  121,  129,  131,  133,  135,  144,  146,  148, /*    60 */   150,  152,  154,   31,  361,  392,  263,  143,  363,  369, /*    70 */   374,   97,  142,  148,  150,  152,  154,   68,   75,  377, /*    80 */   167,   64,  218,   46,   20,  289,  115,  104,  139,  127, /*    90 */   125,  156,  161,  157,  162,  166,  119,  123,  117,  121, /*   100 */   129,  131,  133,  135,  144,  146,  148,  150,  152,  154, /*   110 */   193,   41,  336,  563,   44,   54,   60,   62,  308,  331, /*   120 */   175,   20,  560,  561,  572,  333,  640,   18,  359,  144, /*   130 */   146,  148,  150,  152,  154,  143,  181,  179,  303,   18, /*   140 */   142,   84,   86,   20,  177,   66,   67,  111,   21,   22, /*   150 */   112,  105,   83,  792,  115,  104,  139,  127,  125,  156, /*   160 */   161,  157,  162,  166,  119,  123,  117,  121,  129,  131, /*   170 */   133,  135,  144,  146,  148,  150,  152,  154,  790,  560, /*   180 */   561,   46,   13,  113,  183,   21,   22,  534,  361,    2, /*   190 */     3,   14,  363,  369,  374,  338,  361,  690,  544,  542, /*   200 */   363,  369,  374,  377,  836,  143,   15,   21,   22,   16, /*   210 */   142,  377,   44,   54,   60,   62,  308,  331,  396,  535, /*   220 */    17,    9,  191,  333,  115,  104,  139,  127,  125,  156, /*   230 */   161,  157,  162,  166,  119,  123,  117,  121,  129,  131, /*   240 */   133,  135,  144,  146,  148,  150,  152,  154,  571,  230, /*   250 */   340,  343,  143,   20,  536,  537,  538,  142,  402,  337, /*   260 */   398,  339,  357,   68,  346,  347,   32,   64,  266,  391, /*   270 */    37,  115,  104,  139,  127,  125,  156,  161,  157,  162, /*   280 */   166,  119,  123,  117,  121,  129,  131,  133,  135,  144, /*   290 */   146,  148,  150,  152,  154,  839,  193,  651,  291,  298, /*   300 */   300,  221,  357,   43,  173,  689,  175,  251,  330,   36, /*   310 */    37,  106,  232,   40,  335,   58,  137,   21,   22,  330, /*   320 */   411,  143,  181,  179,   47,   59,  142,  358,  390,  174, /*   330 */   177,   66,   67,  111,  448,   49,  112,  105,  583,  213, /*   340 */   115,  104,  139,  127,  125,  156,  161,  157,  162,  166, /*   350 */   119,  123,  117,  121,  129,  131,  133,  135,  144,  146, /*   360 */   148,  150,  152,  154,  306,  301,  106,  249,  259,  113, /*   370 */   183,  793,   70,  253,  281,  219,   20,  106,   20,   11, /*   380 */   106,  482,  454,  444,  299,  143,  169,   10,  171,  172, /*   390 */   142,  169,   73,  171,  172,  103,  688,   69,  174,  169, /*   400 */   252,  171,  172,   12,  115,  104,  139,  127,  125,  156, /*   410 */   161,  157,  162,  166,  119,  123,  117,  121,  129,  131, /*   420 */   133,  135,  144,  146,  148,  150,  152,  154,   95,  237, /*   430 */   313,   20,  143,  295,  244,  424,  169,  142,  171,  172, /*   440 */    21,   22,   21,   22,  219,  386,  316,  323,  325,  837, /*   450 */    19,  115,  104,  139,  127,  125,  156,  161,  157,  162, /*   460 */   166,  119,  123,  117,  121,  129,  131,  133,  135,  144, /*   470 */   146,  148,  150,  152,  154,  106,  661,   20,  264,  143, /*   480 */   262,  844,  315,  169,  142,  171,  172,  333,   38,  842, /*   490 */    10,  356,  348,  184,  421,   21,   22,  282,  115,  104, /*   500 */   139,  127,  125,  156,  161,  157,  162,  166,  119,  123, /*   510 */   117,  121,  129,  131,  133,  135,  144,  146,  148,  150, /*   520 */   152,  154,   69,  254,  262,  251,  143,  639,  663,   35, /*   530 */    65,  142,  726,  313,  283,  259,  185,  417,  419,  418, /*   540 */   284,   21,   22,  690,  263,  115,  104,  139,  127,  125, /*   550 */   156,  161,  157,  162,  166,  119,  123,  117,  121,  129, /*   560 */   131,  133,  135,  144,  146,  148,  150,  152,  154,  256, /*   570 */    20,  791,  424,  143,  169,   52,  171,  172,  142,  169, /*   580 */    24,  171,  172,  247,   53,  315,   26,  169,  263,  171, /*   590 */   172,  253,  115,  164,  139,  127,  125,  156,  161,  157, /*   600 */   162,  166,  119,  123,  117,  121,  129,  131,  133,  135, /*   610 */   144,  146,  148,  150,  152,  154,  426,  349,  252,  425, /*   620 */   143,  262,  575,  297,  591,  142,  169,  296,  171,  172, /*   630 */   169,  471,  171,  172,   21,   22,  427,  221,   91,  115, /*   640 */   227,  139,  127,  125,  156,  161,  157,  162,  166,  119, /*   650 */   123,  117,  121,  129,  131,  133,  135,  144,  146,  148, /*   660 */   150,  152,  154,  388,  312,  106,   89,  143,  720,  376, /*   670 */   387,  170,  142,  487,  666,  248,  320,  216,  319,  217, /*   680 */    28,  459,   30,  305,  189,  263,  209,  104,  139,  127, /*   690 */   125,  156,  161,  157,  162,  166,  119,  123,  117,  121, /*   700 */   129,  131,  133,  135,  144,  146,  148,  150,  152,  154, /*   710 */   106,  106,  809,  494,  143,  489,  106,  816,   33,  142, /*   720 */   395,  234,  273,  217,  274,  420,   20,  545,  114,  481, /*   730 */   137,  429,  576,  321,  116,  139,  127,  125,  156,  161, /*   740 */   157,  162,  166,  119,  123,  117,  121,  129,  131,  133, /*   750 */   135,  144,  146,  148,  150,  152,  154,    7,  322,   23, /*   760 */    25,   27,  394,   68,  415,  416,   10,   64,  197,  477, /*   770 */   577,  533,  266,  548,  578,  831,  276,  201,  520,    4, /*   780 */     6,  245,  430,  557,   29,  266,  491,  106,  441,  497, /*   790 */    21,   22,  205,  168,  443,  195,  193,  531,  276,  448, /*   800 */   276,  808,  267,  272,  529,  174,  175,  318,  440,  341, /*   810 */   344,  106,  342,  345,   69,  286,   68,  582,   69,   69, /*   820 */    64,  540,  181,  179,  541,  328,  302,  366,  217,  118, /*   830 */   177,   66,   67,  111,   34,  143,  112,  105,  445,  510, /*   840 */   142,  215,  278,  800,  467,  276,  498,  503,  444,  193, /*   850 */   106,  219,  486,  443,   42,   73,  231,   73,   45,  175, /*   860 */   449,   39,  225,  229,  278,  451,  278,   68,  174,  113, /*   870 */   183,   64,  371,   55,  106,  181,  179,  292,   69,  276, /*   880 */   276,   69,   48,  177,   66,   67,  111,  224,  276,  112, /*   890 */   105,  106,  481,  393,  106,  106,   63,  106,  106,  106, /*   900 */   193,  653,  106,  467,  233,   51,  380,  437,  526,  120, /*   910 */   175,  278,  122,  124,  219,  126,  128,  130,   69,  453, /*   920 */   132,  106,  113,  183,  451,  106,  181,  179,  159,  106, /*   930 */   106,  106,  518,  106,  177,   66,   67,  111,  106,  134, /*   940 */   112,  105,  422,  136,  106,  278,  278,  138,  141,  145, /*   950 */   720,  147,  106,  329,  275,  274,  149,  106,  852,  158, /*   960 */   106,  106,  151,  106,  106,  351,  106,  352,  106,  464, /*   970 */   153,  106,  106,  113,  183,  155,  106,  106,  163,  165, /*   980 */   106,  176,  178,  106,  180,  106,  182,  106,  401,  190, /*   990 */   192,  106,  106,  293,  210,  212,  106,  367,  214,  274,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -