module Lava2000.Error ( Error(..) , wrong ) where ---------------------------------------------------------------- -- Error data Error = DelayEval | VarEval | CombinationalLoop | BadCombinationalLoop | UndefinedWire | IncompatibleStructures | NoEquality | NoArithmetic | EnumOnSymbols | Internal_OptionNotFound deriving (Eq, Show) wrong :: Error -> a wrong err = error $ case err of DelayEval -> "evaluating a delay component" VarEval -> "evaluating a symbolic value" CombinationalLoop -> "combinational loop" BadCombinationalLoop -> "short circuit" UndefinedWire -> "undriven output" IncompatibleStructures -> "combining incompatible structures" NoEquality -> "no equality defined for this type" NoArithmetic -> "arithmetic operations are not supported" EnumOnSymbols -> "enumerating symbolic values" Internal_OptionNotFound -> internal "option not found" _ -> internal "unknown error" internal :: String -> String internal msg = "INTERNAL ERROR: " ++ msg ++ ".\nPlease report this as a bug to `koen@cs.chalmers.se'." ---------------------------------------------------------------- -- the end.