?? parse.c
字號:
/* 20 */ 623, 841, 841, 742, 896, 896, 896, 896, 896, 896,
/* 30 */ 896, 896, 743, 896, 818, 814, 810, 812, 811, 744,
/* 40 */ 731, 740, 747, 723, 855, 749, 750, 756, 757, 871,
/* 50 */ 874, 778, 796, 777, 896, 896, 896, 896, 896, 896,
/* 60 */ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896,
/* 70 */ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896,
/* 80 */ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896,
/* 90 */ 896, 896, 896, 780, 801, 616, 779, 789, 781, 782,
/* 100 */ 676, 611, 896, 896, 896, 896, 896, 896, 896, 896,
/* 110 */ 783, 784, 797, 798, 896, 896, 896, 896, 896, 896,
/* 120 */ 592, 707, 896, 707, 896, 896, 896, 896, 896, 896,
/* 130 */ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896,
/* 140 */ 896, 896, 701, 711, 889, 896, 896, 667, 896, 896,
/* 150 */ 896, 896, 896, 896, 896, 896, 896, 896, 599, 597,
/* 160 */ 896, 699, 896, 896, 625, 896, 896, 709, 896, 896,
/* 170 */ 714, 715, 896, 896, 896, 896, 896, 896, 896, 613,
/* 180 */ 896, 896, 688, 896, 847, 896, 896, 896, 862, 896,
/* 190 */ 896, 896, 860, 896, 896, 896, 690, 752, 829, 896,
/* 200 */ 896, 875, 877, 896, 896, 734, 699, 708, 896, 896,
/* 210 */ 813, 734, 734, 646, 734, 734, 649, 746, 746, 596,
/* 220 */ 596, 596, 596, 666, 678, 678, 663, 678, 649, 678,
/* 230 */ 896, 746, 737, 739, 727, 741, 896, 716, 735, 896,
/* 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 YYFALLBACK
static 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
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -