Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Side by Side Diff: third_party/sqlite/sqlite-src-3080704/src/lempar.c

Issue 883353008: [sql] Import reference version of SQLite 3.8.7.4. (Closed) Base URL: http://chromium.googlesource.com/chromium/src.git@master
Patch Set: Hold back encoding change which is messing up patch. Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* Driver template for the LEMON parser generator. 1 /* Driver template for the LEMON parser generator.
2 ** The author disclaims copyright to this source code. 2 ** The author disclaims copyright to this source code.
3 ** 3 **
4 ** This version of "lempar.c" is modified, slightly, for use by SQLite. 4 ** This version of "lempar.c" is modified, slightly, for use by SQLite.
5 ** The only modifications are the addition of a couple of NEVER() 5 ** The only modifications are the addition of a couple of NEVER()
6 ** macros to disable tests that are needed in the case of a general 6 ** macros to disable tests that are needed in the case of a general
7 ** LALR(1) grammar but which are always false in the 7 ** LALR(1) grammar but which are always false in the
8 ** specific grammar used by SQLite. 8 ** specific grammar used by SQLite.
9 */ 9 */
10 /* First off, code is included that follows the "include" declaration 10 /* First off, code is included that follows the "include" declaration
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 ** The only argument is a pointer to a function which works like 264 ** The only argument is a pointer to a function which works like
265 ** malloc. 265 ** malloc.
266 ** 266 **
267 ** Inputs: 267 ** Inputs:
268 ** A pointer to the function used to allocate memory. 268 ** A pointer to the function used to allocate memory.
269 ** 269 **
270 ** Outputs: 270 ** Outputs:
271 ** A pointer to a parser. This pointer is used in subsequent calls 271 ** A pointer to a parser. This pointer is used in subsequent calls
272 ** to Parse and ParseFree. 272 ** to Parse and ParseFree.
273 */ 273 */
274 void *ParseAlloc(void *(*mallocProc)(size_t)){ 274 void *ParseAlloc(void *(*mallocProc)(u64)){
275 yyParser *pParser; 275 yyParser *pParser;
276 pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) ); 276 pParser = (yyParser*)(*mallocProc)( (u64)sizeof(yyParser) );
277 if( pParser ){ 277 if( pParser ){
278 pParser->yyidx = -1; 278 pParser->yyidx = -1;
279 #ifdef YYTRACKMAXSTACKDEPTH 279 #ifdef YYTRACKMAXSTACKDEPTH
280 pParser->yyidxMax = 0; 280 pParser->yyidxMax = 0;
281 #endif 281 #endif
282 #if YYSTACKDEPTH<=0 282 #if YYSTACKDEPTH<=0
283 pParser->yystack = NULL; 283 pParser->yystack = NULL;
284 pParser->yystksz = 0; 284 pParser->yystksz = 0;
285 yyGrowStack(pParser); 285 yyGrowStack(pParser);
286 #endif 286 #endif
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
601 /* Beginning here are the reduction cases. A typical example 601 /* Beginning here are the reduction cases. A typical example
602 ** follows: 602 ** follows:
603 ** case 0: 603 ** case 0:
604 ** #line <lineno> <grammarfile> 604 ** #line <lineno> <grammarfile>
605 ** { ... } // User supplied code 605 ** { ... } // User supplied code
606 ** #line <lineno> <thisfile> 606 ** #line <lineno> <thisfile>
607 ** break; 607 ** break;
608 */ 608 */
609 %% 609 %%
610 }; 610 };
611 assert( yyruleno>=0 && yyruleno<sizeof(yyRuleInfo)/sizeof(yyRuleInfo[0]) );
611 yygoto = yyRuleInfo[yyruleno].lhs; 612 yygoto = yyRuleInfo[yyruleno].lhs;
612 yysize = yyRuleInfo[yyruleno].nrhs; 613 yysize = yyRuleInfo[yyruleno].nrhs;
613 yypParser->yyidx -= yysize; 614 yypParser->yyidx -= yysize;
614 yyact = yy_find_reduce_action(yymsp[-yysize].stateno,(YYCODETYPE)yygoto); 615 yyact = yy_find_reduce_action(yymsp[-yysize].stateno,(YYCODETYPE)yygoto);
615 if( yyact < YYNSTATE ){ 616 if( yyact < YYNSTATE ){
616 #ifdef NDEBUG 617 #ifdef NDEBUG
617 /* If we are not debugging and the reduce action popped at least 618 /* If we are not debugging and the reduce action popped at least
618 ** one element off the stack, then we can push the new element back 619 ** one element off the stack, then we can push the new element back
619 ** onto the stack here, and skip the stack overflow test in yy_shift(). 620 ** onto the stack here, and skip the stack overflow test in yy_shift().
620 ** That gives a significant speed improvement. */ 621 ** That gives a significant speed improvement. */
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
709 ** None. 710 ** None.
710 */ 711 */
711 void Parse( 712 void Parse(
712 void *yyp, /* The parser */ 713 void *yyp, /* The parser */
713 int yymajor, /* The major token code number */ 714 int yymajor, /* The major token code number */
714 ParseTOKENTYPE yyminor /* The value for the token */ 715 ParseTOKENTYPE yyminor /* The value for the token */
715 ParseARG_PDECL /* Optional %extra_argument parameter */ 716 ParseARG_PDECL /* Optional %extra_argument parameter */
716 ){ 717 ){
717 YYMINORTYPE yyminorunion; 718 YYMINORTYPE yyminorunion;
718 int yyact; /* The parser action. */ 719 int yyact; /* The parser action. */
720 #if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY)
719 int yyendofinput; /* True if we are at the end of input */ 721 int yyendofinput; /* True if we are at the end of input */
722 #endif
720 #ifdef YYERRORSYMBOL 723 #ifdef YYERRORSYMBOL
721 int yyerrorhit = 0; /* True if yymajor has invoked an error */ 724 int yyerrorhit = 0; /* True if yymajor has invoked an error */
722 #endif 725 #endif
723 yyParser *yypParser; /* The parser */ 726 yyParser *yypParser; /* The parser */
724 727
725 /* (re)initialize the parser, if necessary */ 728 /* (re)initialize the parser, if necessary */
726 yypParser = (yyParser*)yyp; 729 yypParser = (yyParser*)yyp;
727 if( yypParser->yyidx<0 ){ 730 if( yypParser->yyidx<0 ){
728 #if YYSTACKDEPTH<=0 731 #if YYSTACKDEPTH<=0
729 if( yypParser->yystksz <=0 ){ 732 if( yypParser->yystksz <=0 ){
730 /*memset(&yyminorunion, 0, sizeof(yyminorunion));*/ 733 /*memset(&yyminorunion, 0, sizeof(yyminorunion));*/
731 yyminorunion = yyzerominor; 734 yyminorunion = yyzerominor;
732 yyStackOverflow(yypParser, &yyminorunion); 735 yyStackOverflow(yypParser, &yyminorunion);
733 return; 736 return;
734 } 737 }
735 #endif 738 #endif
736 yypParser->yyidx = 0; 739 yypParser->yyidx = 0;
737 yypParser->yyerrcnt = -1; 740 yypParser->yyerrcnt = -1;
738 yypParser->yystack[0].stateno = 0; 741 yypParser->yystack[0].stateno = 0;
739 yypParser->yystack[0].major = 0; 742 yypParser->yystack[0].major = 0;
740 } 743 }
741 yyminorunion.yy0 = yyminor; 744 yyminorunion.yy0 = yyminor;
745 #if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY)
742 yyendofinput = (yymajor==0); 746 yyendofinput = (yymajor==0);
747 #endif
743 ParseARG_STORE; 748 ParseARG_STORE;
744 749
745 #ifndef NDEBUG 750 #ifndef NDEBUG
746 if( yyTraceFILE ){ 751 if( yyTraceFILE ){
747 fprintf(yyTraceFILE,"%sInput %s\n",yyTracePrompt,yyTokenName[yymajor]); 752 fprintf(yyTraceFILE,"%sInput %s\n",yyTracePrompt,yyTokenName[yymajor]);
748 } 753 }
749 #endif 754 #endif
750 755
751 do{ 756 do{
752 yyact = yy_find_shift_action(yypParser,(YYCODETYPE)yymajor); 757 yyact = yy_find_shift_action(yypParser,(YYCODETYPE)yymajor);
753 if( yyact<YYNSTATE ){ 758 if( yyact<YYNSTATE ){
754 assert( !yyendofinput ); /* Impossible to shift the $ token */
755 yy_shift(yypParser,yyact,yymajor,&yyminorunion); 759 yy_shift(yypParser,yyact,yymajor,&yyminorunion);
756 yypParser->yyerrcnt--; 760 yypParser->yyerrcnt--;
757 yymajor = YYNOCODE; 761 yymajor = YYNOCODE;
758 }else if( yyact < YYNSTATE + YYNRULE ){ 762 }else if( yyact < YYNSTATE + YYNRULE ){
759 yy_reduce(yypParser,yyact-YYNSTATE); 763 yy_reduce(yypParser,yyact-YYNSTATE);
760 }else{ 764 }else{
761 assert( yyact == YY_ERROR_ACTION ); 765 assert( yyact == YY_ERROR_ACTION );
762 #ifdef YYERRORSYMBOL 766 #ifdef YYERRORSYMBOL
763 int yymx; 767 int yymx;
764 #endif 768 #endif
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
851 yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); 855 yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion);
852 if( yyendofinput ){ 856 if( yyendofinput ){
853 yy_parse_failed(yypParser); 857 yy_parse_failed(yypParser);
854 } 858 }
855 yymajor = YYNOCODE; 859 yymajor = YYNOCODE;
856 #endif 860 #endif
857 } 861 }
858 }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 ); 862 }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 );
859 return; 863 return;
860 } 864 }
OLDNEW
« no previous file with comments | « third_party/sqlite/sqlite-src-3080704/src/legacy.c ('k') | third_party/sqlite/sqlite-src-3080704/src/loadext.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698