Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix typos in the lemon.html document. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
62f434c8b8fdd07545a8a4bb19b723d1 |
User & Date: | drh 2018-01-22 17:53:36.652 |
Context
2018-01-22
| ||
17:58 | Fix a typo in the CLI document. (check-in: dece3aa0cc user: drh tags: trunk) | |
17:53 | Fix typos in the lemon.html document. (check-in: 62f434c8b8 user: drh tags: trunk) | |
17:51 | Fix typos in the swarmvtab document. (check-in: 67a942c86f user: drh tags: trunk) | |
Changes
Changes to pages/lemon.in.
1 2 3 4 5 6 7 8 9 10 | <title>The Lemon LALR(1) Parser Generator</title> <tcl>hd_keywords {Lemon parser generator} {Lemon} \ {Lemon LALR parser generator}</tcl> <table_of_contents> <h1>Overview</h1> <p>The SQL language parser for SQLite is generated using a code-generator program called "Lemon". The Lemon program reads a grammar of the input | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <title>The Lemon LALR(1) Parser Generator</title> <tcl>hd_keywords {Lemon parser generator} {Lemon} \ {Lemon LALR parser generator}</tcl> <table_of_contents> <h1>Overview</h1> <p>The SQL language parser for SQLite is generated using a code-generator program called "Lemon". The Lemon program reads a grammar of the input language and emits C-code to implement a parser for that language. <h2>Lemon Source Files And Documentation</h2> <p>Lemon does not have its own source repository. Rather, Lemon consists of a few files in the SQLite source tree: |
︙ | ︙ | |||
50 51 52 53 54 55 56 | variables and is therefore neither. Reentrancy is especially important for SQLite since some SQL statements make recursive calls to the parser. For example, when parsing a CREATE TABLE statement, SQLite invokes the parser recursively to generate an INSERT statement to make a new entry in the [sqlite_master] table. <li><p> Lemon has the concept of a non-terminal destructor that can be | | | 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | variables and is therefore neither. Reentrancy is especially important for SQLite since some SQL statements make recursive calls to the parser. For example, when parsing a CREATE TABLE statement, SQLite invokes the parser recursively to generate an INSERT statement to make a new entry in the [sqlite_master] table. <li><p> Lemon has the concept of a non-terminal destructor that can be used to reclaim memory or other resources following a syntax error or other aborted parse. </ul> <h2>Use of Lemon Within SQLite</h2> <p>Lemon is used in two places in SQLite. |
︙ | ︙ | |||
86 87 88 89 90 91 92 | <ul> <li><p> Lemon has the concept of a "fallback" tokens. The SQL language contains a large number of keywords and these keywords have the potential to collide with identifier names. Lemon has the ability to designate some keywords has being able to | | | 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | <ul> <li><p> Lemon has the concept of a "fallback" tokens. The SQL language contains a large number of keywords and these keywords have the potential to collide with identifier names. Lemon has the ability to designate some keywords has being able to "fallback" to an identifier. If the keyword appears in the input token stream in a context that would otherwise be a syntax error, the token is automatically transformed into its fallback before the syntax error is raised. This feature allows the parser to be very forgiving of reserved words used as identifiers, which is a problem that comes up frequently in the SQL language. <li><p> |
︙ | ︙ | |||
137 138 139 140 141 142 143 | LL(1) parser generator tool named "Lime", but the source code for Lime has been lost. <p>The Lemon source code was originally written as separate source files, and only later merged into a single "lemon.c" source file. <p>The author of Lemon and SQLite (Hipp) reports that his C programming | | | 137 138 139 140 141 142 143 144 145 146 147 148 | LL(1) parser generator tool named "Lime", but the source code for Lime has been lost. <p>The Lemon source code was originally written as separate source files, and only later merged into a single "lemon.c" source file. <p>The author of Lemon and SQLite (Hipp) reports that his C programming skills were greatly enhanced by studying John Ousterhout's original source code to Tcl. Hipp discovered and studied Tcl in 1993. Lemon was written before then, and SQLite afterwards. There is a clear difference in the coding styles of these two products, with SQLite seeming to be cleaner, more readable, and easier to maintain. |