mirror of
https://github.com/johnkerl/miller.git
synced 2026-07-22 15:37:59 +00:00
mapvar iterate
This commit is contained in:
parent
b347bc68f5
commit
ee3e2077ff
5 changed files with 12 additions and 4 deletions
|
|
@ -426,6 +426,10 @@
|
|||
return MD_TOKEN_REGEXI;
|
||||
}
|
||||
|
||||
"map" {
|
||||
*yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_STRIPPED_AWAY);
|
||||
return MD_TOKEN_MAP;
|
||||
}
|
||||
"var" {
|
||||
*yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_STRIPPED_AWAY);
|
||||
return MD_TOKEN_VAR;
|
||||
|
|
|
|||
|
|
@ -119,6 +119,7 @@ md_statement_not_braced_end(A) ::= md_int_local_definition(B). { A = B; }
|
|||
md_statement_not_braced_end(A) ::= md_float_local_definition(B). { A = B; }
|
||||
md_statement_not_braced_end(A) ::= md_boolean_local_definition(B). { A = B; }
|
||||
md_statement_not_braced_end(A) ::= md_string_local_definition(B). { A = B; }
|
||||
md_statement_not_braced_end(A) ::= md_map_local_declaration(B). { A = B; }
|
||||
md_statement_not_braced_end(A) ::= md_local_assignment(B). { A = B; }
|
||||
|
||||
// For user-defined functions
|
||||
|
|
@ -653,6 +654,9 @@ md_boolean_local_definition(A) ::= MD_TOKEN_BOOLEAN md_local_variable(N) MD_TOKE
|
|||
md_string_local_definition(A) ::= MD_TOKEN_STRING md_local_variable(N) MD_TOKEN_ASSIGN md_rhs(B). {
|
||||
A = mlr_dsl_ast_node_alloc_binary("local", MD_AST_NODE_TYPE_STRING_LOCAL_DEFINITION, N, B);
|
||||
}
|
||||
md_map_local_declaration(A) ::= MD_TOKEN_MAP md_local_variable(N). {
|
||||
A = mlr_dsl_ast_node_alloc_unary("local", MD_AST_NODE_TYPE_MAP_LOCAL_DECLARATION, N);
|
||||
}
|
||||
|
||||
md_local_assignment(A) ::= md_local_variable(B) MD_TOKEN_ASSIGN(O) md_rhs(C). {
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_LOCAL_ASSIGNMENT, B, C);
|
||||
|
|
|
|||
|
|
@ -244,6 +244,7 @@ char* mlr_dsl_ast_node_describe_type(mlr_dsl_ast_node_type_t type) {
|
|||
case MD_AST_NODE_TYPE_FLOAT_LOCAL_DEFINITION: return "FLOAT_LOCAL_DEFINITION"; break;
|
||||
case MD_AST_NODE_TYPE_BOOLEAN_LOCAL_DEFINITION: return "BOOLEAN_LOCAL_DEFINITION"; break;
|
||||
case MD_AST_NODE_TYPE_STRING_LOCAL_DEFINITION: return "STRING_LOCAL_DEFINITION"; break;
|
||||
case MD_AST_NODE_TYPE_MAP_LOCAL_DECLARATION: return "MAP_LOCAL_DECLARATION"; break;
|
||||
case MD_AST_NODE_TYPE_UNTYPED_PARAMETER_DEFINITION: return "UNTYPED_PARAMETER_DEFINITION"; break;
|
||||
case MD_AST_NODE_TYPE_NUMERIC_PARAMETER_DEFINITION: return "NUMERIC_PARAMETER_DEFINITION"; break;
|
||||
case MD_AST_NODE_TYPE_INT_PARAMETER_DEFINITION: return "INT_PARAMETER_DEFINITION"; break;
|
||||
|
|
@ -255,7 +256,7 @@ char* mlr_dsl_ast_node_describe_type(mlr_dsl_ast_node_type_t type) {
|
|||
case MD_AST_NODE_TYPE_BEGIN: return "BEGIN"; break;
|
||||
case MD_AST_NODE_TYPE_END: return "END"; break;
|
||||
case MD_AST_NODE_TYPE_STRING_LITERAL: return "STRING_LITERAL"; break;
|
||||
case MD_AST_NODE_TYPE_NUMERIC_LITERAL: return "NUMERIC_LITERAL"; break;
|
||||
case MD_AST_NODE_TYPE_NUMERIC_LITERAL: return "NUMERIC_LITERAL"; break;
|
||||
case MD_AST_NODE_TYPE_BOOLEAN_LITERAL: return "BOOLEAN_LITERAL"; break;
|
||||
case MD_AST_NODE_TYPE_REGEXI: return "REGEXI"; break;
|
||||
case MD_AST_NODE_TYPE_FIELD_NAME: return "FIELD_NAME"; break;
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ typedef enum _mlr_dsl_ast_node_type_t {
|
|||
MD_AST_NODE_TYPE_FLOAT_LOCAL_DEFINITION,
|
||||
MD_AST_NODE_TYPE_BOOLEAN_LOCAL_DEFINITION,
|
||||
MD_AST_NODE_TYPE_STRING_LOCAL_DEFINITION,
|
||||
MD_AST_NODE_TYPE_MAP_LOCAL_DECLARATION,
|
||||
MD_AST_NODE_TYPE_UNTYPED_PARAMETER_DEFINITION,
|
||||
MD_AST_NODE_TYPE_NUMERIC_PARAMETER_DEFINITION,
|
||||
MD_AST_NODE_TYPE_INT_PARAMETER_DEFINITION,
|
||||
|
|
|
|||
|
|
@ -41,9 +41,7 @@ MAPVARS:
|
|||
|
||||
- function return value
|
||||
|
||||
? for-oosvar map-valued boundvars?!?
|
||||
|
||||
? for-local -- with keylist etc.?
|
||||
- for-local -- with keylist etc. just as for oosvars
|
||||
|
||||
* needs assert_not_map
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue