wireshark/tools/lemon
Gerald Combs f0be7f27d8 Lemon: Squelch an unused parameter warning.
Fixes

... tools\lemon\lemon.c(1630,14): warning C4100: 'argc': unreferenced formal parameter ...

Change-Id: I5cddbbed025e246ddebe9189edbe6fbeea883a7d
Reviewed-on: https://code.wireshark.org/review/35522
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Graham Bloice <graham.bloice@trihedral.com>
2019-12-26 10:32:37 +00:00
..
patches lemon: sync with upstream (2018-09-08) 2018-10-21 07:00:05 +00:00
CMakeLists.txt Test C compiler flags with check_c_compiler_flag(), not check_c_linker_flag(). 2018-10-21 21:21:41 +00:00
README lemon: sync with upstream (2018-09-08) 2018-10-21 07:00:05 +00:00
apply-patches.sh lemon: sync with upstream (2018-09-08) 2018-10-21 07:00:05 +00:00
cppmagic.h Continue to remove $Id$ from top of file 2014-03-31 18:49:26 +00:00
lemon.c Lemon: Squelch an unused parameter warning. 2019-12-26 10:32:37 +00:00
lemonflex-head.inc Continue to remove $Id$ from top of file 2014-03-31 18:49:26 +00:00
lemonflex-tail.inc Use noyywrap rather than defining our own yywrap functions. 2015-12-05 08:06:50 +00:00
lempar.c lemon: sync with upstream (2018-09-08) 2018-10-21 07:00:05 +00:00

README

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 1150d3841d9381555a4b427835fd617d3465040d
    Date:   Sat Sep 8 16:55:18 2018 +0000
    Add a missing call to free() in Lemon.

To check for changes (adjust "previous commit" accordingly):

    git clone --depth=1000 https://github.com/mackyle/sqlite
    cd sqlite/tools
    git log -p 1150d3841d.. 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

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. (IANAL, but I
hope this is sufficient.)