Adaptive Framework  0.9.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Macros | Functions
afw_value_block.c File Reference

Implementation of afw_value interface for block. More...

#include "afw_internal.h"
#include "afw_value_impl_declares.h"

Go to the source code of this file.

Macros

#define impl_afw_value_optional_release   NULL
 
#define impl_afw_value_get_reference   NULL
 
#define impl_afw_value_get_evaluated_meta    afw_value_internal_get_evaluated_meta_default
 
#define impl_afw_value_get_evaluated_metas    afw_value_internal_get_evaluated_metas_default
 
#define AFW_IMPLEMENTATION_ID   "block"
 
#define AFW_IMPLEMENTATION_INF_SPECIFIER   AFW_DEFINE_CONST_DATA
 
#define AFW_IMPLEMENTATION_INF_LABEL   afw_value_block_inf
 
#define IMPL_TEMP_FIX_ASSIGNS(XX)
 
#define IMPL_TEMP_FIX(XX)
 

Functions

 afw_value_block_evaluate_block (afw_function_execute_t *x, afw_value_block_statement_type_t *type, const afw_value_block_t *self, afw_boolean_t is_loop, const afw_pool_t *p, afw_xctx_t *xctx)
 
 afw_value_block_evaluate_for (afw_function_execute_t *x, afw_value_block_statement_type_t *type, afw_size_t argc, const afw_value_t *const *argv, const afw_pool_t *p, afw_xctx_t *xctx)
 
 afw_value_block_evaluate_foreach (afw_function_execute_t *x, afw_value_block_statement_type_t *type, afw_size_t argc, const afw_value_t *const *argv, const afw_pool_t *p, afw_xctx_t *xctx)
 
 afw_value_block_evaluate_do_while (afw_function_execute_t *x, afw_value_block_statement_type_t *type, afw_size_t argc, const afw_value_t *const *argv, const afw_pool_t *p, afw_xctx_t *xctx)
 
 afw_value_block_evaluate_if (afw_function_execute_t *x, afw_value_block_statement_type_t *type, afw_size_t argc, const afw_value_t *const *argv, afw_boolean_t is_loop, const afw_pool_t *p, afw_xctx_t *xctx)
 
 afw_value_block_evaluate_while (afw_function_execute_t *x, afw_value_block_statement_type_t *type, afw_size_t argc, const afw_value_t *const *argv, const afw_pool_t *p, afw_xctx_t *xctx)
 
 afw_value_block_evaluate_statement (afw_function_execute_t *x, afw_value_block_statement_type_t *type, afw_boolean_t allow_return, afw_boolean_t is_loop, const afw_value_t *statement, const afw_pool_t *p, afw_xctx_t *xctx)
 
 afw_value_block_allocated_and_link (const afw_compile_value_contextual_t *contextual, afw_value_compiled_value_t *compiled_value, afw_size_t *block_count, const afw_pool_t *p, afw_xctx_t *xctx)
 Create and link a new block. More...
 
 afw_value_block_finalize (const afw_value_block_t *block, afw_size_t argc, const afw_value_t *const *argv, afw_xctx_t *xctx)
 Create and link a new block. More...
 
const afw_value_timpl_afw_value_optional_evaluate (const afw_value_t *instance, const afw_pool_t *p, afw_xctx_t *xctx)
 
const afw_data_type_timpl_afw_value_get_data_type (const afw_value_t *instance, afw_xctx_t *xctx)
 
const afw_data_type_timpl_afw_value_get_evaluated_data_type (const afw_value_t *instance, afw_xctx_t *xctx)
 
const afw_utf8_timpl_afw_value_get_evaluated_data_type_parameter (const afw_value_t *instance, afw_xctx_t *xctx)
 
void impl_afw_value_produce_compiler_listing (const afw_value_t *instance, const afw_writer_t *writer, afw_xctx_t *xctx)
 
void impl_afw_value_decompile (const afw_value_t *instance, const afw_writer_t *writer, afw_xctx_t *xctx)
 
void impl_afw_value_get_info (const afw_value_t *instance, afw_value_info_t *info, const afw_pool_t *p, afw_xctx_t *xctx)
 

Detailed Description

Implementation of afw_value interface for block.

Definition in file afw_value_block.c.

Macro Definition Documentation

◆ IMPL_TEMP_FIX

#define IMPL_TEMP_FIX (   XX)
Value:
afw_function_execute_t modified_x; \
afw_memory_clear(&modified_x); \
IMPL_TEMP_FIX_ASSIGNS(XX) \
x = &modified_x
Function execute parameter.
Definition: afw_function.h:53

Definition at line 42 of file afw_value_block.c.

◆ IMPL_TEMP_FIX_ASSIGNS

#define IMPL_TEMP_FIX_ASSIGNS (   XX)
Value:
modified_x.p = p; \
modified_x.xctx = xctx; \
modified_x.function = &afw_function_definition_ ## XX; \
modified_x.argv = argv; \
modified_x.argc = argc; \

Definition at line 35 of file afw_value_block.c.