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

📄 parse.c

📁 这是一个开源的数据库系统,值得学习啊, 里面用了SQL语句,与微软的SQL SERVIER,差不了多少
💻 C
📖 第 1 页 / 共 5 页
字号:
 /*   100 */   780,  781,  676,  611,  897,  897,  897,  897,  897,  897, /*   110 */   897,  782,  897,  783,  796,  797,  897,  897,  897,  897, /*   120 */   897,  897,  592,  707,  897,  707,  897,  897,  897,  897, /*   130 */   897,  897,  897,  897,  897,  897,  897,  897,  897,  897, /*   140 */   897,  897,  897,  897,  701,  711,  890,  897,  897,  667, /*   150 */   897,  897,  897,  897,  897,  897,  897,  897,  897,  897, /*   160 */   599,  597,  897,  699,  897,  897,  625,  897,  897,  709, /*   170 */   897,  897,  714,  715,  897,  897,  897,  897,  897,  897, /*   180 */   897,  613,  897,  897,  688,  897,  849,  897,  897,  897, /*   190 */   863,  897,  897,  897,  861,  897,  897,  897,  690,  750, /*   200 */   830,  897,  876,  878,  897,  897,  699,  708,  897,  897, /*   210 */   812,  734,  734,  734,  646,  734,  734,  649,  744,  744, /*   220 */   596,  596,  596,  596,  666,  897,  744,  735,  737,  727, /*   230 */   739,  897,  897,  716,  716,  724,  726,  724,  726,  678, /*   240 */   678,  663,  678,  649,  678,  822,  827,  897,  827,  897, /*   250 */   663,  678,  678,  678,  822,  608,  716,  608,  716,  608, /*   260 */   716,  716,  853,  855,  608,  716,  680,  680,  756,  744, /*   270 */   716,  687,  687,  687,  687,  744,  680,  756,  716,  875, /*   280 */   875,  716,  716,  883,  633,  651,  651,  858,  890,  895, /*   290 */   897,  897,  897,  897,  763,  897,  897,  897,  897,  897, /*   300 */   897,  897,  897,  897,  897,  897,  897,  897,  836,  897, /*   310 */   897,  897,  897,  768,  764,  897,  765,  897,  693,  897, /*   320 */   897,  897,  897,  897,  897,  897,  897,  897,  897,  815, /*   330 */   897,  728,  897,  736,  897,  897,  897,  897,  897,  897, /*   340 */   897,  897,  897,  897,  897,  897,  897,  897,  897,  897, /*   350 */   897,  897,  897,  897,  897,  897,  897,  897,  851,  852, /*   360 */   897,  897,  897,  897,  897,  897,  897,  897,  897,  897, /*   370 */   897,  897,  897,  897,  897,  897,  897,  897,  897,  897, /*   380 */   897,  897,  882,  897,  897,  885,  593,  897,  587,  590, /*   390 */   589,  591,  595,  598,  620,  621,  622,  600,  601,  602, /*   400 */   603,  604,  605,  606,  612,  614,  632,  634,  618,  636, /*   410 */   697,  698,  760,  691,  692,  696,  771,  762,  766,  767, /*   420 */   769,  770,  784,  785,  787,  793,  799,  802,  786,  791, /*   430 */   792,  794,  798,  801,  694,  695,  805,  619,  626,  627, /*   440 */   630,  631,  839,  841,  840,  842,  629,  628,  772,  775, /*   450 */   807,  808,  864,  865,  866,  867,  868,  803,  717,  806, /*   460 */   790,  729,  732,  733,  730,  700,  710,  719,  720,  721, /*   470 */   722,  705,  706,  712,  725,  758,  759,  713,  702,  703, /*   480 */   704,  804,  761,  773,  774,  637,  638,  768,  639,  640, /*   490 */   641,  679,  682,  683,  684,  642,  661,  664,  665,  643, /*   500 */   650,  644,  645,  652,  653,  654,  657,  658,  659,  660, /*   510 */   655,  656,  823,  824,  828,  826,  825,  647,  648,  662, /*   520 */   635,  624,  617,  668,  671,  672,  673,  674,  675,  677, /*   530 */   669,  670,  615,  607,  609,  718,  845,  854,  850,  846, /*   540 */   847,  848,  610,  819,  820,  681,  752,  753,  844,  857, /*   550 */   859,  757,  860,  862,  887,  685,  686,  689,  829,  869, /*   560 */   743,  746,  749,  751,  831,  832,  833,  834,  837,  838, /*   570 */   835,  870,  874,  877,  879,  880,  881,  884,  886,  891, /*   580 */   892,  893,  896,  894,  594,  588,};#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.**** appears in the grammer, then ID becomes a fallback token for X, Y,** and Z.  Whenever one of the tokens X, Y, or Z is input to the parser** but it does not parse, the type of the token is changed to ID and** the parse is retried before an error is thrown.*/#ifdef YYFALLBACKstatic const YYCODETYPE yyFallback[] = {    0,  /*          $ => nothing */    0,  /*       SEMI => nothing */   23,  /*    EXPLAIN => ID */   23,  /*      QUERY => ID */   23,  /*       PLAN => ID */   23,  /*      BEGIN => ID */    0,  /* TRANSACTION => nothing */   23,  /*   DEFERRED => ID */   23,  /*  IMMEDIATE => ID */   23,  /*  EXCLUSIVE => ID */    0,  /*     COMMIT => nothing */   23,  /*        END => ID */    0,  /*   ROLLBACK => nothing */    0,  /*     CREATE => nothing */    0,  /*      TABLE => nothing */   23,  /*         IF => ID */    0,  /*        NOT => nothing */    0,  /*     EXISTS => nothing */   23,  /*       TEMP => ID */    0,  /*         LP => nothing */    0,  /*         RP => nothing */    0,  /*         AS => nothing */    0,  /*      COMMA => nothing */    0,  /*         ID => nothing */   23,  /*      ABORT => ID */   23,  /*      AFTER => ID */   23,  /*    ANALYZE => ID */   23,  /*        ASC => ID */   23,  /*     ATTACH => ID */   23,  /*     BEFORE => ID */   23,  /*    CASCADE => ID */   23,  /*       CAST => ID */   23,  /*   CONFLICT => ID */   23,  /*   DATABASE => ID */   23,  /*       DESC => ID */   23,  /*     DETACH => ID */   23,  /*       EACH => ID */   23,  /*       FAIL => ID */   23,  /*        FOR => ID */   23,  /*     IGNORE => ID */   23,  /*  INITIALLY => ID */   23,  /*    INSTEAD => ID */   23,  /*    LIKE_KW => ID */   23,  /*      MATCH => ID */   23,  /*        KEY => ID */   23,  /*         OF => ID */   23,  /*     OFFSET => ID */   23,  /*     PRAGMA => ID */   23,  /*      RAISE => ID */   23,  /*    REPLACE => ID */   23,  /*   RESTRICT => ID */   23,  /*        ROW => ID */   23,  /*    TRIGGER => ID */   23,  /*     VACUUM => ID */   23,  /*       VIEW => ID */   23,  /*    VIRTUAL => ID */   23,  /*    REINDEX => ID */   23,  /*     RENAME => ID */   23,  /*   CTIME_KW => ID */    0,  /*        ANY => nothing */    0,  /*         OR => nothing */    0,  /*        AND => nothing */    0,  /*         IS => nothing */    0,  /*    BETWEEN => nothing */    0,  /*         IN => nothing */    0,  /*     ISNULL => nothing */    0,  /*    NOTNULL => nothing */    0,  /*         NE => nothing */    0,  /*         EQ => nothing */    0,  /*         GT => nothing */    0,  /*         LE => nothing */    0,  /*         LT => nothing */    0,  /*         GE => nothing */    0,  /*     ESCAPE => nothing */    0,  /*     BITAND => nothing */    0,  /*      BITOR => nothing */    0,  /*     LSHIFT => nothing */    0,  /*     RSHIFT => nothing */    0,  /*       PLUS => nothing */    0,  /*      MINUS => nothing */    0,  /*       STAR => nothing */    0,  /*      SLASH => nothing */    0,  /*        REM => nothing */    0,  /*     CONCAT => nothing */    0,  /*    COLLATE => nothing */    0,  /*     UMINUS => nothing */    0,  /*      UPLUS => nothing */    0,  /*     BITNOT => nothing */    0,  /*     STRING => nothing */    0,  /*    JOIN_KW => nothing */    0,  /* CONSTRAINT => nothing */    0,  /*    DEFAULT => nothing */    0,  /*       NULL => nothing */    0,  /*    PRIMARY => nothing */    0,  /*     UNIQUE => nothing */    0,  /*      CHECK => nothing */    0,  /* REFERENCES => nothing */    0,  /*   AUTOINCR => nothing */    0,  /*         ON => nothing */    0,  /*     DELETE => nothing */    0,  /*     UPDATE => nothing */    0,  /*     INSERT => nothing */    0,  /*        SET => nothing */    0,  /* DEFERRABLE => nothing */    0,  /*    FOREIGN => nothing */    0,  /*       DROP => nothing */    0,  /*      UNION => nothing */    0,  /*        ALL => nothing */    0,  /*     EXCEPT => nothing */    0,  /*  INTERSECT => nothing */    0,  /*     SELECT => nothing */    0,  /*   DISTINCT => nothing */    0,  /*        DOT => nothing */    0,  /*       FROM => nothing */    0,  /*       JOIN => nothing */    0,  /*      USING => nothing */    0,  /*      ORDER => nothing */    0,  /*         BY => nothing */    0,  /*      GROUP => nothing */    0,  /*     HAVING => nothing */    0,  /*      LIMIT => nothing */    0,  /*      WHERE => nothing */    0,  /*       INTO => nothing */    0,  /*     VALUES => nothing */    0,  /*    INTEGER => nothing */    0,  /*      FLOAT => nothing */    0,  /*       BLOB => nothing */    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,  /*         TO => 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.****   +  The value of the token stored at this level of the stack.**      (In other words, the "major" token.)****   +  The semantic value stored at this level of the stack.  This is**      the information used by the action routines in the grammar.**      It is sometimes called the "minor" token.*/struct yyStackEntry {  int stateno;       /* The state-number */  int major;         /* The major token value.  This is the code                     ** number for the token at this stack level */  YYMINORTYPE minor; /* The user-supplied minor token value.  This                     ** is the value of the token  */};typedef struct yyStackEntry yyStackEntry;/* The state of the parser is completely contained in an instance of** the following structure */struct yyParser {  int yyidx;                    /* Index of top element in stack */  int yyerrcnt;                 /* Shifts left before out of the error */  sqlite3ParserARG_SDECL                /* A place to hold %extra_argument */#if YYSTACKDEPTH<=0  int yystksz;                  /* Current side of the stack */  yyStackEntry *yystack;        /* The parser's stack */#else  yyStackEntry yystack[YYSTACKDEPTH];  /* The parser's stack */#endif};typedef struct yyParser yyParser;#ifndef NDEBUG#include <stdio.h>static FILE *yyTraceFILE = 0;static char *yyTracePrompt = 0;#endif /* NDEBUG */#ifndef NDEBUG/* ** Turn parser tracing on by giving a stream to which to write the trace** and a prompt to preface each trace message.  Tracing is turned off** by making either argument NULL **** Inputs:** <ul>** <li> A FILE* to which trace output should be written.**      If NULL, then tracing is turned off.** <li> A prefix string written at the beginning of every**      line of trace output.  If NULL, then tracing is**      turned off.** </ul>**** Outputs:** None.*/void sqlite3ParserTrace(FILE *TraceFILE, char *zTracePrompt){  yyTraceFILE = TraceFILE;  yyTracePrompt = zTracePrompt;  if( yyTraceFILE==0 ) yyTracePrompt = 0;  else if( yyTracePrompt==0 ) yyTraceFILE = 0;

⌨️ 快捷键说明

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