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
//! Numerical computing for Yolol
//!
//! Yolk is a domain-specific language that transpiles to Yolol.
//!
//! # Quick Start
//!
//! ```
//! use yolk::{YolkProgram, YololProgram};
//! use std::convert::TryInto;
//!
//! // Parse a Yolk program from a string
//! let yolk: YolkProgram = "let foo = 1".parse().unwrap();
//!
//! // Transpile a Yolk program to Yolol, then optimize
//! let yolol: YololProgram = yolk.try_into().unwrap();
//! let optimized = yolol.optimize();
//!
//! // Print a Yolol program as a chip
//! println!("{}", optimized.to_string());
//! ```

#[macro_use]
extern crate failure;
#[macro_use]
extern crate lazy_static;
extern crate pest;
#[macro_use]
extern crate pest_derive;

pub mod ast;
pub mod error;
pub mod optimizer;
pub mod parser;
pub mod transpiler;

pub use ast::{YolkProgram, YololProgram};
pub use error::YolkError;