rasta_verilog/lib.rs
1use std::{cell::RefCell, rc::Rc};
2use std::fmt::Write;
3
4use rasta::*;
5
6mod gen;
7
8pub use gen::*;
9
10#[derive(Debug)]
11pub enum ErrorKind {
12
13}
14
15#[derive(Debug)]
16pub struct Error(pub ErrorKind, pub String);
17
18
19
20pub fn generate_verilog(ast: &CompUnit) -> Result<String, Error> {
21 let code = Rc::new(RefCell::new(String::new()));
22 ast.generate(code.clone())?;
23 let code = code.borrow().clone();
24
25 Ok(code)
26}