Repository navigation
Roadmap and Status
Sinfolke edited this page Oct 27, 2026
·
4 revisions
Here's where ISPA is today. The implementation and tests move quickly, so use this page with Algorithms and Limitations and the repository's docs/LR_STATUS.md.
| Feature | Current state |
|---|---|
| Generator | C++23; bootstrapped grammar parser, Python-subset parser, and dependency scanner |
| Targets | C++17 and Python emitters |
| Lexer | Tagged DFA with captures and advanced lexer actions |
| LL | Production parser target; actively growing, with automatic and grammar-directed diagnostics/recovery |
| LR/LALR | Less capable for now; experimental recognition, left recursion, basic captures, structured missing-action errors |
| LR(*) | Plugin exists but builds are unsupported |
| External parser calls | LL with lazy tokenization; generated or prebuilt dependencies |
| Debugging |
ispadbg tracing, replay, and a Tkinter GUI |
| Packages |
ispa-pkg installs library grammars and target resources |
- LR/LALR reject embedded Python actions, custom fail blocks, external rules, parameters, shared counters, and dynamic patterns. Their recovery and source spans are not equivalent to LL.
- Dynamic pattern support and negative matching are implemented in the lexer; advanced actions and fail-block support remain backend-dependent (see Advanced Rules And Fail Blocks).
- Rules inside tokens remain planned.
- The production LL target is still growing. Recovered trees may have missing captures; inspect diagnostics before consuming them.
- Generator builds depend on Clang/libc++ or MSVC; GCC is not supported yet.
- Stabilize LR/LALR semantics and recovery.
- Complete dynamic lexer behavior and broader target parity.
- Continue PLL and feature proposals under
concept/. - Grow the grammar standard library.
Try it and report a reproducible case in Issues. ❤️