-- Copyright 2020 United States Government as represented by the -- Administrator of the National Aeronautics and Space Administration. All -- Rights Reserved. -- -- Disclaimers -- -- Licensed under the Apache License, Version 2.0 (the "License"); you may -- not use this file except in compliance with the License. You may obtain a -- copy of the License at -- -- https://www.apache.org/licenses/LICENSE-2.0 -- -- Unless required by applicable law or agreed to in writing, software -- distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -- WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -- License for the specific language governing permissions and limitations -- under the License. -- -- | Copilot's representation and conversion of C Structs from C's AST. module Language.Copilot.CStruct ( -- * CStruct CStruct(..) , CField(..) ) where -- | A C struct is a name and fields with different types. data CStruct = CStruct { cStructName :: String , cStructFields :: [CField] } deriving (Eq, Show) -- | A field may have a name and a type, or be an array with a name, type and -- length. Pointers are not currently supported. data CField = CPlain String String | CArray String String Integer deriving (Eq, Show)