/ Check-in [c0381b0b]
Login

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

Overview
Comment:Remove some stale references to the addopcodes.tcl script from documentation.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: c0381b0bc90aa3c2415c4b3ac338cfe6d308bb5d4247bc6f2b6e919f549c254c
User & Date: drh 2019-04-05 21:17:11
Context
2019-04-06
15:38
Fix two assert() statements in fts5 that are only true if the database is not corrupt. check-in: edb095a9 user: dan tags: trunk
2019-04-05
21:17
Remove some stale references to the addopcodes.tcl script from documentation. check-in: c0381b0b user: drh tags: trunk
20:56
Eliminate the tool/addopcodes.tcl script. The purpose of that script was to keep the number of parser codes below 256 in order to save parser table space. But we have long since blown through that ceiling so the addopcodes.tcl script was just needless complexity. There is no longer any reason to keep it around. check-in: d2728192 user: drh tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to README.md.

   171    171   used to generate that documentation are in a separate source repository.
   172    172   
   173    173   The SQL language parser is **parse.c** which is generate from a grammar in
   174    174   the src/parse.y file.  The conversion of "parse.y" into "parse.c" is done
   175    175   by the [lemon](./doc/lemon.html) LALR(1) parser generator.  The source code
   176    176   for lemon is at tool/lemon.c.  Lemon uses the tool/lempar.c file as a
   177    177   template for generating its parser.
   178         -
   179    178   Lemon also generates the **parse.h** header file, at the same time it
   180         -generates parse.c. But the parse.h header file is
   181         -modified further (to add additional symbols) using the ./addopcodes.tcl
   182         -Tcl script.
          179  +generates parse.c.
   183    180   
   184    181   The **opcodes.h** header file contains macros that define the numbers
   185    182   corresponding to opcodes in the "VDBE" virtual machine.  The opcodes.h
   186    183   file is generated by the scanning the src/vdbe.c source file.  The
   187    184   Tcl script at ./mkopcodeh.tcl does this scan and generates opcodes.h.
   188    185   A second Tcl script, ./mkopcodec.tcl, then scans opcodes.h to generate
   189    186   the **opcodes.c** source file, which contains a reverse mapping from

Changes to src/parse.y.

   189    189   columnlist ::= columnname carglist.
   190    190   columnname(A) ::= nm(A) typetoken(Y). {sqlite3AddColumn(pParse,&A,&Y);}
   191    191   
   192    192   // Declare some tokens early in order to influence their values, to 
   193    193   // improve performance and reduce the executable size.  The goal here is
   194    194   // to get the "jump" operations in ISNULL through ESCAPE to have numeric
   195    195   // values that are early enough so that all jump operations are clustered
   196         -// at the beginning, but also so that the comparison tokens NE through GE
   197         -// are as large as possible so that they are near to FUNCTION, which is a
   198         -// token synthesized by addopcodes.tcl.
          196  +// at the beginning.
   199    197   //
   200    198   %token ABORT ACTION AFTER ANALYZE ASC ATTACH BEFORE BEGIN BY CASCADE CAST.
   201    199   %token CONFLICT DATABASE DEFERRED DESC DETACH EACH END EXCLUSIVE EXPLAIN FAIL.
   202    200   %token OR AND NOT IS MATCH LIKE_KW BETWEEN IN ISNULL NOTNULL NE EQ.
   203    201   %token GT LE LT GE ESCAPE.
   204    202   
   205    203   // The following directive causes tokens ABORT, AFTER, ASC, etc. to