Next: Optimizing Expressions, Previous: Printing, Up: Expression Evaluator [Index]
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 X1f4_E4_C_USER
,
the good old void
pointer.
See C Types.
The application defined data type codes (the values through which they are
identified) should be greater than X1f4_E4_LAST
and less than
X1f4_E4_CALL
.
See Symbolic Types.
As for the string type, there are no predefined implicit conversions.
See Implicit Conversions.
There are no implicit conversions between two different application defined data types.
There are no implicit conversions between any of the intrinsic types and an application defined data type.