forked from osmocom/wireshark
53 lines
2.5 KiB
Plaintext
53 lines
2.5 KiB
Plaintext
The Lemon Parser Generator's home page is: https://www.hwaci.com/sw/lemon/
|
|
Lemon seems now to be maintained at: https://sqlite.org/lemon.html
|
|
|
|
Documentation is available at: https://sqlite.org/src/doc/trunk/doc/lemon.html
|
|
Git mirror of the upstream Fossil repository: https://github.com/mackyle/sqlite
|
|
|
|
The lempar.c and lemon.c are taken from sqlite and are modified as little as
|
|
possible to make it easier to synchronize changes. Last updated at:
|
|
|
|
commit a913f942cf6b32b85de6428fd542b39458df2a88
|
|
Author: D. Richard Hipp <drh@hwaci.com>
|
|
Date: Wed Dec 28 14:03:47 2022 +0000
|
|
|
|
Version 3.40.1
|
|
|
|
To check for changes (adjust "previous commit" accordingly):
|
|
|
|
git clone --depth=1000 https://github.com/sqlite/sqlite
|
|
cd sqlite/tools
|
|
git log -p 273ee15121.. lemon.c lempar.c
|
|
|
|
To create a Wireshark version (steps 1-3) and validate the result (steps 4-5):
|
|
1. Copy the two files.
|
|
2. Run ./apply-patches.sh to apply local patches.
|
|
3. Update the commit in this README (to ensure the base is known).
|
|
4. Check for CSA warnings: clang-check -analyze lemon.c --
|
|
5. Build and run lemon: ninja epan/dfilter/grammar.c
|
|
|
|
To keep the lemon source as pristine as possible from upstream all warnings
|
|
when building lemon itself are disabled. Only patch the lemon source code as
|
|
a last resort.
|
|
|
|
Warnings for lemon generated code are few in practice with -Wall -Wextra. These
|
|
are preferably selectively disabled in the Wireshark build.
|
|
|
|
The patches to lemon to silence compiler warnings and static analysis reports
|
|
(for edge cases that cannot occur) are not proposed upstream because that
|
|
process is difficult. From <https://www.sqlite.org/copyright.html>:
|
|
|
|
SQLite is open-source, meaning that you can make as many copies of it as you
|
|
want and do whatever you want with those copies, without limitation. But
|
|
SQLite is not open-contribution. In order to keep SQLite in the public
|
|
domain and ensure that the code does not become contaminated with
|
|
proprietary or licensed content, the project does not accept patches from
|
|
unknown persons.
|
|
|
|
A note about the Lemon patches, we have no intention to fork Lemon and maintain
|
|
it. These patches are written to address static analyzer warnings without
|
|
actually modifying the functionality. If upstream is willing to accept patches,
|
|
then that would be great and the intention is to make it as easy as possible.
|
|
The lemon and lempar patches are dedicated to the public domain, as set forward
|
|
in Creative Commons Zero v1.0 Universal (IANAL, but I hope this is sufficient).
|