1extern crate pest;
2#[macro_use]
3extern crate pest_derive;
4
5pub mod ast;
6pub mod continuous;
7pub mod discretise;
8#[cfg(feature = "enzyme")]
9pub mod enzyme;
10pub mod execution;
11pub mod parser;
12pub mod utils;
13
14pub use execution::compiler::Compiler;
15#[cfg(feature = "cranelift")]
16pub use execution::cranelift::codegen::{CraneliftJitModule, CraneliftObjectModule};
17#[cfg(feature = "llvm")]
18pub use execution::llvm::codegen::LlvmModule;
19pub use execution::module::{
20 CodegenModule, CodegenModuleCompile, CodegenModuleEmit, CodegenModuleJit, CodegenModuleLink,
21};
22pub use execution::object::ObjectModule;
23
24#[cfg(feature = "inkwell-150")]
25extern crate inkwell_150 as inkwell;
26#[cfg(feature = "inkwell-160")]
27extern crate inkwell_160 as inkwell;
28#[cfg(feature = "inkwell-170")]
29extern crate inkwell_170 as inkwell;
30#[cfg(feature = "inkwell-181")]
31extern crate inkwell_181 as inkwell;
32
33#[cfg(feature = "inkwell-150")]
34extern crate llvm_sys_150 as llvm_sys;
35#[cfg(feature = "inkwell-160")]
36extern crate llvm_sys_160 as llvm_sys;
37#[cfg(feature = "inkwell-170")]
38extern crate llvm_sys_170 as llvm_sys;
39#[cfg(feature = "inkwell-181")]
40extern crate llvm_sys_181 as llvm_sys;