module Language.Copilot.CStruct
(
CStruct(..)
, CField(..)
)
where
data CStruct = CStruct
{ CStruct -> String
cStructName :: String
, CStruct -> [CField]
cStructFields :: [CField]
}
deriving (CStruct -> CStruct -> Bool
(CStruct -> CStruct -> Bool)
-> (CStruct -> CStruct -> Bool) -> Eq CStruct
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CStruct -> CStruct -> Bool
== :: CStruct -> CStruct -> Bool
$c/= :: CStruct -> CStruct -> Bool
/= :: CStruct -> CStruct -> Bool
Eq, Int -> CStruct -> ShowS
[CStruct] -> ShowS
CStruct -> String
(Int -> CStruct -> ShowS)
-> (CStruct -> String) -> ([CStruct] -> ShowS) -> Show CStruct
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CStruct -> ShowS
showsPrec :: Int -> CStruct -> ShowS
$cshow :: CStruct -> String
show :: CStruct -> String
$cshowList :: [CStruct] -> ShowS
showList :: [CStruct] -> ShowS
Show)
data CField = CPlain String String
| CArray String String Integer
deriving (CField -> CField -> Bool
(CField -> CField -> Bool)
-> (CField -> CField -> Bool) -> Eq CField
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CField -> CField -> Bool
== :: CField -> CField -> Bool
$c/= :: CField -> CField -> Bool
/= :: CField -> CField -> Bool
Eq, Int -> CField -> ShowS
[CField] -> ShowS
CField -> String
(Int -> CField -> ShowS)
-> (CField -> String) -> ([CField] -> ShowS) -> Show CField
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CField -> ShowS
showsPrec :: Int -> CField -> ShowS
$cshow :: CField -> String
show :: CField -> String
$cshowList :: [CField] -> ShowS
showList :: [CField] -> ShowS
Show)