mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
mruby-compiler: rename mrb_parser_dump to dump_node for consistency
Renamed the internal implementation from mrb_parser_dump() to dump_node() to follow the naming convention of other dump functions (dump_prefix, dump_str, dump_recur). Added a public wrapper mrb_parser_dump() that calls dump_node() to maintain API compatibility. Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -7085,7 +7085,7 @@ parser_update_cxt(parser_state *p, mrb_ccontext *cxt)
|
||||
}
|
||||
}
|
||||
|
||||
void mrb_parser_dump(mrb_state *mrb, node *tree, int offset);
|
||||
static void dump_node(mrb_state *mrb, node *tree, int offset);
|
||||
|
||||
MRB_API void
|
||||
mrb_parser_parse(parser_state *p, mrb_ccontext *c)
|
||||
@@ -7111,7 +7111,7 @@ mrb_parser_parse(parser_state *p, mrb_ccontext *c)
|
||||
}
|
||||
parser_update_cxt(p, c);
|
||||
if (c && c->dump_result) {
|
||||
mrb_parser_dump(p->mrb, p->tree, 0);
|
||||
dump_node(p->mrb, p->tree, 0);
|
||||
}
|
||||
}
|
||||
MRB_CATCH(p->mrb->jmp) {
|
||||
@@ -7482,7 +7482,7 @@ static void
|
||||
dump_recur(mrb_state *mrb, node *tree, int offset)
|
||||
{
|
||||
while (tree) {
|
||||
mrb_parser_dump(mrb, tree->car, offset);
|
||||
dump_node(mrb, tree->car, offset);
|
||||
tree = tree->cdr;
|
||||
}
|
||||
}
|
||||
@@ -7532,7 +7532,7 @@ dump_cpath(mrb_state *mrb, node *tree, int offset, uint16_t lineno)
|
||||
}
|
||||
else {
|
||||
printf("\n");
|
||||
mrb_parser_dump(mrb, tree->car, offset+1);
|
||||
dump_node(mrb, tree->car, offset+1);
|
||||
}
|
||||
dump_prefix(offset, lineno);
|
||||
printf("name: %s\n", mrb_sym_dump(mrb, node_to_sym(tree->cdr)));
|
||||
@@ -7561,11 +7561,11 @@ dump_str(mrb_state *mrb, node *n, int offset, uint16_t lineno)
|
||||
dump_prefix(offset, lineno);
|
||||
int len = node_to_int(n->car->car);
|
||||
if (len >= 0) {
|
||||
printf("str: %s\n", str_dump(mrb, (char*)n->car->cdr, node_to_int(n->car->car)));
|
||||
printf("str: %s\n", str_dump(mrb, (char*)n->car->cdr, len));
|
||||
}
|
||||
else {
|
||||
printf("interpolation:\n");
|
||||
mrb_parser_dump(mrb, n->car->cdr, offset+1);
|
||||
dump_node(mrb, n->car->cdr, offset+1);
|
||||
}
|
||||
n = n->cdr;
|
||||
}
|
||||
@@ -7587,7 +7587,7 @@ dump_args(mrb_state *mrb, struct mrb_ast_args *args, int offset, uint16_t lineno
|
||||
while (n) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("%s=\n", mrb_sym_name(mrb, node_to_sym(n->car->car)));
|
||||
mrb_parser_dump(mrb, n->car->cdr, offset+2);
|
||||
dump_node(mrb, n->car->cdr, offset+2);
|
||||
n = n->cdr;
|
||||
}
|
||||
}
|
||||
@@ -7614,7 +7614,7 @@ dump_args(mrb_state *mrb, struct mrb_ast_args *args, int offset, uint16_t lineno
|
||||
while (n) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("%s:\n", mrb_sym_name(mrb, node_to_sym(n->car->car)));
|
||||
mrb_parser_dump(mrb, n->car->cdr, offset+2);
|
||||
dump_node(mrb, n->car->cdr, offset+2);
|
||||
n = n->cdr;
|
||||
}
|
||||
}
|
||||
@@ -7662,25 +7662,25 @@ dump_callargs(mrb_state *mrb, node *n, int offset, uint16_t lineno)
|
||||
printf("**:\n");
|
||||
}
|
||||
else {
|
||||
mrb_parser_dump(mrb, kw->car->car, offset+3);
|
||||
dump_node(mrb, kw->car->car, offset+3);
|
||||
}
|
||||
dump_prefix(offset+2, lineno);
|
||||
printf("value:\n");
|
||||
mrb_parser_dump(mrb, kw->car->cdr, offset+3);
|
||||
dump_node(mrb, kw->car->cdr, offset+3);
|
||||
kw = kw->cdr;
|
||||
}
|
||||
}
|
||||
if (args->block_arg) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("block:\n");
|
||||
mrb_parser_dump(mrb, args->block_arg, offset+2);
|
||||
dump_node(mrb, args->block_arg, offset+2);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void
|
||||
mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
dump_node(mrb_state *mrb, node *tree, int offset)
|
||||
{
|
||||
#ifndef MRB_NO_STDIO
|
||||
enum node_type nodetype;
|
||||
@@ -7710,7 +7710,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (scope->body) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, scope->body, offset+2);
|
||||
dump_node(mrb, scope->body, offset+2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -7771,7 +7771,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (CALL_NODE_RECEIVER(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("receiver:\n");
|
||||
mrb_parser_dump(mrb, CALL_NODE_RECEIVER(tree), offset+2);
|
||||
dump_node(mrb, CALL_NODE_RECEIVER(tree), offset+2);
|
||||
}
|
||||
if (CALL_NODE_ARGS(tree)) {
|
||||
dump_callargs(mrb, CALL_NODE_ARGS(tree), offset, lineno);
|
||||
@@ -7806,17 +7806,17 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (IF_NODE_CONDITION(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("cond:\n");
|
||||
mrb_parser_dump(mrb, IF_NODE_CONDITION(tree), offset+2);
|
||||
dump_node(mrb, IF_NODE_CONDITION(tree), offset+2);
|
||||
}
|
||||
if (IF_NODE_THEN(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("then:\n");
|
||||
mrb_parser_dump(mrb, IF_NODE_THEN(tree), offset+2);
|
||||
dump_node(mrb, IF_NODE_THEN(tree), offset+2);
|
||||
}
|
||||
if (IF_NODE_ELSE(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("else:\n");
|
||||
mrb_parser_dump(mrb, IF_NODE_ELSE(tree), offset+2);
|
||||
dump_node(mrb, IF_NODE_ELSE(tree), offset+2);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -7831,7 +7831,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (DEF_NODE_BODY(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, DEF_NODE_BODY(tree), offset+2);
|
||||
dump_node(mrb, DEF_NODE_BODY(tree), offset+2);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -7840,12 +7840,12 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (ASGN_NODE_LHS(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("lhs:\n");
|
||||
mrb_parser_dump(mrb, ASGN_NODE_LHS(tree), offset+2);
|
||||
dump_node(mrb, ASGN_NODE_LHS(tree), offset+2);
|
||||
}
|
||||
if (ASGN_NODE_RHS(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("rhs:\n");
|
||||
mrb_parser_dump(mrb, ASGN_NODE_RHS(tree), offset+2);
|
||||
dump_node(mrb, ASGN_NODE_RHS(tree), offset+2);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -7866,14 +7866,14 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (MASGN_NODE_RHS(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("rhs:\n");
|
||||
mrb_parser_dump(mrb, MASGN_NODE_RHS(tree), offset+2);
|
||||
dump_node(mrb, MASGN_NODE_RHS(tree), offset+2);
|
||||
}
|
||||
break;
|
||||
|
||||
case NODE_RETURN:
|
||||
printf("NODE_RETURN:\n");
|
||||
if (RETURN_NODE_ARGS(tree)) {
|
||||
mrb_parser_dump(mrb, RETURN_NODE_ARGS(tree), offset);
|
||||
dump_node(mrb, RETURN_NODE_ARGS(tree), offset);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -7882,7 +7882,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (BREAK_NODE_VALUE(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("value:\n");
|
||||
mrb_parser_dump(mrb, BREAK_NODE_VALUE(tree), offset+2);
|
||||
dump_node(mrb, BREAK_NODE_VALUE(tree), offset+2);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -7891,7 +7891,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (NEXT_NODE_VALUE(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("value:\n");
|
||||
mrb_parser_dump(mrb, NEXT_NODE_VALUE(tree), offset+2);
|
||||
dump_node(mrb, NEXT_NODE_VALUE(tree), offset+2);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -7900,7 +7900,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (NEGATE_NODE_OPERAND(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("operand:\n");
|
||||
mrb_parser_dump(mrb, NEGATE_NODE_OPERAND(tree), offset+2);
|
||||
dump_node(mrb, NEGATE_NODE_OPERAND(tree), offset+2);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -7914,7 +7914,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
case NODE_BEGIN:
|
||||
printf("NODE_BEGIN:\n");
|
||||
if (BEGIN_NODE_BODY(tree)) {
|
||||
mrb_parser_dump(mrb, BEGIN_NODE_BODY(tree), offset+1);
|
||||
dump_node(mrb, BEGIN_NODE_BODY(tree), offset+1);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -7923,7 +7923,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (RESCUE_NODE_BODY(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, RESCUE_NODE_BODY(tree), offset+2);
|
||||
dump_node(mrb, RESCUE_NODE_BODY(tree), offset+2);
|
||||
}
|
||||
if (RESCUE_NODE_RESCUE_CLAUSES(tree)) {
|
||||
node *n2 = RESCUE_NODE_RESCUE_CLAUSES(tree);
|
||||
@@ -7939,12 +7939,12 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (n3->cdr->car) {
|
||||
dump_prefix(offset+2, lineno);
|
||||
printf("exc_var:\n");
|
||||
mrb_parser_dump(mrb, n3->cdr->car, offset+3);
|
||||
dump_node(mrb, n3->cdr->car, offset+3);
|
||||
}
|
||||
if (n3->cdr->cdr->car) {
|
||||
dump_prefix(offset+2, lineno);
|
||||
printf("rescue body:\n");
|
||||
mrb_parser_dump(mrb, n3->cdr->cdr->car, offset+3);
|
||||
dump_node(mrb, n3->cdr->cdr->car, offset+3);
|
||||
}
|
||||
n2 = n2->cdr;
|
||||
}
|
||||
@@ -7952,7 +7952,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (RESCUE_NODE_ELSE_CLAUSE(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("else:\n");
|
||||
mrb_parser_dump(mrb, RESCUE_NODE_ELSE_CLAUSE(tree), offset+2);
|
||||
dump_node(mrb, RESCUE_NODE_ELSE_CLAUSE(tree), offset+2);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -7960,10 +7960,10 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
printf("NODE_ENSURE:\n");
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, tree->car, offset+2);
|
||||
dump_node(mrb, tree->car, offset+2);
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("ensure:\n");
|
||||
mrb_parser_dump(mrb, tree->cdr->cdr, offset+2);
|
||||
dump_node(mrb, tree->cdr->cdr, offset+2);
|
||||
break;
|
||||
|
||||
case NODE_LAMBDA:
|
||||
@@ -7981,25 +7981,25 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
}
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, BLOCK_NODE_BODY(tree), offset+2);
|
||||
dump_node(mrb, BLOCK_NODE_BODY(tree), offset+2);
|
||||
break;
|
||||
|
||||
case NODE_AND:
|
||||
printf("NODE_AND:\n");
|
||||
mrb_parser_dump(mrb, AND_NODE_LEFT(tree), offset+1);
|
||||
mrb_parser_dump(mrb, AND_NODE_RIGHT(tree), offset+1);
|
||||
dump_node(mrb, AND_NODE_LEFT(tree), offset+1);
|
||||
dump_node(mrb, AND_NODE_RIGHT(tree), offset+1);
|
||||
break;
|
||||
|
||||
case NODE_OR:
|
||||
printf("NODE_OR:\n");
|
||||
mrb_parser_dump(mrb, OR_NODE_LEFT(tree), offset+1);
|
||||
mrb_parser_dump(mrb, OR_NODE_RIGHT(tree), offset+1);
|
||||
dump_node(mrb, OR_NODE_LEFT(tree), offset+1);
|
||||
dump_node(mrb, OR_NODE_RIGHT(tree), offset+1);
|
||||
break;
|
||||
|
||||
case NODE_CASE:
|
||||
printf("NODE_CASE:\n");
|
||||
if (tree->car) {
|
||||
mrb_parser_dump(mrb, tree->car, offset+1);
|
||||
dump_node(mrb, tree->car, offset+1);
|
||||
}
|
||||
tree = tree->cdr;
|
||||
while (tree) {
|
||||
@@ -8008,7 +8008,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
dump_recur(mrb, tree->car->car, offset+2);
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, tree->car->cdr, offset+2);
|
||||
dump_node(mrb, tree->car->cdr, offset+2);
|
||||
tree = tree->cdr;
|
||||
}
|
||||
break;
|
||||
@@ -8017,40 +8017,40 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
printf("NODE_WHILE:\n");
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("cond:\n");
|
||||
mrb_parser_dump(mrb, WHILE_NODE_CONDITION(tree), offset+2);
|
||||
dump_node(mrb, WHILE_NODE_CONDITION(tree), offset+2);
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, WHILE_NODE_BODY(tree), offset+2);
|
||||
dump_node(mrb, WHILE_NODE_BODY(tree), offset+2);
|
||||
break;
|
||||
|
||||
case NODE_UNTIL:
|
||||
printf("NODE_UNTIL:\n");
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("cond:\n");
|
||||
mrb_parser_dump(mrb, UNTIL_NODE_CONDITION(tree), offset+2);
|
||||
dump_node(mrb, UNTIL_NODE_CONDITION(tree), offset+2);
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, UNTIL_NODE_BODY(tree), offset+2);
|
||||
dump_node(mrb, UNTIL_NODE_BODY(tree), offset+2);
|
||||
break;
|
||||
|
||||
case NODE_WHILE_MOD:
|
||||
printf("NODE_WHILE_MOD:\n");
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("cond:\n");
|
||||
mrb_parser_dump(mrb, WHILE_NODE_CONDITION(tree), offset+2);
|
||||
dump_node(mrb, WHILE_NODE_CONDITION(tree), offset+2);
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, WHILE_NODE_BODY(tree), offset+2);
|
||||
dump_node(mrb, WHILE_NODE_BODY(tree), offset+2);
|
||||
break;
|
||||
|
||||
case NODE_UNTIL_MOD:
|
||||
printf("NODE_UNTIL_MOD:\n");
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("cond:\n");
|
||||
mrb_parser_dump(mrb, UNTIL_NODE_CONDITION(tree), offset+2);
|
||||
dump_node(mrb, UNTIL_NODE_CONDITION(tree), offset+2);
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, UNTIL_NODE_BODY(tree), offset+2);
|
||||
dump_node(mrb, UNTIL_NODE_BODY(tree), offset+2);
|
||||
break;
|
||||
|
||||
case NODE_FOR:
|
||||
@@ -8059,17 +8059,17 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (FOR_NODE_VAR(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("var:\n");
|
||||
mrb_parser_dump(mrb, FOR_NODE_VAR(tree), offset+2);
|
||||
dump_node(mrb, FOR_NODE_VAR(tree), offset+2);
|
||||
}
|
||||
if (FOR_NODE_ITERABLE(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("iterable:\n");
|
||||
mrb_parser_dump(mrb, FOR_NODE_ITERABLE(tree), offset+2);
|
||||
dump_node(mrb, FOR_NODE_ITERABLE(tree), offset+2);
|
||||
}
|
||||
if (FOR_NODE_BODY(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, FOR_NODE_BODY(tree), offset+2);
|
||||
dump_node(mrb, FOR_NODE_BODY(tree), offset+2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -8080,12 +8080,12 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (DOT2_NODE_LEFT(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("left:\n");
|
||||
mrb_parser_dump(mrb, DOT2_NODE_LEFT(tree), offset+2);
|
||||
dump_node(mrb, DOT2_NODE_LEFT(tree), offset+2);
|
||||
}
|
||||
if (DOT2_NODE_RIGHT(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("right:\n");
|
||||
mrb_parser_dump(mrb, DOT2_NODE_RIGHT(tree), offset+2);
|
||||
dump_node(mrb, DOT2_NODE_RIGHT(tree), offset+2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -8096,12 +8096,12 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (DOT3_NODE_LEFT(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("left:\n");
|
||||
mrb_parser_dump(mrb, DOT3_NODE_LEFT(tree), offset+2);
|
||||
dump_node(mrb, DOT3_NODE_LEFT(tree), offset+2);
|
||||
}
|
||||
if (DOT3_NODE_RIGHT(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("right:\n");
|
||||
mrb_parser_dump(mrb, DOT3_NODE_RIGHT(tree), offset+2);
|
||||
dump_node(mrb, DOT3_NODE_RIGHT(tree), offset+2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -8111,7 +8111,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (COLON2_NODE_BASE(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("base:\n");
|
||||
mrb_parser_dump(mrb, COLON2_NODE_BASE(tree), offset+2);
|
||||
dump_node(mrb, COLON2_NODE_BASE(tree), offset+2);
|
||||
}
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("name: %s\n", mrb_sym_name(mrb, COLON2_NODE_NAME(tree)));
|
||||
@@ -8128,10 +8128,10 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
while (pairs) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("key:\n");
|
||||
mrb_parser_dump(mrb, pairs->car->car, offset+2);
|
||||
dump_node(mrb, pairs->car->car, offset+2);
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("value:\n");
|
||||
mrb_parser_dump(mrb, pairs->car->cdr, offset+2);
|
||||
dump_node(mrb, pairs->car->cdr, offset+2);
|
||||
pairs = pairs->cdr;
|
||||
}
|
||||
}
|
||||
@@ -8139,17 +8139,17 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
|
||||
case NODE_SPLAT:
|
||||
printf("NODE_SPLAT:\n");
|
||||
mrb_parser_dump(mrb, SPLAT_NODE_VALUE(tree), offset+1);
|
||||
dump_node(mrb, SPLAT_NODE_VALUE(tree), offset+1);
|
||||
break;
|
||||
|
||||
case NODE_OP_ASGN:
|
||||
printf("NODE_OP_ASGN:\n");
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("lhs:\n");
|
||||
mrb_parser_dump(mrb, OP_ASGN_NODE_LHS(tree), offset+2);
|
||||
dump_node(mrb, OP_ASGN_NODE_LHS(tree), offset+2);
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("op='%s' (%d)\n", mrb_sym_name(mrb, OP_ASGN_NODE_OP(tree)), (int)OP_ASGN_NODE_OP(tree));
|
||||
mrb_parser_dump(mrb, OP_ASGN_NODE_RHS(tree), offset+1);
|
||||
dump_node(mrb, OP_ASGN_NODE_RHS(tree), offset+1);
|
||||
break;
|
||||
|
||||
case NODE_SUPER:
|
||||
@@ -8189,7 +8189,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
|
||||
case NODE_BLOCK_ARG:
|
||||
printf("NODE_BLOCK_ARG:\n");
|
||||
mrb_parser_dump(mrb, block_arg_node(tree)->value, offset+1);
|
||||
dump_node(mrb, block_arg_node(tree)->value, offset+1);
|
||||
break;
|
||||
|
||||
case NODE_REGX:
|
||||
@@ -8277,12 +8277,12 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (CLASS_NODE_SUPERCLASS(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("super:\n");
|
||||
mrb_parser_dump(mrb, CLASS_NODE_SUPERCLASS(tree), offset+2);
|
||||
dump_node(mrb, CLASS_NODE_SUPERCLASS(tree), offset+2);
|
||||
}
|
||||
if (CLASS_NODE_BODY(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, CLASS_NODE_BODY(tree)->cdr, offset+2);
|
||||
dump_node(mrb, CLASS_NODE_BODY(tree)->cdr, offset+2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -8296,7 +8296,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (MODULE_NODE_BODY(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, MODULE_NODE_BODY(tree)->cdr, offset+2);
|
||||
dump_node(mrb, MODULE_NODE_BODY(tree)->cdr, offset+2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -8307,12 +8307,12 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (SCLASS_NODE_OBJ(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("obj:\n");
|
||||
mrb_parser_dump(mrb, SCLASS_NODE_OBJ(tree), offset+2);
|
||||
dump_node(mrb, SCLASS_NODE_OBJ(tree), offset+2);
|
||||
}
|
||||
if (SCLASS_NODE_BODY(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, SCLASS_NODE_BODY(tree)->cdr, offset+2);
|
||||
dump_node(mrb, SCLASS_NODE_BODY(tree)->cdr, offset+2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -8322,7 +8322,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (SDEF_NODE_OBJ(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("recv:\n");
|
||||
mrb_parser_dump(mrb, SDEF_NODE_OBJ(tree), offset+2);
|
||||
dump_node(mrb, SDEF_NODE_OBJ(tree), offset+2);
|
||||
}
|
||||
if (SDEF_NODE_ARGS(tree)) {
|
||||
dump_args(mrb, SDEF_NODE_ARGS(tree), offset+1, lineno);
|
||||
@@ -8333,13 +8333,13 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (SDEF_NODE_BODY(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, SDEF_NODE_BODY(tree), offset+2);
|
||||
dump_node(mrb, SDEF_NODE_BODY(tree), offset+2);
|
||||
}
|
||||
break;
|
||||
|
||||
case NODE_POSTEXE:
|
||||
printf("NODE_POSTEXE:\n");
|
||||
mrb_parser_dump(mrb, tree, offset+1);
|
||||
dump_node(mrb, tree, offset+1);
|
||||
break;
|
||||
|
||||
case NODE_HEREDOC:
|
||||
@@ -8356,6 +8356,12 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
{
|
||||
dump_node(mrb, tree, offset);
|
||||
}
|
||||
|
||||
typedef mrb_bool mrb_parser_foreach_top_variable_func(mrb_state *mrb, mrb_sym sym, void *user);
|
||||
void mrb_parser_foreach_top_variable(mrb_state *mrb, struct mrb_parser_state *p, mrb_parser_foreach_top_variable_func *func, void *user);
|
||||
|
||||
|
||||
@@ -13914,7 +13914,7 @@ parser_update_cxt(parser_state *p, mrb_ccontext *cxt)
|
||||
}
|
||||
}
|
||||
|
||||
void mrb_parser_dump(mrb_state *mrb, node *tree, int offset);
|
||||
static void dump_node(mrb_state *mrb, node *tree, int offset);
|
||||
|
||||
MRB_API void
|
||||
mrb_parser_parse(parser_state *p, mrb_ccontext *c)
|
||||
@@ -13940,7 +13940,7 @@ mrb_parser_parse(parser_state *p, mrb_ccontext *c)
|
||||
}
|
||||
parser_update_cxt(p, c);
|
||||
if (c && c->dump_result) {
|
||||
mrb_parser_dump(p->mrb, p->tree, 0);
|
||||
dump_node(p->mrb, p->tree, 0);
|
||||
}
|
||||
}
|
||||
MRB_CATCH(p->mrb->jmp) {
|
||||
@@ -14311,7 +14311,7 @@ static void
|
||||
dump_recur(mrb_state *mrb, node *tree, int offset)
|
||||
{
|
||||
while (tree) {
|
||||
mrb_parser_dump(mrb, tree->car, offset);
|
||||
dump_node(mrb, tree->car, offset);
|
||||
tree = tree->cdr;
|
||||
}
|
||||
}
|
||||
@@ -14361,7 +14361,7 @@ dump_cpath(mrb_state *mrb, node *tree, int offset, uint16_t lineno)
|
||||
}
|
||||
else {
|
||||
printf("\n");
|
||||
mrb_parser_dump(mrb, tree->car, offset+1);
|
||||
dump_node(mrb, tree->car, offset+1);
|
||||
}
|
||||
dump_prefix(offset, lineno);
|
||||
printf("name: %s\n", mrb_sym_dump(mrb, node_to_sym(tree->cdr)));
|
||||
@@ -14390,11 +14390,11 @@ dump_str(mrb_state *mrb, node *n, int offset, uint16_t lineno)
|
||||
dump_prefix(offset, lineno);
|
||||
int len = node_to_int(n->car->car);
|
||||
if (len >= 0) {
|
||||
printf("str: %s\n", str_dump(mrb, (char*)n->car->cdr, node_to_int(n->car->car)));
|
||||
printf("str: %s\n", str_dump(mrb, (char*)n->car->cdr, len));
|
||||
}
|
||||
else {
|
||||
printf("interpolation:\n");
|
||||
mrb_parser_dump(mrb, n->car->cdr, offset+1);
|
||||
dump_node(mrb, n->car->cdr, offset+1);
|
||||
}
|
||||
n = n->cdr;
|
||||
}
|
||||
@@ -14416,7 +14416,7 @@ dump_args(mrb_state *mrb, struct mrb_ast_args *args, int offset, uint16_t lineno
|
||||
while (n) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("%s=\n", mrb_sym_name(mrb, node_to_sym(n->car->car)));
|
||||
mrb_parser_dump(mrb, n->car->cdr, offset+2);
|
||||
dump_node(mrb, n->car->cdr, offset+2);
|
||||
n = n->cdr;
|
||||
}
|
||||
}
|
||||
@@ -14443,7 +14443,7 @@ dump_args(mrb_state *mrb, struct mrb_ast_args *args, int offset, uint16_t lineno
|
||||
while (n) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("%s:\n", mrb_sym_name(mrb, node_to_sym(n->car->car)));
|
||||
mrb_parser_dump(mrb, n->car->cdr, offset+2);
|
||||
dump_node(mrb, n->car->cdr, offset+2);
|
||||
n = n->cdr;
|
||||
}
|
||||
}
|
||||
@@ -14491,25 +14491,25 @@ dump_callargs(mrb_state *mrb, node *n, int offset, uint16_t lineno)
|
||||
printf("**:\n");
|
||||
}
|
||||
else {
|
||||
mrb_parser_dump(mrb, kw->car->car, offset+3);
|
||||
dump_node(mrb, kw->car->car, offset+3);
|
||||
}
|
||||
dump_prefix(offset+2, lineno);
|
||||
printf("value:\n");
|
||||
mrb_parser_dump(mrb, kw->car->cdr, offset+3);
|
||||
dump_node(mrb, kw->car->cdr, offset+3);
|
||||
kw = kw->cdr;
|
||||
}
|
||||
}
|
||||
if (args->block_arg) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("block:\n");
|
||||
mrb_parser_dump(mrb, args->block_arg, offset+2);
|
||||
dump_node(mrb, args->block_arg, offset+2);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void
|
||||
mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
dump_node(mrb_state *mrb, node *tree, int offset)
|
||||
{
|
||||
#ifndef MRB_NO_STDIO
|
||||
enum node_type nodetype;
|
||||
@@ -14539,7 +14539,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (scope->body) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, scope->body, offset+2);
|
||||
dump_node(mrb, scope->body, offset+2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -14600,7 +14600,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (CALL_NODE_RECEIVER(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("receiver:\n");
|
||||
mrb_parser_dump(mrb, CALL_NODE_RECEIVER(tree), offset+2);
|
||||
dump_node(mrb, CALL_NODE_RECEIVER(tree), offset+2);
|
||||
}
|
||||
if (CALL_NODE_ARGS(tree)) {
|
||||
dump_callargs(mrb, CALL_NODE_ARGS(tree), offset, lineno);
|
||||
@@ -14635,17 +14635,17 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (IF_NODE_CONDITION(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("cond:\n");
|
||||
mrb_parser_dump(mrb, IF_NODE_CONDITION(tree), offset+2);
|
||||
dump_node(mrb, IF_NODE_CONDITION(tree), offset+2);
|
||||
}
|
||||
if (IF_NODE_THEN(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("then:\n");
|
||||
mrb_parser_dump(mrb, IF_NODE_THEN(tree), offset+2);
|
||||
dump_node(mrb, IF_NODE_THEN(tree), offset+2);
|
||||
}
|
||||
if (IF_NODE_ELSE(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("else:\n");
|
||||
mrb_parser_dump(mrb, IF_NODE_ELSE(tree), offset+2);
|
||||
dump_node(mrb, IF_NODE_ELSE(tree), offset+2);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -14660,7 +14660,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (DEF_NODE_BODY(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, DEF_NODE_BODY(tree), offset+2);
|
||||
dump_node(mrb, DEF_NODE_BODY(tree), offset+2);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -14669,12 +14669,12 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (ASGN_NODE_LHS(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("lhs:\n");
|
||||
mrb_parser_dump(mrb, ASGN_NODE_LHS(tree), offset+2);
|
||||
dump_node(mrb, ASGN_NODE_LHS(tree), offset+2);
|
||||
}
|
||||
if (ASGN_NODE_RHS(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("rhs:\n");
|
||||
mrb_parser_dump(mrb, ASGN_NODE_RHS(tree), offset+2);
|
||||
dump_node(mrb, ASGN_NODE_RHS(tree), offset+2);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -14695,14 +14695,14 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (MASGN_NODE_RHS(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("rhs:\n");
|
||||
mrb_parser_dump(mrb, MASGN_NODE_RHS(tree), offset+2);
|
||||
dump_node(mrb, MASGN_NODE_RHS(tree), offset+2);
|
||||
}
|
||||
break;
|
||||
|
||||
case NODE_RETURN:
|
||||
printf("NODE_RETURN:\n");
|
||||
if (RETURN_NODE_ARGS(tree)) {
|
||||
mrb_parser_dump(mrb, RETURN_NODE_ARGS(tree), offset);
|
||||
dump_node(mrb, RETURN_NODE_ARGS(tree), offset);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -14711,7 +14711,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (BREAK_NODE_VALUE(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("value:\n");
|
||||
mrb_parser_dump(mrb, BREAK_NODE_VALUE(tree), offset+2);
|
||||
dump_node(mrb, BREAK_NODE_VALUE(tree), offset+2);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -14720,7 +14720,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (NEXT_NODE_VALUE(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("value:\n");
|
||||
mrb_parser_dump(mrb, NEXT_NODE_VALUE(tree), offset+2);
|
||||
dump_node(mrb, NEXT_NODE_VALUE(tree), offset+2);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -14729,7 +14729,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (NEGATE_NODE_OPERAND(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("operand:\n");
|
||||
mrb_parser_dump(mrb, NEGATE_NODE_OPERAND(tree), offset+2);
|
||||
dump_node(mrb, NEGATE_NODE_OPERAND(tree), offset+2);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -14743,7 +14743,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
case NODE_BEGIN:
|
||||
printf("NODE_BEGIN:\n");
|
||||
if (BEGIN_NODE_BODY(tree)) {
|
||||
mrb_parser_dump(mrb, BEGIN_NODE_BODY(tree), offset+1);
|
||||
dump_node(mrb, BEGIN_NODE_BODY(tree), offset+1);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -14752,7 +14752,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (RESCUE_NODE_BODY(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, RESCUE_NODE_BODY(tree), offset+2);
|
||||
dump_node(mrb, RESCUE_NODE_BODY(tree), offset+2);
|
||||
}
|
||||
if (RESCUE_NODE_RESCUE_CLAUSES(tree)) {
|
||||
node *n2 = RESCUE_NODE_RESCUE_CLAUSES(tree);
|
||||
@@ -14768,12 +14768,12 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (n3->cdr->car) {
|
||||
dump_prefix(offset+2, lineno);
|
||||
printf("exc_var:\n");
|
||||
mrb_parser_dump(mrb, n3->cdr->car, offset+3);
|
||||
dump_node(mrb, n3->cdr->car, offset+3);
|
||||
}
|
||||
if (n3->cdr->cdr->car) {
|
||||
dump_prefix(offset+2, lineno);
|
||||
printf("rescue body:\n");
|
||||
mrb_parser_dump(mrb, n3->cdr->cdr->car, offset+3);
|
||||
dump_node(mrb, n3->cdr->cdr->car, offset+3);
|
||||
}
|
||||
n2 = n2->cdr;
|
||||
}
|
||||
@@ -14781,7 +14781,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (RESCUE_NODE_ELSE_CLAUSE(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("else:\n");
|
||||
mrb_parser_dump(mrb, RESCUE_NODE_ELSE_CLAUSE(tree), offset+2);
|
||||
dump_node(mrb, RESCUE_NODE_ELSE_CLAUSE(tree), offset+2);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -14789,10 +14789,10 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
printf("NODE_ENSURE:\n");
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, tree->car, offset+2);
|
||||
dump_node(mrb, tree->car, offset+2);
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("ensure:\n");
|
||||
mrb_parser_dump(mrb, tree->cdr->cdr, offset+2);
|
||||
dump_node(mrb, tree->cdr->cdr, offset+2);
|
||||
break;
|
||||
|
||||
case NODE_LAMBDA:
|
||||
@@ -14810,25 +14810,25 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
}
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, BLOCK_NODE_BODY(tree), offset+2);
|
||||
dump_node(mrb, BLOCK_NODE_BODY(tree), offset+2);
|
||||
break;
|
||||
|
||||
case NODE_AND:
|
||||
printf("NODE_AND:\n");
|
||||
mrb_parser_dump(mrb, AND_NODE_LEFT(tree), offset+1);
|
||||
mrb_parser_dump(mrb, AND_NODE_RIGHT(tree), offset+1);
|
||||
dump_node(mrb, AND_NODE_LEFT(tree), offset+1);
|
||||
dump_node(mrb, AND_NODE_RIGHT(tree), offset+1);
|
||||
break;
|
||||
|
||||
case NODE_OR:
|
||||
printf("NODE_OR:\n");
|
||||
mrb_parser_dump(mrb, OR_NODE_LEFT(tree), offset+1);
|
||||
mrb_parser_dump(mrb, OR_NODE_RIGHT(tree), offset+1);
|
||||
dump_node(mrb, OR_NODE_LEFT(tree), offset+1);
|
||||
dump_node(mrb, OR_NODE_RIGHT(tree), offset+1);
|
||||
break;
|
||||
|
||||
case NODE_CASE:
|
||||
printf("NODE_CASE:\n");
|
||||
if (tree->car) {
|
||||
mrb_parser_dump(mrb, tree->car, offset+1);
|
||||
dump_node(mrb, tree->car, offset+1);
|
||||
}
|
||||
tree = tree->cdr;
|
||||
while (tree) {
|
||||
@@ -14837,7 +14837,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
dump_recur(mrb, tree->car->car, offset+2);
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, tree->car->cdr, offset+2);
|
||||
dump_node(mrb, tree->car->cdr, offset+2);
|
||||
tree = tree->cdr;
|
||||
}
|
||||
break;
|
||||
@@ -14846,40 +14846,40 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
printf("NODE_WHILE:\n");
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("cond:\n");
|
||||
mrb_parser_dump(mrb, WHILE_NODE_CONDITION(tree), offset+2);
|
||||
dump_node(mrb, WHILE_NODE_CONDITION(tree), offset+2);
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, WHILE_NODE_BODY(tree), offset+2);
|
||||
dump_node(mrb, WHILE_NODE_BODY(tree), offset+2);
|
||||
break;
|
||||
|
||||
case NODE_UNTIL:
|
||||
printf("NODE_UNTIL:\n");
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("cond:\n");
|
||||
mrb_parser_dump(mrb, UNTIL_NODE_CONDITION(tree), offset+2);
|
||||
dump_node(mrb, UNTIL_NODE_CONDITION(tree), offset+2);
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, UNTIL_NODE_BODY(tree), offset+2);
|
||||
dump_node(mrb, UNTIL_NODE_BODY(tree), offset+2);
|
||||
break;
|
||||
|
||||
case NODE_WHILE_MOD:
|
||||
printf("NODE_WHILE_MOD:\n");
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("cond:\n");
|
||||
mrb_parser_dump(mrb, WHILE_NODE_CONDITION(tree), offset+2);
|
||||
dump_node(mrb, WHILE_NODE_CONDITION(tree), offset+2);
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, WHILE_NODE_BODY(tree), offset+2);
|
||||
dump_node(mrb, WHILE_NODE_BODY(tree), offset+2);
|
||||
break;
|
||||
|
||||
case NODE_UNTIL_MOD:
|
||||
printf("NODE_UNTIL_MOD:\n");
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("cond:\n");
|
||||
mrb_parser_dump(mrb, UNTIL_NODE_CONDITION(tree), offset+2);
|
||||
dump_node(mrb, UNTIL_NODE_CONDITION(tree), offset+2);
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, UNTIL_NODE_BODY(tree), offset+2);
|
||||
dump_node(mrb, UNTIL_NODE_BODY(tree), offset+2);
|
||||
break;
|
||||
|
||||
case NODE_FOR:
|
||||
@@ -14888,17 +14888,17 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (FOR_NODE_VAR(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("var:\n");
|
||||
mrb_parser_dump(mrb, FOR_NODE_VAR(tree), offset+2);
|
||||
dump_node(mrb, FOR_NODE_VAR(tree), offset+2);
|
||||
}
|
||||
if (FOR_NODE_ITERABLE(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("iterable:\n");
|
||||
mrb_parser_dump(mrb, FOR_NODE_ITERABLE(tree), offset+2);
|
||||
dump_node(mrb, FOR_NODE_ITERABLE(tree), offset+2);
|
||||
}
|
||||
if (FOR_NODE_BODY(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, FOR_NODE_BODY(tree), offset+2);
|
||||
dump_node(mrb, FOR_NODE_BODY(tree), offset+2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -14909,12 +14909,12 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (DOT2_NODE_LEFT(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("left:\n");
|
||||
mrb_parser_dump(mrb, DOT2_NODE_LEFT(tree), offset+2);
|
||||
dump_node(mrb, DOT2_NODE_LEFT(tree), offset+2);
|
||||
}
|
||||
if (DOT2_NODE_RIGHT(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("right:\n");
|
||||
mrb_parser_dump(mrb, DOT2_NODE_RIGHT(tree), offset+2);
|
||||
dump_node(mrb, DOT2_NODE_RIGHT(tree), offset+2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -14925,12 +14925,12 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (DOT3_NODE_LEFT(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("left:\n");
|
||||
mrb_parser_dump(mrb, DOT3_NODE_LEFT(tree), offset+2);
|
||||
dump_node(mrb, DOT3_NODE_LEFT(tree), offset+2);
|
||||
}
|
||||
if (DOT3_NODE_RIGHT(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("right:\n");
|
||||
mrb_parser_dump(mrb, DOT3_NODE_RIGHT(tree), offset+2);
|
||||
dump_node(mrb, DOT3_NODE_RIGHT(tree), offset+2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -14940,7 +14940,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (COLON2_NODE_BASE(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("base:\n");
|
||||
mrb_parser_dump(mrb, COLON2_NODE_BASE(tree), offset+2);
|
||||
dump_node(mrb, COLON2_NODE_BASE(tree), offset+2);
|
||||
}
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("name: %s\n", mrb_sym_name(mrb, COLON2_NODE_NAME(tree)));
|
||||
@@ -14957,10 +14957,10 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
while (pairs) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("key:\n");
|
||||
mrb_parser_dump(mrb, pairs->car->car, offset+2);
|
||||
dump_node(mrb, pairs->car->car, offset+2);
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("value:\n");
|
||||
mrb_parser_dump(mrb, pairs->car->cdr, offset+2);
|
||||
dump_node(mrb, pairs->car->cdr, offset+2);
|
||||
pairs = pairs->cdr;
|
||||
}
|
||||
}
|
||||
@@ -14968,17 +14968,17 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
|
||||
case NODE_SPLAT:
|
||||
printf("NODE_SPLAT:\n");
|
||||
mrb_parser_dump(mrb, SPLAT_NODE_VALUE(tree), offset+1);
|
||||
dump_node(mrb, SPLAT_NODE_VALUE(tree), offset+1);
|
||||
break;
|
||||
|
||||
case NODE_OP_ASGN:
|
||||
printf("NODE_OP_ASGN:\n");
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("lhs:\n");
|
||||
mrb_parser_dump(mrb, OP_ASGN_NODE_LHS(tree), offset+2);
|
||||
dump_node(mrb, OP_ASGN_NODE_LHS(tree), offset+2);
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("op='%s' (%d)\n", mrb_sym_name(mrb, OP_ASGN_NODE_OP(tree)), (int)OP_ASGN_NODE_OP(tree));
|
||||
mrb_parser_dump(mrb, OP_ASGN_NODE_RHS(tree), offset+1);
|
||||
dump_node(mrb, OP_ASGN_NODE_RHS(tree), offset+1);
|
||||
break;
|
||||
|
||||
case NODE_SUPER:
|
||||
@@ -15018,7 +15018,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
|
||||
case NODE_BLOCK_ARG:
|
||||
printf("NODE_BLOCK_ARG:\n");
|
||||
mrb_parser_dump(mrb, block_arg_node(tree)->value, offset+1);
|
||||
dump_node(mrb, block_arg_node(tree)->value, offset+1);
|
||||
break;
|
||||
|
||||
case NODE_REGX:
|
||||
@@ -15106,12 +15106,12 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (CLASS_NODE_SUPERCLASS(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("super:\n");
|
||||
mrb_parser_dump(mrb, CLASS_NODE_SUPERCLASS(tree), offset+2);
|
||||
dump_node(mrb, CLASS_NODE_SUPERCLASS(tree), offset+2);
|
||||
}
|
||||
if (CLASS_NODE_BODY(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, CLASS_NODE_BODY(tree)->cdr, offset+2);
|
||||
dump_node(mrb, CLASS_NODE_BODY(tree)->cdr, offset+2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -15125,7 +15125,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (MODULE_NODE_BODY(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, MODULE_NODE_BODY(tree)->cdr, offset+2);
|
||||
dump_node(mrb, MODULE_NODE_BODY(tree)->cdr, offset+2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -15136,12 +15136,12 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (SCLASS_NODE_OBJ(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("obj:\n");
|
||||
mrb_parser_dump(mrb, SCLASS_NODE_OBJ(tree), offset+2);
|
||||
dump_node(mrb, SCLASS_NODE_OBJ(tree), offset+2);
|
||||
}
|
||||
if (SCLASS_NODE_BODY(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, SCLASS_NODE_BODY(tree)->cdr, offset+2);
|
||||
dump_node(mrb, SCLASS_NODE_BODY(tree)->cdr, offset+2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -15151,7 +15151,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (SDEF_NODE_OBJ(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("recv:\n");
|
||||
mrb_parser_dump(mrb, SDEF_NODE_OBJ(tree), offset+2);
|
||||
dump_node(mrb, SDEF_NODE_OBJ(tree), offset+2);
|
||||
}
|
||||
if (SDEF_NODE_ARGS(tree)) {
|
||||
dump_args(mrb, SDEF_NODE_ARGS(tree), offset+1, lineno);
|
||||
@@ -15162,13 +15162,13 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
if (SDEF_NODE_BODY(tree)) {
|
||||
dump_prefix(offset+1, lineno);
|
||||
printf("body:\n");
|
||||
mrb_parser_dump(mrb, SDEF_NODE_BODY(tree), offset+2);
|
||||
dump_node(mrb, SDEF_NODE_BODY(tree), offset+2);
|
||||
}
|
||||
break;
|
||||
|
||||
case NODE_POSTEXE:
|
||||
printf("NODE_POSTEXE:\n");
|
||||
mrb_parser_dump(mrb, tree, offset+1);
|
||||
dump_node(mrb, tree, offset+1);
|
||||
break;
|
||||
|
||||
case NODE_HEREDOC:
|
||||
@@ -15185,6 +15185,12 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
{
|
||||
dump_node(mrb, tree, offset);
|
||||
}
|
||||
|
||||
typedef mrb_bool mrb_parser_foreach_top_variable_func(mrb_state *mrb, mrb_sym sym, void *user);
|
||||
void mrb_parser_foreach_top_variable(mrb_state *mrb, struct mrb_parser_state *p, mrb_parser_foreach_top_variable_func *func, void *user);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user