Skip to content

Command Line Reference

Sinfolke edited this page Oct 25, 2026 · 2 revisions

Command Line Reference

The command takes options plus positional .isc files. -l is required unless you request the version.

ispa -l cpp -a LL --dir grammar entry.isc -o build/Parser
ispa -l python -a LL --no-incremental grammar.isc -o build/Parser

-o is an output prefix, so build/Parser produces files such as build/Parser.h and build/Parser.cpp for C++, or build/Parser.py for Python.

Option Meaning
-l, --lang cpp|python|py Output language; required. py aliases python.
-a, --algorithm NAME Defaults to LL. Accepted spellings: LL, LR/LR0, LALR/LR1, LR(*)/LR*/LR_STAR. LR(*) currently rejects builds.
-d, --dir DIR [DIR ...] Recursively scan one or more module directories.
-o PREFIX Output prefix.
--incremental, --no-incremental File-per-production output or one combined output; combined is the default.
--dep NAME PREFIX Bind an external parser to PREFIX.ispa-export; repeat for more dependencies.
--no-dep Generate discovered external dependencies as separate parsers.
--auto-conflicts, --no-auto-conflicts Extra LR lookahead and deferred branching; enabled by default.
--lr-conflict-lookahead N LR lookahead budget, 1 through 8; default 3.
--debug-instrumentation, --no-debug-instrumentation Include or omit ispadbg checkpoints; included by default.
--debug, --logs Emit generator diagnostics/logs in Logs.
--nfa-debug, --no-nfa-debug Track TNFA debug provenance.
--dump [PART ...], --ddall, --dd DIR, --dump-nfa-from-rule Internal dumps and their destination.
-v, --version Print version.

The source of truth for flag spelling and defaults is src/args.cpp and src/args.cppm. See Modules and External Parsers for dependencies.

Clone this wiki locally