Skip to main content

trilogy_parser/
lib.rs

1mod parser;
2mod resolver;
3mod directory_resolver;
4mod graph;
5mod network_search;
6mod trilogy_parser;
7#[cfg(feature = "python")]
8pub mod python_bindings;
9
10// The pest parser over the full Trilogy grammar. Exported because
11// `ParseError::PestError` already surfaces `Rule` in its public signature —
12// without this a consumer cannot name that type, let alone match on it — and
13// because the raw parse tree is the reason non-Python tooling wants the crate.
14pub use trilogy_parser::{Rule, TrilogyParser};
15
16pub use parser::{
17    parse_file, parse_imports, AddressKind, DatasourceDeclaration, ImportStatement, ParseError,
18    ParsedFile, PersistMode, PersistStatement,
19};
20pub use resolver::{
21    DatasourceInfo, DependencyGraph, FileNode, ImportInfo, ImportResolver, PersistInfo,
22    ResolveError,
23};
24pub use directory_resolver::{
25    process_directory_with_imports, build_edges, DirectoryGraph, Edge, EdgeReason, FileInfo,
26};
27pub use graph::GraphCore;
28pub use network_search::{enumerate_covers, CandidateSpec, LimitKind, NetworkSpec};