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 error;
20mod expressions;
21mod navigation;
22mod quantifier;
23mod scope;
24mod sequences;
25
26#[cfg(test)]
27mod capture_tests;
28#[cfg(test)]
29mod compile_tests;
30
31pub use capture::CaptureEffects;
32pub use compiler::Compiler;
33pub use error::{CompileError, CompileResult};