The expression evaluator supports application defined opaque data types. They
are somehow similar to the intrinsic data types, especially the string
data type. There is no special way to introduce them, simply setting the
type member in the variable, operator and function definitions or the
corresponding element of the
args array in operator and function
definition should do it.
See struct x1f4_variable_type.
See struct x1f4_operator_type.
See struct x1f4_function_type.
The application defined data types are supported via references, thus all the data interpretation is performed by the application.
The expression evaluator does not interpret values of application defined data types.
Constants of application defined data types are not permitted (this is the only significant difference between the application defined data types and the string type).
The C type for application defined data type values is
the good old
See C Types.
The application defined data type codes (the values through which they are
identified) should be greater than
See Symbolic Types.
As for the string type, there are no implicit conversions.
There are no conversions between two different application defined data types.
There are no conversion between any of the intrinsic types and an application defined data type.