mirror of
https://github.com/johnkerl/miller.git
synced 2026-07-22 15:37:59 +00:00
type-decl iterate (for-loops)
This commit is contained in:
parent
892563caa9
commit
05febc3eab
7 changed files with 90 additions and 77 deletions
|
|
@ -491,10 +491,10 @@ md_for_loop_index(A) ::= MD_TOKEN_BOOLEAN MD_TOKEN_NON_SIGIL_NAME(B). {
|
|||
A = mlr_dsl_ast_node_alloc(B->text, MD_AST_NODE_TYPE_BOOLEAN_LOCAL_DEFINITION);
|
||||
}
|
||||
|
||||
md_for_oosvar_keylist(A) ::= MD_TOKEN_NON_SIGIL_NAME(K). {
|
||||
md_for_oosvar_keylist(A) ::= md_for_loop_index(K). {
|
||||
A = mlr_dsl_ast_node_alloc_unary("key_variables", MD_AST_NODE_TYPE_FOR_VARIABLES, K);
|
||||
}
|
||||
md_for_oosvar_keylist(A) ::= md_for_oosvar_keylist(L) MD_TOKEN_COMMA MD_TOKEN_NON_SIGIL_NAME(K). {
|
||||
md_for_oosvar_keylist(A) ::= md_for_oosvar_keylist(L) MD_TOKEN_COMMA md_for_loop_index(K). {
|
||||
A = mlr_dsl_ast_node_append_arg(L, K);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -139,8 +139,8 @@ void mlr_dsl_ast_node_replace_text(mlr_dsl_ast_node_t* pa, char* text) {
|
|||
}
|
||||
|
||||
// ----------------------------------------------------------------
|
||||
int mlr_dsl_ast_node_to_type_mask(mlr_dsl_ast_node_t* pa) {
|
||||
switch(pa->type) {
|
||||
int mlr_dsl_ast_node_type_to_type_mask(mlr_dsl_ast_node_type_t type) {
|
||||
switch(type) {
|
||||
|
||||
case MD_AST_NODE_TYPE_UNTYPED_LOCAL_DEFINITION: return TYPE_MASK_ANY;
|
||||
case MD_AST_NODE_TYPE_NUMERIC_LOCAL_DEFINITION: return TYPE_MASK_NUMERIC;
|
||||
|
|
|
|||
|
|
@ -143,7 +143,7 @@ mlr_dsl_ast_node_t* mlr_dsl_ast_node_set_function_name(mlr_dsl_ast_node_t* pa, c
|
|||
|
||||
void mlr_dsl_ast_node_replace_text(mlr_dsl_ast_node_t* pa, char* text);
|
||||
|
||||
int mlr_dsl_ast_node_to_type_mask(mlr_dsl_ast_node_t* pa);
|
||||
int mlr_dsl_ast_node_type_to_type_mask(mlr_dsl_ast_node_type_t type);
|
||||
|
||||
int mlr_dsl_ast_node_cannot_be_bare_boolean(mlr_dsl_ast_node_t* pnode);
|
||||
|
||||
|
|
|
|||
|
|
@ -166,7 +166,7 @@ typedef struct _mlr_dsl_cst_statement_t {
|
|||
// name is replaced with the frame-relative index by the stack allocator.
|
||||
char* local_lhs_variable_name;
|
||||
int local_lhs_frame_relative_index;
|
||||
int local_lhs_acceptable_type_mask;
|
||||
int local_lhs_type_mask;
|
||||
|
||||
// Assignment to srec
|
||||
char* srec_lhs_field_name;
|
||||
|
|
@ -217,13 +217,16 @@ typedef struct _mlr_dsl_cst_statement_t {
|
|||
// name is replaced with the frame-relative index by the stack allocator.)
|
||||
char* for_srec_k_variable_name;
|
||||
int for_srec_k_frame_relative_index;
|
||||
int for_srec_k_type_mask;
|
||||
|
||||
char** for_oosvar_k_variable_names;
|
||||
int* for_oosvar_k_frame_relative_indices;
|
||||
int* for_oosvar_k_type_masks;
|
||||
int for_oosvar_k_count;
|
||||
|
||||
char* for_v_variable_name;
|
||||
int for_v_frame_relative_index;
|
||||
int for_v_type_mask;
|
||||
|
||||
type_inferenced_srec_field_getter_t* ptype_inferenced_srec_field_getter;
|
||||
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ udf_defsite_state_t* mlr_dsl_cst_alloc_udf(mlr_dsl_cst_t* pcst, mlr_dsl_ast_node
|
|||
hss_add(pnameset, pparameter_node->text);
|
||||
|
||||
pcst_udf_state->parameter_names[i] = mlr_strdup_or_die(pparameter_node->text);
|
||||
pcst_udf_state->parameter_type_masks[i] = mlr_dsl_ast_node_to_type_mask(pparameter_node);
|
||||
pcst_udf_state->parameter_type_masks[i] = mlr_dsl_ast_node_type_to_type_mask(pparameter_node->type);
|
||||
}
|
||||
hss_free(pnameset);
|
||||
|
||||
|
|
@ -208,7 +208,7 @@ subr_defsite_t* mlr_dsl_cst_alloc_subroutine(mlr_dsl_cst_t* pcst, mlr_dsl_ast_no
|
|||
hss_add(pnameset, pparameter_node->text);
|
||||
|
||||
pstate->parameter_names[i] = mlr_strdup_or_die(pparameter_node->text);
|
||||
pstate->parameter_type_masks[i] = mlr_dsl_ast_node_to_type_mask(pparameter_node);
|
||||
pstate->parameter_type_masks[i] = mlr_dsl_ast_node_type_to_type_mask(pparameter_node->type);
|
||||
}
|
||||
hss_free(pnameset);
|
||||
|
||||
|
|
|
|||
|
|
@ -167,6 +167,7 @@ static void handle_for_oosvar_aux(
|
|||
mlhmmv_value_t submap,
|
||||
char** prest_for_k_variable_names,
|
||||
int* prest_for_k_frame_relative_indices,
|
||||
int* prest_for_k_frame_type_masks,
|
||||
int prest_for_k_count);
|
||||
|
||||
static void handle_unset_vararg_oosvar(
|
||||
|
|
@ -644,7 +645,7 @@ static mlr_dsl_cst_statement_t* alloc_blank() {
|
|||
pstatement->ppemit_keylist_evaluators = NULL;
|
||||
pstatement->local_lhs_variable_name = 0;
|
||||
pstatement->local_lhs_frame_relative_index = 0;
|
||||
pstatement->local_lhs_acceptable_type_mask = TYPE_MASK_ANY;
|
||||
pstatement->local_lhs_type_mask = TYPE_MASK_ANY;
|
||||
pstatement->srec_lhs_field_name = NULL;
|
||||
pstatement->env_lhs_name = NULL;
|
||||
pstatement->psrec_lhs_evaluator = NULL;
|
||||
|
|
@ -665,11 +666,14 @@ static mlr_dsl_cst_statement_t* alloc_blank() {
|
|||
pstatement->pif_chain_statements = NULL;
|
||||
pstatement->for_srec_k_variable_name = NULL;
|
||||
pstatement->for_srec_k_frame_relative_index = 0;
|
||||
pstatement->for_srec_k_type_mask = TYPE_MASK_ANY;
|
||||
pstatement->for_oosvar_k_variable_names = NULL;
|
||||
pstatement->for_oosvar_k_frame_relative_indices = NULL;
|
||||
pstatement->for_oosvar_k_type_masks = NULL;
|
||||
pstatement->for_oosvar_k_count = 0;
|
||||
pstatement->for_v_variable_name = NULL;
|
||||
pstatement->for_v_frame_relative_index = 0;
|
||||
pstatement->for_v_type_mask = TYPE_MASK_ANY;
|
||||
pstatement->ptype_inferenced_srec_field_getter = NULL;
|
||||
pstatement->ptriple_for_start_statements = NULL;
|
||||
pstatement->ptriple_for_pre_continuation_statements = NULL;
|
||||
|
|
@ -690,7 +694,7 @@ static mlr_dsl_cst_statement_t* alloc_local_variable_definition(mlr_dsl_cst_t* p
|
|||
pstatement->local_lhs_variable_name = mlr_strdup_or_die(pname_node->text);
|
||||
MLR_INTERNAL_CODING_ERROR_IF(pname_node->vardef_frame_relative_index == MD_UNUSED_INDEX);
|
||||
pstatement->local_lhs_frame_relative_index = pname_node->vardef_frame_relative_index;
|
||||
pstatement->local_lhs_acceptable_type_mask = type_mask;
|
||||
pstatement->local_lhs_type_mask = type_mask;
|
||||
pstatement->prhs_evaluator = rval_evaluator_alloc_from_ast(pvalue_node, pcst->pfmgr,
|
||||
type_inferencing, context_flags);
|
||||
pstatement->pnode_handler = handle_local_variable_definition;
|
||||
|
|
@ -1073,10 +1077,13 @@ static mlr_dsl_cst_statement_t* alloc_for_srec(mlr_dsl_cst_t* pcst, mlr_dsl_ast_
|
|||
}
|
||||
pstatement->for_srec_k_variable_name = mlr_strdup_or_die(pknode->text);
|
||||
pstatement->for_v_variable_name = mlr_strdup_or_die(pvnode->text);
|
||||
pstatement->for_v_type_mask = mlr_dsl_ast_node_type_to_type_mask(pvnode->type);
|
||||
MLR_INTERNAL_CODING_ERROR_IF(pknode->vardef_frame_relative_index == MD_UNUSED_INDEX);
|
||||
MLR_INTERNAL_CODING_ERROR_IF(pvnode->vardef_frame_relative_index == MD_UNUSED_INDEX);
|
||||
pstatement->for_srec_k_frame_relative_index = pknode->vardef_frame_relative_index;
|
||||
pstatement->for_v_frame_relative_index = pvnode->vardef_frame_relative_index;
|
||||
pstatement->for_srec_k_type_mask = mlr_dsl_ast_node_type_to_type_mask(pknode->type);
|
||||
pstatement->for_v_type_mask = mlr_dsl_ast_node_type_to_type_mask(pvnode->type);
|
||||
|
||||
MLR_INTERNAL_CODING_ERROR_IF(pnode->subframe_var_count == MD_UNUSED_INDEX);
|
||||
pstatement->pstatement_block = cst_statement_block_alloc(pnode->subframe_var_count);
|
||||
|
|
@ -1140,6 +1147,7 @@ static mlr_dsl_cst_statement_t* alloc_for_oosvar(mlr_dsl_cst_t* pcst, mlr_dsl_as
|
|||
|
||||
pstatement->for_oosvar_k_variable_names = mlr_malloc_or_die(sizeof(char*) * psubleft->pchildren->length);
|
||||
pstatement->for_oosvar_k_frame_relative_indices = mlr_malloc_or_die(sizeof(int) * psubleft->pchildren->length);
|
||||
pstatement->for_oosvar_k_type_masks = mlr_malloc_or_die(sizeof(int) * psubleft->pchildren->length);
|
||||
pstatement->for_oosvar_k_count = 0;
|
||||
int ok = TRUE;
|
||||
hss_t* pnameset = hss_alloc();
|
||||
|
|
@ -1150,6 +1158,8 @@ static mlr_dsl_cst_statement_t* alloc_for_oosvar(mlr_dsl_cst_t* pcst, mlr_dsl_as
|
|||
mlr_strdup_or_die(pnamenode->text);
|
||||
pstatement->for_oosvar_k_frame_relative_indices[pstatement->for_oosvar_k_count] =
|
||||
pnamenode->vardef_frame_relative_index;
|
||||
pstatement->for_oosvar_k_type_masks[pstatement->for_oosvar_k_count] =
|
||||
mlr_dsl_ast_node_type_to_type_mask(pnamenode->type);
|
||||
pstatement->for_oosvar_k_count++;
|
||||
if (hss_has(pnameset, pnamenode->text)) {
|
||||
fprintf(stderr, "%s: duplicate for-loop boundvar \"%s\".\n",
|
||||
|
|
@ -1161,6 +1171,7 @@ static mlr_dsl_cst_statement_t* alloc_for_oosvar(mlr_dsl_cst_t* pcst, mlr_dsl_as
|
|||
pstatement->for_v_variable_name = mlr_strdup_or_die(psubright->text);
|
||||
MLR_INTERNAL_CODING_ERROR_IF(psubright->vardef_frame_relative_index == MD_UNUSED_INDEX);
|
||||
pstatement->for_v_frame_relative_index = psubright->vardef_frame_relative_index;
|
||||
pstatement->for_v_type_mask = mlr_dsl_ast_node_type_to_type_mask(psubright->type);
|
||||
if (hss_has(pnameset, psubright->text)) {
|
||||
fprintf(stderr, "%s: duplicate for-loop boundvar \"%s\".\n",
|
||||
MLR_GLOBALS.bargv0, psubright->text);
|
||||
|
|
@ -1210,9 +1221,11 @@ static mlr_dsl_cst_statement_t* alloc_for_oosvar_key_only(mlr_dsl_cst_t* pcst, m
|
|||
|
||||
pstatement->for_oosvar_k_variable_names = mlr_malloc_or_die(sizeof(char*));
|
||||
pstatement->for_oosvar_k_frame_relative_indices = mlr_malloc_or_die(sizeof(int));
|
||||
pstatement->for_oosvar_k_type_masks = mlr_malloc_or_die(sizeof(int));
|
||||
MLR_INTERNAL_CODING_ERROR_IF(pleft->vardef_frame_relative_index == MD_UNUSED_INDEX);
|
||||
pstatement->for_oosvar_k_variable_names[0] = mlr_strdup_or_die(pleft->text);
|
||||
pstatement->for_oosvar_k_frame_relative_indices[0] = pleft->vardef_frame_relative_index;
|
||||
pstatement->for_oosvar_k_type_masks[0] = mlr_dsl_ast_node_type_to_type_mask(pleft->type);
|
||||
|
||||
pstatement->poosvar_lhs_keylist_evaluators = allocate_keylist_evaluators_from_oosvar_node(
|
||||
pcst, pmiddle, type_inferencing, context_flags);
|
||||
|
|
@ -1952,9 +1965,8 @@ void mlr_dsl_cst_statement_free(mlr_dsl_cst_statement_t* pstatement) {
|
|||
free(pstatement->for_oosvar_k_variable_names[i]);
|
||||
free(pstatement->for_oosvar_k_variable_names);
|
||||
}
|
||||
if (pstatement->for_oosvar_k_frame_relative_indices != NULL) {
|
||||
free(pstatement->for_oosvar_k_frame_relative_indices);
|
||||
}
|
||||
free(pstatement->for_oosvar_k_frame_relative_indices);
|
||||
free(pstatement->for_oosvar_k_type_masks);
|
||||
free(pstatement->for_v_variable_name);
|
||||
|
||||
if (pstatement->ptriple_for_start_statements != NULL) {
|
||||
|
|
@ -2165,7 +2177,7 @@ static void handle_local_variable_definition(
|
|||
local_stack_frame_t* pframe = local_stack_get_top_frame(pvars->plocal_stack);
|
||||
local_stack_frame_define(pframe,
|
||||
pstatement->local_lhs_variable_name, pstatement->local_lhs_frame_relative_index,
|
||||
pstatement->local_lhs_acceptable_type_mask, val);
|
||||
pstatement->local_lhs_type_mask, val);
|
||||
} else {
|
||||
mv_free(&val);
|
||||
}
|
||||
|
|
@ -2630,13 +2642,12 @@ static void handle_for_srec(
|
|||
mv_t mvkey = mv_from_string_no_free(pe->key);
|
||||
|
||||
local_stack_frame_t* pframe = local_stack_get_top_frame(pvars->plocal_stack);
|
||||
// xxx for-srec typedecl
|
||||
local_stack_frame_define(pframe,
|
||||
pstatement->for_srec_k_variable_name, pstatement->for_srec_k_frame_relative_index,
|
||||
TYPE_MASK_ANY, mvkey);
|
||||
pstatement->for_srec_k_type_mask, mvkey);
|
||||
local_stack_frame_define(pframe,
|
||||
pstatement->for_v_variable_name, pstatement->for_v_frame_relative_index,
|
||||
TYPE_MASK_ANY, mvval);
|
||||
pstatement->for_v_type_mask, mvval);
|
||||
|
||||
pstatement->pblock_handler(pstatement->pstatement_block, pvars, pcst_outputs);
|
||||
if (loop_stack_get(pvars->ploop_stack) & LOOP_BROKEN) {
|
||||
|
|
@ -2685,7 +2696,7 @@ static void handle_for_oosvar(
|
|||
|
||||
handle_for_oosvar_aux(pstatement, pvars, pcst_outputs, submap,
|
||||
pstatement->for_oosvar_k_variable_names, pstatement->for_oosvar_k_frame_relative_indices,
|
||||
pstatement->for_oosvar_k_count);
|
||||
pstatement->for_oosvar_k_type_masks, pstatement->for_oosvar_k_count);
|
||||
|
||||
if (loop_stack_get(pvars->ploop_stack) & LOOP_BROKEN) {
|
||||
loop_stack_clear(pvars->ploop_stack, LOOP_BROKEN);
|
||||
|
|
@ -2710,6 +2721,7 @@ static void handle_for_oosvar_aux(
|
|||
mlhmmv_value_t submap,
|
||||
char** prest_for_k_variable_names,
|
||||
int* prest_for_k_frame_relative_indices,
|
||||
int* prest_for_k_type_masks,
|
||||
int prest_for_k_count)
|
||||
{
|
||||
if (prest_for_k_count > 0) { // Keep recursing over remaining k-names
|
||||
|
|
@ -2721,12 +2733,12 @@ static void handle_for_oosvar_aux(
|
|||
for (mlhmmv_level_entry_t* pe = submap.u.pnext_level->phead; pe != NULL; pe = pe->pnext) {
|
||||
// Bind the k-name to the entry-key mlrval:
|
||||
local_stack_frame_t* pframe = local_stack_get_top_frame(pvars->plocal_stack);
|
||||
// xxx for-oosvar typedecl
|
||||
local_stack_frame_define(pframe, prest_for_k_variable_names[0], prest_for_k_frame_relative_indices[0],
|
||||
TYPE_MASK_ANY, mv_copy(&pe->level_key));
|
||||
prest_for_k_type_masks[0], mv_copy(&pe->level_key));
|
||||
// Recurse into the next-level submap:
|
||||
handle_for_oosvar_aux(pstatement, pvars, pcst_outputs, pe->level_value,
|
||||
&prest_for_k_variable_names[1], &prest_for_k_frame_relative_indices[1], prest_for_k_count - 1);
|
||||
&prest_for_k_variable_names[1], &prest_for_k_frame_relative_indices[1], &prest_for_k_type_masks[1],
|
||||
prest_for_k_count - 1);
|
||||
|
||||
if (loop_stack_get(pvars->ploop_stack) & LOOP_BROKEN) {
|
||||
// Bit cleared in recursive caller
|
||||
|
|
@ -2745,9 +2757,8 @@ static void handle_for_oosvar_aux(
|
|||
} else {
|
||||
// Bind the v-name to the terminal mlrval:
|
||||
local_stack_frame_t* pframe = local_stack_get_top_frame(pvars->plocal_stack);
|
||||
// xxx for-oosvar typedecl
|
||||
local_stack_frame_define(pframe, pstatement->for_v_variable_name, pstatement->for_v_frame_relative_index,
|
||||
TYPE_MASK_ANY, mv_copy(&submap.u.mlrval));
|
||||
pstatement->for_v_type_mask, mv_copy(&submap.u.mlrval));
|
||||
// Execute the loop-body statements:
|
||||
pstatement->pblock_handler(pstatement->pstatement_block, pvars, pcst_outputs);
|
||||
}
|
||||
|
|
@ -2781,10 +2792,9 @@ static void handle_for_oosvar_key_only(
|
|||
|
||||
for (sllve_t* pe = pkeys->phead; pe != NULL; pe = pe->pnext) {
|
||||
// Bind the v-name to the terminal mlrval:
|
||||
// xxx for-oosvar typedecl
|
||||
local_stack_frame_define(pframe,
|
||||
pstatement->for_oosvar_k_variable_names[0], pstatement->for_oosvar_k_frame_relative_indices[0],
|
||||
TYPE_MASK_ANY, mv_copy(pe->pvvalue));
|
||||
pstatement->for_oosvar_k_type_masks[0], mv_copy(pe->pvvalue));
|
||||
|
||||
// Execute the loop-body statements:
|
||||
pstatement->pblock_handler(pstatement->pstatement_block, pvars, pcst_outputs);
|
||||
|
|
|
|||
|
|
@ -28961,8 +28961,8 @@ text="block", type=STATEMENT_BLOCK:
|
|||
text="for", type=FOR_OOSVAR:
|
||||
text="key_and_value_variables", type=FOR_VARIABLES:
|
||||
text="key_variables", type=FOR_VARIABLES:
|
||||
text="k1", type=NON_SIGIL_NAME.
|
||||
text="k2", type=NON_SIGIL_NAME.
|
||||
text="k1", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="k2", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="v", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="oosvar_keylist", type=OOSVAR_KEYLIST:
|
||||
text="o", type=STRING_LITERAL.
|
||||
|
|
@ -29037,8 +29037,8 @@ text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth
|
|||
text="for", type=FOR_OOSVAR: subframe_var_count=3
|
||||
text="key_and_value_variables", type=FOR_VARIABLES:
|
||||
text="key_variables", type=FOR_VARIABLES:
|
||||
text="k1", type=NON_SIGIL_NAME. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="k2", type=NON_SIGIL_NAME. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2
|
||||
text="k1", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="k2", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2
|
||||
text="v", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=2 vardef_subframe_index=1 vardef_frame_relative_index=3
|
||||
text="oosvar_keylist", type=OOSVAR_KEYLIST:
|
||||
text="o", type=STRING_LITERAL.
|
||||
|
|
@ -29282,8 +29282,8 @@ text="block", type=STATEMENT_BLOCK:
|
|||
text="for", type=FOR_OOSVAR:
|
||||
text="key_and_value_variables", type=FOR_VARIABLES:
|
||||
text="key_variables", type=FOR_VARIABLES:
|
||||
text="a", type=NON_SIGIL_NAME.
|
||||
text="a", type=NON_SIGIL_NAME.
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="c", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="empty_keylist", type=OOSVAR_KEYLIST:
|
||||
text="for_full_oosvar_block", type=STATEMENT_BLOCK:
|
||||
|
|
@ -29295,8 +29295,8 @@ text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth
|
|||
text="for", type=FOR_OOSVAR: subframe_var_count=2
|
||||
text="key_and_value_variables", type=FOR_VARIABLES:
|
||||
text="key_variables", type=FOR_VARIABLES:
|
||||
text="a", type=NON_SIGIL_NAME. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="a", type=NON_SIGIL_NAME. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="c", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2
|
||||
text="empty_keylist", type=OOSVAR_KEYLIST:
|
||||
text="for_full_oosvar_block", type=STATEMENT_BLOCK:
|
||||
|
|
@ -29311,8 +29311,8 @@ text="block", type=STATEMENT_BLOCK:
|
|||
text="for", type=FOR_OOSVAR:
|
||||
text="key_and_value_variables", type=FOR_VARIABLES:
|
||||
text="key_variables", type=FOR_VARIABLES:
|
||||
text="a", type=NON_SIGIL_NAME.
|
||||
text="b", type=NON_SIGIL_NAME.
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="b", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="empty_keylist", type=OOSVAR_KEYLIST:
|
||||
text="for_full_oosvar_block", type=STATEMENT_BLOCK:
|
||||
|
|
@ -29324,8 +29324,8 @@ text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth
|
|||
text="for", type=FOR_OOSVAR: subframe_var_count=2
|
||||
text="key_and_value_variables", type=FOR_VARIABLES:
|
||||
text="key_variables", type=FOR_VARIABLES:
|
||||
text="a", type=NON_SIGIL_NAME. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="b", type=NON_SIGIL_NAME. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="b", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="empty_keylist", type=OOSVAR_KEYLIST:
|
||||
text="for_full_oosvar_block", type=STATEMENT_BLOCK:
|
||||
|
|
@ -29340,8 +29340,8 @@ text="block", type=STATEMENT_BLOCK:
|
|||
text="for", type=FOR_OOSVAR:
|
||||
text="key_and_value_variables", type=FOR_VARIABLES:
|
||||
text="key_variables", type=FOR_VARIABLES:
|
||||
text="a", type=NON_SIGIL_NAME.
|
||||
text="b", type=NON_SIGIL_NAME.
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="b", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="b", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="empty_keylist", type=OOSVAR_KEYLIST:
|
||||
text="for_full_oosvar_block", type=STATEMENT_BLOCK:
|
||||
|
|
@ -29353,8 +29353,8 @@ text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth
|
|||
text="for", type=FOR_OOSVAR: subframe_var_count=2
|
||||
text="key_and_value_variables", type=FOR_VARIABLES:
|
||||
text="key_variables", type=FOR_VARIABLES:
|
||||
text="a", type=NON_SIGIL_NAME. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="b", type=NON_SIGIL_NAME. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="b", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2
|
||||
text="b", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2
|
||||
text="empty_keylist", type=OOSVAR_KEYLIST:
|
||||
text="for_full_oosvar_block", type=STATEMENT_BLOCK:
|
||||
|
|
@ -29369,9 +29369,9 @@ text="block", type=STATEMENT_BLOCK:
|
|||
text="for", type=FOR_OOSVAR:
|
||||
text="key_and_value_variables", type=FOR_VARIABLES:
|
||||
text="key_variables", type=FOR_VARIABLES:
|
||||
text="a", type=NON_SIGIL_NAME.
|
||||
text="a", type=NON_SIGIL_NAME.
|
||||
text="c", type=NON_SIGIL_NAME.
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="c", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="d", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="empty_keylist", type=OOSVAR_KEYLIST:
|
||||
text="for_full_oosvar_block", type=STATEMENT_BLOCK:
|
||||
|
|
@ -29383,9 +29383,9 @@ text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth
|
|||
text="for", type=FOR_OOSVAR: subframe_var_count=3
|
||||
text="key_and_value_variables", type=FOR_VARIABLES:
|
||||
text="key_variables", type=FOR_VARIABLES:
|
||||
text="a", type=NON_SIGIL_NAME. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="a", type=NON_SIGIL_NAME. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="c", type=NON_SIGIL_NAME. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="c", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2
|
||||
text="d", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=2 vardef_subframe_index=1 vardef_frame_relative_index=3
|
||||
text="empty_keylist", type=OOSVAR_KEYLIST:
|
||||
text="for_full_oosvar_block", type=STATEMENT_BLOCK:
|
||||
|
|
@ -29400,9 +29400,9 @@ text="block", type=STATEMENT_BLOCK:
|
|||
text="for", type=FOR_OOSVAR:
|
||||
text="key_and_value_variables", type=FOR_VARIABLES:
|
||||
text="key_variables", type=FOR_VARIABLES:
|
||||
text="a", type=NON_SIGIL_NAME.
|
||||
text="b", type=NON_SIGIL_NAME.
|
||||
text="a", type=NON_SIGIL_NAME.
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="b", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="d", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="empty_keylist", type=OOSVAR_KEYLIST:
|
||||
text="for_full_oosvar_block", type=STATEMENT_BLOCK:
|
||||
|
|
@ -29414,9 +29414,9 @@ text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth
|
|||
text="for", type=FOR_OOSVAR: subframe_var_count=3
|
||||
text="key_and_value_variables", type=FOR_VARIABLES:
|
||||
text="key_variables", type=FOR_VARIABLES:
|
||||
text="a", type=NON_SIGIL_NAME. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="b", type=NON_SIGIL_NAME. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2
|
||||
text="a", type=NON_SIGIL_NAME. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="b", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="d", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=2 vardef_subframe_index=1 vardef_frame_relative_index=3
|
||||
text="empty_keylist", type=OOSVAR_KEYLIST:
|
||||
text="for_full_oosvar_block", type=STATEMENT_BLOCK:
|
||||
|
|
@ -29431,9 +29431,9 @@ text="block", type=STATEMENT_BLOCK:
|
|||
text="for", type=FOR_OOSVAR:
|
||||
text="key_and_value_variables", type=FOR_VARIABLES:
|
||||
text="key_variables", type=FOR_VARIABLES:
|
||||
text="a", type=NON_SIGIL_NAME.
|
||||
text="b", type=NON_SIGIL_NAME.
|
||||
text="c", type=NON_SIGIL_NAME.
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="b", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="c", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="empty_keylist", type=OOSVAR_KEYLIST:
|
||||
text="for_full_oosvar_block", type=STATEMENT_BLOCK:
|
||||
|
|
@ -29445,9 +29445,9 @@ text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth
|
|||
text="for", type=FOR_OOSVAR: subframe_var_count=3
|
||||
text="key_and_value_variables", type=FOR_VARIABLES:
|
||||
text="key_variables", type=FOR_VARIABLES:
|
||||
text="a", type=NON_SIGIL_NAME. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="b", type=NON_SIGIL_NAME. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2
|
||||
text="c", type=NON_SIGIL_NAME. vardef_subframe_relative_index=2 vardef_subframe_index=1 vardef_frame_relative_index=3
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="b", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2
|
||||
text="c", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=2 vardef_subframe_index=1 vardef_frame_relative_index=3
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="empty_keylist", type=OOSVAR_KEYLIST:
|
||||
text="for_full_oosvar_block", type=STATEMENT_BLOCK:
|
||||
|
|
@ -29462,9 +29462,9 @@ text="block", type=STATEMENT_BLOCK:
|
|||
text="for", type=FOR_OOSVAR:
|
||||
text="key_and_value_variables", type=FOR_VARIABLES:
|
||||
text="key_variables", type=FOR_VARIABLES:
|
||||
text="a", type=NON_SIGIL_NAME.
|
||||
text="b", type=NON_SIGIL_NAME.
|
||||
text="b", type=NON_SIGIL_NAME.
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="b", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="b", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="d", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="empty_keylist", type=OOSVAR_KEYLIST:
|
||||
text="for_full_oosvar_block", type=STATEMENT_BLOCK:
|
||||
|
|
@ -29476,9 +29476,9 @@ text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth
|
|||
text="for", type=FOR_OOSVAR: subframe_var_count=3
|
||||
text="key_and_value_variables", type=FOR_VARIABLES:
|
||||
text="key_variables", type=FOR_VARIABLES:
|
||||
text="a", type=NON_SIGIL_NAME. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="b", type=NON_SIGIL_NAME. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2
|
||||
text="b", type=NON_SIGIL_NAME. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="b", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2
|
||||
text="b", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2
|
||||
text="d", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=2 vardef_subframe_index=1 vardef_frame_relative_index=3
|
||||
text="empty_keylist", type=OOSVAR_KEYLIST:
|
||||
text="for_full_oosvar_block", type=STATEMENT_BLOCK:
|
||||
|
|
@ -29493,9 +29493,9 @@ text="block", type=STATEMENT_BLOCK:
|
|||
text="for", type=FOR_OOSVAR:
|
||||
text="key_and_value_variables", type=FOR_VARIABLES:
|
||||
text="key_variables", type=FOR_VARIABLES:
|
||||
text="a", type=NON_SIGIL_NAME.
|
||||
text="b", type=NON_SIGIL_NAME.
|
||||
text="c", type=NON_SIGIL_NAME.
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="b", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="c", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="b", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="empty_keylist", type=OOSVAR_KEYLIST:
|
||||
text="for_full_oosvar_block", type=STATEMENT_BLOCK:
|
||||
|
|
@ -29507,9 +29507,9 @@ text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth
|
|||
text="for", type=FOR_OOSVAR: subframe_var_count=3
|
||||
text="key_and_value_variables", type=FOR_VARIABLES:
|
||||
text="key_variables", type=FOR_VARIABLES:
|
||||
text="a", type=NON_SIGIL_NAME. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="b", type=NON_SIGIL_NAME. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2
|
||||
text="c", type=NON_SIGIL_NAME. vardef_subframe_relative_index=2 vardef_subframe_index=1 vardef_frame_relative_index=3
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="b", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2
|
||||
text="c", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=2 vardef_subframe_index=1 vardef_frame_relative_index=3
|
||||
text="b", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2
|
||||
text="empty_keylist", type=OOSVAR_KEYLIST:
|
||||
text="for_full_oosvar_block", type=STATEMENT_BLOCK:
|
||||
|
|
@ -29524,9 +29524,9 @@ text="block", type=STATEMENT_BLOCK:
|
|||
text="for", type=FOR_OOSVAR:
|
||||
text="key_and_value_variables", type=FOR_VARIABLES:
|
||||
text="key_variables", type=FOR_VARIABLES:
|
||||
text="a", type=NON_SIGIL_NAME.
|
||||
text="b", type=NON_SIGIL_NAME.
|
||||
text="c", type=NON_SIGIL_NAME.
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="b", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="c", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="c", type=UNTYPED_LOCAL_DEFINITION.
|
||||
text="empty_keylist", type=OOSVAR_KEYLIST:
|
||||
text="for_full_oosvar_block", type=STATEMENT_BLOCK:
|
||||
|
|
@ -29538,9 +29538,9 @@ text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth
|
|||
text="for", type=FOR_OOSVAR: subframe_var_count=3
|
||||
text="key_and_value_variables", type=FOR_VARIABLES:
|
||||
text="key_variables", type=FOR_VARIABLES:
|
||||
text="a", type=NON_SIGIL_NAME. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="b", type=NON_SIGIL_NAME. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2
|
||||
text="c", type=NON_SIGIL_NAME. vardef_subframe_relative_index=2 vardef_subframe_index=1 vardef_frame_relative_index=3
|
||||
text="a", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1
|
||||
text="b", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2
|
||||
text="c", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=2 vardef_subframe_index=1 vardef_frame_relative_index=3
|
||||
text="c", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=2 vardef_subframe_index=1 vardef_frame_relative_index=3
|
||||
text="empty_keylist", type=OOSVAR_KEYLIST:
|
||||
text="for_full_oosvar_block", type=STATEMENT_BLOCK:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue