mirror of
https://github.com/johnkerl/miller.git
synced 2026-07-23 07:59:37 +00:00
print-redirect iterate
This commit is contained in:
parent
242faae17a
commit
fdceefb3fe
4 changed files with 20 additions and 32 deletions
|
|
@ -178,13 +178,11 @@ char* mlr_dsl_ast_node_describe_type(mlr_dsl_ast_node_type_t type) {
|
|||
case MD_AST_NODE_TYPE_DUMP_APPEND: return "dump_append"; break;
|
||||
case MD_AST_NODE_TYPE_EDUMP: return "edump"; break;
|
||||
case MD_AST_NODE_TYPE_PRINT: return "print"; break;
|
||||
case MD_AST_NODE_TYPE_FPRINT: return "fprint"; break;
|
||||
case MD_AST_NODE_TYPE_FPRINT_WRITE: return "fprint_write"; break;
|
||||
case MD_AST_NODE_TYPE_FPRINT_APPEND: return "fprint_append"; break;
|
||||
case MD_AST_NODE_TYPE_PRINT_WRITE: return "print_write"; break;
|
||||
case MD_AST_NODE_TYPE_PRINT_APPEND: return "print_append"; break;
|
||||
case MD_AST_NODE_TYPE_PRINTN: return "printn"; break;
|
||||
case MD_AST_NODE_TYPE_FPRINTN: return "fprintn"; break;
|
||||
case MD_AST_NODE_TYPE_FPRINTN_WRITE: return "fprintn_write"; break;
|
||||
case MD_AST_NODE_TYPE_FPRINTN_APPEND: return "fprintn_append"; break;
|
||||
case MD_AST_NODE_TYPE_PRINTN_WRITE: return "printn_write"; break;
|
||||
case MD_AST_NODE_TYPE_PRINTN_APPEND: return "printn_append"; break;
|
||||
case MD_AST_NODE_TYPE_EPRINT: return "eprint"; break;
|
||||
case MD_AST_NODE_TYPE_EPRINTN: return "eprintn"; break;
|
||||
case MD_AST_NODE_TYPE_ALL: return "all"; break;
|
||||
|
|
|
|||
|
|
@ -43,13 +43,11 @@ typedef enum _mlr_dsl_ast_node_type_t {
|
|||
MD_AST_NODE_TYPE_DUMP_APPEND,
|
||||
MD_AST_NODE_TYPE_EDUMP,
|
||||
MD_AST_NODE_TYPE_PRINT,
|
||||
MD_AST_NODE_TYPE_FPRINT,
|
||||
MD_AST_NODE_TYPE_FPRINT_WRITE,
|
||||
MD_AST_NODE_TYPE_FPRINT_APPEND,
|
||||
MD_AST_NODE_TYPE_PRINT_WRITE,
|
||||
MD_AST_NODE_TYPE_PRINT_APPEND,
|
||||
MD_AST_NODE_TYPE_PRINTN,
|
||||
MD_AST_NODE_TYPE_FPRINTN,
|
||||
MD_AST_NODE_TYPE_FPRINTN_WRITE,
|
||||
MD_AST_NODE_TYPE_FPRINTN_APPEND,
|
||||
MD_AST_NODE_TYPE_PRINTN_WRITE,
|
||||
MD_AST_NODE_TYPE_PRINTN_APPEND,
|
||||
MD_AST_NODE_TYPE_EPRINT,
|
||||
MD_AST_NODE_TYPE_EPRINTN,
|
||||
MD_AST_NODE_TYPE_ALL,
|
||||
|
|
|
|||
|
|
@ -75,14 +75,6 @@
|
|||
*yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_EPRINTN);
|
||||
return MD_TOKEN_EPRINTN;
|
||||
}
|
||||
"fprint" {
|
||||
*yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_FPRINT);
|
||||
return MD_TOKEN_FPRINT;
|
||||
}
|
||||
"fprintn" {
|
||||
*yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_FPRINTN);
|
||||
return MD_TOKEN_FPRINTN;
|
||||
}
|
||||
"begin" {
|
||||
*yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_STRIPPED_AWAY);
|
||||
return MD_TOKEN_BEGIN;
|
||||
|
|
|
|||
|
|
@ -149,12 +149,12 @@ md_statement_not_braced_end ::= md_dump_append.
|
|||
md_statement_not_braced_end ::= md_edump.
|
||||
md_statement_not_braced_end ::= md_print.
|
||||
md_statement_not_braced_end ::= md_eprint.
|
||||
md_statement_not_braced_end ::= md_fprint_write.
|
||||
md_statement_not_braced_end ::= md_fprint_append.
|
||||
md_statement_not_braced_end ::= md_print_write.
|
||||
md_statement_not_braced_end ::= md_print_append.
|
||||
md_statement_not_braced_end ::= md_printn.
|
||||
md_statement_not_braced_end ::= md_eprintn.
|
||||
md_statement_not_braced_end ::= md_fprintn_write.
|
||||
md_statement_not_braced_end ::= md_fprintn_append.
|
||||
md_statement_not_braced_end ::= md_printn_write.
|
||||
md_statement_not_braced_end ::= md_printn_append.
|
||||
|
||||
// Valid only within for/while, but we accept them here syntactically and reject them in the AST-to-CST
|
||||
// conversion, where we can produce much more informative error messages:
|
||||
|
|
@ -736,11 +736,11 @@ md_print(A) ::= MD_TOKEN_PRINT(O) md_rhs(B). {
|
|||
md_eprint(A) ::= MD_TOKEN_EPRINT(O) md_rhs(B). {
|
||||
A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_EPRINT, B);
|
||||
}
|
||||
md_fprint_write(A) ::= MD_TOKEN_FPRINT(O) MD_TOKEN_GT md_rhs(B) MD_TOKEN_COMMA md_rhs(C). {
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_FPRINT_WRITE, B, C);
|
||||
md_print_write(A) ::= MD_TOKEN_PRINT(O) MD_TOKEN_GT md_rhs(B) MD_TOKEN_COMMA md_rhs(C). {
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_PRINT_WRITE, B, C);
|
||||
}
|
||||
md_fprint_append(A) ::= MD_TOKEN_FPRINT(O) MD_TOKEN_BITWISE_RSH MD_TOKEN_COMMA md_rhs(B) md_rhs(C). {
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_FPRINT_APPEND, B, C);
|
||||
md_print_append(A) ::= MD_TOKEN_PRINT(O) MD_TOKEN_BITWISE_RSH md_rhs(B) MD_TOKEN_COMMA md_rhs(C). {
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_PRINT_APPEND, B, C);
|
||||
}
|
||||
|
||||
md_printn(A) ::= MD_TOKEN_PRINTN(O) md_rhs(B). {
|
||||
|
|
@ -749,11 +749,11 @@ md_printn(A) ::= MD_TOKEN_PRINTN(O) md_rhs(B). {
|
|||
md_eprintn(A) ::= MD_TOKEN_EPRINTN(O) md_rhs(B). {
|
||||
A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_EPRINTN, B);
|
||||
}
|
||||
md_fprintn_write(A) ::= MD_TOKEN_FPRINTN(O) MD_TOKEN_GT md_rhs(B) MD_TOKEN_COMMA md_rhs(C). {
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_FPRINTN_WRITE, B, C);
|
||||
md_printn_write(A) ::= MD_TOKEN_PRINTN(O) MD_TOKEN_GT md_rhs(B) MD_TOKEN_COMMA md_rhs(C). {
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_PRINTN_WRITE, B, C);
|
||||
}
|
||||
md_fprintn_append(A) ::= MD_TOKEN_FPRINTN(O) MD_TOKEN_BITWISE_RSH md_rhs(B) MD_TOKEN_COMMA md_rhs(C). {
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_FPRINTN_APPEND, B, C);
|
||||
md_printn_append(A) ::= MD_TOKEN_PRINTN(O) MD_TOKEN_BITWISE_RSH md_rhs(B) MD_TOKEN_COMMA md_rhs(C). {
|
||||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_PRINTN_APPEND, B, C);
|
||||
}
|
||||
|
||||
// ================================================================
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue