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

📄 parse.c

📁 SQLite的VS2005封装
💻 C
📖 第 1 页 / 共 5 页
字号:
 /* 170 */ "inscollist_opt ::=", /* 171 */ "inscollist_opt ::= LP inscollist RP", /* 172 */ "inscollist ::= inscollist COMMA nm", /* 173 */ "inscollist ::= nm", /* 174 */ "expr ::= term", /* 175 */ "expr ::= LP expr RP", /* 176 */ "term ::= NULL", /* 177 */ "expr ::= ID", /* 178 */ "expr ::= JOIN_KW", /* 179 */ "expr ::= nm DOT nm", /* 180 */ "expr ::= nm DOT nm DOT nm", /* 181 */ "term ::= INTEGER|FLOAT|BLOB", /* 182 */ "term ::= STRING", /* 183 */ "expr ::= REGISTER", /* 184 */ "expr ::= VARIABLE", /* 185 */ "expr ::= expr COLLATE ids", /* 186 */ "expr ::= CAST LP expr AS typetoken RP", /* 187 */ "expr ::= ID LP distinct exprlist RP", /* 188 */ "expr ::= ID LP STAR RP", /* 189 */ "term ::= CTIME_KW", /* 190 */ "expr ::= expr AND expr", /* 191 */ "expr ::= expr OR expr", /* 192 */ "expr ::= expr LT|GT|GE|LE expr", /* 193 */ "expr ::= expr EQ|NE expr", /* 194 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr", /* 195 */ "expr ::= expr PLUS|MINUS expr", /* 196 */ "expr ::= expr STAR|SLASH|REM expr", /* 197 */ "expr ::= expr CONCAT expr", /* 198 */ "likeop ::= LIKE_KW", /* 199 */ "likeop ::= NOT LIKE_KW", /* 200 */ "likeop ::= MATCH", /* 201 */ "likeop ::= NOT MATCH", /* 202 */ "escape ::= ESCAPE expr", /* 203 */ "escape ::=", /* 204 */ "expr ::= expr likeop expr escape", /* 205 */ "expr ::= expr ISNULL|NOTNULL", /* 206 */ "expr ::= expr IS NULL", /* 207 */ "expr ::= expr NOT NULL", /* 208 */ "expr ::= expr IS NOT NULL", /* 209 */ "expr ::= NOT expr", /* 210 */ "expr ::= BITNOT expr", /* 211 */ "expr ::= MINUS expr", /* 212 */ "expr ::= PLUS expr", /* 213 */ "between_op ::= BETWEEN", /* 214 */ "between_op ::= NOT BETWEEN", /* 215 */ "expr ::= expr between_op expr AND expr", /* 216 */ "in_op ::= IN", /* 217 */ "in_op ::= NOT IN", /* 218 */ "expr ::= expr in_op LP exprlist RP", /* 219 */ "expr ::= LP select RP", /* 220 */ "expr ::= expr in_op LP select RP", /* 221 */ "expr ::= expr in_op nm dbnm", /* 222 */ "expr ::= EXISTS LP select RP", /* 223 */ "expr ::= CASE case_operand case_exprlist case_else END", /* 224 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", /* 225 */ "case_exprlist ::= WHEN expr THEN expr", /* 226 */ "case_else ::= ELSE expr", /* 227 */ "case_else ::=", /* 228 */ "case_operand ::= expr", /* 229 */ "case_operand ::=", /* 230 */ "exprlist ::= nexprlist", /* 231 */ "exprlist ::=", /* 232 */ "nexprlist ::= nexprlist COMMA expr", /* 233 */ "nexprlist ::= expr", /* 234 */ "cmd ::= CREATE uniqueflag INDEX ifnotexists nm dbnm ON nm LP idxlist RP", /* 235 */ "uniqueflag ::= UNIQUE", /* 236 */ "uniqueflag ::=", /* 237 */ "idxlist_opt ::=", /* 238 */ "idxlist_opt ::= LP idxlist RP", /* 239 */ "idxlist ::= idxlist COMMA nm collate sortorder", /* 240 */ "idxlist ::= nm collate sortorder", /* 241 */ "collate ::=", /* 242 */ "collate ::= COLLATE ids", /* 243 */ "cmd ::= DROP INDEX ifexists fullname", /* 244 */ "cmd ::= VACUUM", /* 245 */ "cmd ::= VACUUM nm", /* 246 */ "cmd ::= PRAGMA nm dbnm EQ nmnum", /* 247 */ "cmd ::= PRAGMA nm dbnm EQ ON", /* 248 */ "cmd ::= PRAGMA nm dbnm EQ DELETE", /* 249 */ "cmd ::= PRAGMA nm dbnm EQ minus_num", /* 250 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP", /* 251 */ "cmd ::= PRAGMA nm dbnm", /* 252 */ "nmnum ::= plus_num", /* 253 */ "nmnum ::= nm", /* 254 */ "plus_num ::= plus_opt number", /* 255 */ "minus_num ::= MINUS number", /* 256 */ "number ::= INTEGER|FLOAT", /* 257 */ "plus_opt ::= PLUS", /* 258 */ "plus_opt ::=", /* 259 */ "cmd ::= CREATE trigger_decl BEGIN trigger_cmd_list END", /* 260 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause", /* 261 */ "trigger_time ::= BEFORE", /* 262 */ "trigger_time ::= AFTER", /* 263 */ "trigger_time ::= INSTEAD OF", /* 264 */ "trigger_time ::=", /* 265 */ "trigger_event ::= DELETE|INSERT", /* 266 */ "trigger_event ::= UPDATE", /* 267 */ "trigger_event ::= UPDATE OF inscollist", /* 268 */ "foreach_clause ::=", /* 269 */ "foreach_clause ::= FOR EACH ROW", /* 270 */ "when_clause ::=", /* 271 */ "when_clause ::= WHEN expr", /* 272 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI", /* 273 */ "trigger_cmd_list ::= trigger_cmd SEMI", /* 274 */ "trigger_cmd ::= UPDATE orconf nm SET setlist where_opt", /* 275 */ "trigger_cmd ::= insert_cmd INTO nm inscollist_opt VALUES LP itemlist RP", /* 276 */ "trigger_cmd ::= insert_cmd INTO nm inscollist_opt select", /* 277 */ "trigger_cmd ::= DELETE FROM nm where_opt", /* 278 */ "trigger_cmd ::= select", /* 279 */ "expr ::= RAISE LP IGNORE RP", /* 280 */ "expr ::= RAISE LP raisetype COMMA nm RP", /* 281 */ "raisetype ::= ROLLBACK", /* 282 */ "raisetype ::= ABORT", /* 283 */ "raisetype ::= FAIL", /* 284 */ "cmd ::= DROP TRIGGER ifexists fullname", /* 285 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt", /* 286 */ "cmd ::= DETACH database_kw_opt expr", /* 287 */ "key_opt ::=", /* 288 */ "key_opt ::= KEY expr", /* 289 */ "database_kw_opt ::= DATABASE", /* 290 */ "database_kw_opt ::=", /* 291 */ "cmd ::= REINDEX", /* 292 */ "cmd ::= REINDEX nm dbnm", /* 293 */ "cmd ::= ANALYZE", /* 294 */ "cmd ::= ANALYZE nm dbnm", /* 295 */ "cmd ::= ALTER TABLE fullname RENAME TO nm", /* 296 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt column", /* 297 */ "add_column_fullname ::= fullname", /* 298 */ "kwcolumn_opt ::=", /* 299 */ "kwcolumn_opt ::= COLUMNKW", /* 300 */ "cmd ::= create_vtab", /* 301 */ "cmd ::= create_vtab LP vtabarglist RP", /* 302 */ "create_vtab ::= CREATE VIRTUAL TABLE nm dbnm USING nm", /* 303 */ "vtabarglist ::= vtabarg", /* 304 */ "vtabarglist ::= vtabarglist COMMA vtabarg", /* 305 */ "vtabarg ::=", /* 306 */ "vtabarg ::= vtabarg vtabargtoken", /* 307 */ "vtabargtoken ::= ANY", /* 308 */ "vtabargtoken ::= lp anylist RP", /* 309 */ "lp ::= LP", /* 310 */ "anylist ::=", /* 311 */ "anylist ::= anylist ANY",};#endif /* NDEBUG */#if YYSTACKDEPTH<=0/*** Try to increase the size of the parser stack.*/static void yyGrowStack(yyParser *p){  int newSize;  yyStackEntry *pNew;  newSize = p->yystksz*2 + 100;  pNew = realloc(p->yystack, newSize*sizeof(pNew[0]));  if( pNew ){    p->yystack = pNew;    p->yystksz = newSize;#ifndef NDEBUG    if( yyTraceFILE ){      fprintf(yyTraceFILE,"%sStack grows to %d entries!\n",              yyTracePrompt, p->yystksz);    }#endif  }}#endif/* ** This function allocates a new parser.** The only argument is a pointer to a function which works like** malloc.**** Inputs:** A pointer to the function used to allocate memory.**** Outputs:** A pointer to a parser.  This pointer is used in subsequent calls** to sqlite3Parser and sqlite3ParserFree.*/void *sqlite3ParserAlloc(void *(*mallocProc)(size_t)){  yyParser *pParser;  pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) );  if( pParser ){    pParser->yyidx = -1;#ifdef YYTRACKMAXSTACKDEPTH    pParser->yyidxMax = 0;#endif#if YYSTACKDEPTH<=0    yyGrowStack(pParser);#endif  }  return pParser;}/* The following function deletes the value associated with a** symbol.  The symbol can be either a terminal or nonterminal.** "yymajor" is the symbol code, and "yypminor" is a pointer to** the value.*/static void yy_destructor(  yyParser *yypParser,    /* The parser */  YYCODETYPE yymajor,     /* Type code for object to destroy */  YYMINORTYPE *yypminor   /* The object to be destroyed */){  sqlite3ParserARG_FETCH;  switch( yymajor ){    /* Here is inserted the actions which take place when a    ** terminal or non-terminal is destroyed.  This can happen    ** when the symbol is popped from the stack during a    ** 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 155: /* select */    case 189: /* oneselect */    case 206: /* seltablist_paren */{#line 369 "parse.y"sqlite3SelectDelete(pParse->db, (yypminor->yy375));#line 1293 "parse.c"}      break;    case 169: /* term */    case 170: /* expr */    case 194: /* where_opt */    case 196: /* having_opt */    case 204: /* on_opt */    case 210: /* sortitem */    case 218: /* escape */    case 221: /* case_operand */    case 223: /* case_else */    case 234: /* when_clause */    case 237: /* key_opt */{#line 629 "parse.y"sqlite3ExprDelete(pParse->db, (yypminor->yy62));#line 1310 "parse.c"}      break;    case 174: /* idxlist_opt */    case 182: /* idxlist */    case 192: /* selcollist */    case 195: /* groupby_opt */    case 197: /* orderby_opt */    case 199: /* sclp */    case 209: /* sortlist */    case 211: /* nexprlist */    case 212: /* setlist */    case 215: /* itemlist */    case 216: /* exprlist */    case 222: /* case_exprlist */{#line 887 "parse.y"sqlite3ExprListDelete(pParse->db, (yypminor->yy418));#line 1328 "parse.c"}      break;    case 188: /* fullname */    

⌨️ 快捷键说明

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