Next: , Up: Imperative Language Interpreter Types   [Index]


5.9.2.1 struct x1f4_c1_type

typedef struct x1f4_c1_type {
    int completion, detail;
    struct x1f4_track_type textflat_set;
    struct {
	struct x1f4_eelookup_type *eelookup_data;
    } eelookup_set;
    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 {
	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_c1record_type *c1record_data;
    } bcollect_set;
    struct {
        void *fine;
    } transfer_set;
    struct x1f4_trans_type resource_set;
    struct {
	int (*link)(void *, void **, unsigned),
	    (*pick)(void *, void ***, int (*)(void *), unsigned, void **);
	void *context;
    } autolead_set;
    struct {
	const void *miss;
    } datatype_set;
    struct {
	const void *miss;
    } sidetype_set;
    struct {
	struct x1f4_progress_type *progress_data;
    } traverse_set;
    struct {
	void *fine;
    } deprefix_set;
    struct {
	struct x1f4_linetext_type **linetext;
	struct x1f4_variable_type *variable_data;
    } casecall_set;
    struct x1f4_trans_type codelink_set;
    const struct x1f4_operator_type *const *operator1s, *const *operator2s;
} x1f4_c1_type;

The struct x1f4_c1_type record describes the program parsing context.

The fields that are always interpreted by the program 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

context

the function look up context

See Functions.

variable_set

specifies the variables set as:

context

the variables collection to observe

See Variables Collections.

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:

See Imperative Language Interpreter Generation Flags.

completion

specifies textual program completion syntax

See Program Completions.

See Imperative Language Syntax.

detail

indicates the type that the first ‘return’ introduced expression must match if one such expression is expected (i.e. if completion is X1f4_C1_TURN_COMPLETION).

See Program Completions.

See Imperative Language Syntax.

bcollect_set

specifies some parsing error collector as:

c1record_data

the very error collector

See struct x1f4_c1record_type.

See Imperative Program Parsing Error Reporting.

datatype_set

specifies the application defined declarable types as:

miss

the null terminated struct x1f4_datatype_type application defined declarable type definitions array. Here the null terminated means the last struct x1f4_datatype_type record in the array has its name field set to NULL.

See Data Type Definition.

See Application Defined Types.

See struct x1f4_datatype_type.

sidetype_set

specifies the application defined non declarable types as:

miss

the null terminated struct x1f4_datatype_type application defined declarable type definitions array. Here the null terminated means the last struct x1f4_datatype_type record in the array has its name field set to NULL.

See Data Type Definition.

See Application Defined Types.

See struct x1f4_datatype_type.

The non declarable data types are allowed for function returns and parameters, but not for variable declarations.

resource_set

specifies an alternate memory manager.

See struct x1f4_trans_type.

See Memory Allocator Construct.

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.

autolead_set

specifies the return expression result recorder as:

link

the memory allocation method

pick

the temporary collection routine registering method

context

the temporaries collection context

See Non Scalar Function Returns.

See Temporaries Allocator Construct.

The expression is introduced via the ‘return’ keyword.

See Program Completions.

transfer_set

specifies a function type mapper to be used as:

fine

the mapper object

See Function Pointers.

See Function Pointer Type Alloter.

If no mapper is specified (either X1f4_C1_TRANSFER is missing in the flags argument of the program parser function or fine is nil) a function type mapper is constructed and used instead.

textflat_set

specifies the error reporter.

See struct x1f4_track_type.

See Error Reporter Construct.

eelookup_set

specifies a name lookup context as:

eelookup_data

the data type name lookup context, used for error reporting

See struct x1f4_eelookup_type.

codelink_set

specifies the program executable allocator (allocates memory for the program executable representation only, not for program execution and not for program created data (strings, etc)). If not set and resource_set is, the latter is used instead.

See struct x1f4_trans_type.

See Memory Allocator Construct.

traverse_set

specifies the collection traversal modes as:

miss

the null terminated struct x1f4_progress_type traversal mode definitions array. Here the null terminated means the last struct x1f4_progress_type record in the array has its count field set to 0.

See Traversable Collections.

See struct x1f4_progress_type.

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_c1record_type, Up: Imperative Language Interpreter Types   [Index]