Package edu.udel.cis.vsl.abc.ast.type.IF
package edu.udel.cis.vsl.abc.ast.type.IF
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,
int
).
-
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_Atomic
type qualifier.The CIVL-C type$domain
or$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:float
,double
,long double
, representing increasing precision, and "real", a CIVL-C type denoted$real
representing 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 (seeLambdaNode
.This class represents the$mem
type which stands for a set of (typed) memory locations.A type of aVariable
, 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 ofType
.An unqualified object type is an object type without any qualifier (const, volatile, etc.).