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
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.
operator1s
specifies the prefix unary operators set
operator2s
specifies the infix binary operators set
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.
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.
bcollect_set
specifies some parsing error collector as:
c1record_data
the very error collector
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.
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.
The non declarable data types are allowed for function returns and parameters, but not for variable declarations.
resource_set
specifies an alternate memory manager.
implicit_set
specifies the prefix unary operator converters set as:
get
the converter look up method
context
the converter look up context
composer_set
specifies the single parameter function converters set
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.
eelookup_set
specifies a name lookup context as:
eelookup_data
the data type name lookup context, used for error reporting
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.
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
.
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.
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.
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
.
The memory locations pointed to by both ‘linetext’ and ‘variable_data’ are expected accessible and meaningfully set during the constructed expression use and destruction.