# compiled_dispatch

URL: /patitas/api/parsing/compiled_dispatch/
Section: parsing
Description: Compile-time dispatch for pattern-based parsing.

Generates optimized dispatch code at module load time based on
CommonMark token patterns. Uses Python 3.10+ match/case for
efficient pattern matching.

Architecture:
1. At import time: Build pattern → parser lookup table
2. At parse time: O(1) lookup based on token type signature
3. Fallback: Standard parser for unknown patterns

Performance:
- O(1) parser selection (dict lookup)
- No runtime pattern analysis
- Specialized parsers eliminate branching

Future: Could generate Cython code for even faster dispatch.

---

> For a complete page index, fetch /patitas/llms.txt.

Open LLM text
(/patitas/api/parsing/compiled_dispatch/index.txt)

Share with AI

Ask Claude
(https://claude.ai/new?q=Please%20help%20me%20understand%20this%20documentation%3A%20%2Fpatitas%2Fapi%2Fparsing%2Fcompiled_dispatch%2Findex.txt)

Ask ChatGPT
(https://chatgpt.com/?q=Please%20help%20me%20understand%20this%20documentation%3A%20%2Fpatitas%2Fapi%2Fparsing%2Fcompiled_dispatch%2Findex.txt)

Ask Gemini
(https://gemini.google.com/app?q=Please%20help%20me%20understand%20this%20documentation%3A%20%2Fpatitas%2Fapi%2Fparsing%2Fcompiled_dispatch%2Findex.txt)

Ask Copilot
(https://copilot.microsoft.com/?q=Please%20help%20me%20understand%20this%20documentation%3A%20%2Fpatitas%2Fapi%2Fparsing%2Fcompiled_dispatch%2Findex.txt)

Module

#
`parsing.compiled_dispatch`

Compile-time dispatch for pattern-based parsing.

Generates optimized dispatch code at module load time based on
CommonMark token patterns. Uses Python 3.10+ match/case for
efficient pattern matching.

Architecture:

- At import time: Build pattern → parser lookup table

- At parse time: O(1) lookup based on token type signature

- Fallback: Standard parser for unknown patterns

Performance:

- O(1) parser selection (dict lookup)

- No runtime pattern analysis

- Specialized parsers eliminate branching

Future: Could generate Cython code for even faster dispatch.

1Class3Functions

## Classes

`PatternDispatcher`

4

▼

Compile-time pattern → parser dispatcher.

Built once at module load, used for all parses.
Uses fro…

Compile-time pattern → parser dispatcher.

Built once at module load, used for all parses.
Uses frozenset of token types as pattern signature.

#### Methods

`register`

2

▼

Register a parser for a token pattern.

`def register(self, pattern: frozenset[TokenType], parser: ParserFn) -> None`

##### Parameters

Name
Type
Description

`pattern`
`—`

`parser`
`—`

`get_parser`

1

`ParserFn | None`

▼

Get parser for token pattern, or None for fallback.

O(1) lookup after O(n) sig…

`def get_parser(self, tokens: list[Token]) -> ParserFn | None`

Get parser for token pattern, or None for fallback.

O(1) lookup after O(n) signature computation.
Signature computation is very cheap (just type checks).

##### Parameters

Name
Type
Description

`tokens`
`—`

##### Returns

`ParserFn | None`

`get_stats`

0

`dict`

▼

Get dispatch statistics.

`def get_stats(self) -> dict`

##### Returns

`dict`

Internal Methods
1

▼

`__init__`

0

▼

`def __init__(self) -> None`

## Functions

`build_dispatcher`

0

`PatternDispatcher (/patitas/api/parsing/compiled_dispatch/#PatternDispatcher)`

▼

Build the pattern dispatcher at module load time.

Registers ONLY patterns wher…

`def build_dispatcher() -> PatternDispatcher`

Build the pattern dispatcher at module load time.

Registers ONLY patterns where token types alone determine parsing.

NOT registered (require content analysis):

- PARAGRAPH_LINE patterns: Can contain setext underlines (===, ---), tables

- LIST patterns: Can contain indented code, complex nesting

- FENCED_CODE: FencedCode node uses source_start/source_end tracking

These are handled by the ultra-fast path (can_use_ultra_fast) or
the main parser's existing fast paths.

##### Returns

`PatternDispatcher (/patitas/api/parsing/compiled_dispatch/#PatternDispatcher)`

`get_dispatcher`

0

`PatternDispatcher (/patitas/api/parsing/compiled_dispatch/#PatternDispatcher)`

▼

Get the global pattern dispatcher (lazy initialization).

`def get_dispatcher() -> PatternDispatcher`

##### Returns

`PatternDispatcher (/patitas/api/parsing/compiled_dispatch/#PatternDispatcher)`

`dispatch_parse`

3

`tuple`

▼

Dispatch to optimal parser based on token pattern.

`def dispatch_parse(tokens: list[Token], parse_inline_fn: Callable, fallback_fn: Callable) -> tuple`

##### Parameters

Name
Type
Description

`tokens`
`list[Token (/patitas/api/tokens/#Token)]`

Token list from lexer

`parse_inline_fn`
`Callable`

Function to parse inline content

`fallback_fn`
`Callable`

Standard parser for unknown patterns

##### Returns

`tuple`
