From e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 10 Apr 2024 22:34:10 +0200 Subject: Adding upstream version 4.2.2. Signed-off-by: Daniel Baumann --- tools/lemon/README | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 tools/lemon/README (limited to 'tools/lemon/README') diff --git a/tools/lemon/README b/tools/lemon/README new file mode 100644 index 0000000..59ed343 --- /dev/null +++ b/tools/lemon/README @@ -0,0 +1,52 @@ +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 + 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 : + + 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). -- cgit v1.2.3