mirror of
https://github.com/johnkerl/miller.git
synced 2026-07-28 18:21:52 +00:00
write/append code-dedupe iterate
This commit is contained in:
parent
054c9f1fc6
commit
74b279ac49
5 changed files with 176 additions and 199 deletions
|
|
@ -173,11 +173,7 @@ char* mlr_dsl_ast_node_describe_type(mlr_dsl_ast_node_type_t type) {
|
|||
case MD_AST_NODE_TYPE_TEE: return "tee"; break;
|
||||
case MD_AST_NODE_TYPE_EMITF: return "emitf"; break;
|
||||
case MD_AST_NODE_TYPE_EMITP: return "emitp"; break;
|
||||
case MD_AST_NODE_TYPE_EMITP_WRITE: return "emitp_write"; break;
|
||||
case MD_AST_NODE_TYPE_EMITP_APPEND: return "emitp_append"; break;
|
||||
case MD_AST_NODE_TYPE_EMIT: return "emit"; break;
|
||||
case MD_AST_NODE_TYPE_EMIT_WRITE: return "emit_write"; break;
|
||||
case MD_AST_NODE_TYPE_EMIT_APPEND: return "emit_append"; break;
|
||||
case MD_AST_NODE_TYPE_EMITP_LASHED: return "emitp_lashed"; break;
|
||||
case MD_AST_NODE_TYPE_EMITP_LASHED_WRITE: return "emitp_lashed_write"; break;
|
||||
case MD_AST_NODE_TYPE_EMITP_LASHED_APPEND: return "emitp_lashed_append"; break;
|
||||
|
|
|
|||
|
|
@ -38,11 +38,7 @@ typedef enum _mlr_dsl_ast_node_type_t {
|
|||
MD_AST_NODE_TYPE_TEE,
|
||||
MD_AST_NODE_TYPE_EMITF,
|
||||
MD_AST_NODE_TYPE_EMITP,
|
||||
MD_AST_NODE_TYPE_EMITP_WRITE,
|
||||
MD_AST_NODE_TYPE_EMITP_APPEND,
|
||||
MD_AST_NODE_TYPE_EMIT,
|
||||
MD_AST_NODE_TYPE_EMIT_WRITE,
|
||||
MD_AST_NODE_TYPE_EMIT_APPEND,
|
||||
MD_AST_NODE_TYPE_EMITP_LASHED,
|
||||
MD_AST_NODE_TYPE_EMITP_LASHED_WRITE,
|
||||
MD_AST_NODE_TYPE_EMITP_LASHED_APPEND,
|
||||
|
|
|
|||
|
|
@ -635,84 +635,123 @@ md_emitf_append(A) ::= MD_TOKEN_EMITF(O) MD_TOKEN_BITWISE_RSH md_output_file(F)
|
|||
|
||||
// ----------------------------------------------------------------
|
||||
md_emitp(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_ALL(B). {
|
||||
A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_EMITP, B);
|
||||
}
|
||||
md_emitp(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_ALL(B) MD_TOKEN_COMMA md_emitp_namelist(C). {
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP, B, C);
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_EMITP, B),
|
||||
mlr_dsl_ast_node_alloc_zary("stdout", MD_AST_NODE_TYPE_STDOUT));
|
||||
}
|
||||
md_emitp(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_FULL_OOSVAR(B). {
|
||||
A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_EMITP, B);
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_EMITP, B),
|
||||
mlr_dsl_ast_node_alloc_zary("stdout", MD_AST_NODE_TYPE_STDOUT));
|
||||
}
|
||||
|
||||
md_emitp(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_ALL(B) MD_TOKEN_COMMA md_emitp_namelist(C). {
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP,
|
||||
mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP, B, C),
|
||||
mlr_dsl_ast_node_alloc_zary("stdout", MD_AST_NODE_TYPE_STDOUT));
|
||||
}
|
||||
md_emitp(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_FULL_OOSVAR(B) MD_TOKEN_COMMA md_emitp_namelist(C). {
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP, B, C);
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP,
|
||||
mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP, B, C),
|
||||
mlr_dsl_ast_node_alloc_zary("stdout", MD_AST_NODE_TYPE_STDOUT));
|
||||
}
|
||||
|
||||
md_emitp(A) ::= MD_TOKEN_EMITP(O) md_oosvar_keylist(B). {
|
||||
A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_EMITP, B);
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_EMITP, B),
|
||||
mlr_dsl_ast_node_alloc_zary("stdout", MD_AST_NODE_TYPE_STDOUT));
|
||||
}
|
||||
md_emitp(A) ::= MD_TOKEN_EMITP(O) md_oosvar_keylist(B) MD_TOKEN_COMMA md_emitp_namelist(C). {
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP, B, C);
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP,
|
||||
mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP, B, C),
|
||||
mlr_dsl_ast_node_alloc_zary("stdout", MD_AST_NODE_TYPE_STDOUT));
|
||||
}
|
||||
|
||||
md_emitp_write(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_GT md_output_file(F) MD_TOKEN_COMMA
|
||||
MD_TOKEN_ALL(B).
|
||||
{
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP_WRITE, B, F);
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP, B,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_WRITE,
|
||||
F));
|
||||
}
|
||||
md_emitp_write(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_GT md_output_file(F) MD_TOKEN_COMMA
|
||||
MD_TOKEN_ALL(B) MD_TOKEN_COMMA md_emitp_namelist(C).
|
||||
{
|
||||
A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP_WRITE, B, C, F);
|
||||
A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP, B, C,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_WRITE,
|
||||
F));
|
||||
}
|
||||
md_emitp_write(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_GT md_output_file(F) MD_TOKEN_COMMA
|
||||
MD_TOKEN_FULL_OOSVAR(B).
|
||||
{
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP_WRITE, B, F);
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP, B,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_WRITE,
|
||||
F));
|
||||
}
|
||||
md_emitp_write(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_GT md_output_file(F) MD_TOKEN_COMMA
|
||||
MD_TOKEN_FULL_OOSVAR(B) MD_TOKEN_COMMA md_emitp_namelist(C).
|
||||
{
|
||||
A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP_WRITE, B, C, F);
|
||||
A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP, B, C,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_WRITE,
|
||||
F));
|
||||
}
|
||||
md_emitp_write(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_GT md_output_file(F) MD_TOKEN_COMMA
|
||||
md_oosvar_keylist(B).
|
||||
{
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP_WRITE, B, F);
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP, B,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_WRITE,
|
||||
F));
|
||||
}
|
||||
md_emitp_write(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_GT md_output_file(F) MD_TOKEN_COMMA
|
||||
md_oosvar_keylist(B) MD_TOKEN_COMMA md_emitp_namelist(C).
|
||||
{
|
||||
A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP_WRITE, B, C, F);
|
||||
A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP, B, C,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_WRITE,
|
||||
F));
|
||||
}
|
||||
|
||||
|
||||
md_emitp_append(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_BITWISE_RHS md_output_file(F) MD_TOKEN_COMMA
|
||||
MD_TOKEN_ALL(B).
|
||||
{
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP_APPEND, B, F);
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP, B,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_APPEND,
|
||||
F));
|
||||
}
|
||||
md_emitp_append(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_BITWISE_RHS md_output_file(F) MD_TOKEN_COMMA
|
||||
MD_TOKEN_ALL(B) MD_TOKEN_COMMA md_emitp_namelist(C).
|
||||
{
|
||||
A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP_APPEND, B, C, F);
|
||||
A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP, B, C,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_APPEND,
|
||||
F));
|
||||
}
|
||||
md_emitp_append(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_BITWISE_RHS md_output_file(F) MD_TOKEN_COMMA
|
||||
MD_TOKEN_FULL_OOSVAR(B).
|
||||
{
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP_WRITE, B, F);
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP, B,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_APPEND,
|
||||
F));
|
||||
}
|
||||
md_emitp_append(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_BITWISE_RHS md_output_file(F) MD_TOKEN_COMMA
|
||||
MD_TOKEN_FULL_OOSVAR(B) MD_TOKEN_COMMA md_emitp_namelist(C).
|
||||
{
|
||||
A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP_WRITE, B, C, F);
|
||||
A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP, B, C,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_APPEND,
|
||||
F));
|
||||
}
|
||||
md_emitp_append(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_BITWISE_RHS md_output_file(F) MD_TOKEN_COMMA
|
||||
md_oosvar_keylist(B).
|
||||
{
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP_APPEND, B, F);
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP, B,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_APPEND,
|
||||
F));
|
||||
}
|
||||
md_emitp_append(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_BITWISE_RHS md_output_file(F) MD_TOKEN_COMMA
|
||||
md_oosvar_keylist(B) MD_TOKEN_COMMA md_emitp_namelist(C).
|
||||
{
|
||||
A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP_APPEND, B, C, F);
|
||||
A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP, B, C,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_APPEND,
|
||||
F));
|
||||
}
|
||||
|
||||
md_emitp_namelist(A) ::= md_rhs(B). {
|
||||
|
|
@ -724,112 +763,136 @@ md_emitp_namelist(A) ::= md_emitp_namelist(B) MD_TOKEN_COMMA md_rhs(C). {
|
|||
|
||||
// ================================================================
|
||||
md_emit(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_ALL(B). {
|
||||
A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_EMIT, B);
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_EMIT, B),
|
||||
mlr_dsl_ast_node_alloc_zary("stdout", MD_AST_NODE_TYPE_STDOUT));
|
||||
}
|
||||
md_emit(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_ALL(B) MD_TOKEN_COMMA md_emit_namelist(C). {
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT, B, C);
|
||||
md_emit(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_FULL_OOSVAR(B). {
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_EMIT, B),
|
||||
mlr_dsl_ast_node_alloc_zary("stdout", MD_AST_NODE_TYPE_STDOUT));
|
||||
}
|
||||
|
||||
md_emit(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_FULL_OOSVAR(B). {
|
||||
A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_EMIT, B);
|
||||
md_emit(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_ALL(B) MD_TOKEN_COMMA md_emit_namelist(C). {
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT,
|
||||
mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT, B, C),
|
||||
mlr_dsl_ast_node_alloc_zary("stdout", MD_AST_NODE_TYPE_STDOUT));
|
||||
}
|
||||
md_emit(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_FULL_OOSVAR(B) MD_TOKEN_COMMA md_emit_namelist(C). {
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT, B, C);
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT,
|
||||
mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT, B, C),
|
||||
mlr_dsl_ast_node_alloc_zary("stdout", MD_AST_NODE_TYPE_STDOUT));
|
||||
}
|
||||
|
||||
md_emit(A) ::= MD_TOKEN_EMIT(O) md_oosvar_keylist(B). {
|
||||
A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_EMIT, B);
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_EMIT, B),
|
||||
mlr_dsl_ast_node_alloc_zary("stdout", MD_AST_NODE_TYPE_STDOUT));
|
||||
}
|
||||
md_emit(A) ::= MD_TOKEN_EMIT(O) md_oosvar_keylist(B) MD_TOKEN_COMMA md_emit_namelist(C). {
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT, B, C);
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT,
|
||||
mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT, B, C),
|
||||
mlr_dsl_ast_node_alloc_zary("stdout", MD_AST_NODE_TYPE_STDOUT));
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------
|
||||
md_emit_write(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_GT md_output_file(F) MD_TOKEN_COMMA
|
||||
MD_TOKEN_ALL(B).
|
||||
{
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_WRITE,
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_EMIT, B),
|
||||
F);
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_WRITE,
|
||||
F));
|
||||
}
|
||||
md_emit_write(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_GT md_output_file(F) MD_TOKEN_COMMA
|
||||
MD_TOKEN_ALL(B) MD_TOKEN_COMMA md_emit_namelist(C).
|
||||
{
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_WRITE,
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT,
|
||||
mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT, B, C),
|
||||
F);
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_WRITE,
|
||||
F));
|
||||
}
|
||||
md_emit_write(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_GT md_output_file(F) MD_TOKEN_COMMA
|
||||
MD_TOKEN_FULL_OOSVAR(B).
|
||||
{
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_WRITE,
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_EMIT, B),
|
||||
F);
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_WRITE,
|
||||
F));
|
||||
}
|
||||
md_emit_write(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_GT md_output_file(F) MD_TOKEN_COMMA
|
||||
MD_TOKEN_FULL_OOSVAR(B) MD_TOKEN_COMMA md_emit_namelist(C).
|
||||
{
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_WRITE,
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT,
|
||||
mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT, B, C),
|
||||
F);
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_WRITE,
|
||||
F));
|
||||
}
|
||||
md_emit_write(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_GT md_output_file(F) MD_TOKEN_COMMA
|
||||
md_oosvar_keylist(B).
|
||||
{
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_WRITE,
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_EMIT, B),
|
||||
F);
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_WRITE,
|
||||
F));
|
||||
}
|
||||
md_emit_write(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_GT md_output_file(F) MD_TOKEN_COMMA
|
||||
md_oosvar_keylist(B) MD_TOKEN_COMMA md_emit_namelist(C).
|
||||
{
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_WRITE,
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT,
|
||||
mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT, B, C),
|
||||
F);
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_WRITE,
|
||||
F));
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------
|
||||
md_emit_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_BITWISE_RHS md_output_file(F) MD_TOKEN_COMMA
|
||||
MD_TOKEN_ALL(B).
|
||||
{
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_APPEND,
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_EMIT, B),
|
||||
F);
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_APPEND,
|
||||
F));
|
||||
}
|
||||
md_emit_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_BITWISE_RHS md_output_file(F) MD_TOKEN_COMMA
|
||||
MD_TOKEN_ALL(B) MD_TOKEN_COMMA md_emit_namelist(C).
|
||||
{
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_APPEND,
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT,
|
||||
mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT, B, C),
|
||||
F);
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_APPEND,
|
||||
F));
|
||||
}
|
||||
md_emit_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_BITWISE_RHS md_output_file(F) MD_TOKEN_COMMA
|
||||
MD_TOKEN_FULL_OOSVAR(B).
|
||||
{
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_APPEND,
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_EMIT, B),
|
||||
F);
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_APPEND,
|
||||
F));
|
||||
}
|
||||
md_emit_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_BITWISE_RHS md_output_file(F) MD_TOKEN_COMMA
|
||||
MD_TOKEN_FULL_OOSVAR(B) MD_TOKEN_COMMA md_emit_namelist(C).
|
||||
{
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_APPEND,
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT,
|
||||
mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT, B, C),
|
||||
F);
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_APPEND,
|
||||
F));
|
||||
}
|
||||
md_emit_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_BITWISE_RHS md_output_file(F) MD_TOKEN_COMMA
|
||||
md_oosvar_keylist(B).
|
||||
{
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_APPEND,
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_EMIT, B),
|
||||
F);
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_APPEND,
|
||||
F));
|
||||
}
|
||||
md_emit_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_BITWISE_RHS md_output_file(F) MD_TOKEN_COMMA
|
||||
md_oosvar_keylist(B) MD_TOKEN_COMMA md_emit_namelist(C).
|
||||
{
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_APPEND,
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT,
|
||||
mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT, B, C),
|
||||
F);
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_APPEND,
|
||||
F));
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------
|
||||
|
|
@ -969,11 +1032,13 @@ md_edump(A) ::= MD_TOKEN_EDUMP(O). {
|
|||
}
|
||||
md_dump_write(A) ::= MD_TOKEN_DUMP(O) MD_TOKEN_GT md_rhs(F). {
|
||||
A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_DUMP,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_WRITE, F));
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_WRITE,
|
||||
F));
|
||||
}
|
||||
md_dump_append(A) ::= MD_TOKEN_DUMP(O) MD_TOKEN_BITWISE_RSH md_rhs(F). {
|
||||
A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_DUMP,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_APPEND, F));
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_APPEND,
|
||||
F));
|
||||
}
|
||||
|
||||
md_print(A) ::= MD_TOKEN_PRINT(O) md_rhs(B). {
|
||||
|
|
@ -986,11 +1051,13 @@ md_eprint(A) ::= MD_TOKEN_EPRINT(O) md_rhs(B). {
|
|||
}
|
||||
md_print_write(A) ::= MD_TOKEN_PRINT(O) MD_TOKEN_GT md_output_file(F) MD_TOKEN_COMMA md_rhs(C). {
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_PRINT, C,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_WRITE, F));
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_WRITE,
|
||||
F));
|
||||
}
|
||||
md_print_append(A) ::= MD_TOKEN_PRINT(O) MD_TOKEN_BITWISE_RSH md_output_file(F) MD_TOKEN_COMMA md_rhs(C). {
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_PRINT, C,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_APPEND, F));
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_APPEND,
|
||||
F));
|
||||
}
|
||||
|
||||
md_printn(A) ::= MD_TOKEN_PRINTN(O) md_rhs(B). {
|
||||
|
|
@ -1003,11 +1070,13 @@ md_eprintn(A) ::= MD_TOKEN_EPRINTN(O) md_rhs(B). {
|
|||
}
|
||||
md_printn_write(A) ::= MD_TOKEN_PRINTN(O) MD_TOKEN_GT md_output_file(F) MD_TOKEN_COMMA md_rhs(C). {
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_PRINTN, C,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_WRITE, F));
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_WRITE,
|
||||
F));
|
||||
}
|
||||
md_printn_append(A) ::= MD_TOKEN_PRINTN(O) MD_TOKEN_BITWISE_RSH md_output_file(F) MD_TOKEN_COMMA md_rhs(C). {
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_PRINTN, C,
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_APPEND, F));
|
||||
mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILE_APPEND,
|
||||
F));
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -35,7 +35,6 @@ static mlr_dsl_cst_statement_t* alloc_unset(mlr_dsl_ast_node_t* p, int t
|
|||
static mlr_dsl_cst_statement_t* alloc_tee(mlr_dsl_ast_node_t* p, int ti, int cf);
|
||||
static mlr_dsl_cst_statement_t* alloc_emitf(mlr_dsl_ast_node_t* p, int ti, int cf);
|
||||
static mlr_dsl_cst_statement_t* alloc_emit(mlr_dsl_ast_node_t* p, int ti, int cf, int dfp);
|
||||
static mlr_dsl_cst_statement_t* alloc_emit_to_file(mlr_dsl_ast_node_t* p, int ti, int cf, int dfp, file_output_mode_t m);
|
||||
static mlr_dsl_cst_statement_t* alloc_emit_lashed(mlr_dsl_ast_node_t* p, int ti, int cf, int dfp);
|
||||
static mlr_dsl_cst_statement_t* alloc_emit_lashed_to_file(mlr_dsl_ast_node_t* p, int ti, int cf, int dfp, file_output_mode_t m);
|
||||
static mlr_dsl_cst_statement_t* alloc_dump(mlr_dsl_ast_node_t* p, int ti, int cf);
|
||||
|
|
@ -94,7 +93,6 @@ static void handle_emitp_lashed(mlr_dsl_cst_statement_t* s,
|
|||
static void handle_emitp_lashed_to_file(mlr_dsl_cst_statement_t* s, variables_t* v, cst_outputs_t* o);
|
||||
static void handle_emit_lashed(mlr_dsl_cst_statement_t* s, variables_t* v, cst_outputs_t* o);
|
||||
static void handle_emit_lashed_to_file(mlr_dsl_cst_statement_t* s, variables_t* v, cst_outputs_t* o);
|
||||
static void handle_emitp_all_to_file(mlr_dsl_cst_statement_t* s, variables_t* v, cst_outputs_t* o);
|
||||
static void handle_emit_all(mlr_dsl_cst_statement_t* s, variables_t* v, cst_outputs_t* o);
|
||||
static void handle_emit_all_to_file(mlr_dsl_cst_statement_t* s, variables_t* v, cst_outputs_t* o);
|
||||
static void handle_dump(mlr_dsl_cst_statement_t* s, variables_t* v, cst_outputs_t* o);
|
||||
|
|
@ -430,21 +428,9 @@ static mlr_dsl_cst_statement_t* alloc_cst_statement(mlr_dsl_ast_node_t* pnode, i
|
|||
case MD_AST_NODE_TYPE_EMITP:
|
||||
return alloc_emit(pnode, type_inferencing, context_flags, TRUE);
|
||||
break;
|
||||
case MD_AST_NODE_TYPE_EMITP_WRITE:
|
||||
return alloc_emit_to_file(pnode, type_inferencing, context_flags, TRUE, MODE_WRITE);
|
||||
break;
|
||||
case MD_AST_NODE_TYPE_EMITP_APPEND:
|
||||
return alloc_emit_to_file(pnode, type_inferencing, context_flags, TRUE, MODE_APPEND);
|
||||
break;
|
||||
case MD_AST_NODE_TYPE_EMIT:
|
||||
return alloc_emit(pnode, type_inferencing, context_flags, FALSE);
|
||||
break;
|
||||
case MD_AST_NODE_TYPE_EMIT_WRITE:
|
||||
return alloc_emit_to_file(pnode, type_inferencing, context_flags, FALSE, MODE_WRITE);
|
||||
break;
|
||||
case MD_AST_NODE_TYPE_EMIT_APPEND:
|
||||
return alloc_emit_to_file(pnode, type_inferencing, context_flags, FALSE, MODE_APPEND);
|
||||
break;
|
||||
|
||||
case MD_AST_NODE_TYPE_EMITP_LASHED:
|
||||
return alloc_emit_lashed(pnode, type_inferencing, context_flags, TRUE);
|
||||
|
|
@ -815,77 +801,16 @@ static mlr_dsl_cst_statement_t* alloc_emit(mlr_dsl_ast_node_t* pnode, int type_i
|
|||
{
|
||||
mlr_dsl_cst_statement_t* pstatement = alloc_blank();
|
||||
|
||||
mlr_dsl_ast_node_t* pkeylist_node = pnode->pchildren->phead->pvvalue;
|
||||
|
||||
// The grammar allows only 'emit all', not 'emit @x, all, $y'.
|
||||
// So if 'all' appears at all, it's the only name.
|
||||
if (pkeylist_node->type == MD_AST_NODE_TYPE_ALL || pkeylist_node->type == MD_AST_NODE_TYPE_FULL_OOSVAR) {
|
||||
|
||||
sllv_t* pemit_oosvar_namelist_evaluators = sllv_alloc();
|
||||
if (pnode->pchildren->length == 2) {
|
||||
mlr_dsl_ast_node_t* pnamelist_node = pnode->pchildren->phead->pnext->pvvalue;
|
||||
for (sllve_t* pe = pnamelist_node->pchildren->phead; pe != NULL; pe = pe->pnext) {
|
||||
mlr_dsl_ast_node_t* pkeynode = pe->pvvalue;
|
||||
sllv_append(pemit_oosvar_namelist_evaluators,
|
||||
rval_evaluator_alloc_from_ast(pkeynode, type_inferencing, context_flags));
|
||||
}
|
||||
}
|
||||
pstatement->pemit_oosvar_namelist_evaluators = pemit_oosvar_namelist_evaluators;
|
||||
|
||||
pstatement->do_full_prefixing = do_full_prefixing;
|
||||
pstatement->pnode_handler = handle_emit_all;
|
||||
|
||||
} else if (pkeylist_node->type == MD_AST_NODE_TYPE_OOSVAR_KEYLIST) {
|
||||
|
||||
pstatement->pemit_keylist_evaluators = allocate_keylist_evaluators_from_oosvar_node(pkeylist_node,
|
||||
type_inferencing, context_flags);
|
||||
|
||||
sllv_t* pemit_oosvar_namelist_evaluators = sllv_alloc();
|
||||
if (pnode->pchildren->length == 2) {
|
||||
mlr_dsl_ast_node_t* pnamelist_node = pnode->pchildren->phead->pnext->pvvalue;
|
||||
for (sllve_t* pe = pnamelist_node->pchildren->phead; pe != NULL; pe = pe->pnext) {
|
||||
mlr_dsl_ast_node_t* pkeynode = pe->pvvalue;
|
||||
sllv_append(pemit_oosvar_namelist_evaluators,
|
||||
rval_evaluator_alloc_from_ast(pkeynode, type_inferencing, context_flags));
|
||||
}
|
||||
}
|
||||
pstatement->pemit_oosvar_namelist_evaluators = pemit_oosvar_namelist_evaluators;
|
||||
|
||||
pstatement->do_full_prefixing = do_full_prefixing;
|
||||
pstatement->pnode_handler = handle_emit;
|
||||
|
||||
} else {
|
||||
fprintf(stderr, "%s: internal coding error detected in file %s at line %d.\n",
|
||||
MLR_GLOBALS.bargv0, __FILE__, __LINE__);
|
||||
exit(1);
|
||||
}
|
||||
return pstatement;
|
||||
}
|
||||
|
||||
// ================================================================
|
||||
// mlr --from ../data/small put -v -q emit > "out", @a, "x", "y"
|
||||
// * text="emit", type=emit_write:
|
||||
// text="emit", type=emit:
|
||||
// text="oosvar_keylist", type=oosvar_keylist:
|
||||
// text="a", type=string_literal.
|
||||
// text="emit_namelist", type=emit:
|
||||
// text="x", type=strnum_literal.
|
||||
// text="y", type=strnum_literal.
|
||||
// text="out", type=strnum_literal.
|
||||
|
||||
static mlr_dsl_cst_statement_t* alloc_emit_to_file(mlr_dsl_ast_node_t* pnode, int type_inferencing,
|
||||
int context_flags, int do_full_prefixing, file_output_mode_t file_output_mode)
|
||||
{
|
||||
mlr_dsl_cst_statement_t* pstatement = alloc_blank();
|
||||
|
||||
mlr_dsl_ast_node_t* pemit_node = pnode->pchildren->phead->pvvalue;
|
||||
mlr_dsl_ast_node_t* pfilename_node = pnode->pchildren->phead->pnext->pvvalue;
|
||||
mlr_dsl_ast_node_t* poutput_node = pnode->pchildren->phead->pnext->pvvalue;
|
||||
|
||||
mlr_dsl_ast_node_t* pkeylist_node = pemit_node->pchildren->phead->pvvalue;
|
||||
|
||||
int output_all = FALSE;
|
||||
// The grammar allows only 'emit all', not 'emit @x, all, $y'.
|
||||
// So if 'all' appears at all, it's the only name.
|
||||
if (pkeylist_node->type == MD_AST_NODE_TYPE_ALL || pkeylist_node->type == MD_AST_NODE_TYPE_FULL_OOSVAR) {
|
||||
output_all = TRUE;
|
||||
|
||||
sllv_t* pemit_oosvar_namelist_evaluators = sllv_alloc();
|
||||
if (pemit_node->pchildren->length == 2) {
|
||||
|
|
@ -898,10 +823,6 @@ static mlr_dsl_cst_statement_t* alloc_emit_to_file(mlr_dsl_ast_node_t* pnode, in
|
|||
}
|
||||
pstatement->pemit_oosvar_namelist_evaluators = pemit_oosvar_namelist_evaluators;
|
||||
|
||||
pstatement->pnode_handler = do_full_prefixing
|
||||
? handle_emit_all_to_file
|
||||
: handle_emitp_all_to_file;
|
||||
|
||||
} else if (pkeylist_node->type == MD_AST_NODE_TYPE_OOSVAR_KEYLIST) {
|
||||
|
||||
pstatement->pemit_keylist_evaluators = allocate_keylist_evaluators_from_oosvar_node(pkeylist_node,
|
||||
|
|
@ -927,10 +848,23 @@ static mlr_dsl_cst_statement_t* alloc_emit_to_file(mlr_dsl_ast_node_t* pnode, in
|
|||
exit(1);
|
||||
}
|
||||
|
||||
pstatement->poutput_filename_evaluator = rval_evaluator_alloc_from_ast(pfilename_node,
|
||||
type_inferencing, context_flags);
|
||||
pstatement->file_output_mode = file_output_mode;
|
||||
pstatement->pmulti_lrec_writer = multi_lrec_writer_alloc();
|
||||
pstatement->do_full_prefixing = do_full_prefixing;
|
||||
if (poutput_node->type == MD_AST_NODE_TYPE_STDOUT) {
|
||||
pstatement->pnode_handler = output_all ? handle_emit_all : handle_emit;
|
||||
pstatement->stdfp = stdout;
|
||||
} else if (poutput_node->type == MD_AST_NODE_TYPE_STDERR) {
|
||||
pstatement->pnode_handler = output_all ? handle_emit_all : handle_emit;
|
||||
pstatement->stdfp = stderr;
|
||||
} else {
|
||||
// xxx replicate x all & rid of {VARIOUS}_WRITE/APPEND node types
|
||||
mlr_dsl_ast_node_t* pfilename_node = poutput_node->pchildren->phead->pvvalue;
|
||||
pstatement->poutput_filename_evaluator = rval_evaluator_alloc_from_ast(pfilename_node,
|
||||
type_inferencing, context_flags);
|
||||
pstatement->file_output_mode = poutput_node->type == MD_AST_NODE_TYPE_FILE_APPEND
|
||||
? MODE_APPEND : MODE_WRITE;
|
||||
pstatement->pmulti_lrec_writer = multi_lrec_writer_alloc();
|
||||
pstatement->pnode_handler = output_all ? handle_emit_all_to_file : handle_emit_to_file;
|
||||
}
|
||||
|
||||
return pstatement;
|
||||
}
|
||||
|
|
@ -2169,34 +2103,6 @@ static void handle_emit_lashed_to_file(
|
|||
free(ppmvkeys);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------
|
||||
static void handle_emitp_all_to_file(
|
||||
mlr_dsl_cst_statement_t* pnode,
|
||||
variables_t* pvars,
|
||||
cst_outputs_t* pcst_outputs)
|
||||
{
|
||||
sllv_t* poutrecs = sllv_alloc();
|
||||
rval_evaluator_t* poutput_filename_evaluator = pnode->poutput_filename_evaluator;
|
||||
mv_t filename_mv = poutput_filename_evaluator->pprocess_func(poutput_filename_evaluator->pvstate, pvars);
|
||||
int all_non_null_or_error = TRUE;
|
||||
sllmv_t* pmvnames = evaluate_list(pnode->pemit_oosvar_namelist_evaluators, pvars, &all_non_null_or_error);
|
||||
if (all_non_null_or_error) {
|
||||
mlhmmv_all_to_lrecs(pvars->poosvars, pmvnames, poutrecs,
|
||||
FALSE, pcst_outputs->oosvar_flatten_separator);
|
||||
}
|
||||
|
||||
char fn_free_flags = 0;
|
||||
char* filename = mv_format_val(&filename_mv, &fn_free_flags);
|
||||
multi_lrec_writer_output_list(pnode->pmulti_lrec_writer, poutrecs, filename,
|
||||
MODE_WRITE, pcst_outputs->flush_every_record);
|
||||
sllv_free(poutrecs);
|
||||
|
||||
if (fn_free_flags)
|
||||
free(filename);
|
||||
mv_free(&filename_mv);
|
||||
sllmv_free(pmvnames);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------
|
||||
static void handle_emit_all(
|
||||
mlr_dsl_cst_statement_t* pnode,
|
||||
|
|
@ -2224,7 +2130,7 @@ static void handle_emit_all_to_file(
|
|||
sllmv_t* pmvnames = evaluate_list(pnode->pemit_oosvar_namelist_evaluators, pvars, &all_non_null_or_error);
|
||||
if (all_non_null_or_error) {
|
||||
mlhmmv_all_to_lrecs(pvars->poosvars, pmvnames, poutrecs,
|
||||
TRUE, pcst_outputs->oosvar_flatten_separator);
|
||||
pnode->do_full_prefixing, pcst_outputs->oosvar_flatten_separator);
|
||||
}
|
||||
|
||||
char fn_free_flags = 0;
|
||||
|
|
|
|||
|
|
@ -17476,17 +17476,17 @@ text="list", type=statement_list:
|
|||
text="x", type=field_name.
|
||||
text="end", type=end:
|
||||
text="list", type=statement_list:
|
||||
text="emitf", type=emitf_write:
|
||||
text="emitf", type=emitf:
|
||||
text="emitf", type=emitf:
|
||||
text="oosvar_keylist", type=oosvar_keylist:
|
||||
text="a", type=string_literal.
|
||||
text="stdout", type=stdout:
|
||||
text="emitf", type=emitf_write:
|
||||
text="emitf", type=emitf:
|
||||
text="emitf", type=emitf:
|
||||
text="oosvar_keylist", type=oosvar_keylist:
|
||||
text="b", type=string_literal.
|
||||
text="stdout", type=stdout:
|
||||
text="emitf", type=emitf_write:
|
||||
text="emitf", type=emitf:
|
||||
text="emitf", type=emitf:
|
||||
text="oosvar_keylist", type=oosvar_keylist:
|
||||
text="c", type=string_literal.
|
||||
|
|
@ -17522,7 +17522,7 @@ text="list", type=statement_list:
|
|||
text="x", type=field_name.
|
||||
text="end", type=end:
|
||||
text="list", type=statement_list:
|
||||
text="emitf", type=emitf_write:
|
||||
text="emitf", type=emitf:
|
||||
text="emitf", type=emitf:
|
||||
text="oosvar_keylist", type=oosvar_keylist:
|
||||
text="a", type=string_literal.
|
||||
|
|
@ -17580,7 +17580,7 @@ text="list", type=statement_list:
|
|||
text="sum", type=string_literal.
|
||||
text="oosvar_keylist", type=oosvar_keylist:
|
||||
text="count", type=string_literal.
|
||||
text="emitf", type=emitf_write:
|
||||
text="emitf", type=emitf:
|
||||
text="emitf", type=emitf:
|
||||
text="oosvar_keylist", type=oosvar_keylist:
|
||||
text="mean", type=string_literal.
|
||||
|
|
@ -17613,7 +17613,7 @@ text="list", type=statement_list:
|
|||
text="sum", type=string_literal.
|
||||
text="oosvar_keylist", type=oosvar_keylist:
|
||||
text="count", type=string_literal.
|
||||
text="emitf", type=emitf_write:
|
||||
text="emitf", type=emitf:
|
||||
text="emitf", type=emitf:
|
||||
text="oosvar_keylist", type=oosvar_keylist:
|
||||
text="mean", type=string_literal.
|
||||
|
|
@ -18361,7 +18361,7 @@ text="list", type=statement_list:
|
|||
text="u", type=strnum_literal.
|
||||
text="5", type=field_name.
|
||||
text="2", type=strnum_literal.
|
||||
text="emitf", type=emitf_write:
|
||||
text="emitf", type=emitf:
|
||||
text="emitf", type=emitf:
|
||||
text="oosvar_keylist", type=oosvar_keylist:
|
||||
text="v", type=string_literal.
|
||||
|
|
@ -19259,7 +19259,9 @@ text="list", type=statement_list:
|
|||
text="t", type=strnum_literal.
|
||||
text="u", type=strnum_literal.
|
||||
text="emitp", type=emitp:
|
||||
text="all", type=all.
|
||||
text="emitp", type=emitp:
|
||||
text="all", type=all.
|
||||
text="stdout", type=stdout:
|
||||
t:u=1
|
||||
a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,tu=1
|
||||
t:u=2
|
||||
|
|
@ -19295,7 +19297,9 @@ text="list", type=statement_list:
|
|||
text="t", type=strnum_literal.
|
||||
text="u", type=strnum_literal.
|
||||
text="emitp", type=emitp:
|
||||
text="@*", type=full_oosvar.
|
||||
text="emitp", type=emitp:
|
||||
text="@*", type=full_oosvar.
|
||||
text="stdout", type=stdout:
|
||||
t:u=1
|
||||
a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,tu=1
|
||||
t:u=2
|
||||
|
|
@ -19325,7 +19329,9 @@ text="list", type=statement_list:
|
|||
text="s", type=strnum_literal.
|
||||
text="x", type=field_name.
|
||||
text="emitp", type=emitp:
|
||||
text="all", type=all.
|
||||
text="emitp", type=emitp:
|
||||
text="all", type=all.
|
||||
text="stdout", type=stdout:
|
||||
s=0.346790
|
||||
a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533
|
||||
s=0.758680
|
||||
|
|
@ -19356,7 +19362,9 @@ text="list", type=statement_list:
|
|||
text="u", type=strnum_literal.
|
||||
text="y", type=field_name.
|
||||
text="emitp", type=emitp:
|
||||
text="all", type=all.
|
||||
text="emitp", type=emitp:
|
||||
text="all", type=all.
|
||||
text="stdout", type=stdout:
|
||||
t:u=0.726803
|
||||
a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533
|
||||
t:u=0.522151
|
||||
|
|
@ -19734,13 +19742,15 @@ text="list", type=statement_list:
|
|||
text="end", type=end:
|
||||
text="list", type=statement_list:
|
||||
text="emit", type=emit:
|
||||
text="oosvar_keylist", type=oosvar_keylist:
|
||||
text="n", type=string_literal.
|
||||
text="emit_namelist", type=emit:
|
||||
text="a", type=strnum_literal.
|
||||
text="b", type=strnum_literal.
|
||||
text="c", type=strnum_literal.
|
||||
text="d", type=strnum_literal.
|
||||
text="emit", type=emit:
|
||||
text="oosvar_keylist", type=oosvar_keylist:
|
||||
text="n", type=string_literal.
|
||||
text="emit_namelist", type=emit:
|
||||
text="a", type=strnum_literal.
|
||||
text="b", type=strnum_literal.
|
||||
text="c", type=strnum_literal.
|
||||
text="d", type=strnum_literal.
|
||||
text="stdout", type=stdout:
|
||||
|
||||
mlr --opprint --from ./reg_test/input/abixy put -q
|
||||
@o[1][1]["text1"][NR] = $a;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue