Package-level declarations

Types

Link copied to clipboard
class BooleanType(typeName: CharSequence = "bool", val bitWidth: Int? = 1, language: Language<out LanguageFrontend>? = null, val modifier: NumericType.Modifier = Modifier.NOT_APPLICABLE) : NumericType

Instances of this class represent boolean types.

Link copied to clipboard
class FloatingPointType(typeName: CharSequence = "", val bitWidth: Int? = null, language: Language<out LanguageFrontend>? = null, val modifier: NumericType.Modifier = Modifier.SIGNED) : NumericType

Instances of this class represent floating point types.

Link copied to clipboard

FunctionPointerType represents function pointers containing a list of parameters and a return type.

Link copied to clipboard
class FunctionType @JvmOverloads constructor(typeName: String = "", var parameters: List<Type> = listOf(), var returnTypes: List<Type> = listOf(), language: Language<out LanguageFrontend>? = null) : Type

A type representing a function. It contains a list of parameters and one or more return types.

Link copied to clipboard

IncompleteTypes are defined as object with unknown size. For instance: void, arrays of unknown length, forward declarated classes in C++

Link copied to clipboard
class IntegerType(typeName: CharSequence = "", val bitWidth: Int? = null, language: Language<out LanguageFrontend>? = null, val modifier: NumericType.Modifier = Modifier.SIGNED) : NumericType

Instances of this class represent integer types.

Link copied to clipboard
open class NumericType(typeName: CharSequence = "", val bitWidth: Int? = null, language: Language<out LanguageFrontend>? = null, val modifier: NumericType.Modifier = Modifier.SIGNED) : ObjectType

This type collects all kind of numeric types.

Link copied to clipboard

This is the main type in the Type system. ObjectTypes describe objects, as instances of a class. This also includes primitive data types.

Link copied to clipboard

ParameterizedTypes describe types, that are passed as Paramters to Classes E.g. uninitialized generics in the graph are represented as ParameterizedTypes

Link copied to clipboard

PointerTypes represent all references to other Types. For C/CPP this includes pointers, as well as arrays, since technically arrays are pointers. For JAVA the only use case are arrays as there is no such pointer concept.

Link copied to clipboard

ReferenceTypes describe CPP References (int&), which represent an alternative name for a variable. It is necessary to make this distinction, and not just rely on the original type as it is required for matching parameters in function arguments to discover which implementation is called.

Link copied to clipboard
interface SecondOrderType
Link copied to clipboard
class StringType(typeName: CharSequence = "", language: Language<out LanguageFrontend>? = null, generics: List<Type> = listOf()) : ObjectType
Link copied to clipboard
class TupleType(types: List<Type>) : Type

Represents a tuple of types. Primarily used in resolving function calls with multiple return values.

Link copied to clipboard
abstract class Type : Node

Abstract Type, describing all possible SubTypes, i.e. all different Subtypes are compliant with this class. Contains information which is included in any Type such as name, storage, qualifier and origin

Link copied to clipboard
open class TypeParser
Class responsible for parsing the type definition and create the same Type as described by the type string, but complying to the CPG TypeSystem
Link copied to clipboard

UnknownType describe the case in which it is not possible for the CPG to determine which Type is used. E.g.: This occurs when the type is inferred by the compiler automatically when using keywords such as auto in cpp

Link copied to clipboard
class WrapState

Stores State for rewrap when typeinformation has been unwrapped