SQLite

History of tool/lemon.c of tip
Login

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

History of file tool/lemon.c at check-in tip

2024-03-15
17:04
[2eaee614] part of check-in [ce009205] Fix (totally harmless) memory leaks in Lemon to avoid warnings during ASAN builds. (check-in: [ce009205] user: drh branch: trunk, size: 185355)
2024-02-04
04:01
[7f264d5d] part of check-in [e52c8742] Fix harmless compiler warnings seen with MSVC. (check-in: [e52c8742] user: mistachkin branch: trunk, size: 183339)
2024-01-27
02:21
[db6c77d8] part of check-in [f7290db6] Optimizations to ParseFinalize() to make up for the extra cleanup associated with the allocated parser stack. This branch now runs faster than trunk and is less than 300 bytes larger. (check-in: [f7290db6] user: drh branch: growable-parser-stack, size: 183343)
2024-01-26
20:34
[7e5c3c27] part of check-in [3fd06290] Experimental changes that prevent parser stack overflows by growing the parser stack with heap memory when it reaches its limit. (check-in: [3fd06290] user: drh branch: growable-parser-stack, size: 182808)
2023-06-08
12:52
[19e368bc] part of check-in [c47a4dbd] Enhance Lemon so that it remembers which -D command-line options are actually used in the grammar and includes a list of all such options in the header of the generated output file. (check-in: [c47a4dbd] user: drh branch: trunk, size: 181915)
2022-04-07
14:13
[ea5c8589] part of check-in [201569e0] Fix the parsing of C-style comments in Lemon, as reported by forum post b6edc69548. This has no affect on SQLite itself. (check-in: [201569e0] user: drh branch: trunk, size: 181124)
2022-01-14
23:28
[1c5a14f6] part of check-in [6d2f95a4] Remove code from lemon.c that was made superfluous by [1b22b42e59793af1|check-in 1b22b42e59793af1] in late 2017. (check-in: [6d2f95a4] user: drh branch: trunk, size: 181095)
2021-10-04
16:14
[25888183] part of check-in [f2f279b2] Fix harmless static analyzer warnings in auxiliary build tools, mkkeywordhash.c and lemon.c. No changes to the SQLite core. (check-in: [f2f279b2] user: drh branch: trunk, size: 181176)
2021-08-27
11:26
[dabeb668] part of check-in [106b5e53] Patch lemon to fix "error" token handling, according ot forum post e680f42f53090061. (check-in: [106b5e53] user: drh branch: trunk, size: 180698)
2021-03-28
20:44
[a5acddd3] part of check-in [36624d37] Document the "%token" directive for Lemon. This directive has been in place for a while, but was previously undocumented. (check-in: [36624d37] user: drh branch: trunk, size: 180626)
2021-01-07
16:10
[d44ba4f0] part of check-in [d1e22e2f] Fix harmless typos in comments per forum post 7849e58dd5 (check-in: [d1e22e2f] user: drh branch: trunk, size: 180625)
2020-09-21
20:18
[70eedc31] part of check-in [4591ee03] Fix harmless compiler warning seen with MSVC. (check-in: [4591ee03] user: mistachkin branch: trunk, size: 180623)
2020-09-20
12:10
[a20eb41b] part of check-in [de8ce22a] Attempt to silence harmless static analyzer warnings in Lemon and in the Lemon-generated parser. (check-in: [de8ce22a] user: drh branch: trunk, size: 180619)
2020-09-16
16:55
[28a06416] part of check-in [6c94ba4b] Fix harmless compiler warnings in Lemon. (check-in: [6c94ba4b] user: drh branch: trunk, size: 180588)
2020-09-05
06:21
[68f547da] part of check-in [430c5d1d] Fix a bug in Lemon that might cause it to crash if there is a multi-terminal token with a space following the "|" separator. This does not affect SQLite. (check-in: [430c5d1d] user: drh branch: trunk, size: 180576)
2020-09-01
19:02
[992ef3a1] part of check-in [a711e8cd] Fix harmless compiler warning. (check-in: [a711e8cd] user: mistachkin branch: trunk, size: 180559)
12:26
[01eff500] part of check-in [d34caf3b] In the Lemon output, add a prefix comment that explains that the output file is automatically generated and shows the name of the source file. (check-in: [d34caf3b] user: drh branch: trunk, size: 180583)
11:20
[5206111b] part of check-in [84d54eb3] Lemon updates: (1) include the #defines for all tokens in the generated C file, so that the C-file can be stand-alone. (2) If the grammar begins with a %include {...} directive on line one, make that directive the header for the generated C file. (3) Enhance the lemon.html documentation. (check-in: [84d54eb3] user: drh branch: trunk, size: 180421)
2020-07-29
16:18
[4ba6a723] part of check-in [a80ae2c9] Dozens and dozens of typo fixes in comments. This change adds no value to the end product and is disruptive, so it is questionable whether or not it will ever land on trunk. (check-in: [a80ae2c9] user: drh branch: typos, size: 179644)
2020-07-03
15:41
[600a58b9] part of check-in [951d22b7] In lemon, add "%if" and "%else" and allow boolean expressions as the argument to "%if", "%ifdef", and "%ifndef". (check-in: [951d22b7] user: drh branch: trunk, size: 179641)
2019-12-19
13:17
[a361b85f] part of check-in [fccfb8a9] Fix incorrect SQL generated by the Lemon change of the previous check-in. (check-in: [fccfb8a9] user: drh branch: trunk, size: 176899)
12:29
[ac63a7a2] part of check-in [329cbb37] Modify the parse.sql output file from Lemon so that the RULE table contains a column with the complete text of the rule. (check-in: [329cbb37] user: drh branch: trunk, size: 176895)
2019-12-12
00:20
[50f9d189] part of check-in [48ba5e5a] Fix goofy string formatting in lemon.c that dates from the K&R-C days. (check-in: [48ba5e5a] user: drh branch: trunk, size: 176900)
2019-12-11
18:53
[a53b48e0] part of check-in [4d6d2fc0] Improved tracing output from the LEMON-generated parser. (check-in: [4d6d2fc0] user: drh branch: trunk, size: 176721)
2019-12-10
20:41
[8c1abca6] part of check-in [136cdefb] Enhance LEMON to provide the ability to mark a rules as one that will never reduce due to intervention of actions. Use this new capability to designate the EXPLAIN rule as NEVER-REDUCES. (check-in: [136cdefb] user: drh branch: trunk, size: 176539)
2019-11-29
13:01
[fa7912ca] part of check-in [2c4f7148] Add comments in the parse.sql file to help demonstrate how rules are encoded. (check-in: [2c4f7148] user: drh branch: trunk, size: 176157)
12:51
[11dd73b0] part of check-in [3a82c554] Fix the parse.sql output file so that it is readable into a database where foreign keys are enforced. (check-in: [3a82c554] user: drh branch: trunk, size: 176074)
2019-11-26
02:22
[aff705f5] part of check-in [4dbd398d] Add the new -S option to the lemon parser generator to cause it to output SQL that describes the input grammar. (check-in: [4dbd398d] user: drh branch: trunk, size: 175977)
2019-09-11
15:25
[61d5f0af] part of check-in [980be173] Fix typo for one instance of line number handling in the Lemon tool. (check-in: [980be173] user: mistachkin branch: trunk, size: 173919)
2019-08-28
11:31
[c9848ef9] part of check-in [47d3e091] Further improvements to parser speed by enlarging lookup tables to eliminate the need to do range checking on the index prior to lookup. (check-in: [47d3e091] user: drh branch: lemon-optimization, size: 173916)
02:09
[3b40d248] part of check-in [bafd8723] Increase the size of the yy_lookahead table so that it is never necessary to down bounds checking on the index. (check-in: [bafd8723] user: drh branch: lemon-optimization, size: 173789)
2019-06-03
15:10
[bb641338] part of check-in [3a052429] Fix harmless compiler warning in lemon. (check-in: [3a052429] user: mistachkin branch: branch-3.28, size: 173116)
15:09
[cc43148d] part of check-in [2da0eea0] Fix harmless compiler warning in lemon. (check-in: [2da0eea0] user: mistachkin branch: trunk, size: 173249)
2019-05-10
16:16
[dbcb617f] part of check-in [ca068d82] Fix some harmless compiler warnings. (check-in: [ca068d82] user: mistachkin branch: warnings, size: 173253)
2019-04-30
14:26
[d02a2767] part of check-in [b6d7d42b] Fix an error message in the Lemon parser generator. (check-in: [b6d7d42b] user: drh branch: trunk, size: 173123)
2019-01-15
14:44
[900a15b9] part of check-in [1caff0fb] Fix a harmless memory leak in the Lemon parser generator utility program. (check-in: [1caff0fb] user: drh branch: trunk, size: 173120)
2018-12-03
23:57
[c9ba01f6] part of check-in [70fe8ec2] Reduce the size of the parser tables generated by Lemon by splitting the yyRuleInfo structure into separate yyRuleInfoLhs and yyRuleInfoNRhs arrays. (check-in: [70fe8ec2] user: drh branch: trunk, size: 173096)
2018-09-08
16:55
[60d1e1eb] part of check-in [8b4cf33a] Add a missing call to free() in Lemon. (check-in: [8b4cf33a] user: mistachkin branch: trunk, size: 172860)
2018-06-28
03:38
[93a321bd] part of check-in [c41d7079] Introduce the concept of "weak fallback" in the parser. A weak fallback only occurs if a syntax error would result otherwise. (check-in: [c41d7079] user: drh branch: weak-fallback, size: 173247)
2018-04-21
20:24
[33892e2a] part of check-in [dcf2bafc] Enhance LEMON to track which symbols actually carry semantic content. Output the list of symbols that do not carry content at the end of the report, but do not (yet) do anything else with the information. (check-in: [dcf2bafc] user: drh branch: trunk, size: 172841)
13:51
[735516a0] part of check-in [be47a6f5] Add the %extra_context directive to lemon, as an alternative to %extra_argument. Use this to improve the performance of the parser. (check-in: [be47a6f5] user: drh branch: trunk, size: 172007)
2018-04-20
20:47
[56eb42d9] part of check-in [9cd20475] Add the -dDIRECTORY command-line option to LEMON. (check-in: [9cd20475] user: drh branch: trunk, size: 170720)
2018-04-16
14:31
[3b5fb488] part of check-in [3b7801ac] Lemon enhancements: (1) Do not allocate space for the 'error' non-terminal if it is not used. (2) Fix an off-by-one problem so that 'unsigned char' can be used for symbol numbers if the number of symbols is 256. (check-in: [3b7801ac] user: drh branch: trunk, size: 170059)
2018-04-06
19:12
[c1a87d15] part of check-in [602fbd81] Enhance LEMON to show precendence of symbols and all rules in the report that is generated in parallel to the parser. (check-in: [602fbd81] user: drh branch: trunk, size: 170056)
2017-12-27
15:21
[7f773532] part of check-in [93792bc5] In LEMON, fix an off-by-one error that can make the lookahead table one byte too smal. (check-in: [93792bc5] user: drh branch: lemon-improvements, size: 169604)
2017-12-26
18:04
[d92031ad] part of check-in [1253a872] Add support for measuring and reporting coverage of the parser state machine using the SQLITE_TESTCTRL_PARSER_COVERAGE test-control. (check-in: [1253a872] user: drh branch: lemon-improvements, size: 169601)
2017-12-25
04:15
[c8d7ce4f] part of check-in [7eb0198d] Enhance LEMON so that it generates the action table in such a way that no range check is needed on the lookahead table to verify that the next input token is valid. This makes the lookahead table slightly larger (about 120 bytes) but helps the parser to run faster. (check-in: [7eb0198d] user: drh branch: lemon-improvements, size: 169523)
2017-12-24
23:38
[7c6919d9] part of check-in [7bfe7a36] In the LEMON-generated parser, rearrange the meanings of integer action codes so that reduce actions occur last. This means that the most common case (reduce actions) can be recognized with a single comparison operation, thus speeding up the main parser loop, slightly. (check-in: [7bfe7a36] user: drh branch: lemon-improvements, size: 168266)
2017-08-02
03:21
[e6056373] part of check-in [a6e4c5ae] Add the "%token" control to the lemon parser. Not currently used by SQLite. (check-in: [a6e4c5ae] user: drh branch: trunk, size: 167306)
2017-06-28
13:47
[5a04dff2] part of check-in [b362f0d8] In the lemon-generated parser, store the number of symbols on the RHS of each rule as a negative number and add it to the stack pointer, rather than storing the value as a positive and subtracting it. This makes the parser faster. (check-in: [b362f0d8] user: drh branch: trunk, size: 166452)
11:56
[8f18c158] part of check-in [c46d94a8] In the lemon-generated parser, automatically promote SHIFTREDUCE actions on nonterminal systems to pure REDUCE actions, for a performance enhancement. (check-in: [c46d94a8] user: drh branch: trunk, size: 166451)
2017-04-26
04:32
[f4f10457] part of check-in [304689f8] Fix a subtle bug in Lemon discovered and reported on the mailing list by Kelvin Sherlock, who also suggested the correct fix. (check-in: [304689f8] user: drh branch: trunk, size: 166206)
2017-04-14
19:46
[6b0cdffb] part of check-in [d78355c8] Remove end-of-line whitespace from lemon.c. (check-in: [d78355c8] user: drh branch: trunk, size: 166206)
19:44
[c02a8dff] part of check-in [a5379905] Fix some left-over K&R-C constructs in lemon.c. No changes to the core. (check-in: [a5379905] user: drh branch: trunk, size: 166236)
2016-12-29
19:48
[5ccba178] part of check-in [afcdc4a6] Fix harmless compiler warnings in the command-line shell and in Lemon. (check-in: [afcdc4a6] user: drh branch: trunk, size: 166092)
2016-08-16
16:46
[e4fb7d88] part of check-in [f9035b8e] Fix a bug in destructor processing of Lemon. That has no impact on the SQLite grammar. The bug was introduced by prior work to optimize the Lemon-generated parser used by SQLite. (check-in: [f9035b8e] user: drh branch: trunk, size: 166115)
2016-08-10
13:30
[e3aa9ba3] part of check-in [83622f3f] Improved comments on the lempar.c parser template. Adjust the YY_SHIFT_USE_DFLT constant in the Lemon-generated parser tables so as to guarantee that it is always out of range of the yy_lookahead[] table. (check-in: [83622f3f] user: drh branch: trunk, size: 165941)
2016-05-24
18:55
[09a96bed] part of check-in [41fd46e2] Enhance Lemon and the parser template so that it can once again build parsers that have no unreachable branches. (check-in: [41fd46e2] user: drh branch: trunk, size: 165899)
2016-05-23
16:15
[b4da2f01] part of check-in [a86e782a] Lemon enhancement: avoid unnecessary reduce actions that convert one non-terminal into another but have no side effects. (check-in: [a86e782a] user: drh branch: trunk, size: 165286)
14:24
[b622032d] part of check-in [b91a5b82] Fix comment typos and improve clarity of presention in Lemon. The output should be identical. (check-in: [b91a5b82] user: drh branch: trunk, size: 163963)
2016-04-30
17:19
[f38a5510] part of check-in [762bdc55] More bug fixes to Lemon identified by Kelvin Sherlock. None of these have any impact on SQLite. (check-in: [762bdc55] user: drh branch: trunk, size: 163610)
2016-04-29
11:28
[83318dff] part of check-in [4792d6db] Lemon bug fix: Do not merge action routines unless their destructors are also identical. Problem and suggested fix reported on the mailing list by Kelvin Sherlock. (check-in: [4792d6db] user: drh branch: trunk, size: 163417)
2016-03-16
19:45
[cfbfe061] part of check-in [d5712f21] Enhance Lemon so that it reorders the reduce rules such that rules without actions occur at the end and so that the first rule is number 0. This reduces the size of the jump table on the reduce switch, and helps the parser to run faster. (check-in: [d5712f21] user: drh branch: trunk, size: 163334)
2016-02-17
12:34
[251f5c3f] part of check-in [417e7777] More agressive use of /*A-overwrites-X*/ in the parser. Fix an off-by-one error in parser stack overflow detection. (check-in: [417e7777] user: drh branch: parser-performance, size: 161935)
04:33
[31a7325a] part of check-in [5cfe9545] Enhance Lemon so that if reduce code contains a comment of the form "/*A-overwrites-X*/" then a LHS label A is allowed to overwrite the RHS label X. (check-in: [5cfe9545] user: drh branch: parser-performance, size: 161616)
01:46
[61844c3d] part of check-in [ef95a7d6] Further improvements to the Lemon-generated code for yy_reduce(). (check-in: [ef95a7d6] user: drh branch: parser-performance, size: 161009)
01:18
[501104fc] part of check-in [4bb94c7c] In Lemon, add the ability for the left-most RHS label to be the same as the LHS label, causing the LHS values to be written directly into the stack. (check-in: [4bb94c7c] user: drh branch: parser-performance, size: 160871)
2015-10-29
13:48
[799e73e1] part of check-in [34eb6911] Fix uses of ctype functions (ex: isspace()) on signed characters in test programs and in some obscure extensions. No changes to the core. (check-in: [34eb6911] user: drh branch: trunk, size: 157585)
2015-09-08
21:16
[039f813b] part of check-in [fe9ffe5e] Remove an unused local variable from Lemon. (check-in: [fe9ffe5e] user: drh branch: trunk, size: 157301)
2015-09-07
23:40
[d7c82de6] part of check-in [98667722] Minor tweaks to Lemon. (check-in: [98667722] user: drh branch: trunk, size: 157309)
18:23
[0c455691] part of check-in [531c3974] For the Lemon-generated parser, add a new action type SHIFTREDUCE and use it to further compress the parser tables and improve parser performance. (check-in: [531c3974] user: drh branch: lemon-update, size: 156917)
14:22
[a110c385] part of check-in [b6ffb7e4] In the "parse.out" output file from Lemon, show addition the complete text of rules on reduce actions. (check-in: [b6ffb7e4] user: drh branch: trunk, size: 154994)
02:23
[cc515b02] part of check-in [809503e4] Improved "Parser Statistics" output (the -s option) for the Lemon parser generator. (check-in: [809503e4] user: drh branch: trunk, size: 154023)
2015-09-04
18:03
[b12cb605] part of check-in [1efece95] Fix over-length source code lines in Lemon. (check-in: [1efece95] user: drh branch: trunk, size: 152852)
2015-04-19
21:43
[b9109f59] part of check-in [d05becd8] Fix harmless compiler warnings seen with MSVC 2015. (check-in: [d05becd8] user: mistachkin branch: vsix2015, size: 152662)
2015-03-31
15:15
[ae5f61e3] part of check-in [bbe7dcda] Fix harmless compiler warnings in lemon.c (check-in: [bbe7dcda] user: drh branch: trunk, size: 152591)
2015-01-12
18:02
[1864c4fe] part of check-in [856dd245] Work in progress on fixing harmless compiler warnings when using -W4 and MSVC. (check-in: [856dd245] user: mistachkin branch: msvcW4, size: 152612)
2015-01-01
19:11
[20f3132a] part of check-in [da408d12] Enhance the "lemon" executable so that it ignores -f, -W, -O, and -I command-line options. This permits most of the same options that are passed to the compiler to also be harmlessly passed to lemon, and thus simplifies makefiles. (check-in: [da408d12] user: drh branch: trunk, size: 152593)
2014-06-09
13:11
[3ff0fec2] part of check-in [1925f3a0] Modify the %nonassoc directive in lemon so that it generates a run-time error rather than a parsing conflict. This changes is due to a bug report on the mailing list. SQLite does not use the %nonassoc directive in its grammar so this change does not affect SQLite. (check-in: [1925f3a0] user: drh branch: trunk, size: 152226)
2014-01-14
10:17
[07aba627] part of check-in [f61a7058] Fix harmless compiler warning in LEMON. (check-in: [f61a7058] user: mistachkin branch: trunk, size: 152247)
2014-01-11
12:52
[6842b2e7] part of check-in [29ba458d] In LEMON, limit the size of the grammar file to 100MB. This ensures that the program will never experience integer overflow. To be doubly sure, use calloc() instead of malloc() when allocating arrays. (check-in: [29ba458d] user: drh branch: trunk, size: 152253)
03:27
[624b24c5] part of check-in [8eb48c04] Add the "%token_class" directive to the LEMON parser generator. This opens up the possibility of simplifying the parser. Also remove all calls to sprintf(), strcpy(), and strcat() from LEMON to avoid compiler warnings on OpenBSD. (Aside: It is this change to avoid harmless compiler warnings that was the cause of the reason spat of bugs.) (check-in: [8eb48c04] user: drh branch: trunk, size: 152351)
03:06
[4a3d4a57] part of check-in [da7890ca] In LEMON, fix a bug in the text formatter introduced by the previous commit. Also add the new "%token_class" directive for defining symbolic names that stand any one of a collection of tokens. (check-in: [da7890ca] user: drh branch: lemon-updates, size: 152351)
2014-01-10
23:21
[04f60c89] part of check-in [e43c522d] Do not use sprintf(), strcpy() or strcat() in the implementation of the lemon parser generator tool, to avoid compiler warnings in OpenBSD. (check-in: [e43c522d] user: drh branch: lemon-updates, size: 149857)
2013-10-11
23:01
[796930d5] part of check-in [62959c0c] Fix a harmless compiler warning in lemon.c. (check-in: [62959c0c] user: drh branch: trunk, size: 147101)
2013-10-02
20:46
[323e54ac] part of check-in [8d399a03] In the lemon parser generator, change all hashes to unsigned to avoid potential problems with signed integer overflow. (check-in: [8d399a03] user: drh branch: trunk, size: 147091)
2012-08-20
15:53
[680980c7] part of check-in [7edd10a9] Remove tab characters from source code files. Replace them with spaces. (check-in: [7edd10a9] user: drh branch: trunk, size: 147005)
2012-06-16
15:26
[8b7afc12] part of check-in [0c2fb18d] In Lemon, when comparing the output to the *.h file to see if it has changed, make sure that the proposed new output and the preexisting output are the same size before deciding that they are the same. (check-in: [0c2fb18d] user: drh branch: trunk, size: 146733)
2012-04-18
09:59
[90f46af3] part of check-in [4a5641cc] Fix a typecast problem in lemon that could cause problems on 64-bit machines. (check-in: [4a5641cc] user: drh branch: trunk, size: 146672)
2012-01-09
14:19
[445f1899] part of check-in [393fc78a] Cosmetic changes to lemon. No changes to core functionality nor impact on SQLite. (check-in: [393fc78a] user: drh branch: trunk, size: 146680)
2012-01-07
15:17
[b6a92ac0] part of check-in [ce32775b] Fix a bug in lemon in computation of which non-terminals can generate an empty string. This bug and the fix make absolutely no difference for the grammar used by SQLite, but it can make a difference when lemon is used in other grammars. (check-in: [ce32775b] user: drh branch: trunk, size: 146858)
2011-08-30
00:58
[949328f6] part of check-in [e95cf2c5] Fix a total unimportant file descriptor leak in lemon. This is to silence warning messages. (check-in: [e95cf2c5] user: drh branch: trunk, size: 146814)
2011-06-20
18:27
[d51c68d4] part of check-in [76b18b2b] Fix compiler warnings in lemon by removing some of the code added by Ryan Gordon in [1e8b842039cc0]. (check-in: [76b18b2b] user: drh branch: trunk, size: 146782)
2011-06-02
15:48
[2f182cf5] part of check-in [efb20b9d] Add a missing check for out-of-memory in the lemon code generator. (check-in: [efb20b9d] user: drh branch: trunk, size: 147934)
2010-11-23
20:55
[dfd81a51] part of check-in [1541ae3f] Cherry-pick the lemon.c updates out of the lemon-update-2010 branch into the trunk. (check-in: [1541ae3f] user: drh branch: trunk, size: 147871)
2010-11-19
04:22
[aaf110d0] part of check-in [892c5f37] Lemon: Fixed compiler warning on Visual C++. (check-in: [892c5f37] user: icculus branch: lemon-update-2010, size: 147088)
04:19
[f94ea13a] part of check-in [bd03d333] Lemon: correcting previous win32 access() fix.

