18 #define impl_afw_value_optional_release NULL
19 #define impl_afw_value_get_reference NULL
23 #define impl_afw_value_get_evaluated_metas \
24 afw_value_internal_get_evaluated_metas_default
27 #define AFW_IMPLEMENTATION_ID "qualified_variable_reference"
28 #define AFW_IMPLEMENTATION_INF_SPECIFIER AFW_DEFINE_CONST_DATA
29 #define AFW_IMPLEMENTATION_INF_LABEL afw_value_qualified_variable_reference_inf
45 result->contextual = contextual;
46 memcpy(&result->name, name,
sizeof(
afw_utf8_t));
48 memcpy(&result->qualifier, qualifier,
sizeof(
afw_utf8_t));
50 &result->qualifier, &afw_s_a_qualification_operator, &result->name,
54 result->optionally_qualified_name = &result->name;
56 result->backtrace_detail = result->optionally_qualified_name;
95 impl_afw_value_get_data_type(
106 impl_afw_value_get_evaluated_data_type(
119 impl_afw_value_get_evaluated_data_type_parameter(
140 meta = afw_value_internal_create_meta_object_self(
142 meta->key =
self->optionally_qualified_name;
146 internal)->meta.meta_object;
148 return (
const afw_value_t *)& meta->meta_object_value;
156 impl_afw_value_produce_compiler_listing(
164 afw_value_compiler_listing_begin_value(writer, instance,
165 self->contextual, xctx);
167 if (self->qualifier.len > 0) {
180 impl_afw_value_decompile(
188 if (self->qualifier.len > 0) {
201 impl_afw_value_get_info(
211 info->value_inf_id = &instance->inf->rti.implementation_id;
212 info->contextual =
self->contextual;
213 info->detail =
self->backtrace_detail;
AFW_DEFINE(const afw_object_t *)
Adaptive Framework Core Internal.
Interface afw_interface implementation declares.
#define afw_value_is_object(A_VALUE)
Macro to determine if value is evaluated 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_utf8_t * afw_utf8_concat(const afw_pool_t *p, afw_xctx_t *xctx,...)
Concatenate strings with result in specifed pool.
const afw_value_t * impl_afw_value_get_evaluated_meta(const afw_value_t *instance, const afw_pool_t *p, afw_xctx_t *xctx)
const afw_value_t * impl_afw_value_optional_evaluate(const afw_value_t *instance, const afw_pool_t *p, afw_xctx_t *xctx)
afw_value_qualified_variable_reference_inf
Value qualified_variable_reference inf.
afw_value_qualified_variable_reference_create(const afw_compile_value_contextual_t *contextual, const afw_utf8_t *qualifier, const afw_utf8_t *name, const afw_pool_t *p, afw_xctx_t *xctx)
Create function for variable reference value.
#define afw_writer_write_eol(instance, xctx)
Call method write_eol of interface afw_writer.
#define afw_writer_write_z(writer, s_z, xctx)
Call afw_writer_write() with zero terminated string.
#define afw_writer_write_utf8(writer, S, xctx)
Call afw_writer_write() with a afw_utf8_t string.
afw_xctx_get_qualified_variable(const afw_utf8_t *qualifier, const afw_utf8_t *name, afw_xctx_t *xctx)
Get a variable from xctx stack.
#define afw_xctx_evaluation_stack_push_value(VALUE, xctx)
Push VALUE onto execution stack.
#define afw_xctx_evaluation_stack_pop_value(xctx)
Pop top VALUE off execution stack.
Contextual information provided in some values.
Interface afw_data_type public struct.
const afw_compile_value_contextual_t * contextual
Contextual information or NULL.
Interface afw_pool public struct.
NFC normalized UTF-8 string.
Filled in by afw_value get_info method.
struct for data type object values.
Struct for qualified variable reference value.
Interface afw_value public struct.
Interface afw_writer public struct.
Interface afw_xctx public struct.