From 95e997cbc3d7b05b0016cf9af71870254d7a8f4e Mon Sep 17 00:00:00 2001 From: John Kerl Date: Mon, 25 Jan 2016 21:09:46 -0500 Subject: [PATCH] DSL name-shortens --- c/containers/mlr_dsl_ast.c | 34 ++-- c/containers/mlr_dsl_ast.h | 34 ++-- c/dsls/mlr_dsl_lexer.l | 248 +++++++++++------------ c/dsls/mlr_dsl_parse.y | 380 ++++++++++++++++++------------------ c/mapping/lrec_evaluators.c | 32 +-- c/mapping/mapper_put.c | 8 +- c/mapping/mlr_dsl_cst.c | 14 +- 7 files changed, 375 insertions(+), 375 deletions(-) diff --git a/c/containers/mlr_dsl_ast.c b/c/containers/mlr_dsl_ast.c index b7a48c940..3d7463569 100644 --- a/c/containers/mlr_dsl_ast.c +++ b/c/containers/mlr_dsl_ast.c @@ -125,23 +125,23 @@ void mlr_dsl_ast_node_print(mlr_dsl_ast_node_t* pnode) { // ---------------------------------------------------------------- char* mlr_dsl_ast_node_describe_type(int type) { switch(type) { - case MLR_DSL_AST_NODE_TYPE_STRNUM_LITERAL: return "strnum_literal"; break; - case MLR_DSL_AST_NODE_TYPE_BOOLEAN_LITERAL: return "boolean_literal"; break; - case MLR_DSL_AST_NODE_TYPE_REGEXI: return "regexi"; break; - case MLR_DSL_AST_NODE_TYPE_FIELD_NAME: return "field_name"; break; - case MLR_DSL_AST_NODE_TYPE_OOSVAR_NAME: return "oosvar_name"; break; - case MLR_DSL_AST_NODE_TYPE_MOOSVAR_NAME: return "moosvar_name"; break; - case MLR_DSL_AST_NODE_TYPE_MOOSVAR_INDEX: return "moosvar_index"; break; - case MLR_DSL_AST_NODE_TYPE_FUNCTION_NAME: return "function_name"; break; - case MLR_DSL_AST_NODE_TYPE_OPERATOR: return "operator"; break; - case MLR_DSL_AST_NODE_TYPE_SREC_ASSIGNMENT: return "srec_assignment"; break; - case MLR_DSL_AST_NODE_TYPE_OOSVAR_ASSIGNMENT: return "oosvar_assignment"; break; - case MLR_DSL_AST_NODE_TYPE_MOOSVAR_ASSIGNMENT: return "moosvar_assignment"; break; - case MLR_DSL_AST_NODE_TYPE_CONTEXT_VARIABLE: return "context_variable"; break; - case MLR_DSL_AST_NODE_TYPE_STRIPPED_AWAY: return "stripped_away"; break; - case MLR_DSL_AST_NODE_TYPE_FILTER: return "filter"; break; - case MLR_DSL_AST_NODE_TYPE_GATE: return "gate"; break; - case MLR_DSL_AST_NODE_TYPE_EMIT: return "emit"; break; + case MD_AST_NODE_TYPE_STRNUM_LITERAL: return "strnum_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; + case MD_AST_NODE_TYPE_OOSVAR_NAME: return "oosvar_name"; break; + case MD_AST_NODE_TYPE_MOOSVAR_NAME: return "moosvar_name"; break; + case MD_AST_NODE_TYPE_MOOSVAR_INDEX: return "moosvar_index"; break; + case MD_AST_NODE_TYPE_FUNCTION_NAME: return "function_name"; break; + case MD_AST_NODE_TYPE_OPERATOR: return "operator"; break; + case MD_AST_NODE_TYPE_SREC_ASSIGNMENT: return "srec_assignment"; break; + case MD_AST_NODE_TYPE_OOSVAR_ASSIGNMENT: return "oosvar_assignment"; break; + case MD_AST_NODE_TYPE_MOOSVAR_ASSIGNMENT: return "moosvar_assignment"; break; + case MD_AST_NODE_TYPE_CONTEXT_VARIABLE: return "context_variable"; break; + case MD_AST_NODE_TYPE_STRIPPED_AWAY: return "stripped_away"; break; + case MD_AST_NODE_TYPE_FILTER: return "filter"; break; + case MD_AST_NODE_TYPE_GATE: return "gate"; break; + case MD_AST_NODE_TYPE_EMIT: return "emit"; break; default: return "???"; } } diff --git a/c/containers/mlr_dsl_ast.h b/c/containers/mlr_dsl_ast.h index 4e1c5ae12..d128a0143 100644 --- a/c/containers/mlr_dsl_ast.h +++ b/c/containers/mlr_dsl_ast.h @@ -6,23 +6,23 @@ #define MLR_DSL_AST_H #include "sllv.h" -#define MLR_DSL_AST_NODE_TYPE_STRNUM_LITERAL 0xda00 -#define MLR_DSL_AST_NODE_TYPE_BOOLEAN_LITERAL 0xda11 -#define MLR_DSL_AST_NODE_TYPE_REGEXI 0xda22 -#define MLR_DSL_AST_NODE_TYPE_FIELD_NAME 0xda33 -#define MLR_DSL_AST_NODE_TYPE_OOSVAR_NAME 0xda44 -#define MLR_DSL_AST_NODE_TYPE_MOOSVAR_NAME 0xda55 -#define MLR_DSL_AST_NODE_TYPE_MOOSVAR_INDEX 0xda5c -#define MLR_DSL_AST_NODE_TYPE_FUNCTION_NAME 0xda66 -#define MLR_DSL_AST_NODE_TYPE_OPERATOR 0xda77 -#define MLR_DSL_AST_NODE_TYPE_SREC_ASSIGNMENT 0xda88 -#define MLR_DSL_AST_NODE_TYPE_OOSVAR_ASSIGNMENT 0xda99 -#define MLR_DSL_AST_NODE_TYPE_MOOSVAR_ASSIGNMENT 0xdaaa -#define MLR_DSL_AST_NODE_TYPE_CONTEXT_VARIABLE 0xdabb -#define MLR_DSL_AST_NODE_TYPE_STRIPPED_AWAY 0xdacc -#define MLR_DSL_AST_NODE_TYPE_FILTER 0xdadd -#define MLR_DSL_AST_NODE_TYPE_GATE 0xdaee -#define MLR_DSL_AST_NODE_TYPE_EMIT 0xdaff +#define MD_AST_NODE_TYPE_STRNUM_LITERAL 0xda00 +#define MD_AST_NODE_TYPE_BOOLEAN_LITERAL 0xda11 +#define MD_AST_NODE_TYPE_REGEXI 0xda22 +#define MD_AST_NODE_TYPE_FIELD_NAME 0xda33 +#define MD_AST_NODE_TYPE_OOSVAR_NAME 0xda44 +#define MD_AST_NODE_TYPE_MOOSVAR_NAME 0xda55 +#define MD_AST_NODE_TYPE_MOOSVAR_INDEX 0xda5c +#define MD_AST_NODE_TYPE_FUNCTION_NAME 0xda66 +#define MD_AST_NODE_TYPE_OPERATOR 0xda77 +#define MD_AST_NODE_TYPE_SREC_ASSIGNMENT 0xda88 +#define MD_AST_NODE_TYPE_OOSVAR_ASSIGNMENT 0xda99 +#define MD_AST_NODE_TYPE_MOOSVAR_ASSIGNMENT 0xdaaa +#define MD_AST_NODE_TYPE_CONTEXT_VARIABLE 0xdabb +#define MD_AST_NODE_TYPE_STRIPPED_AWAY 0xdacc +#define MD_AST_NODE_TYPE_FILTER 0xdadd +#define MD_AST_NODE_TYPE_GATE 0xdaee +#define MD_AST_NODE_TYPE_EMIT 0xdaff typedef struct _mlr_dsl_ast_t { sllv_t* pbegin_statements; diff --git a/c/dsls/mlr_dsl_lexer.l b/c/dsls/mlr_dsl_lexer.l index 5c9b94f68..ab034e824 100644 --- a/c/dsls/mlr_dsl_lexer.l +++ b/c/dsls/mlr_dsl_lexer.l @@ -12,217 +12,217 @@ %% ";" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_STRIPPED_AWAY); - return MLR_DSL_SEMICOLON; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_STRIPPED_AWAY); + return MD_TOKEN_SEMICOLON; } "{" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_STRIPPED_AWAY); - return MLR_DSL_LEFT_BRACE; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_STRIPPED_AWAY); + return MD_TOKEN_LEFT_BRACE; } "}" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_STRIPPED_AWAY); - return MLR_DSL_RIGHT_BRACE; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_STRIPPED_AWAY); + return MD_TOKEN_RIGHT_BRACE; } "=" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_SREC_ASSIGNMENT); - return MLR_DSL_ASSIGN; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_SREC_ASSIGNMENT); + return MD_TOKEN_ASSIGN; } "filter" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_FILTER); - return MLR_DSL_FILTER; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_FILTER); + return MD_TOKEN_FILTER; } "gate" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_GATE); - return MLR_DSL_GATE; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_GATE); + return MD_TOKEN_GATE; } "emit" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_EMIT); - return MLR_DSL_EMIT; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_EMIT); + return MD_TOKEN_EMIT; } "begin" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_STRIPPED_AWAY); - return MLR_DSL_BEGIN; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_STRIPPED_AWAY); + return MD_TOKEN_BEGIN; } "end" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_STRIPPED_AWAY); - return MLR_DSL_END; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_STRIPPED_AWAY); + return MD_TOKEN_END; } "?" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_QUESTION_MARK; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_QUESTION_MARK; } ":" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_COLON; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_COLON; } "||" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_LOGICAL_OR; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_LOGICAL_OR; } "^^" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_LOGICAL_XOR; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_LOGICAL_XOR; } "&&" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_LOGICAL_AND; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_LOGICAL_AND; } "=~" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_MATCHES; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_MATCHES; } "!=~" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_DOES_NOT_MATCH; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_DOES_NOT_MATCH; } "==" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_EQ; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_EQ; } "!=" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_NE; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_NE; } ">" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_GT; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_GT; } ">=" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_GE; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_GE; } "<" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_LT; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_LT; } "<=" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_LE; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_LE; } "|" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_BITWISE_OR; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_BITWISE_OR; } "^" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_BITWISE_XOR; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_BITWISE_XOR; } "&" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_BITWISE_AND; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_BITWISE_AND; } "<<" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_BITWISE_LSH; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_BITWISE_LSH; } ">>" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_BITWISE_RSH; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_BITWISE_RSH; } "+" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_PLUS; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_PLUS; } "-" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_MINUS; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_MINUS; } "\." { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_DOT; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_DOT; } "*" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_TIMES; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_TIMES; } "/" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_DIVIDE; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_DIVIDE; } "//" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_INT_DIVIDE; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_INT_DIVIDE; } "%" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_MOD; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_MOD; } "!" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_LOGICAL_NOT; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_LOGICAL_NOT; } "~" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_BITWISE_NOT; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_BITWISE_NOT; } "**" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OPERATOR); - return MLR_DSL_POW; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OPERATOR); + return MD_TOKEN_POW; } \$[a-zA-Z_0-9]+ { // Note: the parser depends on the dollar sign being here. If this is changed, // that needs to be changed as well. - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_FIELD_NAME); - return MLR_DSL_FIELD_NAME; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_FIELD_NAME); + return MD_TOKEN_FIELD_NAME; } \$\{([^\}]|\\.)*\} { // Note: the parser depends on the dollar sign being here. If this is changed, // that needs to be changed as well. - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_FIELD_NAME); - return MLR_DSL_BRACED_FIELD_NAME; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_FIELD_NAME); + return MD_TOKEN_BRACED_FIELD_NAME; } @[a-zA-Z_0-9]+ { // Note: the parser depends on the at-sign being here. If this is changed, // that needs to be changed as well. - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OOSVAR_NAME); - return MLR_DSL_OOSVAR_NAME; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OOSVAR_NAME); + return MD_TOKEN_OOSVAR_NAME; } @\{([^\}]|\\.)*\} { // Note: the parser depends on the at-sign being here. If this is changed, // that needs to be changed as well. - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_OOSVAR_NAME); - return MLR_DSL_BRACED_OOSVAR_NAME; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_OOSVAR_NAME); + return MD_TOKEN_BRACED_OOSVAR_NAME; } @@[a-zA-Z_0-9]+ { // xxx moosvars are just temporary // Note: the parser depends on the percent-sign being here. If this is changed, // that needs to be changed as well. - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_MOOSVAR_NAME); - return MLR_DSL_MOOSVAR_NAME; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_MOOSVAR_NAME); + return MD_TOKEN_MOOSVAR_NAME; } @@\{([^\}]|\\.)*\} { // xxx moosvars are just temporary // Note: the parser depends on the percent-sign being here. If this is changed, // that needs to be changed as well. - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_MOOSVAR_NAME); - return MLR_DSL_BRACED_MOOSVAR_NAME; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_MOOSVAR_NAME); + return MD_TOKEN_BRACED_MOOSVAR_NAME; } "\[" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_STRIPPED_AWAY); - return MLR_DSL_LEFT_BRACKET; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_STRIPPED_AWAY); + return MD_TOKEN_LEFT_BRACKET; } "\]" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_STRIPPED_AWAY); - return MLR_DSL_RIGHT_BRACKET; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_STRIPPED_AWAY); + return MD_TOKEN_RIGHT_BRACKET; } [0-9]+|[0-9]+\.[0-9]*|[0-9]*\.[0-9]+|[0-9]+[eE][0-9]+|[0-9]+[eE]-[0-9]+|[0-9]+\.[0-9]*[eE][0-9]+|[0-9]+\.[0-9]*[eE]-[0-9]+|[0-9]*\.[0-9]+[eE][0-9]+|[0-9]*\.[0-9]+[eE]-[0-9]+ { @@ -236,79 +236,79 @@ // 1.2e-3 1.e-3 // .2e3 // .2e-3 1.e-3 - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_STRNUM_LITERAL); - return MLR_DSL_NUMBER; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_STRNUM_LITERAL); + return MD_TOKEN_NUMBER; } 0x[0-9a-fA-F]+ { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_STRNUM_LITERAL); - return MLR_DSL_NUMBER; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_STRNUM_LITERAL); + return MD_TOKEN_NUMBER; } \"([^\\\"]|\\.)*\" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_STRNUM_LITERAL); - return MLR_DSL_STRING; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_STRNUM_LITERAL); + return MD_TOKEN_STRING; } \"([^\\\"]|\\.)*\"\i { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_REGEXI); - return MLR_DSL_REGEXI; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_REGEXI); + return MD_TOKEN_REGEXI; } true { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_BOOLEAN_LITERAL); - return MLR_DSL_TRUE; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_BOOLEAN_LITERAL); + return MD_TOKEN_TRUE; } false { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_BOOLEAN_LITERAL); - return MLR_DSL_FALSE; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_BOOLEAN_LITERAL); + return MD_TOKEN_FALSE; } "NF" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_CONTEXT_VARIABLE); - return MLR_DSL_CONTEXT_VARIABLE; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_CONTEXT_VARIABLE); + return MD_TOKEN_CONTEXT_VARIABLE; } "NR" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_CONTEXT_VARIABLE); - return MLR_DSL_CONTEXT_VARIABLE; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_CONTEXT_VARIABLE); + return MD_TOKEN_CONTEXT_VARIABLE; } "FNR" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_CONTEXT_VARIABLE); - return MLR_DSL_CONTEXT_VARIABLE; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_CONTEXT_VARIABLE); + return MD_TOKEN_CONTEXT_VARIABLE; } "FILENAME" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_CONTEXT_VARIABLE); - return MLR_DSL_CONTEXT_VARIABLE; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_CONTEXT_VARIABLE); + return MD_TOKEN_CONTEXT_VARIABLE; } "FILENUM" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_CONTEXT_VARIABLE); - return MLR_DSL_CONTEXT_VARIABLE; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_CONTEXT_VARIABLE); + return MD_TOKEN_CONTEXT_VARIABLE; } "PI" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_CONTEXT_VARIABLE); - return MLR_DSL_CONTEXT_VARIABLE; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_CONTEXT_VARIABLE); + return MD_TOKEN_CONTEXT_VARIABLE; } "E" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_CONTEXT_VARIABLE); - return MLR_DSL_CONTEXT_VARIABLE; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_CONTEXT_VARIABLE); + return MD_TOKEN_CONTEXT_VARIABLE; } [a-zA-Z_][a-zA-Z_0-9]+ { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_FUNCTION_NAME); - return MLR_DSL_FCN_NAME; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_FUNCTION_NAME); + return MD_TOKEN_FCN_NAME; } "(" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_STRIPPED_AWAY); - return MLR_DSL_LPAREN; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_STRIPPED_AWAY); + return MD_TOKEN_LPAREN; } ")" { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_STRIPPED_AWAY); - return MLR_DSL_RPAREN; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_STRIPPED_AWAY); + return MD_TOKEN_RPAREN; } "," { - *yyextra = mlr_dsl_ast_node_alloc(yytext, MLR_DSL_AST_NODE_TYPE_STRIPPED_AWAY); - return MLR_DSL_COMMA; + *yyextra = mlr_dsl_ast_node_alloc(yytext, MD_AST_NODE_TYPE_STRIPPED_AWAY); + return MD_TOKEN_COMMA; } [ \t\r\n] { } diff --git a/c/dsls/mlr_dsl_parse.y b/c/dsls/mlr_dsl_parse.y index ef0d8b7ae..08c03df99 100644 --- a/c/dsls/mlr_dsl_parse.y +++ b/c/dsls/mlr_dsl_parse.y @@ -13,7 +13,7 @@ // * parens, commas, semis, line endings, whitespace are all stripped away // * variable names and literal values remain as leaf nodes of the AST // * = + - * / ** {function names} remain as non-leaf nodes of the AST -// CST: See the mlr_dsl_cst.c +// CST: See the md_cst.c // ================================================================ } @@ -37,95 +37,95 @@ } // ================================================================ -mlr_dsl_body ::= mlr_dsl_statements. +md_body ::= md_statements. -mlr_dsl_statements ::= mlr_dsl_statement. -mlr_dsl_statements ::= mlr_dsl_statement MLR_DSL_SEMICOLON mlr_dsl_statements. +md_statements ::= md_statement. +md_statements ::= md_statement MD_TOKEN_SEMICOLON md_statements. // This allows for trailing semicolon, as well as empty string (or whitespace) between semicolons: -mlr_dsl_statement ::= . +md_statement ::= . -mlr_dsl_statement ::= mlr_dsl_main_srec_assignment. -mlr_dsl_statement ::= mlr_dsl_main_oosvar_assignment. -mlr_dsl_statement ::= mlr_dsl_main_bare_boolean. -mlr_dsl_statement ::= mlr_dsl_main_filter. -mlr_dsl_statement ::= mlr_dsl_main_gate. -mlr_dsl_statement ::= mlr_dsl_main_emit. +md_statement ::= md_main_srec_assignment. +md_statement ::= md_main_oosvar_assignment. +md_statement ::= md_main_bare_boolean. +md_statement ::= md_main_filter. +md_statement ::= md_main_gate. +md_statement ::= md_main_emit. // E.g. 'begin { emit @count }' -mlr_dsl_statement ::= mlr_dsl_begin_block. +md_statement ::= md_begin_block. // E.g. 'begin emit @count' -mlr_dsl_statement ::= mlr_dsl_begin_solo_oosvar_assignment. -mlr_dsl_statement ::= mlr_dsl_begin_solo_bare_boolean. -mlr_dsl_statement ::= mlr_dsl_begin_solo_filter. -mlr_dsl_statement ::= mlr_dsl_begin_solo_gate. -mlr_dsl_statement ::= mlr_dsl_begin_solo_emit. +md_statement ::= md_begin_solo_oosvar_assignment. +md_statement ::= md_begin_solo_bare_boolean. +md_statement ::= md_begin_solo_filter. +md_statement ::= md_begin_solo_gate. +md_statement ::= md_begin_solo_emit. // E.g. 'end { emit @count }' -mlr_dsl_statement ::= mlr_dsl_end_block. +md_statement ::= md_end_block. // E.g. 'end emit @count' -mlr_dsl_statement ::= mlr_dsl_end_solo_oosvar_assignment. -mlr_dsl_statement ::= mlr_dsl_end_solo_bare_boolean. -mlr_dsl_statement ::= mlr_dsl_end_solo_filter. -mlr_dsl_statement ::= mlr_dsl_end_solo_gate. -mlr_dsl_statement ::= mlr_dsl_end_solo_emit. +md_statement ::= md_end_solo_oosvar_assignment. +md_statement ::= md_end_solo_bare_boolean. +md_statement ::= md_end_solo_filter. +md_statement ::= md_end_solo_gate. +md_statement ::= md_end_solo_emit. // ---------------------------------------------------------------- // This looks redundant to the above, but it avoids having pathologies such as nested 'begin { begin { ... } }'. -mlr_dsl_begin_block ::= MLR_DSL_BEGIN MLR_DSL_LEFT_BRACE mlr_dsl_begin_block_statements MLR_DSL_RIGHT_BRACE. +md_begin_block ::= MD_TOKEN_BEGIN MD_TOKEN_LEFT_BRACE md_begin_block_statements MD_TOKEN_RIGHT_BRACE. -mlr_dsl_begin_block_statements ::= mlr_dsl_begin_block_statement. -mlr_dsl_begin_block_statements ::= mlr_dsl_begin_block_statement MLR_DSL_SEMICOLON mlr_dsl_begin_block_statements. +md_begin_block_statements ::= md_begin_block_statement. +md_begin_block_statements ::= md_begin_block_statement MD_TOKEN_SEMICOLON md_begin_block_statements. // This allows for trailing semicolon, as well as empty string (or whitespace) between semicolons: -mlr_dsl_begin_block_statement ::= . -mlr_dsl_begin_block_statement ::= mlr_dsl_begin_block_oosvar_assignment. -mlr_dsl_begin_block_statement ::= mlr_dsl_begin_block_moosvar_assignment. -mlr_dsl_begin_block_statement ::= mlr_dsl_begin_block_moosvar_temp. -mlr_dsl_begin_block_statement ::= mlr_dsl_begin_block_bare_boolean. -mlr_dsl_begin_block_statement ::= mlr_dsl_begin_block_filter. -mlr_dsl_begin_block_statement ::= mlr_dsl_begin_block_gate. -mlr_dsl_begin_block_statement ::= mlr_dsl_begin_block_emit. +md_begin_block_statement ::= . +md_begin_block_statement ::= md_begin_block_oosvar_assignment. +md_begin_block_statement ::= md_begin_block_moosvar_assignment. +md_begin_block_statement ::= md_begin_block_moosvar_temp. +md_begin_block_statement ::= md_begin_block_bare_boolean. +md_begin_block_statement ::= md_begin_block_filter. +md_begin_block_statement ::= md_begin_block_gate. +md_begin_block_statement ::= md_begin_block_emit. -mlr_dsl_end_block ::= MLR_DSL_END MLR_DSL_LEFT_BRACE mlr_dsl_end_block_statements MLR_DSL_RIGHT_BRACE. +md_end_block ::= MD_TOKEN_END MD_TOKEN_LEFT_BRACE md_end_block_statements MD_TOKEN_RIGHT_BRACE. -mlr_dsl_end_block_statements ::= mlr_dsl_end_block_statement. -mlr_dsl_end_block_statements ::= mlr_dsl_end_block_statement MLR_DSL_SEMICOLON mlr_dsl_end_block_statements. +md_end_block_statements ::= md_end_block_statement. +md_end_block_statements ::= md_end_block_statement MD_TOKEN_SEMICOLON md_end_block_statements. // This allows for trailing semicolon, as well as empty string (or whitespace) between semicolons: -mlr_dsl_end_block_statement ::= . -mlr_dsl_end_block_statement ::= mlr_dsl_end_block_oosvar_assignment. -mlr_dsl_end_block_statement ::= mlr_dsl_end_block_bare_boolean. -mlr_dsl_end_block_statement ::= mlr_dsl_end_block_filter. -mlr_dsl_end_block_statement ::= mlr_dsl_end_block_gate. -mlr_dsl_end_block_statement ::= mlr_dsl_end_block_emit. +md_end_block_statement ::= . +md_end_block_statement ::= md_end_block_oosvar_assignment. +md_end_block_statement ::= md_end_block_bare_boolean. +md_end_block_statement ::= md_end_block_filter. +md_end_block_statement ::= md_end_block_gate. +md_end_block_statement ::= md_end_block_emit. // ================================================================ // These are top-level; they update the AST top-level statement-lists. -mlr_dsl_main_srec_assignment(A) ::= mlr_dsl_field_name(B) MLR_DSL_ASSIGN(O) mlr_dsl_ternary(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_SREC_ASSIGNMENT, B, C); +md_main_srec_assignment(A) ::= md_field_name(B) MD_TOKEN_ASSIGN(O) md_ternary(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_SREC_ASSIGNMENT, B, C); sllv_add(past->pmain_statements, A); } -mlr_dsl_main_oosvar_assignment(A) ::= mlr_dsl_oosvar_assignment(B). { +md_main_oosvar_assignment(A) ::= md_oosvar_assignment(B). { A = B; sllv_add(past->pmain_statements, A); } -mlr_dsl_main_bare_boolean(A) ::= mlr_dsl_ternary(B). { +md_main_bare_boolean(A) ::= md_ternary(B). { A = B; sllv_add(past->pmain_statements, A); } -mlr_dsl_main_filter(A) ::= MLR_DSL_FILTER(O) mlr_dsl_ternary(B). { - A = mlr_dsl_ast_node_alloc_unary(O->text, MLR_DSL_AST_NODE_TYPE_FILTER, B); +md_main_filter(A) ::= MD_TOKEN_FILTER(O) md_ternary(B). { + A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILTER, B); sllv_add(past->pmain_statements, A); } -mlr_dsl_main_gate(A) ::= MLR_DSL_GATE(O) mlr_dsl_ternary(B). { - A = mlr_dsl_ast_node_alloc_unary(O->text, MLR_DSL_AST_NODE_TYPE_GATE, B); +md_main_gate(A) ::= MD_TOKEN_GATE(O) md_ternary(B). { + A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_GATE, B); sllv_add(past->pmain_statements, A); } -mlr_dsl_main_emit(A) ::= mlr_dsl_emit(B). { +md_main_emit(A) ::= md_emit(B). { A = B; sllv_add(past->pmain_statements, A); } @@ -133,28 +133,28 @@ mlr_dsl_main_emit(A) ::= mlr_dsl_emit(B). { // ---------------------------------------------------------------- // These are top-level; they update the AST top-level statement-lists. -mlr_dsl_begin_solo_oosvar_assignment(A) ::= MLR_DSL_BEGIN mlr_dsl_oosvar_assignment(B). { +md_begin_solo_oosvar_assignment(A) ::= MD_TOKEN_BEGIN md_oosvar_assignment(B). { A = B; sllv_add(past->pbegin_statements, A); } -mlr_dsl_begin_solo_bare_boolean(A) ::= MLR_DSL_BEGIN mlr_dsl_ternary(B). { +md_begin_solo_bare_boolean(A) ::= MD_TOKEN_BEGIN md_ternary(B). { A = B; sllv_add(past->pbegin_statements, A); } -mlr_dsl_begin_solo_filter(A) ::= MLR_DSL_BEGIN MLR_DSL_FILTER(O) mlr_dsl_ternary(B). { - A = mlr_dsl_ast_node_alloc_unary(O->text, MLR_DSL_AST_NODE_TYPE_FILTER, B); +md_begin_solo_filter(A) ::= MD_TOKEN_BEGIN MD_TOKEN_FILTER(O) md_ternary(B). { + A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILTER, B); sllv_add(past->pbegin_statements, A); } -mlr_dsl_begin_solo_gate(A) ::= MLR_DSL_BEGIN MLR_DSL_GATE(O) mlr_dsl_ternary(B). { - A = mlr_dsl_ast_node_alloc_unary(O->text, MLR_DSL_AST_NODE_TYPE_GATE, B); +md_begin_solo_gate(A) ::= MD_TOKEN_BEGIN MD_TOKEN_GATE(O) md_ternary(B). { + A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_GATE, B); sllv_add(past->pbegin_statements, A); } -mlr_dsl_begin_solo_emit(A) ::= MLR_DSL_BEGIN mlr_dsl_emit(B). { +md_begin_solo_emit(A) ::= MD_TOKEN_BEGIN md_emit(B). { A = B; sllv_add(past->pbegin_statements, A); } -mlr_dsl_begin_block_oosvar_assignment(A) ::= mlr_dsl_oosvar_assignment(B). { +md_begin_block_oosvar_assignment(A) ::= md_oosvar_assignment(B). { A = B; sllv_add(past->pbegin_statements, A); } @@ -162,36 +162,36 @@ mlr_dsl_begin_block_oosvar_assignment(A) ::= mlr_dsl_oosvar_assignment(B). { // oosvars work just fine; multi-level hashmaps (moosvars) don't *yet*. // so having @ for the former and @@ for the latter allows me to separate the working stuff // from the experimental. -mlr_dsl_begin_block_moosvar_assignment(A) ::= mlr_dsl_moosvar_assignment(B). { +md_begin_block_moosvar_assignment(A) ::= md_moosvar_assignment(B). { A = B; sllv_add(past->pbegin_statements, A); } -mlr_dsl_begin_block_moosvar_temp(A) ::= mlr_dsl_begin_block_moosvar_temp2(B). { +md_begin_block_moosvar_temp(A) ::= md_begin_block_moosvar_temp2(B). { A = B; sllv_add(past->pbegin_statements, A); } -mlr_dsl_begin_block_moosvar_temp2(A) ::= mlr_dsl_moosvar_name(B) MLR_DSL_LEFT_BRACKET mlr_dsl_ternary(C) MLR_DSL_RIGHT_BRACKET. { - A = mlr_dsl_ast_node_alloc_binary("[]", MLR_DSL_AST_NODE_TYPE_MOOSVAR_INDEX, B, C); +md_begin_block_moosvar_temp2(A) ::= md_moosvar_name(B) MD_TOKEN_LEFT_BRACKET md_ternary(C) MD_TOKEN_RIGHT_BRACKET. { + A = mlr_dsl_ast_node_alloc_binary("[]", MD_AST_NODE_TYPE_MOOSVAR_INDEX, B, C); } -mlr_dsl_begin_block_moosvar_temp2(A) ::= mlr_dsl_begin_block_moosvar_temp2(B) MLR_DSL_LEFT_BRACKET mlr_dsl_ternary(C) MLR_DSL_RIGHT_BRACKET. { - A = mlr_dsl_ast_node_alloc_binary("[]", MLR_DSL_AST_NODE_TYPE_MOOSVAR_INDEX, B, C); +md_begin_block_moosvar_temp2(A) ::= md_begin_block_moosvar_temp2(B) MD_TOKEN_LEFT_BRACKET md_ternary(C) MD_TOKEN_RIGHT_BRACKET. { + A = mlr_dsl_ast_node_alloc_binary("[]", MD_AST_NODE_TYPE_MOOSVAR_INDEX, B, C); } -mlr_dsl_begin_block_bare_boolean(A) ::= mlr_dsl_ternary(B). { +md_begin_block_bare_boolean(A) ::= md_ternary(B). { A = B; sllv_add(past->pbegin_statements, A); } -mlr_dsl_begin_block_filter(A) ::= MLR_DSL_FILTER(O) mlr_dsl_ternary(B). { - A = mlr_dsl_ast_node_alloc_unary(O->text, MLR_DSL_AST_NODE_TYPE_FILTER, B); +md_begin_block_filter(A) ::= MD_TOKEN_FILTER(O) md_ternary(B). { + A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILTER, B); sllv_add(past->pbegin_statements, A); } -mlr_dsl_begin_block_gate(A) ::= MLR_DSL_GATE(O) mlr_dsl_ternary(B). { - A = mlr_dsl_ast_node_alloc_unary(O->text, MLR_DSL_AST_NODE_TYPE_GATE, B); +md_begin_block_gate(A) ::= MD_TOKEN_GATE(O) md_ternary(B). { + A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_GATE, B); sllv_add(past->pbegin_statements, A); } -mlr_dsl_begin_block_emit(A) ::= mlr_dsl_emit(B). { +md_begin_block_emit(A) ::= md_emit(B). { A = B; sllv_add(past->pbegin_statements, A); } @@ -199,54 +199,54 @@ mlr_dsl_begin_block_emit(A) ::= mlr_dsl_emit(B). { // ---------------------------------------------------------------- // These are top-level; they update the AST top-level statement-lists. -mlr_dsl_end_solo_oosvar_assignment(A) ::= MLR_DSL_END mlr_dsl_oosvar_assignment(B). { +md_end_solo_oosvar_assignment(A) ::= MD_TOKEN_END md_oosvar_assignment(B). { A = B; sllv_add(past->pend_statements, A); } -mlr_dsl_end_solo_bare_boolean(A) ::= MLR_DSL_END mlr_dsl_ternary(B). { +md_end_solo_bare_boolean(A) ::= MD_TOKEN_END md_ternary(B). { A = B; sllv_add(past->pend_statements, A); } -mlr_dsl_end_solo_filter(A) ::= MLR_DSL_END MLR_DSL_FILTER(O) mlr_dsl_ternary(B). { - A = mlr_dsl_ast_node_alloc_unary(O->text, MLR_DSL_AST_NODE_TYPE_FILTER, B); +md_end_solo_filter(A) ::= MD_TOKEN_END MD_TOKEN_FILTER(O) md_ternary(B). { + A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILTER, B); sllv_add(past->pend_statements, A); } -mlr_dsl_end_solo_gate(A) ::= MLR_DSL_END MLR_DSL_GATE(O) mlr_dsl_ternary(B). { - A = mlr_dsl_ast_node_alloc_unary(O->text, MLR_DSL_AST_NODE_TYPE_GATE, B); +md_end_solo_gate(A) ::= MD_TOKEN_END MD_TOKEN_GATE(O) md_ternary(B). { + A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_GATE, B); sllv_add(past->pend_statements, A); } -mlr_dsl_end_solo_emit(A) ::= MLR_DSL_END mlr_dsl_emit(B). { +md_end_solo_emit(A) ::= MD_TOKEN_END md_emit(B). { A = B; sllv_add(past->pend_statements, A); } -mlr_dsl_end_block_oosvar_assignment(A) ::= mlr_dsl_oosvar_assignment(B). { +md_end_block_oosvar_assignment(A) ::= md_oosvar_assignment(B). { A = B; sllv_add(past->pend_statements, A); } -mlr_dsl_end_block_bare_boolean(A) ::= mlr_dsl_ternary(B). { +md_end_block_bare_boolean(A) ::= md_ternary(B). { A = B; sllv_add(past->pend_statements, A); } -mlr_dsl_end_block_filter(A) ::= MLR_DSL_FILTER(O) mlr_dsl_ternary(B). { - A = mlr_dsl_ast_node_alloc_unary(O->text, MLR_DSL_AST_NODE_TYPE_FILTER, B); +md_end_block_filter(A) ::= MD_TOKEN_FILTER(O) md_ternary(B). { + A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_FILTER, B); sllv_add(past->pend_statements, A); } -mlr_dsl_end_block_gate(A) ::= MLR_DSL_GATE(O) mlr_dsl_ternary(B). { - A = mlr_dsl_ast_node_alloc_unary(O->text, MLR_DSL_AST_NODE_TYPE_GATE, B); +md_end_block_gate(A) ::= MD_TOKEN_GATE(O) md_ternary(B). { + A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_GATE, B); sllv_add(past->pend_statements, A); } -mlr_dsl_end_block_emit(A) ::= mlr_dsl_emit(B). { +md_end_block_emit(A) ::= md_emit(B). { A = B; sllv_add(past->pend_statements, A); } // ---------------------------------------------------------------- -mlr_dsl_oosvar_assignment(A) ::= mlr_dsl_oosvar_name(B) MLR_DSL_ASSIGN(O) mlr_dsl_ternary(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_OOSVAR_ASSIGNMENT, B, C); +md_oosvar_assignment(A) ::= md_oosvar_name(B) MD_TOKEN_ASSIGN(O) md_ternary(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_OOSVAR_ASSIGNMENT, B, C); } -mlr_dsl_moosvar_assignment(A) ::= mlr_dsl_moosvar_name(B) MLR_DSL_ASSIGN(O) mlr_dsl_ternary(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_MOOSVAR_ASSIGNMENT, B, C); +md_moosvar_assignment(A) ::= md_moosvar_name(B) MD_TOKEN_ASSIGN(O) md_ternary(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_MOOSVAR_ASSIGNMENT, B, C); } // ---------------------------------------------------------------- @@ -256,176 +256,176 @@ mlr_dsl_moosvar_assignment(A) ::= mlr_dsl_moosvar_name(B) MLR_DSL_ASSIGN(O) mlr // * On the "@b" we append the next argument to get "temp @a,@b". // * On the "@c" we append the next argument to get "temp @a,@b,@c". // * On the "emit" we change the name to get "emit @a,@b,@c". -mlr_dsl_emit(A) ::= MLR_DSL_EMIT(O) mlr_dsl_emit_args(B). { +md_emit(A) ::= MD_TOKEN_EMIT(O) md_emit_args(B). { A = mlr_dsl_ast_node_set_function_name(B, O->text); } // Need to invalidate "emit $a," -- use some non-empty-args expr. -mlr_dsl_emit_args(A) ::= . { - A = mlr_dsl_ast_node_alloc_zary("temp", MLR_DSL_AST_NODE_TYPE_EMIT); +md_emit_args(A) ::= . { + A = mlr_dsl_ast_node_alloc_zary("temp", MD_AST_NODE_TYPE_EMIT); } -mlr_dsl_emit_args(A) ::= mlr_dsl_oosvar_name(B). { - A = mlr_dsl_ast_node_alloc_unary("temp", MLR_DSL_AST_NODE_TYPE_EMIT, B); +md_emit_args(A) ::= md_oosvar_name(B). { + A = mlr_dsl_ast_node_alloc_unary("temp", MD_AST_NODE_TYPE_EMIT, B); } -mlr_dsl_emit_args(A) ::= mlr_dsl_emit_args(B) MLR_DSL_COMMA mlr_dsl_oosvar_name(C). { +md_emit_args(A) ::= md_emit_args(B) MD_TOKEN_COMMA md_oosvar_name(C). { A = mlr_dsl_ast_node_append_arg(B, C); } // ================================================================ -mlr_dsl_ternary(A) ::= mlr_dsl_logical_or_term(B) MLR_DSL_QUESTION_MARK mlr_dsl_ternary(C) MLR_DSL_COLON mlr_dsl_ternary(D). { - A = mlr_dsl_ast_node_alloc_ternary("? :", MLR_DSL_AST_NODE_TYPE_OPERATOR, B, C, D); +md_ternary(A) ::= md_logical_or_term(B) MD_TOKEN_QUESTION_MARK md_ternary(C) MD_TOKEN_COLON md_ternary(D). { + A = mlr_dsl_ast_node_alloc_ternary("? :", MD_AST_NODE_TYPE_OPERATOR, B, C, D); } -mlr_dsl_ternary(A) ::= mlr_dsl_logical_or_term(B). { +md_ternary(A) ::= md_logical_or_term(B). { A = B; } // ================================================================ -mlr_dsl_logical_or_term(A) ::= mlr_dsl_logical_xor_term(B). { +md_logical_or_term(A) ::= md_logical_xor_term(B). { A = B; } -mlr_dsl_logical_or_term(A) ::= mlr_dsl_logical_or_term(B) MLR_DSL_LOGICAL_OR(O) mlr_dsl_logical_xor_term(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, B, C); +md_logical_or_term(A) ::= md_logical_or_term(B) MD_TOKEN_LOGICAL_OR(O) md_logical_xor_term(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_OPERATOR, B, C); } // ---------------------------------------------------------------- -mlr_dsl_logical_xor_term(A) ::= mlr_dsl_logical_and_term(B). { +md_logical_xor_term(A) ::= md_logical_and_term(B). { A = B; } -mlr_dsl_logical_xor_term(A) ::= mlr_dsl_logical_xor_term(B) MLR_DSL_LOGICAL_XOR(O) mlr_dsl_logical_and_term(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, B, C); +md_logical_xor_term(A) ::= md_logical_xor_term(B) MD_TOKEN_LOGICAL_XOR(O) md_logical_and_term(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_OPERATOR, B, C); } // ---------------------------------------------------------------- -mlr_dsl_logical_and_term(A) ::= mlr_dsl_eqne_term(B). { +md_logical_and_term(A) ::= md_eqne_term(B). { A = B; } -mlr_dsl_logical_and_term(A) ::= mlr_dsl_logical_and_term(B) MLR_DSL_LOGICAL_AND(O) mlr_dsl_eqne_term(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, B, C); +md_logical_and_term(A) ::= md_logical_and_term(B) MD_TOKEN_LOGICAL_AND(O) md_eqne_term(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_OPERATOR, B, C); } // ---------------------------------------------------------------- -mlr_dsl_eqne_term(A) ::= mlr_dsl_cmp_term(B). { +md_eqne_term(A) ::= md_cmp_term(B). { A = B; } -mlr_dsl_eqne_term(A) ::= mlr_dsl_eqne_term(B) MLR_DSL_MATCHES(O) mlr_dsl_cmp_term(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, B, C); +md_eqne_term(A) ::= md_eqne_term(B) MD_TOKEN_MATCHES(O) md_cmp_term(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_OPERATOR, B, C); } -mlr_dsl_eqne_term(A) ::= mlr_dsl_eqne_term(B) MLR_DSL_DOES_NOT_MATCH(O) mlr_dsl_cmp_term(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, B, C); +md_eqne_term(A) ::= md_eqne_term(B) MD_TOKEN_DOES_NOT_MATCH(O) md_cmp_term(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_OPERATOR, B, C); } -mlr_dsl_eqne_term(A) ::= mlr_dsl_eqne_term(B) MLR_DSL_EQ(O) mlr_dsl_cmp_term(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, B, C); +md_eqne_term(A) ::= md_eqne_term(B) MD_TOKEN_EQ(O) md_cmp_term(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_OPERATOR, B, C); } -mlr_dsl_eqne_term(A) ::= mlr_dsl_eqne_term(B) MLR_DSL_NE(O) mlr_dsl_cmp_term(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, B, C); +md_eqne_term(A) ::= md_eqne_term(B) MD_TOKEN_NE(O) md_cmp_term(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_OPERATOR, B, C); } // ---------------------------------------------------------------- -mlr_dsl_cmp_term(A) ::= mlr_dsl_bitwise_or_term(B). { +md_cmp_term(A) ::= md_bitwise_or_term(B). { A = B; } -mlr_dsl_cmp_term(A) ::= mlr_dsl_cmp_term(B) MLR_DSL_GT(O) mlr_dsl_bitwise_or_term(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, B, C); +md_cmp_term(A) ::= md_cmp_term(B) MD_TOKEN_GT(O) md_bitwise_or_term(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_OPERATOR, B, C); } -mlr_dsl_cmp_term(A) ::= mlr_dsl_cmp_term(B) MLR_DSL_GE(O) mlr_dsl_bitwise_or_term(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, B, C); +md_cmp_term(A) ::= md_cmp_term(B) MD_TOKEN_GE(O) md_bitwise_or_term(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_OPERATOR, B, C); } -mlr_dsl_cmp_term(A) ::= mlr_dsl_cmp_term(B) MLR_DSL_LT(O) mlr_dsl_bitwise_or_term(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, B, C); +md_cmp_term(A) ::= md_cmp_term(B) MD_TOKEN_LT(O) md_bitwise_or_term(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_OPERATOR, B, C); } -mlr_dsl_cmp_term(A) ::= mlr_dsl_cmp_term(B) MLR_DSL_LE(O) mlr_dsl_bitwise_or_term(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, B, C); +md_cmp_term(A) ::= md_cmp_term(B) MD_TOKEN_LE(O) md_bitwise_or_term(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_OPERATOR, B, C); } // ---------------------------------------------------------------- -mlr_dsl_bitwise_or_term(A) ::= mlr_dsl_bitwise_xor_term(B). { +md_bitwise_or_term(A) ::= md_bitwise_xor_term(B). { A = B; } -mlr_dsl_bitwise_or_term(A) ::= mlr_dsl_bitwise_or_term(B) MLR_DSL_BITWISE_OR(O) mlr_dsl_bitwise_xor_term(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, B, C); +md_bitwise_or_term(A) ::= md_bitwise_or_term(B) MD_TOKEN_BITWISE_OR(O) md_bitwise_xor_term(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_OPERATOR, B, C); } // ---------------------------------------------------------------- -mlr_dsl_bitwise_xor_term(A) ::= mlr_dsl_bitwise_and_term(B). { +md_bitwise_xor_term(A) ::= md_bitwise_and_term(B). { A = B; } -mlr_dsl_bitwise_xor_term(A) ::= mlr_dsl_bitwise_xor_term(B) MLR_DSL_BITWISE_XOR(O) mlr_dsl_bitwise_and_term(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, B, C); +md_bitwise_xor_term(A) ::= md_bitwise_xor_term(B) MD_TOKEN_BITWISE_XOR(O) md_bitwise_and_term(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_OPERATOR, B, C); } // ---------------------------------------------------------------- -mlr_dsl_bitwise_and_term(A) ::= mlr_dsl_bitwise_shift_term(B). { +md_bitwise_and_term(A) ::= md_bitwise_shift_term(B). { A = B; } -mlr_dsl_bitwise_and_term(A) ::= mlr_dsl_bitwise_and_term(B) MLR_DSL_BITWISE_AND(O) mlr_dsl_bitwise_shift_term(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, B, C); +md_bitwise_and_term(A) ::= md_bitwise_and_term(B) MD_TOKEN_BITWISE_AND(O) md_bitwise_shift_term(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_OPERATOR, B, C); } // ---------------------------------------------------------------- -mlr_dsl_bitwise_shift_term(A) ::= mlr_dsl_addsubdot_term(B). { +md_bitwise_shift_term(A) ::= md_addsubdot_term(B). { A = B; } -mlr_dsl_bitwise_shift_term(A) ::= mlr_dsl_bitwise_shift_term(B) MLR_DSL_BITWISE_LSH(O) mlr_dsl_addsubdot_term(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, B, C); +md_bitwise_shift_term(A) ::= md_bitwise_shift_term(B) MD_TOKEN_BITWISE_LSH(O) md_addsubdot_term(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_OPERATOR, B, C); } -mlr_dsl_bitwise_shift_term(A) ::= mlr_dsl_bitwise_shift_term(B) MLR_DSL_BITWISE_RSH(O) mlr_dsl_addsubdot_term(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, B, C); +md_bitwise_shift_term(A) ::= md_bitwise_shift_term(B) MD_TOKEN_BITWISE_RSH(O) md_addsubdot_term(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_OPERATOR, B, C); } // ---------------------------------------------------------------- -mlr_dsl_addsubdot_term(A) ::= mlr_dsl_muldiv_term(B). { +md_addsubdot_term(A) ::= md_muldiv_term(B). { A = B; } -mlr_dsl_addsubdot_term(A) ::= mlr_dsl_addsubdot_term(B) MLR_DSL_PLUS(O) mlr_dsl_muldiv_term(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, B, C); +md_addsubdot_term(A) ::= md_addsubdot_term(B) MD_TOKEN_PLUS(O) md_muldiv_term(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_OPERATOR, B, C); } -mlr_dsl_addsubdot_term(A) ::= mlr_dsl_addsubdot_term(B) MLR_DSL_MINUS(O) mlr_dsl_muldiv_term(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, B, C); +md_addsubdot_term(A) ::= md_addsubdot_term(B) MD_TOKEN_MINUS(O) md_muldiv_term(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_OPERATOR, B, C); } -mlr_dsl_addsubdot_term(A) ::= mlr_dsl_addsubdot_term(B) MLR_DSL_DOT(O) mlr_dsl_muldiv_term(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, B, C); +md_addsubdot_term(A) ::= md_addsubdot_term(B) MD_TOKEN_DOT(O) md_muldiv_term(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_OPERATOR, B, C); } // ---------------------------------------------------------------- -mlr_dsl_muldiv_term(A) ::= mlr_dsl_unary_bitwise_op_term(B). { +md_muldiv_term(A) ::= md_unary_bitwise_op_term(B). { A = B; } -mlr_dsl_muldiv_term(A) ::= mlr_dsl_muldiv_term(B) MLR_DSL_TIMES(O) mlr_dsl_unary_bitwise_op_term(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, B, C); +md_muldiv_term(A) ::= md_muldiv_term(B) MD_TOKEN_TIMES(O) md_unary_bitwise_op_term(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_OPERATOR, B, C); } -mlr_dsl_muldiv_term(A) ::= mlr_dsl_muldiv_term(B) MLR_DSL_DIVIDE(O) mlr_dsl_unary_bitwise_op_term(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, B, C); +md_muldiv_term(A) ::= md_muldiv_term(B) MD_TOKEN_DIVIDE(O) md_unary_bitwise_op_term(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_OPERATOR, B, C); } -mlr_dsl_muldiv_term(A) ::= mlr_dsl_muldiv_term(B) MLR_DSL_INT_DIVIDE(O) mlr_dsl_unary_bitwise_op_term(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, B, C); +md_muldiv_term(A) ::= md_muldiv_term(B) MD_TOKEN_INT_DIVIDE(O) md_unary_bitwise_op_term(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_OPERATOR, B, C); } -mlr_dsl_muldiv_term(A) ::= mlr_dsl_muldiv_term(B) MLR_DSL_MOD(O) mlr_dsl_unary_bitwise_op_term(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, B, C); +md_muldiv_term(A) ::= md_muldiv_term(B) MD_TOKEN_MOD(O) md_unary_bitwise_op_term(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_OPERATOR, B, C); } // ---------------------------------------------------------------- -mlr_dsl_unary_bitwise_op_term(A) ::= mlr_dsl_pow_term(B). { +md_unary_bitwise_op_term(A) ::= md_pow_term(B). { A = B; } -mlr_dsl_unary_bitwise_op_term(A) ::= MLR_DSL_PLUS(O) mlr_dsl_unary_bitwise_op_term(C). { - A = mlr_dsl_ast_node_alloc_unary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, C); +md_unary_bitwise_op_term(A) ::= MD_TOKEN_PLUS(O) md_unary_bitwise_op_term(C). { + A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_OPERATOR, C); } -mlr_dsl_unary_bitwise_op_term(A) ::= MLR_DSL_MINUS(O) mlr_dsl_unary_bitwise_op_term(C). { - A = mlr_dsl_ast_node_alloc_unary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, C); +md_unary_bitwise_op_term(A) ::= MD_TOKEN_MINUS(O) md_unary_bitwise_op_term(C). { + A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_OPERATOR, C); } -mlr_dsl_unary_bitwise_op_term(A) ::= MLR_DSL_LOGICAL_NOT(O) mlr_dsl_unary_bitwise_op_term(C). { - A = mlr_dsl_ast_node_alloc_unary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, C); +md_unary_bitwise_op_term(A) ::= MD_TOKEN_LOGICAL_NOT(O) md_unary_bitwise_op_term(C). { + A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_OPERATOR, C); } -mlr_dsl_unary_bitwise_op_term(A) ::= MLR_DSL_BITWISE_NOT(O) mlr_dsl_unary_bitwise_op_term(C). { - A = mlr_dsl_ast_node_alloc_unary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, C); +md_unary_bitwise_op_term(A) ::= MD_TOKEN_BITWISE_NOT(O) md_unary_bitwise_op_term(C). { + A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_OPERATOR, C); } // ---------------------------------------------------------------- -mlr_dsl_pow_term(A) ::= mlr_dsl_atom_or_fcn(B). { +md_pow_term(A) ::= md_atom_or_fcn(B). { A = B; } -mlr_dsl_pow_term(A) ::= mlr_dsl_atom_or_fcn(B) MLR_DSL_POW(O) mlr_dsl_pow_term(C). { - A = mlr_dsl_ast_node_alloc_binary(O->text, MLR_DSL_AST_NODE_TYPE_OPERATOR, B, C); +md_pow_term(A) ::= md_atom_or_fcn(B) MD_TOKEN_POW(O) md_pow_term(C). { + A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_OPERATOR, B, C); } @@ -435,15 +435,15 @@ mlr_dsl_pow_term(A) ::= mlr_dsl_atom_or_fcn(B) MLR_DSL_POW(O) mlr_dsl_pow_term(C // lexer to give us field names with leading "$" so we can confidently strip it // off here. -mlr_dsl_atom_or_fcn(A) ::= mlr_dsl_field_name(B). { +md_atom_or_fcn(A) ::= md_field_name(B). { A = B; } -mlr_dsl_field_name(A) ::= MLR_DSL_FIELD_NAME(B). { +md_field_name(A) ::= MD_TOKEN_FIELD_NAME(B). { char* dollar_name = B->text; char* no_dollar_name = &dollar_name[1]; A = mlr_dsl_ast_node_alloc(no_dollar_name, B->type); } -mlr_dsl_field_name(A) ::= MLR_DSL_BRACED_FIELD_NAME(B). { +md_field_name(A) ::= MD_TOKEN_BRACED_FIELD_NAME(B). { // Replace "${field.name}" with just "field.name" char* dollar_name = B->text; char* no_dollar_name = &dollar_name[2]; @@ -453,15 +453,15 @@ mlr_dsl_field_name(A) ::= MLR_DSL_BRACED_FIELD_NAME(B). { A = mlr_dsl_ast_node_alloc(no_dollar_name, B->type); } -mlr_dsl_atom_or_fcn(A) ::= mlr_dsl_oosvar_name(B). { +md_atom_or_fcn(A) ::= md_oosvar_name(B). { A = B; } -mlr_dsl_oosvar_name(A) ::= MLR_DSL_OOSVAR_NAME(B). { +md_oosvar_name(A) ::= MD_TOKEN_OOSVAR_NAME(B). { char* at_name = B->text; char* no_at_name = &at_name[1]; A = mlr_dsl_ast_node_alloc(no_at_name, B->type); } -mlr_dsl_oosvar_name(A) ::= MLR_DSL_BRACED_OOSVAR_NAME(B). { +md_oosvar_name(A) ::= MD_TOKEN_BRACED_OOSVAR_NAME(B). { // Replace "@{field.name}" with just "field.name" char* at_name = B->text; char* no_at_name = &at_name[2]; @@ -471,15 +471,15 @@ mlr_dsl_oosvar_name(A) ::= MLR_DSL_BRACED_OOSVAR_NAME(B). { A = mlr_dsl_ast_node_alloc(no_at_name, B->type); } -mlr_dsl_atom_or_fcn(A) ::= mlr_dsl_moosvar_name(B). { +md_atom_or_fcn(A) ::= md_moosvar_name(B). { A = B; } -mlr_dsl_moosvar_name(A) ::= MLR_DSL_MOOSVAR_NAME(B). { +md_moosvar_name(A) ::= MD_TOKEN_MOOSVAR_NAME(B). { char* at_name = B->text; char* no_at_name = &at_name[2]; A = mlr_dsl_ast_node_alloc(no_at_name, B->type); } -mlr_dsl_moosvar_name(A) ::= MLR_DSL_BRACED_MOOSVAR_NAME(B). { +md_moosvar_name(A) ::= MD_TOKEN_BRACED_MOOSVAR_NAME(B). { // Replace "@%{field.name}" with just "field.name" char* at_name = B->text; char* no_at_name = &at_name[3]; @@ -489,24 +489,24 @@ mlr_dsl_moosvar_name(A) ::= MLR_DSL_BRACED_MOOSVAR_NAME(B). { A = mlr_dsl_ast_node_alloc(no_at_name, B->type); } -mlr_dsl_atom_or_fcn(A) ::= MLR_DSL_NUMBER(B). { +md_atom_or_fcn(A) ::= MD_TOKEN_NUMBER(B). { A = B; } -mlr_dsl_atom_or_fcn(A) ::= MLR_DSL_TRUE(B). { +md_atom_or_fcn(A) ::= MD_TOKEN_TRUE(B). { A = B; } -mlr_dsl_atom_or_fcn(A) ::= MLR_DSL_FALSE(B). { +md_atom_or_fcn(A) ::= MD_TOKEN_FALSE(B). { A = B; } -mlr_dsl_atom_or_fcn(A) ::= MLR_DSL_STRING(B). { +md_atom_or_fcn(A) ::= MD_TOKEN_STRING(B). { char* input = B->text; char* stripped = &input[1]; int len = strlen(input); stripped[len-2] = 0; A = mlr_dsl_ast_node_alloc(stripped, B->type); } -mlr_dsl_atom_or_fcn(A) ::= MLR_DSL_REGEXI(B). { +md_atom_or_fcn(A) ::= MD_TOKEN_REGEXI(B). { char* input = B->text; char* stripped = &input[1]; int len = strlen(input); @@ -514,11 +514,11 @@ mlr_dsl_atom_or_fcn(A) ::= MLR_DSL_REGEXI(B). { A = mlr_dsl_ast_node_alloc(stripped, B->type); } -mlr_dsl_atom_or_fcn(A) ::= MLR_DSL_CONTEXT_VARIABLE(B). { +md_atom_or_fcn(A) ::= MD_TOKEN_CONTEXT_VARIABLE(B). { A = B; } -mlr_dsl_atom_or_fcn(A) ::= MLR_DSL_LPAREN mlr_dsl_logical_or_term(B) MLR_DSL_RPAREN. { +md_atom_or_fcn(A) ::= MD_TOKEN_LPAREN md_logical_or_term(B) MD_TOKEN_RPAREN. { A = B; } @@ -529,17 +529,17 @@ mlr_dsl_atom_or_fcn(A) ::= MLR_DSL_LPAREN mlr_dsl_logical_or_term(B) MLR_DSL_RPA // * On the "c" we append the next argument to get "anon(a,b,c)". // * On the "f" we change the function name to get "f(a,b,c)". -mlr_dsl_atom_or_fcn(A) ::= MLR_DSL_FCN_NAME(O) MLR_DSL_LPAREN mlr_dsl_fcn_args(B) MLR_DSL_RPAREN. { +md_atom_or_fcn(A) ::= MD_TOKEN_FCN_NAME(O) MD_TOKEN_LPAREN md_fcn_args(B) MD_TOKEN_RPAREN. { A = mlr_dsl_ast_node_set_function_name(B, O->text); } // Need to invalidate "f(10,)" -- use some non-empty-args expr. -mlr_dsl_fcn_args(A) ::= . { - A = mlr_dsl_ast_node_alloc_zary("anon", MLR_DSL_AST_NODE_TYPE_FUNCTION_NAME); +md_fcn_args(A) ::= . { + A = mlr_dsl_ast_node_alloc_zary("anon", MD_AST_NODE_TYPE_FUNCTION_NAME); } -mlr_dsl_fcn_args(A) ::= mlr_dsl_logical_or_term(B). { - A = mlr_dsl_ast_node_alloc_unary("anon", MLR_DSL_AST_NODE_TYPE_FUNCTION_NAME, B); +md_fcn_args(A) ::= md_logical_or_term(B). { + A = mlr_dsl_ast_node_alloc_unary("anon", MD_AST_NODE_TYPE_FUNCTION_NAME, B); } -mlr_dsl_fcn_args(A) ::= mlr_dsl_fcn_args(B) MLR_DSL_COMMA mlr_dsl_logical_or_term(C). { +md_fcn_args(A) ::= md_fcn_args(B) MD_TOKEN_COMMA md_logical_or_term(C). { A = mlr_dsl_ast_node_append_arg(B, C); } diff --git a/c/mapping/lrec_evaluators.c b/c/mapping/lrec_evaluators.c index ea7d055fc..77d369d14 100644 --- a/c/mapping/lrec_evaluators.c +++ b/c/mapping/lrec_evaluators.c @@ -2111,17 +2111,17 @@ static lrec_evaluator_t* lrec_evaluator_alloc_from_ast_aux(mlr_dsl_ast_node_t* p int type_inferencing, function_lookup_t* fcn_lookup_table) { if (pnode->pchildren == NULL) { // leaf node - if (pnode->type == MLR_DSL_AST_NODE_TYPE_FIELD_NAME) { + if (pnode->type == MD_AST_NODE_TYPE_FIELD_NAME) { return lrec_evaluator_alloc_from_field_name(pnode->text, type_inferencing); - } else if (pnode->type == MLR_DSL_AST_NODE_TYPE_OOSVAR_NAME) { + } else if (pnode->type == MD_AST_NODE_TYPE_OOSVAR_NAME) { return lrec_evaluator_alloc_from_oosvar_name(pnode->text); - } else if (pnode->type == MLR_DSL_AST_NODE_TYPE_STRNUM_LITERAL) { + } else if (pnode->type == MD_AST_NODE_TYPE_STRNUM_LITERAL) { return lrec_evaluator_alloc_from_strnum_literal(pnode->text, type_inferencing); - } else if (pnode->type == MLR_DSL_AST_NODE_TYPE_BOOLEAN_LITERAL) { + } else if (pnode->type == MD_AST_NODE_TYPE_BOOLEAN_LITERAL) { return lrec_evaluator_alloc_from_boolean_literal(pnode->text); - } else if (pnode->type == MLR_DSL_AST_NODE_TYPE_REGEXI) { + } else if (pnode->type == MD_AST_NODE_TYPE_REGEXI) { return lrec_evaluator_alloc_from_strnum_literal(pnode->text, type_inferencing); - } else if (pnode->type == MLR_DSL_AST_NODE_TYPE_CONTEXT_VARIABLE) { + } else if (pnode->type == MD_AST_NODE_TYPE_CONTEXT_VARIABLE) { return lrec_evaluator_alloc_from_context_variable(pnode->text); } else { fprintf(stderr, "%s: internal coding error detected in file %s at line %d.\n", @@ -2129,8 +2129,8 @@ static lrec_evaluator_t* lrec_evaluator_alloc_from_ast_aux(mlr_dsl_ast_node_t* p exit(1); } } else { // operator/function - if ((pnode->type != MLR_DSL_AST_NODE_TYPE_FUNCTION_NAME) - && (pnode->type != MLR_DSL_AST_NODE_TYPE_OPERATOR)) { + if ((pnode->type != MD_AST_NODE_TYPE_FUNCTION_NAME) + && (pnode->type != MD_AST_NODE_TYPE_OPERATOR)) { fprintf(stderr, "%s: internal coding error detected in file %s at line %d: node type %s\n", MLR_GLOBALS.argv0, __FILE__, __LINE__, mlr_dsl_ast_node_describe_type(pnode->type)); exit(1); @@ -2153,10 +2153,10 @@ static lrec_evaluator_t* lrec_evaluator_alloc_from_ast_aux(mlr_dsl_ast_node_t* p mlr_dsl_ast_node_t* parg2_node = pnode->pchildren->phead->pnext->pvvalue; int type2 = parg2_node->type; - if ((streq(func_name, "=~") || streq(func_name, "!=~")) && type2 == MLR_DSL_AST_NODE_TYPE_STRNUM_LITERAL) { + if ((streq(func_name, "=~") || streq(func_name, "!=~")) && type2 == MD_AST_NODE_TYPE_STRNUM_LITERAL) { lrec_evaluator_t* parg1 = lrec_evaluator_alloc_from_ast_aux(parg1_node, type_inferencing, fcn_lookup_table); pevaluator = lrec_evaluator_alloc_from_binary_regex_arg2_func_name(func_name, parg1, parg2_node->text, FALSE); - } else if ((streq(func_name, "=~") || streq(func_name, "!=~")) && type2 == MLR_DSL_AST_NODE_TYPE_REGEXI) { + } else if ((streq(func_name, "=~") || streq(func_name, "!=~")) && type2 == MD_AST_NODE_TYPE_REGEXI) { lrec_evaluator_t* parg1 = lrec_evaluator_alloc_from_ast_aux(parg1_node, type_inferencing, fcn_lookup_table); pevaluator = lrec_evaluator_alloc_from_binary_regex_arg2_func_name(func_name, parg1, parg2_node->text, TYPE_INFER_STRING_FLOAT_INT); @@ -2175,13 +2175,13 @@ static lrec_evaluator_t* lrec_evaluator_alloc_from_ast_aux(mlr_dsl_ast_node_t* p mlr_dsl_ast_node_t* parg3_node = pnode->pchildren->phead->pnext->pnext->pvvalue; int type2 = parg2_node->type; - if ((streq(func_name, "sub") || streq(func_name, "gsub")) && type2 == MLR_DSL_AST_NODE_TYPE_STRNUM_LITERAL) { + if ((streq(func_name, "sub") || streq(func_name, "gsub")) && type2 == MD_AST_NODE_TYPE_STRNUM_LITERAL) { // sub/gsub-regex special case: lrec_evaluator_t* parg1 = lrec_evaluator_alloc_from_ast_aux(parg1_node, type_inferencing, fcn_lookup_table); lrec_evaluator_t* parg3 = lrec_evaluator_alloc_from_ast_aux(parg3_node, type_inferencing, fcn_lookup_table); pevaluator = lrec_evaluator_alloc_from_ternary_regex_arg2_func_name(func_name, parg1, parg2_node->text, FALSE, parg3); - } else if ((streq(func_name, "sub") || streq(func_name, "gsub")) && type2 == MLR_DSL_AST_NODE_TYPE_REGEXI) { + } else if ((streq(func_name, "sub") || streq(func_name, "gsub")) && type2 == MD_AST_NODE_TYPE_REGEXI) { // sub/gsub-regex special case: lrec_evaluator_t* parg1 = lrec_evaluator_alloc_from_ast_aux(parg1_node, type_inferencing, fcn_lookup_table); lrec_evaluator_t* parg3 = lrec_evaluator_alloc_from_ast_aux(parg3_node, type_inferencing, fcn_lookup_table); @@ -2332,11 +2332,11 @@ static char * test3() { lrec_evaluator_t* px2 = lrec_evaluator_alloc_from_n_nn_func(n_nn_times_func, px, px); lrec_evaluator_t* p4 = lrec_evaluator_alloc_from_n_nn_func(n_nn_times_func, p2, p2); - mlr_dsl_ast_node_t* pxnode = mlr_dsl_ast_node_alloc("x", MLR_DSL_AST_NODE_TYPE_FIELD_NAME); - mlr_dsl_ast_node_t* plognode = mlr_dsl_ast_node_alloc_zary("log", MLR_DSL_AST_NODE_TYPE_FUNCTION_NAME); + mlr_dsl_ast_node_t* pxnode = mlr_dsl_ast_node_alloc("x", MD_AST_NODE_TYPE_FIELD_NAME); + mlr_dsl_ast_node_t* plognode = mlr_dsl_ast_node_alloc_zary("log", MD_AST_NODE_TYPE_FUNCTION_NAME); mlr_dsl_ast_node_t* plogxnode = mlr_dsl_ast_node_append_arg(plognode, pxnode); - mlr_dsl_ast_node_t* p2node = mlr_dsl_ast_node_alloc("2", MLR_DSL_AST_NODE_TYPE_STRNUM_LITERAL); - mlr_dsl_ast_node_t* p2logxnode = mlr_dsl_ast_node_alloc_binary("*", MLR_DSL_AST_NODE_TYPE_OPERATOR, + mlr_dsl_ast_node_t* p2node = mlr_dsl_ast_node_alloc("2", MD_AST_NODE_TYPE_STRNUM_LITERAL); + mlr_dsl_ast_node_t* p2logxnode = mlr_dsl_ast_node_alloc_binary("*", MD_AST_NODE_TYPE_OPERATOR, p2node, plogxnode); lrec_evaluator_t* pastr = lrec_evaluator_alloc_from_ast(p2logxnode, TYPE_INFER_STRING_FLOAT_INT); diff --git a/c/mapping/mapper_put.c b/c/mapping/mapper_put.c index a3cd0661d..d25e6ac85 100644 --- a/c/mapping/mapper_put.c +++ b/c/mapping/mapper_put.c @@ -270,7 +270,7 @@ static void evaluate_statements( int node_type = pstatement->ast_node_type; - if (node_type == MLR_DSL_AST_NODE_TYPE_SREC_ASSIGNMENT || node_type == MLR_DSL_AST_NODE_TYPE_OOSVAR_ASSIGNMENT) { + if (node_type == MD_AST_NODE_TYPE_SREC_ASSIGNMENT || node_type == MD_AST_NODE_TYPE_OOSVAR_ASSIGNMENT) { mlr_dsl_cst_statement_item_t* pitem = pstatement->pitems->phead->pvvalue; char* output_field_name = pitem->output_field_name; int is_oosvar = pitem->is_oosvar; @@ -296,7 +296,7 @@ static void evaluate_statements( lrec_put(pinrec, output_field_name, "bug", NO_FREE); } - } else if (node_type == MLR_DSL_AST_NODE_TYPE_FILTER) { + } else if (node_type == MD_AST_NODE_TYPE_FILTER) { mlr_dsl_cst_statement_item_t* pitem = pstatement->pitems->phead->pvvalue; lrec_evaluator_t* pevaluator = pitem->pevaluator; @@ -310,7 +310,7 @@ static void evaluate_statements( } } - } else if (node_type == MLR_DSL_AST_NODE_TYPE_GATE) { + } else if (node_type == MD_AST_NODE_TYPE_GATE) { mlr_dsl_cst_statement_item_t* pitem = pstatement->pitems->phead->pvvalue; lrec_evaluator_t* pevaluator = pitem->pevaluator; @@ -323,7 +323,7 @@ static void evaluate_statements( break; } - } else if (node_type == MLR_DSL_AST_NODE_TYPE_EMIT) { + } else if (node_type == MD_AST_NODE_TYPE_EMIT) { lrec_t* prec_to_emit = lrec_unbacked_alloc(); for (sllve_t* pf = pstatement->pitems->phead; pf != NULL; pf = pf->pnext) { mlr_dsl_cst_statement_item_t* pitem = pf->pvvalue; diff --git a/c/mapping/mlr_dsl_cst.c b/c/mapping/mlr_dsl_cst.c index 97080e545..14573d153 100644 --- a/c/mapping/mlr_dsl_cst.c +++ b/c/mapping/mlr_dsl_cst.c @@ -87,7 +87,7 @@ static mlr_dsl_cst_statement_t* cst_statement_alloc(mlr_dsl_ast_node_t* past, in pstatement->ast_node_type = past->type; pstatement->pitems = sllv_alloc(); - if (past->type == MLR_DSL_AST_NODE_TYPE_SREC_ASSIGNMENT) { + if (past->type == MD_AST_NODE_TYPE_SREC_ASSIGNMENT) { if ((past->pchildren == NULL) || (past->pchildren->length != 2)) { fprintf(stderr, "%s: internal coding error detected in file %s at line %d.\n", MLR_GLOBALS.argv0, __FILE__, __LINE__); @@ -97,7 +97,7 @@ static mlr_dsl_cst_statement_t* cst_statement_alloc(mlr_dsl_ast_node_t* past, in mlr_dsl_ast_node_t* pleft = past->pchildren->phead->pvvalue; mlr_dsl_ast_node_t* pright = past->pchildren->phead->pnext->pvvalue; - if (pleft->type != MLR_DSL_AST_NODE_TYPE_FIELD_NAME) { + if (pleft->type != MD_AST_NODE_TYPE_FIELD_NAME) { fprintf(stderr, "%s: internal coding error detected in file %s at line %d.\n", MLR_GLOBALS.argv0, __FILE__, __LINE__); exit(1); @@ -112,7 +112,7 @@ static mlr_dsl_cst_statement_t* cst_statement_alloc(mlr_dsl_ast_node_t* past, in FALSE, lrec_evaluator_alloc_from_ast(pright, type_inferencing))); - } else if (past->type == MLR_DSL_AST_NODE_TYPE_OOSVAR_ASSIGNMENT) { + } else if (past->type == MD_AST_NODE_TYPE_OOSVAR_ASSIGNMENT) { if ((past->pchildren == NULL) || (past->pchildren->length != 2)) { fprintf(stderr, "%s: internal coding error detected in file %s at line %d.\n", MLR_GLOBALS.argv0, __FILE__, __LINE__); @@ -122,7 +122,7 @@ static mlr_dsl_cst_statement_t* cst_statement_alloc(mlr_dsl_ast_node_t* past, in mlr_dsl_ast_node_t* pleft = past->pchildren->phead->pvvalue; mlr_dsl_ast_node_t* pright = past->pchildren->phead->pnext->pvvalue; - if (pleft->type != MLR_DSL_AST_NODE_TYPE_OOSVAR_NAME) { + if (pleft->type != MD_AST_NODE_TYPE_OOSVAR_NAME) { fprintf(stderr, "%s: internal coding error detected in file %s at line %d.\n", MLR_GLOBALS.argv0, __FILE__, __LINE__); exit(1); @@ -137,21 +137,21 @@ static mlr_dsl_cst_statement_t* cst_statement_alloc(mlr_dsl_ast_node_t* past, in TRUE, lrec_evaluator_alloc_from_ast(pright, type_inferencing))); - } else if (past->type == MLR_DSL_AST_NODE_TYPE_FILTER) { + } else if (past->type == MD_AST_NODE_TYPE_FILTER) { mlr_dsl_ast_node_t* pnode = past->pchildren->phead->pvvalue; sllv_add(pstatement->pitems, mlr_dsl_cst_statement_item_alloc( NULL, TRUE, lrec_evaluator_alloc_from_ast(pnode, type_inferencing))); - } else if (past->type == MLR_DSL_AST_NODE_TYPE_GATE) { + } else if (past->type == MD_AST_NODE_TYPE_GATE) { mlr_dsl_ast_node_t* pnode = past->pchildren->phead->pvvalue; sllv_add(pstatement->pitems, mlr_dsl_cst_statement_item_alloc( NULL, TRUE, lrec_evaluator_alloc_from_ast(pnode, type_inferencing))); - } else if (past->type == MLR_DSL_AST_NODE_TYPE_EMIT) { + } else if (past->type == MD_AST_NODE_TYPE_EMIT) { // Loop over oosvar names to emit in e.g. 'emit @a, @b, @c'. for (sllve_t* pe = past->pchildren->phead; pe != NULL; pe = pe->pnext) { mlr_dsl_ast_node_t* pnode = pe->pvvalue;