The following files are generated automatically by the sqlite Makefile:
# Generated source code files # SRC += \ keywordhash.h \ opcodes.c \ opcodes.h \ parse.c \ parse.h \ shell.c \ sqlite3.h
The parse.c and parse.h are derived from the parse.y, which is interpreted by the file /sqlite/tool/lemon.c. Their function is to interpret the input SQL and return computer readable sequence of simple instructions.
For example, a EXPLAIN xxx returns the following:
lemon.c uses lempar.c as a template, and fills it with the code generated from the dictionary file parse.y. The instructions to build it are disseminate in the Makefile, but basically consist of the following commands:
gcc -g -O2 -o ./lemon lemon.c ./lemon -c parse.y
The -c flag instructs the lemon parser not to compress the output files to improve human readability.
To use the above commands, the three generating files
must be copied to the same directory, otherwise the file path should be appropriately stated.