polydat_grammar/comprehension/mod.rs
1// Copyright 2024-2026 Jonathan Shook
2// SPDX-License-Identifier: Apache-2.0
3
4//! The comprehension sub-language: the canonical algebra ([`ast`])
5//! with its sources, strategies, cardinalities, and metadata, and the
6//! forms that reach it ([`spec`]) from text, from a specification
7//! document, and from a source expression. The text parser and the
8//! flat form it produces on the way are internal to this crate
9//! (comprehension_forms.md ยง14.8). Evaluation is the runtime's.
10
11pub mod ast;
12pub mod cardinality;
13pub(crate) mod clause_ast;
14pub mod metadata;
15pub(crate) mod parse;
16pub mod source;
17pub mod spec;
18pub mod strategy;
19pub mod to_text;
20
21pub use ast::Comprehension;
22pub use cardinality::{CardinalityClass, Hybrid, Interval, MeasureName, ProductMeasure};
23pub use metadata::{IndexFn, Materialization, Metadata, NaturalOrder};
24pub use source::Source;
25pub use strategy::{StrategyName, ZipMode};