An attempt to tweak Lemon so that it might generate parsers in PureBasic.
Project created by Tristano Ajmone in 2021/07/14.
Table of Contents
/lemon/
— upstream Lemon sources./lemon-pb/
— Lemon PB work folder.
Lemon is a well known LALR(1) parser generator, written in C89 by Richard Hipp during the late 1980s, and released into the public domain.
Third parties have already successfully tweaked the Lemon parser to generate parsers in other languages; so I decided to take my chance and attempt to mod Lemon to make it generate parsers in PureBasic.
This project is mostly an excuse to force myself into studying the Lemon source code in detail, improve my C skills, and learn more about the inner workings of parser generators.
DISCLAIMER — There's no ETA, and surely no urgency on my side to complete this project — there's a long road ahead, and lot's of work, and the project might never reach completion, and I'm not even 100% sure it's doable at all. But none of this really matters, for I'll be working on it on-and-off, during my spare time, for the fun of it and nothing more.
The original Lemon parser was created by Richard Hipp in the late 1980s, its code and documentation are in the public domain.
As for the Lemon PureBasic code and documents, modified or created by Tristano Ajmone, they are also released into the public domain via the CC0 license:
To the extent possible under law, Tristano Ajmone has waived all copyright and related or neighbouring rights to the Lemon PureBasic project. This work is published from: Italy.
Lemon PureBasic is released into the public domain via the CC0 1.0 Universal dedication, so that it might be freely used for any project, without causing licenses conflicts and without imposing any restrictions or obligations (not even crediting or linking back).
This is a human-readable summary of the Legal Code contained in the LICENSE
file:
The person who associated a work with this deed has dedicated the work to the public domain by waiving all of his or her rights to the work worldwide under copyright law, including all related and neighbouring rights, to the extent allowed by law.
You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission. See Other Information below.
- In no way are the patent or trademark rights of any person affected by CC0, nor are the rights that other persons may have in the work or in how the work is used, such as publicity or privacy rights.
- Unless expressly stated otherwise, the person who associated a work with this deed makes no warranties about the work, and disclaims liability for all uses of the work, to the fullest extent permitted by applicable law.
- When using or citing the work, you should not imply endorsement by the author or the affirmer.
- Lemon on Wikipedia
- Lemon homepage
- Lemon documentation
- Upstream Lemon sources on SQLite repository (Fossil):
- tajmone/lemon-grove — The Lemon parser, sibling projects, forks and assets — all in one place.