📄 parse.c
字号:
static const YYACTIONTYPE yy_default[] = { /* 0 */ 594, 819, 900, 709, 900, 819, 900, 900, 846, 713, /* 10 */ 875, 817, 900, 900, 900, 900, 791, 900, 846, 900, /* 20 */ 625, 846, 846, 742, 900, 900, 900, 900, 900, 900, /* 30 */ 900, 900, 743, 900, 821, 816, 812, 814, 813, 820, /* 40 */ 744, 733, 740, 747, 725, 859, 749, 750, 756, 757, /* 50 */ 876, 874, 779, 778, 797, 900, 900, 900, 900, 900, /* 60 */ 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, /* 70 */ 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, /* 80 */ 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, /* 90 */ 900, 900, 900, 900, 900, 900, 781, 803, 780, 790, /* 100 */ 618, 782, 783, 678, 613, 900, 900, 900, 900, 900, /* 110 */ 900, 900, 784, 900, 785, 798, 799, 800, 900, 900, /* 120 */ 900, 900, 900, 900, 594, 709, 900, 709, 900, 900, /* 130 */ 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, /* 140 */ 900, 900, 900, 900, 900, 900, 703, 713, 893, 900, /* 150 */ 900, 669, 900, 900, 900, 900, 900, 900, 900, 900, /* 160 */ 900, 900, 601, 599, 900, 701, 900, 900, 627, 900, /* 170 */ 900, 711, 900, 900, 716, 717, 900, 900, 900, 900, /* 180 */ 900, 900, 900, 615, 900, 900, 690, 900, 852, 900, /* 190 */ 900, 900, 866, 900, 900, 900, 864, 900, 900, 900, /* 200 */ 692, 752, 833, 900, 879, 881, 900, 900, 701, 710, /* 210 */ 900, 900, 900, 815, 736, 736, 736, 648, 736, 900, /* 220 */ 736, 900, 651, 746, 746, 598, 598, 598, 598, 668, /* 230 */ 900, 746, 737, 739, 729, 741, 900, 718, 718, 726, /* 240 */ 728, 726, 728, 680, 680, 665, 680, 651, 680, 825, /* 250 */ 830, 830, 665, 680, 680, 680, 825, 610, 718, 610, /* 260 */ 718, 610, 718, 718, 856, 858, 610, 718, 682, 682, /* 270 */ 758, 746, 718, 689, 689, 689, 689, 746, 682, 758, /* 280 */ 718, 878, 878, 718, 718, 886, 635, 653, 653, 861, /* 290 */ 893, 898, 900, 900, 900, 900, 765, 900, 900, 900, /* 300 */ 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, /* 310 */ 839, 900, 900, 900, 900, 770, 766, 900, 767, 900, /* 320 */ 695, 900, 900, 900, 900, 900, 900, 900, 900, 900, /* 330 */ 900, 818, 900, 730, 900, 738, 900, 900, 900, 900, /* 340 */ 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, /* 350 */ 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, /* 360 */ 854, 855, 900, 900, 900, 900, 900, 900, 900, 900, /* 370 */ 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, /* 380 */ 900, 900, 900, 900, 885, 900, 900, 888, 595, 900, /* 390 */ 589, 592, 591, 593, 597, 600, 622, 623, 624, 602, /* 400 */ 603, 604, 605, 606, 607, 608, 614, 616, 634, 636, /* 410 */ 620, 638, 699, 700, 762, 693, 694, 698, 621, 773, /* 420 */ 764, 768, 769, 771, 772, 786, 787, 789, 795, 802, /* 430 */ 805, 788, 793, 794, 796, 801, 804, 696, 697, 808, /* 440 */ 628, 629, 632, 633, 842, 844, 843, 845, 631, 630, /* 450 */ 774, 777, 810, 811, 867, 868, 869, 870, 871, 806, /* 460 */ 719, 809, 792, 731, 734, 735, 732, 702, 712, 721, /* 470 */ 722, 723, 724, 707, 708, 714, 727, 760, 761, 715, /* 480 */ 704, 705, 706, 807, 763, 775, 776, 639, 640, 770, /* 490 */ 641, 642, 643, 681, 684, 685, 686, 644, 663, 666, /* 500 */ 667, 645, 652, 646, 647, 654, 655, 656, 659, 660, /* 510 */ 661, 662, 657, 658, 826, 827, 831, 829, 828, 649, /* 520 */ 650, 664, 637, 626, 619, 670, 673, 674, 675, 676, /* 530 */ 677, 679, 671, 672, 617, 609, 611, 720, 848, 857, /* 540 */ 853, 849, 850, 851, 612, 822, 823, 683, 754, 755, /* 550 */ 847, 860, 862, 759, 863, 865, 890, 687, 688, 691, /* 560 */ 832, 872, 745, 748, 751, 753, 834, 835, 836, 837, /* 570 */ 840, 841, 838, 873, 877, 880, 882, 883, 884, 887, /* 580 */ 889, 894, 895, 896, 899, 897, 596, 590,};#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:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -