17 #define impl_afw_value_optional_release NULL
18 #define impl_afw_value_get_reference NULL
20 #define impl_afw_value_get_evaluated_meta \
21 afw_value_internal_get_evaluated_meta_default
23 #define impl_afw_value_get_evaluated_metas \
24 afw_value_internal_get_evaluated_metas_default
27 #define AFW_IMPLEMENTATION_ID "annotated"
28 #define AFW_IMPLEMENTATION_INF_SPECIFIER AFW_DEFINE_CONST_DATA
29 #define AFW_IMPLEMENTATION_INF_LABEL afw_value_annotated_inf
62 result->contextual = contextual;
63 result->value = value;
64 result->annotation = annotation;
98 impl_afw_value_get_data_type(
109 impl_afw_value_get_evaluated_data_type(
121 impl_afw_value_get_evaluated_data_type_parameter(
133 impl_afw_value_produce_compiler_listing(
142 if (self->annotation) {
143 afw_value_compiler_listing_begin_value(writer, instance, NULL, xctx);
149 annotation.internal =
self->annotation;
167 impl_afw_value_decompile(
176 if (self->annotation) {
183 annotation.internal =
self->annotation;
205 impl_afw_value_get_info(
215 info->value_inf_id = &instance->inf->rti.implementation_id;
216 info->contextual =
self->contextual;
AFW_DEFINE(const afw_object_t *)
Adaptive Framework Core Internal.
Interface afw_interface implementation declares.
afw_value_evaluated_object_inf
Unmanaged evaluated value inf for data type object.
#define afw_memory_clear(to)
Clear preallocated memory for sizeof(*(to)).
#define afw_pool_calloc_type(instance, type, xctx)
Macro to allocate cleared memory to hold type in pool.
const afw_value_t * impl_afw_value_optional_evaluate(const afw_value_t *instance, const afw_pool_t *p, afw_xctx_t *xctx)
#define afw_value_produce_compiler_listing(instance, writer, xctx)
Call method produce_compiler_listing of interface afw_value.
#define afw_value_decompile(instance, writer, xctx)
Call method decompile of interface afw_value.
#define afw_value_evaluate(value, p, xctx)
Evaluate value if needed using specific pool.
afw_value_annotated_create(const afw_compile_value_contextual_t *contextual, const afw_value_t *value, const afw_object_t *annotation, const afw_pool_t *p, afw_xctx_t *xctx)
Create function for annotated value.
afw_value_annotated_inf
Value annotated inf.
afw_value_annotation_allocate(const afw_pool_t *p, afw_xctx_t *xctx)
Allocate function for annotation value.
#define afw_writer_increment_indent(instance, xctx)
Call method increment_indent of interface afw_writer.
#define afw_writer_write_eol(instance, xctx)
Call method write_eol of interface afw_writer.
#define afw_writer_decrement_indent(instance, xctx)
Call method decrement_indent of interface afw_writer.
#define afw_writer_write_z(writer, s_z, xctx)
Call afw_writer_write() with zero terminated string.
#define afw_xctx_evaluation_stack_push_value(VALUE, xctx)
Push VALUE onto execution stack.
#define afw_xctx_evaluation_stack_pop_parameter_number(xctx)
Pop top PARAMETER_NUMBER off execution stack.
Contextual information provided in some values.
Interface afw_data_type public struct.
Interface afw_object public struct.
Interface afw_pool public struct.
NFC normalized UTF-8 string.
Struct for annotated value.
Filled in by afw_value get_info method.
struct for data type object values.
Interface afw_value public struct.
Interface afw_writer public struct.
Interface afw_xctx public struct.