📄 parse.c
字号:
/* 240 */ 735, 716, 724, 726, 724, 726, 823, 735, 735, 896, /* 250 */ 663, 678, 678, 678, 823, 608, 716, 608, 716, 608, /* 260 */ 716, 716, 851, 854, 608, 716, 680, 680, 758, 746, /* 270 */ 716, 687, 687, 687, 687, 746, 680, 758, 716, 873, /* 280 */ 873, 716, 716, 882, 633, 651, 651, 857, 889, 894, /* 290 */ 896, 896, 896, 896, 896, 896, 765, 896, 896, 896, /* 300 */ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, /* 310 */ 896, 836, 896, 896, 896, 896, 896, 896, 896, 770, /* 320 */ 766, 896, 767, 896, 896, 896, 896, 693, 896, 896, /* 330 */ 896, 896, 896, 896, 896, 728, 896, 738, 896, 896, /* 340 */ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, /* 350 */ 896, 896, 896, 896, 896, 896, 896, 849, 850, 896, /* 360 */ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, /* 370 */ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, /* 380 */ 896, 881, 896, 896, 884, 593, 896, 587, 590, 589, /* 390 */ 591, 595, 598, 620, 621, 622, 600, 601, 602, 603, /* 400 */ 604, 605, 606, 612, 614, 632, 634, 641, 679, 682, /* 410 */ 683, 684, 865, 866, 867, 642, 661, 664, 665, 643, /* 420 */ 650, 732, 733, 644, 697, 698, 762, 691, 692, 696, /* 430 */ 764, 768, 769, 771, 772, 619, 626, 627, 630, 631, /* 440 */ 837, 839, 838, 840, 629, 628, 773, 776, 785, 786, /* 450 */ 788, 794, 800, 803, 787, 792, 793, 795, 799, 802, /* 460 */ 694, 695, 806, 808, 809, 863, 864, 804, 816, 817, /* 470 */ 717, 807, 791, 729, 618, 736, 730, 700, 710, 719, /* 480 */ 720, 721, 722, 705, 706, 712, 725, 760, 761, 713, /* 490 */ 702, 703, 704, 805, 763, 774, 775, 645, 652, 653, /* 500 */ 654, 657, 658, 659, 660, 655, 656, 824, 825, 827, /* 510 */ 826, 647, 648, 662, 635, 636, 637, 638, 770, 639, /* 520 */ 640, 624, 617, 668, 671, 672, 673, 674, 675, 677, /* 530 */ 669, 670, 615, 607, 609, 718, 843, 852, 853, 848, /* 540 */ 844, 845, 846, 610, 820, 821, 681, 754, 755, 842, /* 550 */ 856, 858, 759, 859, 861, 886, 685, 686, 689, 828, /* 560 */ 868, 745, 748, 751, 753, 830, 831, 832, 833, 834, /* 570 */ 835, 869, 872, 876, 878, 879, 880, 883, 885, 890, /* 580 */ 891, 892, 895, 893, 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, /* STATEMENT => 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, /* 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",
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -