Re-exports
pub use semantic_analysis::namespace;
pub use semantic_analysis::TypedDeclaration;
pub use crate::parse_tree::Declaration;
pub use error::CompileError;
pub use error::CompileResult;
pub use error::CompileWarning;
pub use crate::parse_tree::*;
pub use type_system::*;
Modules
Configurable yet nonchanging constants for the compiler.
The DeclarationEngine allows the compiler to add a layer of
separation between AST nodes and declarations.
Tools related to handling/recovering from Sway compile errors and reporting them to the user.
Contains all the code related to parsing Sway source code.
Type checking for Sway.
Structs
Configuration for the overall build and compilation process.
Represents a parsed, but not yet type checked, Expression.
The set of items that represent the namespace context passed throughout type checking.
A module and its submodules in the form of a tree.
A parsed, but not yet type-checked, Sway program.
A UseStatement is a statement that imports something from a module into the local namespace.
Enums
Either finalized ASM or a library.
Either compiled bytecode in byte form or a library.
A Sway program can be either a contract, script, predicate, or a library.
Functions
Given the assembly (opcodes), compile to a BytecodeOrLib, containing the asm in bytecode form.
Given an AST compilation result,
try compiling to a
AsmOrLib
,
containing the asm in opcode form (not raw bytes/bytecode).Given input Sway source code,
try compiling to a
AsmOrLib
,
containing the asm in opcode form (not raw bytes/bytecode).Given input Sway source code, compile to a BytecodeOrLib, containing the asm in bytecode form.
Given an input
Arc<str>
and an optional BuildConfig, parse the input into a [SwayParseTree].