The ISPA parser generator is designed for handling context-free languages, focusing on static code generation without runtime dependencies. The tool employs a self-hosted architecture, meaning its own DSL is used to define its syntax.
The lexer utilizes TDFA (Tagged Deterministic Finite Automaton) technology, which allows for data capture during table traversal. This approach enables the automation of both Concrete Syntax Tree (CST) and Abstract Syntax Tree (AST) construction without requiring repeated parsing.
The parser implements an LL(k) algorithm, with plans for potential expansion to LL(*). It features automatic AST construction, including support for recursive nodes, and provides mechanisms for semantic actions and error handling directly within the grammar definition.
The generator uses specific syntax markers: '@' for capture points, '{}' for semantic actions, and '#name' for locally scoped rules. This structure aims to prevent global namespace pollution while maintaining flexibility for projects of varying complexity.






