pub mod analysis;
pub mod ast;
pub mod compiler;
pub mod diagnostic;
pub mod engine;
pub mod formatter;
pub mod lexer;
pub mod parser;
pub mod policy_graph;
pub mod project;
pub mod provenance;
pub mod smtlib;
pub mod snapshot;
pub mod solver;
pub mod source;
pub mod trace;
pub mod value;
pub use analysis::{AnalysisOptions, AnalysisReport, Counterexample, analyze, analyze_with_solver};
pub use compiler::{CompileOutput, CompiledProgram, compile};
pub use diagnostic::{Diagnostic, Severity};
pub use engine::{
DecisionResult, DecisionStatus, Evaluation, ExplainFormat, Input, TEST_REPORT_SCHEMA_VERSION,
TestAssertion, TestOutcome, TestReport, TestStatus, evaluate, evaluate_query_with_provenance,
evaluate_with_provenance, run_tests,
};
pub use formatter::format_source;
pub use parser::{ParseOutput, parse, parse_numeric_literal};
pub use policy_graph::{
POLICY_GRAPH_SCHEMA_VERSION, PolicyEdge, PolicyEdgeKind, PolicyGraph, PolicyGraphError,
PolicyNode, PolicyNodeKind, PolicySourceMetadata, build_policy_graph,
};
pub use project::{
PackageDependency, PackageDependencyGraph, ProjectCompileOutput, ProjectIoError,
compile_project, compile_project_with_dependencies,
compile_project_with_dependencies_and_overrides, compile_project_with_dependency_graph,
compile_project_with_dependency_graph_and_overrides, compile_project_with_overrides,
};
pub use provenance::{
PROVENANCE_SCHEMA_VERSION, ProvenanceEdge, ProvenanceEdgeKind, ProvenanceEvaluation,
ProvenanceGraph, ProvenanceLocation, ProvenanceNode, ProvenanceNodeKind, ProvenanceStatus,
};
pub use smtlib::{
CommandSmtSolver, DEFAULT_EXTERNAL_SOLVER_OUTPUT_LIMIT, DEFAULT_EXTERNAL_SOLVER_TIMEOUT,
EXTERNAL_SMT_ASSESSMENT_SCHEMA_VERSION, EXTERNAL_SMT_ASSESSMENT_SCHEMA_VERSION_V1,
ExternalModelAssignment, ExternalModelValue, ExternalSolverAssessment,
ExternalSolverAssessmentStatus, ExternalSolverError, ExternalSolverModel, ExternalSolverResult,
ExternalSolverStatus, ExternalSolverTrust, SMTLIB_QUERY_SCHEMA_VERSION,
SMTLIB_QUERY_SCHEMA_VERSION_V1, SmtLibExportError, SmtLibMetadata, SmtLibQuery, SmtLibSolver,
SmtSourceLocation, SmtSymbol, SmtSymbolEncoding, export_invariant_smtlib,
};
pub use snapshot::{
CaseSnapshot, DECISION_SNAPSHOT_SCHEMA_VERSION, DecisionObservation, DecisionSnapshot,
SNAPSHOT_DIFF_SCHEMA_VERSION, SnapshotBuildError, SnapshotChange, SnapshotDecisionStatus,
SnapshotDiff, capture_decision_snapshot, diff_decision_snapshots,
};
pub use solver::SolverMode;
pub use source::{SourceFile, Span};
pub use trace::{
TraceAnalysis, TraceAttempt, TraceCompleteness, TraceCounterexample, TraceCounterexampleKind,
TraceState, TraceStep, analyze_traces,
};
#[must_use]
pub fn compile_source(source: SourceFile) -> CompileOutput {
let parsed = parse(source);
compile(parsed)
}