#![cfg_attr(coverage_nightly, feature(coverage_attribute))]
pub mod analyze;
pub mod bytecode;
pub mod compile;
pub mod diagnostics;
pub mod emit;
pub mod parser;
pub mod query;
pub mod typegen;
#[cfg(test)]
pub mod test_utils;
pub type PassResult<T> = std::result::Result<(T, Diagnostics), Error>;
pub use diagnostics::{Diagnostics, DiagnosticsPrinter, Severity, Span};
pub use query::{Query, QueryBuilder};
pub use query::{SourceId, SourceMap};
#[derive(Debug, Clone, thiserror::Error)]
pub enum Error {
#[error("execution limit exceeded")]
ExecFuelExhausted,
#[error("recursion limit exceeded")]
RecursionLimitExceeded,
#[error("query parsing failed with {} errors", .0.error_count())]
QueryParseError(Diagnostics),
#[error("query analysis failed with {} errors", .0.error_count())]
QueryAnalyzeError(Diagnostics),
}
pub type Result<T> = std::result::Result<T, Error>;