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

📄 parse.c

📁 嵌入式数据库Sqlite,SQLlite小型数据库
💻 C
📖 第 1 页 / 共 5 页
字号:
 /*   460 */   692,  693,  694,  695,  678,  679,  685,  698,  732,  733, /*   470 */   686,  675,  676,  677,  775,  735,  746,  747,  618,  625, /*   480 */   626,  627,  630,  631,  632,  633,  628,  629,  794,  795, /*   490 */   797,  796,  620,  621,  635,  608,  609,  610,  611,  742, /*   500 */   612,  613,  597,  590,  641,  644,  645,  646,  647,  648, /*   510 */   650,  642,  643,  588,  580,  582,  691,  813,  822,  823, /*   520 */   818,  814,  815,  816,  583,  790,  791,  654,  726,  727, /*   530 */   812,  826,  828,  731,  829,  831,  658,  659,  662,  798, /*   540 */   838,  718,  721,  724,  800,  801,  802,  803,  804,  805, /*   550 */   839,  842,  846,  848,  849,  850,  853,  567,  561,};#define YY_SZ_ACTTAB (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,  /*  STATEMENT => ID */   23,  /*    TRIGGER => ID */   23,  /*     VACUUM => ID */   23,  /*       VIEW => ID */   23,  /*    REINDEX => ID */   23,  /*     RENAME => ID */   23,  /*   CTIME_KW => ID */    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,  /*     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,  /*    COLLATE => 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 */  yyStackEntry yystack[YYSTACKDEPTH];  /* The parser's stack */};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;}#endif /* NDEBUG */#ifndef NDEBUG/* For tracing shifts, the names of all terminals and nonterminals** are required.  The following table supplies these names */static const char *const yyTokenName[] = {   "$",             "SEMI",          "EXPLAIN",       "QUERY",         "PLAN",          "BEGIN",         "TRANSACTION",   "DEFERRED",      "IMMEDIATE",     "EXCLUSIVE",     "COMMIT",        "END",           "ROLLBACK",      "CREATE",        "TABLE",         "IF",            "NOT",           "EXISTS",        "TEMP",          "LP",            "RP",            "AS",            "COMMA",         "ID",            "ABORT",         "AFTER",         "ANALYZE",       "ASC",           "ATTACH",        "BEFORE",        "CASCADE",       "CAST",          "CONFLICT",      "DATABASE",      "DESC",          "DETACH",        "EACH",          "FAIL",          "FOR",           "IGNORE",        "INITIALLY",     "INSTEAD",       "LIKE_KW",       "MATCH",         "KEY",           "OF",            "OFFSET",        "PRAGMA",        "RAISE",         "REPLACE",       "RESTRICT",      "ROW",           "STATEMENT",     "TRIGGER",       "VACUUM",        "VIEW",          "REINDEX",       "RENAME",        "CTIME_KW",      "OR",            "AND",           "IS",            "BETWEEN",       "IN",            "ISNULL",        "NOTNULL",       "NE",            "EQ",            "GT",            "LE",            "LT",            "GE",            "ESCAPE",        "BITAND",        "BITOR",         "LSHIFT",        "RSHIFT",        "PLUS",          "MINUS",         "STAR",          "SLASH",         "REM",           "CONCAT",        "UMINUS",        "UPLUS",         "BITNOT",        "STRING",        "JOIN_KW",       "CONSTRAINT",    "DEFAULT",       "NULL",          "PRIMARY",       "UNIQUE",        "CHECK",         "REFERENCES",    "COLLATE",       "AUTOINCR",      "ON",            "DELETE",        "UPDATE",        "INSERT",        "SET",           "DEFERRABLE",    "FOREIGN",       "DROP",          "UNION",         "ALL",           "EXCEPT",        "INTERSECT",     "SELECT",        "DISTINCT",      "DOT",           "FROM",          "JOIN",          "USING",         "ORDER",         "BY",            "GROUP",         "HAVING",        "LIMIT",         "WHERE",         "INTO",          "VALUES",        "INTEGER",       "FLOAT",         "BLOB",          "REGISTER",      "VARIABLE",      "CASE",          "WHEN",          "THEN",          "ELSE",          "INDEX",         "ALTER",         "TO",            "ADD",           "COLUMNKW",      "error",         "input",         "cmdlist",       "ecmd",          "cmdx",          "cmd",           "explain",       "transtype",     "trans_opt",     "nm",            "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",      

⌨️ 快捷键说明

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