Releases: jose-rZM/LL1Checker
Release 5.0-LL1Checker
LL1Checker v5.0 Release 🎉
✨ What’s New
- Caret-guided error windows: both the Boost.Spirit-powered lexer and parser now print multi-line snippets with a caret (^) pointing at the failing token.
- Parse tree exports: pass
--export-tree tree.dotto generate the full derivation tree in Graphviz format.
Example:dot -Tpng tree.dot -o output.png - Numeric token IDs: symbol table, lexer, and parser now share compact numeric identifiers, reducing memory footprint on large grammars.
💻 Compatibility & Requirements
- Linux: tested on modern distributions with:
- C++20 toolchain
- CMake ≥ 3.16
- Boost headers (1.78+)
cxxopts(auto-fetched if missing)
- Windows: prebuilt binaries are not included in this release.
You can still build from source with the required dependencies.
A Windows package may return in a future update.
📥 Installation & Usage
Build from source
cmake -S . -B build
cmake --build build
# or simply:
make
# static runtime:
make static # adds -DLL1CHECKER_FORCE_STATIC_RUNTIME=ONRun the CLI:
./ll1 <GRAMMAR_FILENAME> [TEXT_FILENAME] [OPTIONS]
This release provides a statically linked binary for Linux users.
Release 3.0-LL1Checker
LL1Checker v3.0 Release 🎉
This release introduces version 3.0 of the LL(1) parser tool, now available as a pre-compiled binary for Linux and Windows.
Designed to assist students and developers in understanding and working with LL(1) grammars, this version enhances robustness, performance, and visualization.
✨ What's New?
- New table format using
tabulate, improving readability and structure. - No longer relies on
flexfor lexical analysis, making the tool more self-contained and efficient. - Better handling of ambiguous grammars, improving feedback and error detection.
- Optimized performance, reducing execution time for large grammars and inputs.
💻 Compatibility and Requirements
- Linux: Works on most modern Linux distributions. The binary was compiled using Ubuntu 22 and the boost libraries are statically linked, so you do not need to have them.
- Windows: Windows 10 or later is required.
📥 Installation and Usage
Linux Binary
Download and run:
chmod +x ll1
./ll1Windows Executable
Download ll1.exe and run it from any terminal.
🙌 Acknowledgments
Special thanks to tabulate for providing a clean and efficient way to display tables in the terminal.
Release 2.0 -LL1Checker
This release features the version 2.0 of the LL(1) parser tool, now available as a pre-compiled binary. Designed to assist students and developers in understanding and working with LL(1) grammars, this refined version enchances the application capabilities for analyzing, and validating grammars and inputs.
Requirements
flexneeds to be installed in your OS and in yourPATH. If you are on windows,winflexbisonis used, the folder must be in yourPATH.gccneeds to be installed and in yourPATH
Installation and Usage
- Executable Binary (Linux)
- Simply download and execute with
./ll1. Make sure the file has execution permissions (chmod +x ll1)
- Debian Package (.deb)
- Install with
sudo dpkg -i <debian_package>. After installation, runll1from any terminal.
- RPM Package (.rpm)
- Install with
sudo dnf install <rpm_package>.
- Windows Executable (.exe)
- Download and run
LL1.exefrom any terminal.
Acknowledgments
A special thank you to the creators of winflex_bison https://github.com/lexxmark/winflexbison for their Windows port.