Next: , Previous: , Up: Types   [Index]


3.22.2.5 struct x1f4_e4_type

typedef struct x1f4_e4_type {
    int completion, terminator;
    struct {
        int (*fix)(const void *, const struct x1f4_function_type *, void **),
            (*get)(const char *, unsigned, const void *,
                   const struct x1f4_function_type **);
        const void *context;
    } function_set;
    struct {
        int (*get)(const char *, unsigned, const void *,
                   const struct x1f4_variable_type **, void **);
        const void *context;
    } variable_set;
    struct {
	int (*get)(void *, int, int, const struct x1f4_operator_type **);
	void *context;
    } implicit_set;
    struct x1f4_composer_type composer_set;
    struct {
        struct x1f4_eerecord_type *eerecord_data;
    } bcollect_set;
    struct {
        void *fine;
    } transfer_set;
    struct {
        int (*free)(void *, void *), (*link)(void *, void **, unsigned),
            (*mode)(void *, void **, unsigned);
        void *context;
    } resource_set;
    struct {
        unsigned *s1st, *s2nd;
    } internal_set;
    struct {
        void *v1st, *v2nd;
    } datalink_set;
    struct {
	int type;
    } sequence_set;
    struct {
	void *fine;
    } deprefix_set;
    struct {
	struct x1f4_linetext_type **linetext;
	struct x1f4_variable_type *variable_data;
    } casecall_set;
    const struct x1f4_operator_type *const *operator1s, *const *operator2s;
} x1f4_e4_type;

The struct x1f4_e4_type record describes the expression interpretation context.

The fields that are always interpreted by the expression parsing functions are:

function_set

specifies the functions set as:

fix

the function specific execution context retriever method

See Per Function Execution Context.

get

the function look up method

See Defining Function Sets.

context

the function look up context

See Functions.

variable_set

specifies the variables set as:

get

the variable look up method

See Defining Variables.

context

the variable look up context

See Variables.

operator1s

specifies the prefix unary operators set

See Prefix Unary Operators.

operator2s

specifies the infix binary operators set

See Infix Binary Operators.

The fields that are interpreted only if so requested are:

completion

specifies textual expression completion syntax

See Completions.

See Expression Syntax.

terminator

indicates the character whose first occurence marks the textual expression completion

See Completions.

See Expression Syntax.

bcollect_set

specifies some parsing error collector as:

eerecord_data

the very error collector

See struct x1f4_eerecord_type.

See Error Reporting.

resource_set

specifies an alternate memory manager as:

free

a memory deallocation method

link

a memory allocation method

mode

a memory reallocation method

context

the memory management context

See Memory Allocator Construct.

See Replacing Default Memory Manager.

implicit_set

specifies the prefix unary operator converters set as:

get

the converter look up method

context

the converter look up context

See Operator Converters Set Definition.

composer_set

specifies the single parameter function converters set

See Function Converters Set Definition.

See struct x1f4_composer_type.

internal_set

specifies the maximum already recorded stack sizes that needs to be updated if exceeded as:

s1st

the first stack size maximum size record address

s2nd

the second stack size maximum size record address

See Managing Stacks.

datalink_set

specifies the addresses of the stack to be used as:

v1st

the first stack address

v2nd

the second stack address

See Managing Stacks.

transfer_set

specifies a function type mapper to be used as:

fine

the mapper object

See Function Pointers.

See Function Pointer Type Alloter.

sequence_set

specifies the usable expression type as:

type

the type id

See Intrinsic Types.

See Application Defined Types.

See x1f4_type_expression.

The expression parser will transform the expression by means of implicit conversions so that it evaluates to the specified type. If the type conversion is not possible the expression parsing is failed.

See Implicit Conversions.

deprefix_set

specifies the strippable function prefixes collection as:

fine

a type id to list of prefixes associative array.

The prefixes are introduced in the struct x1f4_deprefix_type record definition, with one null terminated array per type (the last record in the array has its name and size fields set as NULL and 0 respectively).

See Strippable Prefixes.

See struct x1f4_deprefix_type.

casecall_set

specifies the ‘object’ data caller as:

linetext

the address where a pointer to the struct x1f4_linetext_type definition of the ‘object’ caller function is stored.

See struct x1f4_linetext_type.

The described function calls the function described by its first ‘object’ argument with its remaining arguments, the same way the ‘call’ function of the trap library does.

See Trap Library.

See (aime)Function Callers.

variable_data

the address of the struct x1f4_variable_type record describing a matching call variable (its type field is not used). The variable value is the one at linetext.

See struct x1f4_variable_type.

The memory locations pointed to by both ‘linetext’ and ‘variable_data’ are expected accessible and meaningfully set during the constructed expression use and destruction.


Next: struct x1f4_eelookup_type, Previous: struct x1f4_deprefix_type, Up: Types   [Index]