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
- /sqlite/tool/lemon.c
- /sqlite/tool/lempar.c
- /sqlite/src/parse.y
must be copied to the same directory, otherwise the file path should be appropriately stated.