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}