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 mod lowering;
30pub mod parsing;
31
32// chain specific
33pub mod cardano;
34
35#[macro_export]
36macro_rules! include_tx3_build {
37 ($package: tt) => {
38 include!(concat!(env!("OUT_DIR"), concat!("/", $package, ".rs")));
39 };
40}
41
42mod facade;
43pub use facade::{Error, Workspace};