mruby-compiler: remove unused NODE_MATCH node type and related code

Remove NODE_MATCH enum value, structure definition, accessor macro,
parser dump case, codegen case, and gen_match_var function. This
node type was never actually used in the parser.

Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
Yukihiro "Matz" Matsumoto
2025-09-26 05:29:47 +09:00
parent a8222fbab9
commit a29afe7fe7
4 changed files with 1025 additions and 1068 deletions
-14
View File
@@ -5082,16 +5082,6 @@ gen_dvar_var(codegen_scope *s, node *varnode, int val)
}
}
static void
gen_match_var(codegen_scope *s, node *varnode, int val)
{
struct mrb_ast_match_node *n = (struct mrb_ast_match_node*)varnode;
// MATCH nodes are not currently used in mruby, but provide basic implementation
if (val) {
codegen(s, n->pattern, val);
}
}
// Group 11: Operators and Expressions
static void
gen_not_var(codegen_scope *s, node *varnode, int val)
@@ -5710,10 +5700,6 @@ codegen(codegen_scope *s, node *tree, int val)
gen_dvar_var(s, tree, val);
break;
case NODE_MATCH:
gen_match_var(s, tree, val);
break;
case NODE_NOT:
gen_not_var(s, tree, val);
break;
-7
View File
@@ -48,7 +48,6 @@ enum node_type {
NODE_NVAR,
NODE_NTH_REF,
NODE_BACK_REF,
NODE_MATCH,
NODE_INT,
NODE_BIGINT,
NODE_FLOAT,
@@ -675,16 +674,10 @@ struct mrb_ast_dvar_node {
mrb_sym name;
};
struct mrb_ast_match_node {
struct mrb_ast_var_header header;
struct mrb_ast_node *pattern;
};
#define nth_ref_node(n) ((struct mrb_ast_nth_ref_node*)(n))
#define back_ref_node(n) ((struct mrb_ast_back_ref_node*)(n))
#define nvar_node(n) ((struct mrb_ast_nvar_node*)(n))
#define dvar_node(n) ((struct mrb_ast_dvar_node*)(n))
#define match_node(n) ((struct mrb_ast_match_node*)(n))
#define NTH_REF_NODE_NTH(n) (nth_ref_node(n)->nth)
#define BACK_REF_NODE_TYPE(n) (back_ref_node(n)->type)
-11
View File
@@ -1894,7 +1894,6 @@ prohibit_literals(parser_state *p, node *n)
case NODE_STR:
case NODE_XSTR:
case NODE_REGX:
case NODE_MATCH:
case NODE_FLOAT:
case NODE_ARRAY:
case NODE_HEREDOC:
@@ -8189,16 +8188,6 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
printf("NODE_RETRY\n");
break;
case NODE_MATCH:
printf("NODE_MATCH:\n");
dump_prefix(offset + 1, lineno);
printf("lhs:\n");
mrb_parser_dump(mrb, tree->car, offset + 2);
dump_prefix(offset + 1, lineno);
printf("rhs:\n");
mrb_parser_dump(mrb, tree->cdr, offset + 2);
break;
case NODE_BACK_REF:
printf("NODE_BACK_REF: $%c\n", node_to_int(tree));
break;
File diff suppressed because it is too large Load Diff