tx3_lang/lib.rs
1//! The Tx3 language
2//!
3//! This crate provides the parser, analyzer and lowering logic for the Tx3
4//! language.
5//!
6//! # Parsing
7//!
8//! ```
9//! let program = tx3_lang::parsing::parse_string("tx swap() {}").unwrap();
10//! ```
11//!
12//! # Analyzing
13//!
14//! ```
15//! let mut program = tx3_lang::parsing::parse_string("tx swap() {}").unwrap();
16//! tx3_lang::analyzing::analyze(&mut program).ok().unwrap();
17//! ```
18//!
19//! # Lowering
20//!
21//! ```
22//! let mut program = tx3_lang::parsing::parse_string("tx swap() {}").unwrap();
23//! tx3_lang::analyzing::analyze(&mut program).ok().unwrap();
24//! let ir = tx3_lang::lowering::lower(&program, "swap").unwrap();
25//! ```
26
27pub mod analyzing;
28pub mod ast;
29pub(crate) mod builtins;
30pub mod lowering;
31pub mod parsing;
32
33// chain specific
34pub mod cardano;
35
36#[macro_export]
37macro_rules! include_tx3_build {
38 ($package: tt) => {
39 include!(concat!(env!("OUT_DIR"), concat!("/", $package, ".rs")));
40 };
41}
42
43mod facade;
44pub use facade::{Error, Workspace};