The previous fix caused link errors when compiled as C++. (check-in: [bd03d333] user: icculus branch: lemon-update-2010, size: 147080)

03:55
[0fd01011] part of check-in [0b945101] Lemon: Patched to compile with Visual Studio. (check-in: [0b945101] user: icculus branch: lemon-update-2010, size: 147013)
2010-07-19
01:52
[fe890e2d] part of check-in [a2eaf829] Improvements to the formatting of parse.out file from Lemon. Add the -r option to Lemon to disable the state sorting, making debugging easier. (check-in: [a2eaf829] user: drh branch: trunk, size: 147770)
2010-07-18
11:35
[c6b68d7a] part of check-in [fb6a59b0] Add the -p option to lemon to cause conflicts resolved by precedence rules to appear in the parse.out file. (check-in: [fb6a59b0] user: drh branch: trunk, size: 147560)
2010-03-03
17:09
[6958cb99] part of check-in [83495128] Fixed compiler warning on Visual Studio. (check-in: [83495128] user: icculus branch: lemon-update-2010, size: 146987)
17:06
[b01f96b2] part of check-in [64372800] Whoops, that shouldn't have been in the merge. Removed buggy code. (check-in: [64372800] user: icculus branch: lemon-update-2010, size: 146979)
17:00
[66831564] part of check-in [89d8f98e] Use Strsafe() instead of strdup(). Fixes Visual Studio complaining. (check-in: [89d8f98e] user: icculus branch: lemon-update-2010, size: 147301)
16:54
[497c3d3d] part of check-in [88b466ba] Merged trunk to lemon-update-2010 branch. (check-in: [88b466ba] user: icculus branch: lemon-update-2010, size: 147353)
2010-02-17
20:31
[651d2564] part of check-in [721f33e7] Report error if the grammar has multiple %type lines for the same nonterminal. (check-in: [721f33e7] user: icculus branch: lemon-update-2010, size: 147031)
20:22
[ec4def6e] part of check-in [f96add89] Fixed % formatting in some printf-style strings. (check-in: [f96add89] user: icculus branch: lemon-update-2010, size: 146717)
20:19
[8e89d9fe] part of check-in [b3839f2a] Corrected error message (cut-and-paste bug). (check-in: [b3839f2a] user: icculus branch: lemon-update-2010, size: 146715)
05:40
[dcbb38b9] part of check-in [ca570a02] Removed unused variables. (check-in: [ca570a02] user: icculus branch: lemon-update-2010, size: 146721)
2010-02-16
16:09
[f95a5bc0] part of check-in [b43ac330] Removed %expect directive, on drh's advice. (check-in: [b43ac330] user: icculus branch: lemon-update-2010, size: 146740)
16:07
[6f896924] part of check-in [673d470c] Patched to compile. Accidentally removed va_list declaration. (check-in: [673d470c] user: icculus branch: lemon-update-2010, size: 147892)
2010-02-15
00:01
[087dcf20] part of check-in [132ea4e5] Removed the 80-char line formatting for ErrorMsg(), on dhr's suggestion. (check-in: [132ea4e5] user: icculus branch: lemon-update-2010, size: 147878)
2010-02-14
17:14
[a079c080] part of check-in [75a1060b] Make Lemon able to compile as C++ code. (check-in: [75a1060b] user: icculus branch: lemon-update-2010, size: 149952)
05:42
[60833e52] part of check-in [90602030] Added option to not clip error output.

