Module dev.civl.abc
Package dev.civl.abc.ast.conversion.IF
package dev.civl.abc.ast.conversion.IF
Submodule ast.conversion provides classes for representing
to C's "implicit conversions". These include numeric conversions which convert,
for example, a float to a double, the conversion of
a an array to a pointer to element 0 of the array, the conversion of a function name
to a pointer to that function, and so on.
-
ClassDescriptionRepresents a conversion from any arithmetic type to another arithmetic type (not just the "usual arithmetic conversions").An implicit conversion from array type to pointer type.An implicit conversion from one pointer type to another pointer type in the case where either the two types are compatible or the second type is obtained by adding a qualifier to the type of thing pointed to.Conversion from one structure or union type to a compatible version of that type.A conversion is an implicit operation that may change a value and/or the type of the value.Kind of conversionsA factory for producing instances of
Conversion.Factory class providing static method to produce aConversionFactory.An implicit conversion of a function type T to the type pointer-to-T.This conversion will usually be undefined behavior, but it is still used and we try to support it.An Lvalue conversion, i.e., a conversion from the type of an lvalue to the type of the value obtained by evaluating that lvalue.A MemConversion converts an expression of pointer or set-of pointer type to $mem type.Conversion of a null pointer constant to any pointer type.Not normally defined behavior, but commonly used and we try to support it.Any pointer type can be explicitly cast to the boolean type: if the pointer is NULL, it maps to the boolean valuefalse, else it maps totrue.Converts a regular range to a (one-dimension) domain.A conversion between the type pointer-to-void and a pointer to an object type.