📄 parse.c
字号:
/* 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 + -