Safe Haskell | None |
---|---|
Language | Haskell98 |
- integral :: IntType -> Type
- floating :: FloatType -> Type
- simplePtr :: Type -> Type
- size_tType :: Type
- ptrDiffType :: Type
- boolType :: Type
- voidType :: Type
- voidPtr :: Type
- constVoidPtr :: Type
- charPtr :: Type
- constCharPtr :: Type
- stringType :: Type
- valistType :: Type
- isIntegralType :: Type -> Bool
- isFloatingType :: Type -> Bool
- isPointerType :: Type -> Bool
- isScalarType :: Type -> Bool
- isFunctionType :: Type -> Bool
- typeQuals :: Type -> TypeQuals
- typeQualsUpd :: (TypeQuals -> TypeQuals) -> Type -> Type
- typeAttrs :: Type -> Attributes
- typeAttrsUpd :: (Attributes -> Attributes) -> Type -> Type
- baseType :: Type -> Type
- derefTypeDef :: Type -> Type
- deepDerefTypeDef :: Type -> Type
- canonicalType :: Type -> Type
- getIntType :: Flags CIntFlag -> IntType
- getFloatType :: String -> FloatType
Constructors
size_tType :: Type Source
The type returned by sizeof (size_t). For now, this is just int
.
The type of pointer differences (ptrdiff_t). For now, this is just int
.
A const
-qualified void
pointer.
A const
-qualified char
pointer.
stringType :: Type Source
The type of a constant string.
valistType :: Type Source
The builtin type of variable-length argument lists.
Classifiers
isIntegralType :: Type -> Bool Source
Check whether a type is an integral type. This includes enum
types. This function does not attempt to resolve typedef
types.
isFloatingType :: Type -> Bool Source
Check whether a type is a floating-point numeric type. This
function does not attempt to resolve typedef
types.
isPointerType :: Type -> Bool Source
Check whether a type is an pointer type. This includes array
types. This function does not attempt to resolve typedef
types.
isScalarType :: Type -> Bool Source
Check whether a type is a scalar type. Scalar types include arithmetic types and pointer types.
isFunctionType :: Type -> Bool Source
return True
if the given type is a function type
Result is undefined in the presence of undefined typeDefs
typeAttrs :: Type -> Attributes Source
Return the attributes of a type.
typeAttrsUpd :: (Attributes -> Attributes) -> Type -> Type Source
baseType :: Type -> Type Source
Return the base type of a pointer or array type. It is an error to call this function with a type that is not in one of those two categories.
derefTypeDef :: Type -> Type Source
resolve typedefs, if possible
deepDerefTypeDef :: Type -> Type Source
Attempt to remove all references to typedef
types from a given type.
Note that this does not dereference the types of structure or union
fields, so there are still cases where further dereferencing is
needed.
canonicalType :: Type -> Type Source
Other utilities
getIntType :: Flags CIntFlag -> IntType Source
getFloatType :: String -> FloatType Source