1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
//  LIB.rs
//    by Lut99
//
//  Created:
//    10 Aug 2022, 13:51:38
//  Last edited:
//    16 Jan 2024, 11:32:14
//  Auto updated?
//    Yes
//
//  Description:
//!   The `brane-ast` package takes a parsed AST and converts it to one
//!   that is runnable. Specifically, it implements multiple compiler
//!   passes that resolve different things (such as type-safety or data
//!   ownership).
//

// Use macros
#[macro_use]
extern crate lazy_static;

// Declare the modules
pub mod ast;
pub mod ast_unresolved;
pub mod compile;
pub mod data_type;
pub mod edgebuffer;
pub mod errors;
pub mod fetcher;
pub mod func_id;
pub mod locations;
pub mod spec;
pub mod state;
pub mod traversals;
pub mod warnings;


// Re-export some stuff from brane-dsl
pub use ast::{SymTable, Workflow};
pub use ast_unresolved::UnresolvedWorkflow;
pub use brane_dsl::ParserOptions;
pub use brane_dsl::spec::{MergeStrategy, TextPos, TextRange};
pub use compile::{CompileResult, CompileStage, compile_program, compile_program_to, compile_snippet, compile_snippet_to};
pub use data_type::DataType;
// Bring some stuff into the global namespace.
pub use errors::AstError as Error;
pub use warnings::AstWarning as Warning;