1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// Copyright 2024-2026 Jonathan Shook
// SPDX-License-Identifier: Apache-2.0
//! Filter predicates — comprehension_forms.md §10.9: their
//! evaluation (§10.9.1) and their analysis.
//!
//! A predicate is the text carried by
//! [`crate::iteration::comprehension::ast::Comprehension::Filter`],
//! parsed by [`parse_predicate`] with the language's one precedence
//! table. [`CompiledPredicate`] evaluates it against a tuple on every
//! path that filters and decides whether it is total. The analyzer
//! produces [`PredicateInfo`] from the same tree for the optimizer's
//! R5 (per-axis filter pushdown).
//!
//! ## Module layout
//!
//! - [`eval`] — `CompiledPredicate`, the evaluator, and its totality
//! check.
//! - [`info`] — `PredicateInfo` and supporting enums.
//! - [`coordset`] — `CoordSet` carrying per-coord discrete /
//! continuous classification.
//! - [`recognizers`] — the §10.9.5 pattern catalog.
//! - [`analyzer`] — entry point + dispatch.
pub use analyze;
pub use ;
pub use ;
pub use ;
pub use ;