typedef struct x1f4_a1_type {
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_a1record_type *a1record_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 {
const char **argv;
unsigned argc;
} argument_set;
struct x1f4_frame_type autolink_set;
struct x1f4_trans_type codelink_set;
const struct x1f4_operator_type *const *operator1s, *const *operator2s;
} x1f4_a1_type;
The struct x1f4_a1_type describes the program parsing context.
The fields that are always interpreted by the program parsing functions are:
function_setspecifies the functions set as:
fixthe function specific execution context retriever method
getthe function look up method
contextthe function look up context
See Functions.
variable_setspecifies the variables set as:
contextthe variables collection to observe
See Variables.
operator1sspecifies the prefix unary operators set
operator2sspecifies the infix binary operators set
autolink_setspecifies the temporaries allocator.
See Temporaries.
The fields that are interpreted only if so requested are:
See Procedural Language Interpreter Generation Flags.
argument_setspecifies the intrinsic string arguments for variadic ‘main’ functions as:
argvthe array of pointers to the strings that are to be used for ‘main’ arguments
argcthe number of arguments
bcollect_setspecifies some parsing error collector as:
a1record_datathe very error collector
datatype_setspecifies the application defined declarable types as:
missthe 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 array may be accessed throughout program execution.
sidetype_setspecifies the application defined non declarable types as:
missthe 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 array may be accessed throughout program execution.
The non declarable data types are allowed for function returns and parameters, but not for variable declarations.
resource_setspecifies an alternate memory manager.
implicit_setspecifies the prefix unary operator converters set as:
getthe converter look up method
contextthe converter look up context
composer_setspecifies the single parameter function converters set
autolead_setspecifies the non scalar function returns recorder as:
linkthe memory allocation method
pickthe temporary collection routine registering method
contextthe temporaries collection context
transfer_setspecifies a function type mapper to be used as:
finethe mapper object
See Function Pointers.
See Function Pointer Type Alloter.
If no mapper is specified (either X1f4_A1_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_setspecifies the error reporter.
eelookup_setspecifies a name lookup context as:
eelookup_datathe data type name lookup context, used for error reporting
codelink_setspecifies 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_setspecifies the collection traversal modes as:
missthe 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_setspecifies the strippable function prefixes collection as:
finea 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_setspecifies the ‘object’ data caller as:
linetextthe 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_datathe 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.