plotnik_compiler/compile/
mod.rs

1//! Thompson-like NFA construction for query compilation.
2//!
3//! Compiles query AST expressions into bytecode IR with symbolic labels.
4//! Labels are resolved to concrete StepIds during the layout phase.
5//! Member indices use deferred resolution via MemberRef for correct absolute indices.
6//!
7//! # Module Organization
8//!
9//! The compiler is split into focused modules:
10//! - `capture`: Capture effects handling (Node/Text + Set)
11//! - `expressions`: Leaf expression compilation (named/anon nodes, refs, fields, captures)
12//! - `navigation`: Navigation mode computation for anchors and quantifiers
13//! - `quantifier`: Unified quantifier compilation (*, +, ?)
14//! - `scope`: Scope management for struct/array wrappers
15//! - `sequences`: Sequence and alternation compilation
16
17mod capture;
18mod compiler;
19mod dce;
20pub(crate) mod epsilon_elim;
21mod error;
22mod expressions;
23mod navigation;
24mod quantifier;
25mod scope;
26mod sequences;
27mod verify;
28
29#[cfg(test)]
30mod capture_tests;
31#[cfg(test)]
32mod compile_tests;
33
34pub use capture::CaptureEffects;
35pub use compiler::{CompileCtx, Compiler};
36pub use error::{CompileError, CompileResult};