This is useful for IDEs and other tools that benefit from full path information, so they can jump directly to the error line in the source code. (check-in: [90602030] user: icculus branch: lemon-update-2010, size: 149440)

05:34
[83edd172] part of check-in [e38c08d9] Delete output files if this is a failed run.

Otherwise, the fail will stop a Makefile from progressing, but if you immediately run the build again, Make will think the output files are up to date, since they are newer (albeit incomplete/incorrect). (check-in: [e38c08d9] user: icculus branch: lemon-update-2010, size: 149093)

05:19
[41510485] part of check-in [d8bab8cf] Added %expect directive, to consider a certain number of conflicts "correct."

This has the side effect of changing the process exit code to never overflow. (check-in: [d8bab8cf] user: icculus branch: lemon-update-2010, size: 147889)

00:48
[bcaf8e92] part of check-in [e6cbe1e5] Added -T option, to specify a template filename on the command line.

The default is still "lempar.c", though. (check-in: [e6cbe1e5] user: icculus branch: lemon-update-2010, size: 146629)

2010-01-07
03:53
[10200037] part of check-in [e22c090f] Another attempt at fixing the table generator in lemon. Again, this does not effect the SQLite grammar. (check-in: [e22c090f] user: drh branch: trunk, size: 145830)
2010-01-06
13:07
[f3a625c3] part of check-in [077a6bee] Fix an issue with lemon generating incorrect grammars. This issue does not effect SQLite. (check-in: [077a6bee] user: drh branch: trunk, size: 144429)
2009-11-03
19:18
[3088e4de] part of check-in [27d8e684] Enhancements to lemon to generate more compact action tables and to avoid making array bounds tests that can never fail on action table calculations. (check-in: [27d8e684] user: drh branch: trunk, size: 144350)
13:02
[ee5e39ce] part of check-in [d66a0f31] Adjust the lemon implementation so that it always computes the same PDA regardless of qsort() implementation on the host platform. In other words, make all sorts in lemon stable. (check-in: [d66a0f31] user: drh branch: trunk, size: 143786)
2009-06-12
17:46
[0eb9829c] part of check-in [caebfe82] Change lemon so that it does not generate yytestcase() macros on destructor cases since destructors are commonly unreachable in a reasonable grammar. For the reduce-rule switch, gather all no-ops into the "default:" case. (CVS 6757) (check-in: [caebfe82] user: drh branch: trunk, size: 143402)
15:47
[890d999c] part of check-in [a5b182f9] The previous check-in ((6755)) put in more yytestcase() macros than are called for. This check-in addresses that problem. (CVS 6756) (check-in: [a5b182f9] user: drh branch: trunk, size: 143082)
13:53
[19eb5bf6] part of check-in [fe9c9177] The lemon parser generator now inserts yytestcase() macros on reduce action and on each destructor, to verify that all have been executed. yytestcase() is a no-op by default but can be set to something more useful inside of %include. (CVS 6755) (check-in: [fe9c9177] user: drh branch: trunk, size: 142923)
12:50
[ef864b95] part of check-in [9cfbe2ba] In lemon: omit unused entries from the end of the yyFallback array. (CVS 6754) (check-in: [9cfbe2ba] user: drh branch: trunk, size: 142740)
2009-04-05
15:18
[1a94e701] part of check-in [4424aee9] Fix a segfault in Lemon that occurs if the input grammar does not define a type for tokens. This does not effect SQLite since the SQLite grammar does define a type for tokens. (CVS 6451) (check-in: [4424aee9] user: drh branch: trunk, size: 142657)
2008-12-11
02:20
[0f65442d] part of check-in [76c8f6ba] Initialize the yyzerominor constant generated by lemon. (CVS 6016) (check-in: [76c8f6ba] user: drh branch: trunk, size: 142638)
2008-12-10
20:10
[9f21067f] part of check-in [ccb9393a] Added option (-l) to lemon parser to have it skip printing line numbers (#line ... ). (CVS 6008) (check-in: [ccb9393a] user: shane branch: trunk, size: 142594)
2008-08-13
20:09
[6cb39632] part of check-in [a519cdb2] Explicit casts of the return from strlen() to int in lemon. This has no effect on SQLite. It has no effect on any lemon-generated parser with a grammar that is less than 2GB in size. Ticket #3293. (CVS 5564) (check-in: [a519cdb2] user: drh branch: trunk, size: 142207)
20:04
[b1079f06] part of check-in [4887e8fc] Fix token destructors in lemon generated parsers. Does not effect SQLite. Ticket #3299. (CVS 5563) (check-in: [4887e8fc] user: drh branch: trunk, size: 141807)
2008-07-28
19:34
[bd3f56f7] part of check-in [e48f9697] Implement the "lookaside" memory allocation cache. Use of this cache makes the speed1.test script run about 15% faster. Added new interfaces to control the cache. (CVS 5488) (check-in: [e48f9697] user: drh branch: trunk, size: 141797)
2008-07-14
12:27
[13e9c37a] part of check-in [37214769] Fix additional typos in comments within lemon. Ticket #3215. (CVS 5405) (check-in: [37214769] user: drh branch: trunk, size: 141796)
12:21
[e307368d] part of check-in [dc697c26] Fix a bug in the #line generator of lemon. Ticket #3214. (CVS 5404) (check-in: [dc697c26] user: drh branch: trunk, size: 141796)
2008-07-01
17:13
[f1f54e93] part of check-in [3447086c] In lemon: coalesce identical destructors. (CVS 5335) (check-in: [3447086c] user: drh branch: trunk, size: 141782)
16:34
[b7ea2ab7] part of check-in [5c9cc22c] In Lemon, if a non-terminal has the same type as a terminal, then reuse the terminal type in the YYMINORTYPE union for the non-terminal. This gives better table compression. (CVS 5334) (check-in: [5c9cc22c] user: drh branch: trunk, size: 140950)
2008-04-27
22:19
[a9c51c1e] part of check-in [f22fa11b] Allow multiple occurrances of %include in lemon input files. Ticket #3001. (CVS 5053) (check-in: [f22fa11b] user: drh branch: trunk, size: 140862)
2008-01-27
10:35
[1dc8d53c] part of check-in [88846195] remove an unused variable (CVS 4751) (check-in: [88846195] user: rse branch: trunk, size: 141106)
2008-01-22
01:48
[5d1731de] part of check-in [2a0bc1e1] Changes to lemon to generate additional comments in the output file and to remove unreachable code. Additional test cases for improved test coverage. (CVS 4736) (check-in: [2a0bc1e1] user: drh branch: trunk, size: 141115)
2007-12-21
00:02
[1c5a788b] part of check-in [5283e0d1] Fix some issues with lemon. Tickets #2852 and #2835. (CVS 4641) (check-in: [5283e0d1] user: drh branch: trunk, size: 140509)
2007-10-05
16:16
[5b243377] part of check-in [1c68d934] Changes lemon so that the generated parser does not accept prior to seeing the EOF token. This is a lemon change only and does not effect SQLite. Ticket #2550. (CVS 4473) (check-in: [1c68d934] user: drh branch: trunk, size: 140039)
2007-09-20
11:34
[1f8c0ee2] part of check-in [d748694f] get rid of remaining GCC 4.3 -Wall compiler warnings by initializing two variables and one structure properly (although the code path was already rather safe) (CVS 4439) (check-in: [d748694f] user: rse branch: trunk, size: 139906)
2007-08-23
02:50
[0ab4cca4] part of check-in [e4e74cd0] Change names of constants in lemon.c to work around name conflicts on Solaris. Ticket #2583. (CVS 4274) (check-in: [e4e74cd0] user: drh branch: trunk, size: 139865)
2007-07-30
18:31
[265ab88e] part of check-in [5955a77d] "extern" declarations inside function bodies are not every compiler's favorite, so move to global scope. Additionally, at least under Unix environment use <unistd.h> to get the proper prototype instead of using a K&R-style own declaration. (CVS 4190) (check-in: [5955a77d] user: rse branch: trunk, size: 139821)
2007-07-18
18:16
[995d20ec] part of check-in [7ef2aaf7] Additional diagnostics added to the "out" file generated by lemon. (CVS 4160) (check-in: [7ef2aaf7] user: drh branch: trunk, size: 139772)
2007-03-29
20:13
[c8c8b25a] part of check-in [6195af49] Fix to token destructors in Lemon. This does not impact SQLite. Ticket #2175. (CVS 3753) (check-in: [6195af49] user: drh branch: trunk, size: 139433)
01:44
[3ac82886] part of check-in [06719b74] Lemon change: compile the resulting parser with -DYYSTACKDEPTH=0 or set the "%stack_size" parameter to 0 in the grammar and the parser stack will be dynamically allocated using realloc() and free(). The default behavior is to have a finite depth stack. (CVS 3738) (check-in: [06719b74] user: drh branch: trunk, size: 139371)
2007-02-22
23:06
[d3dff81e] part of check-in [d8845ac1] Make the depth of the pushdown automaton stack generated by lemon changable at compile-time using -DYYSTACKDEPTH=<number>. (CVS 3654) (check-in: [d8845ac1] user: drh branch: trunk, size: 139603)
2007-01-16
03:09
[2938bec5] part of check-in [0c5c1b93] Make sure the parser generated by lemon always calls destructors on unused symbols, even if there is no action following the rule. Ticket #2171. (CVS 3593) (check-in: [0c5c1b93] user: drh branch: trunk, size: 139513)
2007-01-12
23:09
[29d1bd8d] part of check-in [f4ee5d83] Fix a bug in lemon. The code in which the error appears might well be unreachable. The changes does not effect the code that is generated for the SQLite parser. Ticket #2164. (CVS 3591) (check-in: [f4ee5d83] user: drh branch: trunk, size: 139482)
2006-12-14
01:06
[c200a81e] part of check-in [f2ad230f] Fix a bug in lemon that leads to an assertion fault given an invalid grammar. The bug and this fix do not effect on SQLite. Ticket #2107. (CVS 3528) (check-in: [f2ad230f] user: drh branch: trunk, size: 139483)
2006-10-13
12:25
[4e62a711] part of check-in [81daedcf] Avoid expanding %d contained in the action of a lemon parser rule. Ticket #1063. This is a fix for lemon only. It does not effect SQLite. (CVS 3476) (check-in: [81daedcf] user: drh branch: trunk, size: 139555)
2006-07-17
00:19
[b71e494b] part of check-in [4207ebc4] Fix lemon so that it does not crash on a empty reduce action. Ticket #1892. (CVS 3333) (check-in: [4207ebc4] user: drh branch: trunk, size: 139548)
2006-06-13
13:27
[c0ff92f7] part of check-in [55392922] Lemon correctly recognizes an empty grammar and errors out. Fix for a bug reported on the sqlite-users mailing list. (CVS 3226) (check-in: [55392922] user: drh branch: trunk, size: 139525)
2006-06-10
13:29
[64aa2436] part of check-in [66370cb9] Basic parsing of CREATE VIRTUAL TABLE statements. (CVS 3210) (check-in: [66370cb9] user: drh branch: trunk, size: 139833)
2006-03-06
20:55
[b0b881c1] part of check-in [e510e6dd] Code changes resulting from Coverity analysis. http://scan.coverity.com/ Found 1 potential segfault in sqlite3_mprintf(). Also 2 failures to fclose() following a malloc() failure. And lots of cases where unnecessary conditionals could be removed from the code. (CVS 3126) (check-in: [e510e6dd] user: drh branch: trunk, size: 138657)
2005-11-06
04:06
[26d271a7] part of check-in [f39974eb] About 0.5KiB of additional compression in the parser tables. (CVS 2764) (check-in: [f39974eb] user: drh branch: trunk, size: 138638)
2005-11-05
15:04
[0cedabac] part of check-in [86ac1147] Improved table compression in lemon reduces the overall library size by about 1.5KiB. (CVS 2761) (check-in: [86ac1147] user: drh branch: trunk, size: 135393)
2005-02-16
03:35
[c88936c6] part of check-in [97c7aaf1] Patch the command-line error message printing for lemon. Ticket #1120. (CVS 2345) (check-in: [97c7aaf1] user: drh branch: trunk, size: 134039)
2005-01-23
22:41
[4a3b5ccc] part of check-in [4daf1d1f] Minor changes to avoid warnings on some compilers. (CVS 2267) (check-in: [4daf1d1f] user: danielk1977 branch: trunk, size: 134052)
2005-01-13
23:54
[eb3b2bbe] part of check-in [7113b5ed] Fix a bug in lemon that does not effect SQLite. Ticket #1068. (CVS 2208) (check-in: [7113b5ed] user: drh branch: trunk, size: 134047)
2004-10-06
15:41
[250b30bc] part of check-in [d790c84c] Convert many constants to have type "const". (CVS 2006) (check-in: [d790c84c] user: drh branch: trunk, size: 134047)
2004-09-10
00:14
[325099f6] part of check-in [b5b2e3db] In lemon, allows open() using the "b" option to avoid \r problems on windows. Ticket #897. (CVS 1956) (check-in: [b5b2e3db] user: drh branch: trunk, size: 134017)
2004-09-09
14:01
[f11acad4] part of check-in [13fba17e] Fix lemon so that inserted code always ends in a newline. Ticket #895. (CVS 1955) (check-in: [13fba17e] user: drh branch: trunk, size: 134012)
2004-09-07
11:28
[b64210ca] part of check-in [d53047cb] Lemon escapes backslashes in filenames in #line directives it generates. Ticket #892. (CVS 1943) (check-in: [d53047cb] user: drh branch: trunk, size: 133948)
2004-08-30
14:22
[ece41a3c] part of check-in [acfc5918] Remove the \001 character that lemon inserts automatically in its output file. The need for this character has expired and it creates confusion for users. Ticket #877 (CVS 1920) (check-in: [acfc5918] user: drh branch: trunk, size: 133713)
2004-08-19
15:12
[0bae9c67] part of check-in [28215096] Enhance lemon so that a @X instead of just X in the code expands to the major token value rather than the minor token value. Use this to make the parser a few hundred bytes smaller. (CVS 1895) (check-in: [28215096] user: drh branch: trunk, size: 133744)
2004-07-20
14:06
[9ebd2cae] part of check-in [3c5aa850] Lemon collapses common destructors and reduce actions into a single case. (CVS 1837) (check-in: [3c5aa850] user: drh branch: trunk, size: 133111)
12:45
[b771c514] part of check-in [522ff721] Add the '%ifdef' capability to lemon. Other minor changes. (CVS 1836) (check-in: [522ff721] user: drh branch: trunk, size: 131086)
2004-04-24
12:59
[db6a3bfa] part of check-in [b8b8ce5c] Changes to lemon.c so that it compiles on OpenWatcom 1.3. Ticket #665. (CVS 1307) (check-in: [b8b8ce5c] user: drh branch: version_2, size: 128521)
2004-04-23
23:37
[f4fb7226] part of check-in [635f674d] Add some extra debugging logic to lemon.c. Ticket #692. (CVS 1304) (check-in: [635f674d] user: drh branch: version_2, size: 128560)
2004-02-22
00:08
[38a39c62] part of check-in [f36b122d] Do not sort terminal symbols by name. The terminals remain in the same order that they are encountered in the grammar file. This results in parse tables that are 25% smaller. (CVS 1261) (check-in: [f36b122d] user: drh branch: trunk, size: 128511)
2004-02-19
18:41
[0bd76409] part of check-in [8d3e9249] Fix a bug in the parser table compression algorithm of lemon. (CVS 1249) (check-in: [8d3e9249] user: drh branch: trunk, size: 127978)
2003-10-21
16:34
[e37dcb5b] part of check-in [c0d1b269] Fix bugs in lemon associated with the change to a perfect hash table. (CVS 1113) (check-in: [c0d1b269] user: drh branch: trunk, size: 127980)
13:16
[37d14935] part of check-in [4f955c00] Convert lemon to use a single perfect hash table for storing the actions. This should make the resulting parser both smaller and faster. (CVS 1112) (check-in: [4f955c00] user: drh branch: trunk, size: 126601)
2003-05-13
00:34
[93db920d] part of check-in [b59d9033] A change to lemon related to ticket #313. (CVS 972) (check-in: [b59d9033] user: drh branch: trunk, size: 119135)
2003-04-15
01:49
[14fedcde] part of check-in [7902e477] Change lemon to use <stdarg.h> instead of <varargs.h> because GCC no longer supports varargs.h. Tickets #288 and #280. Ironically, lemon originally used varargs.h because stdarg.h was not supported by the compiler I was using in 1989 (which was gcc if I recall correctly.) (CVS 905) (check-in: [7902e477] user: drh branch: trunk, size: 119151)
2002-08-14
23:18
[022adc28] part of check-in [07f6020b] Fix for ticket #134: Change the lemon.c sources to work around a problem with the AIX C compiler. (CVS 715) (check-in: [07f6020b] user: drh branch: trunk, size: 119235)
2002-06-06
18:54
[459cb2bb] part of check-in [7ac5bd29] Added the %fallback directive to the lemon parser generator and used this in the parser to make the parse tables much smaller. This reduced the size of the library by 15K. (CVS 605) (check-in: [7ac5bd29] user: drh branch: trunk, size: 119213)
2002-03-11
13:55
[77d026f5] part of check-in [ffc387a4] Change the way that lemon handles %extra_argument. (CVS 427) (check-in: [ffc387a4] user: drh branch: trunk, size: 117269)
2002-03-10
21:21
[e6b3d8df] part of check-in [02cc2d60] Bug fix: updates within a transaction would fail if there was existed a temporary table. (CVS 425) (check-in: [02cc2d60] user: drh branch: trunk, size: 117045)
2002-03-03
02:49
[a26214e0] part of check-in [2c05389e] Bug fixes and additional tests for the subquery flattener. (CVS 411) (check-in: [2c05389e] user: drh branch: trunk, size: 117016)
2002-02-23
19:39
[d4b4e127] part of check-in [67a135a0] Modify lemon to use much less memory for its parser tables. This reduces the size of the library by 50K, which is important for an embedded library. (CVS 389) (check-in: [67a135a0] user: drh branch: trunk, size: 116965)
18:45
[7502222a] part of check-in [8da0ac9a] Bug fix in lemon: 3-way conflicts (SHIFT/REDUCE/REDUCE) were not detected or resolved. This is now fixed. Also, table compression works a little better. (CVS 388) (check-in: [8da0ac9a] user: drh branch: trunk, size: 116887)
2001-10-25
20:37
[bfd036ab] part of check-in [475e2fed] Make lemon 64-bit clean (CVS 294) (check-in: [475e2fed] user: drh branch: trunk, size: 116433)
2001-09-16
00:13
[5533b63e] part of check-in [4e926efe] Disclaimed copyright. Preparing for release 2.0. (CVS 250) (check-in: [4e926efe] user: drh branch: trunk, size: 116333)
2001-04-03
16:53
[e007bfdb] part of check-in [1f0197d5] Bug fixes from Oleg Oleinick (CVS 195) (check-in: [1f0197d5] user: drh branch: trunk, size: 117260)
2000-08-20
11:42
[b13a3179] part of check-in [6f4c0807] bug fix in lemon (CVS 136) (check-in: [6f4c0807] user: drh branch: trunk, size: 115828)
2000-06-02
23:21
[1f0e9651] part of check-in [cd83d3cf] :-) (CVS 44) (check-in: [cd83d3cf] user: drh branch: trunk, size: 115720)
18:52
[f5aa4410] part of check-in [11e32963] :-) (CVS 42) (check-in: [11e32963] user: drh branch: trunk, size: 115720)
2000-05-29
14:26
Added: [cff35578] part of check-in [6f3655f7] initial check-in of the new version (CVS 1) (check-in: [6f3655f7] user: drh branch: trunk, size: 115645)