62 for (count = 2; count <= x->
argc; count++) {
64 for (iterator = NULL;;) {
66 source->internal, &iterator, x->
p, x->
xctx);
129 for (n = 1, arg = &x->
argv[1]; n <= x->argc; n++, arg++) {
137 for (iterator = NULL;;) {
219 index = abs((
int)fromIndex->internal) % len;
221 if (fromIndex->internal < 0 && index != 0) {
226 for ( ; index < len; index++) {
285 sep = &afw_s_a_comma;
288 sep = &separator->internal;
294 for (iterator = NULL, len = 0;;) {
299 len += s->len + sep->len;
307 result->internal.len = len;
308 result->internal.s = c;
309 for (iterator = NULL, len = 0;;) {
311 list_of_string, &iterator, x->
xctx);
317 if (c != result->internal.s) {
318 memcpy(c, sep->s, sep->len);
323 memcpy(c, s->s, s->len);
382 for (iterator = NULL;;) {
454 start = integer->internal;
456 start = count + start;
467 end = integer->internal;
471 else if (end > count) {
478 for (iterator = NULL, count = 0; count < end; count++) {
484 if (start <= count) {
Adaptive Framework Core Internal.
afw_value_create_list(const afw_list_t *internal, const afw_pool_t *p, afw_xctx_t *xctx)
Create function for unmanaged data type list value.
afw_value_as_list(const afw_value_t *value, afw_xctx_t *xctx)
Typesafe cast of data type list.
afw_value_allocate_string(const afw_pool_t *p, afw_xctx_t *xctx)
Allocate function for unmanaged data type string value.
#define afw_list_of_string_get_next(list, iterator, xctx)
Get next value from list of string.
struct afw_iterator_s afw_iterator_t
char afw_utf8_octet_t
8 bits of utf-8 codepoint.
apr_size_t afw_size_t
size_t.
apr_int64_t afw_integer_t
typedef for big signed int.
#define AFW_THROW_ERROR_Z(code, message_z, xctx)
Macro used to set error and 0 rv in xctx and throw it.
#define AFW_FUNCTION_EVALUATE_DATA_TYPE_PARAMETER(A_RESULT, A_N, A_TYPE)
Evaluate an arg for a particular data type.
#define AFW_FUNCTION_EVALUATE_REQUIRED_DATA_TYPE_PARAMETER(A_RESULT, A_N, A_TYPE)
Evaluate an arg for a particular data type.
#define AFW_FUNCTION_PARAMETER_IS_PRESENT(A_N)
Determine if a specific parameter value is present.
#define AFW_FUNCTION_EVALUATE_REQUIRED_PARAMETER(A_RESULT, A_N)
Evaluate an required parameter.
const afw_value_t * afw_function_execute_reverse(afw_function_execute_t *x)
Adaptive Function reverse
const afw_value_t * afw_function_execute_slice(afw_function_execute_t *x)
Adaptive Function slice
const afw_value_t * afw_function_execute_join(afw_function_execute_t *x)
Adaptive Function join
const afw_value_t * afw_function_execute_add_entries(afw_function_execute_t *x)
Adaptive Function add_entries
const afw_value_t * afw_function_execute_list(afw_function_execute_t *x)
Adaptive Function list
const afw_value_t * afw_function_execute_includes_list(afw_function_execute_t *x)
Function implementation function afw_function_execute_includes_list.
#define afw_list_get_setter(instance, xctx)
Call method get_setter of interface afw_list.
#define afw_list_get_entry_value(instance, index, p, xctx)
Call method get_entry_value of interface afw_list.
#define afw_list_get_next_value(instance, iterator, p, xctx)
Call method get_next_value of interface afw_list.
#define afw_list_get_data_type(instance, xctx)
Call method get_data_type of interface afw_list.
#define afw_list_get_count(instance, xctx)
Call method get_count of interface afw_list.
#define afw_list_setter_insert_value(instance, value, index, xctx)
Call method insert_value of interface afw_list_setter.
afw_list_determine_data_type_and_set_immutable(const afw_list_t *instance, afw_xctx_t *xctx)
Set list to immutable and determine data type of entries.
const afw_list_t * afw_list_convert_to_list_of_strings(const afw_list_t *list, const afw_pool_t *p, afw_xctx_t *xctx)
Convert a list to a list of strings.
#define afw_list_create_generic(p, xctx)
Create an value list in memory.
afw_list_add_value(const afw_list_t *instance, const afw_value_t *value, afw_xctx_t *xctx)
Call method add_value of interface afw_list_setter.
const afw_list_t * afw_list_create_with_options(int options, const afw_data_type_t *data_type, const afw_pool_t *p, afw_xctx_t *xctx)
Create an list in memory with options.
#define afw_pool_malloc(instance, size, xctx)
Call method malloc of interface afw_pool.
#define afw_value_is_list_expression(A_VALUE)
Macro to determine if value is a list expression.
#define afw_value_evaluate(value, p, xctx)
Evaluate value if needed using specific pool.
afw_value_equal(const afw_value_t *value1, const afw_value_t *value2, afw_xctx_t *xctx)
Test whether two values are equal.
afw_value_false
Adaptive value false.
afw_value_empty_string
Adaptive value empty string.
afw_value_true
Adaptive value true.
#define afw_xctx_evaluation_stack_pop_parameter_number(xctx)
Pop top PARAMETER_NUMBER off execution stack.
#define afw_xctx_evaluation_stack_push_parameter_number(PARAMETER_NUMBER, xctx)
Push PARAMETER_NUMBER onto execution stack.
Interface afw_data_type public struct.
Function execute parameter.
const afw_value_t *const * argv
This is the function parameters.
afw_xctx_t * xctx
The execution context (xctx) of caller.
const afw_pool_t * p
Pool for result.
afw_size_t argc
This is the argv count not counting argv[0].
Interface afw_list public struct.
Interface afw_list_setter public struct.
NFC normalized UTF-8 string.
struct for data type integer values.
struct for data type list values.
Interface afw_value public struct.
struct for data type string values.
Interface afw_xctx public struct.