Skip to content
Sinfolke edited this page Oct 27, 2026 · 4 revisions

Roadmap and Status

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

Known gaps

  • 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.

On the roadmap

  • 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. ❤️

Clone this wiki locally