pub use crate::shared::error::Error;
#[cfg(feature="compiler")]
pub use crate::shared::error::BuildError;
#[cfg(feature="compiler")]
pub mod parser {
pub use crate::frontend::parser::{parse, parse_module, module_filename, types::ParsedModule, types::ParsedProgram, error::{ParseError, ParseErrorKind}};
}
#[cfg(feature="compiler")]
pub mod ast {
pub use crate::frontend::ast::*;
}
#[cfg(feature="compiler")]
pub mod resolver {
pub use crate::frontend::resolver::{resolve, resolved::ResolvedProgram, error::{ResolveError, ResolveErrorKind}};
pub mod resolved {
pub use crate::frontend::resolver::resolved::{ResolvedProgram, IdMappings};
pub mod ids {
pub use crate::shared::typed_ids::{BindingId, FunctionId, TypeId, ScopeId};
}
pub mod meta {
pub use crate::shared::meta::{Type, Struct, Enum, Array, Trait, ImplTrait, Function, FunctionKind, Binding};
pub use crate::shared::numeric::Numeric;
}
}
}
#[cfg(feature="compiler")]
pub mod compiler {
pub use crate::bytecode::Program;
pub use crate::bytecode::compiler::{compile, error::{CompileError, CompileErrorKind}};
pub use crate::bytecode::writer::{Writer, StoreConst};
pub use crate::bytecode::{opcodes::OpCode, builtins::Builtin};
}
pub mod runtime {
pub use crate::bytecode::{runtime::vm::{VM, VMState}, VMFunc, VMData};
pub mod stack {
pub use crate::bytecode::runtime::stack::{Stack, StackOp, StackOffsetOp, StackRelativeOp};
}
pub mod heap {
pub use crate::bytecode::runtime::heap::{Heap, HeapCmp, HeapRefOp, HeapOp};
pub use crate::bytecode::{HeapRef };
}
}
pub mod sizes {
pub use crate::config::*;
pub use crate::config_derived::*;
}