1use crate::aig::U;
8use std::num::ParseIntError;
9use sv_parser::Locate;
10use thiserror::Error;
11
12#[derive(Error, Debug)]
14pub enum VerilogError {
15 #[error("Parsing int error {0} `{1:?}`")]
17 ParseIntError(ParseIntError, Locate),
18 #[error("Parsing string error {0:?}")]
20 ParseStrError(Locate),
21 #[error("Unexpected RefNode {0:?} `{1}`")]
23 UnexpectedRefNode(Locate, String),
24 #[error("Missing RefNode `{0}`")]
26 MissingRefNode(String),
27 #[error(" `{1}` : {0:?}")]
29 SafetyNetError(Option<Locate>, safety_net::Error),
30 #[error("{0:?}")]
32 ParserError(#[from] sv_parser::Error),
33 #[error(" `{1}` : {0:?}")]
35 Other(Option<Locate>, String),
36}
37
38#[derive(Error, Debug)]
40pub enum AigError {
41 #[error("Contains bad state properties `{0:?}`")]
43 ContainsBadStates(Vec<U>),
44 #[error("Contains latches `{0:?}`")]
46 ContainsLatches(Vec<U>),
47 #[error("Attempted aig contains cycles")]
49 ContainsCycle,
50 #[error("Attempted aig contains gates besides AND and INV")]
52 ContainsOtherGates,
53 #[error("Attempted aig has disconnected gates.")]
55 DisconnectedGates,
56 #[error("Safety net error `{0}`")]
58 SafetyNetError(#[from] safety_net::Error),
59 #[error("flussab error `{0}`")]
61 FlussabError(#[from] flussab_aiger::aig::AigStructureError<crate::aig::U>),
62 #[error("IO error `{0}`")]
64 IoError(#[from] std::io::Error),
65}