/ Check-in [c6dfc59e]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Fix to the error handling logic in the Lemon parser template. This does not affect SQLite since SQLite does not use that part of the Lemon parser template.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: c6dfc59eb12a02d35b708b5d94239377c79f688fa572f72bad51a157b1bf599c
User & Date: drh 2018-11-27 14:03:11
Context
2018-11-27
14:34
Add a simple test case for Lemon. Always include assert.h in the Lemon-generated parser. check-in: 9c9c46dc user: drh tags: trunk
14:03
Fix to the error handling logic in the Lemon parser template. This does not affect SQLite since SQLite does not use that part of the Lemon parser template. check-in: c6dfc59e user: drh tags: trunk
09:57
Add an "#ifndef SQLITE_DISABLE_FTS4_DEFERRED" block around function fts3EvalDeferredPhrase() in fts3 in order to silence a compiler warning. check-in: 6f4b0d04 user: dan tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to tool/lempar.c.

983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
             yyTracePrompt,yyTokenName[yymajor]);
        }
#endif
        yy_destructor(yypParser, (YYCODETYPE)yymajor, &yyminorunion);
        yymajor = YYNOCODE;
      }else{
        while( yypParser->yytos >= yypParser->yystack
            && yymx != YYERRORSYMBOL
            && (yyact = yy_find_reduce_action(
                        yypParser->yytos->stateno,
                        YYERRORSYMBOL)) >= YY_MIN_REDUCE
        ){
          yy_pop_parser_stack(yypParser);
        }
        if( yypParser->yytos < yypParser->yystack || yymajor==0 ){
          yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion);
          yy_parse_failed(yypParser);
#ifndef YYNOERRORRECOVERY







<


|







983
984
985
986
987
988
989

990
991
992
993
994
995
996
997
998
999
             yyTracePrompt,yyTokenName[yymajor]);
        }
#endif
        yy_destructor(yypParser, (YYCODETYPE)yymajor, &yyminorunion);
        yymajor = YYNOCODE;
      }else{
        while( yypParser->yytos >= yypParser->yystack

            && (yyact = yy_find_reduce_action(
                        yypParser->yytos->stateno,
                        YYERRORSYMBOL)) > YY_MAX_SHIFTREDUCE
        ){
          yy_pop_parser_stack(yypParser);
        }
        if( yypParser->yytos < yypParser->yystack || yymajor==0 ){
          yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion);
          yy_parse_failed(yypParser);
#ifndef YYNOERRORRECOVERY