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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
//  * ******************************************************************************************
//  * Copyright (c) 2019 Pascal Kuthe. This file is part of the OpenVAF project.
//  * It is subject to the license terms in the LICENSE file found in the top-level directory
//  *  of this distribution and at  https://gitlab.com/DSPOM/OpenVAF/blob/master/LICENSE.
//  *  No part of OpenVAF, including this file, may be copied, modified, propagated, or
//  *  distributed except according to the terms contained in the LICENSE file.
//  * *******************************************************************************************
//! A frontend for Verilog AMS that returns an Tree based IR as its end result
//!
//! ```
//! # use bumpalo::Bump;
//! # use std::path::Path;
//! let source_map_allocator = Bump::new();
//!  let source_map = ast
//!     .parse_from_and_print_errors(Path::new("<File>"), &source_map_allocator, true)?;
//!  let hir = ast
//!     .lower_and_print_errors(source_map, true)?;
//!  let mir = hir
//!     .lower_and_print_errors(source_map, true)?;
//! ```
//!  
//!
//!

#![allow(clippy::module_name_repetitions,clippy::unreadable_literal,clippy::unseparated_literal_suffix,clippy::pub_enum_variant_names)]

#[macro_use]
extern crate bitflags;
#[macro_use]
extern crate intrusive_collections;
#[macro_use]
extern crate lazy_static;
extern crate std;

pub use bumpalo;

pub use ahash;
pub use rustc_hash;

#[doc(inline)]
pub use ir::ast;
#[doc(hidden)]
pub use ir::ast::Ast;
#[doc(inline)]
pub use ir::cfg;
#[doc(hidden)]
pub use ir::cfg::ControlFlowGraph;
#[doc(inline)]
pub use ir::hir;
#[doc(hidden)]
pub use ir::hir::Hir;
#[doc(inline)]
pub use ir::mir;
#[doc(hidden)]
pub use parser::lexer::Lexer;
#[doc(hidden)]
pub use parser::preprocessor::Preprocessor;
#[doc(inline)]
pub use parser::preprocessor::SourceMap;
#[doc(hidden)]
pub(crate) use parser::Parser;
#[doc(inline)]
pub use span::Span;

pub mod symbol;
#[macro_use]
pub mod util;
#[macro_use]
pub mod ir;
pub mod analysis;
pub mod ast_lowering;
pub mod data_structures;
mod error;
mod hir_lowering;
mod literals;
pub mod parser;
mod span;
pub mod symbol_table;

pub use literals::StringLiteral;