The ast.type submodule defines the (abstract) types
that can be specified in a program. Note that these are different
than type nodes, which represent actual syntactic elements in the program.
The types are generated by processing and interpreting the type nodes.
Two different type nodes may specify the same type (for example,
ClassDescriptionThe arithmetic types are "char", the signed and unsigned integer types, enumeration types, and the floating types (which include the real and the complex floating types).Represents an array type.An atomic type, specified by
_Atomic ( type-name )or by using the
_Atomictype qualifier.The CIVL-C type
$domain(n).An enumeration type.An Enumerator corresponds to one of the identifiers in the list in an enumeration.A Field is a member of a structure or union.The floating types come in four kinds:
long double, representing increasing precision, and "real", a CIVL-C type denoted
$realrepresenting the mathematical real numbers.According to C11, a function type is characterized by the return type and the number and types of the arguments.Marker interface for all "integer type" nodes.A lambda type represents the type of an lambda expression (see
LambdaNode.This class represents the
$memtype which stands for a set of (typed) memory locations.A type of a
Variable, also known as an "object" in C.A set type is the type for expressions that represent sets of objects.Represents a C "signed or unsigned integer type."An instance of this class represents a "standard basic type".The 5 "standard" signed integer types.The 5 kinds of standard signed integer types.A structure or union type.An instance of Type represents a C type.The different kinds of types.A factory for producing C types, which are represented as instances of
Type.An unqualified object type is an object type without any qualifier (const, volatile, etc.).