diff --git a/mrbgems/mruby-compiler/core/node.h b/mrbgems/mruby-compiler/core/node.h index 06ee34cc0..93c522a8a 100644 --- a/mrbgems/mruby-compiler/core/node.h +++ b/mrbgems/mruby-compiler/core/node.h @@ -649,7 +649,8 @@ struct mrb_ast_dsym_node { #define XSTR_NODE_LIST(n) (xstr_node(n)->list) #define REGX_NODE_LIST(n) (regx_node(n)->list) -#define REGX_NODE_OPTIONS(n) (regx_node(n)->options) +#define REGX_NODE_FLAGS(n) (regx_node(n)->flags) +#define REGX_NODE_ENCODING(n) (regx_node(n)->encoding) #define HEREDOC_NODE_NAME(n) (heredoc_node(n)->name) #define DSYM_NODE_LIST(n) (dsym_node(n)->list) diff --git a/mrbgems/mruby-compiler/core/parse.y b/mrbgems/mruby-compiler/core/parse.y index a0bcd8b2b..cb47995eb 100644 --- a/mrbgems/mruby-compiler/core/parse.y +++ b/mrbgems/mruby-compiler/core/parse.y @@ -8214,16 +8214,16 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset) case NODE_REGX: printf("NODE_REGX:\n"); - dump_recur(mrb, tree->car, offset+1); - dump_prefix(offset+1, lineno); - printf("tail: %s\n", (char*)tree->cdr->cdr->car); - if (tree->cdr->cdr->cdr->car) { - dump_prefix(offset+1, lineno); - printf("opt: %s\n", (char*)tree->cdr->cdr->cdr->car); + if (REGX_NODE_LIST(tree)) { + dump_str(mrb, REGX_NODE_LIST(tree), offset+1, lineno); } - if (tree->cdr->cdr->cdr->cdr) { + if (REGX_NODE_FLAGS(tree)) { dump_prefix(offset+1, lineno); - printf("enc: %s\n", (char*)tree->cdr->cdr->cdr->cdr); + printf("flags: %s\n", REGX_NODE_FLAGS(tree)); + } + if (REGX_NODE_ENCODING(tree)) { + dump_prefix(offset+1, lineno); + printf("encoding: %s\n", REGX_NODE_ENCODING(tree)); } break; diff --git a/mrbgems/mruby-compiler/core/y.tab.c b/mrbgems/mruby-compiler/core/y.tab.c index 46db0bdfc..28ecbe7a1 100644 --- a/mrbgems/mruby-compiler/core/y.tab.c +++ b/mrbgems/mruby-compiler/core/y.tab.c @@ -15043,16 +15043,16 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset) case NODE_REGX: printf("NODE_REGX:\n"); - dump_recur(mrb, tree->car, offset+1); - dump_prefix(offset+1, lineno); - printf("tail: %s\n", (char*)tree->cdr->cdr->car); - if (tree->cdr->cdr->cdr->car) { - dump_prefix(offset+1, lineno); - printf("opt: %s\n", (char*)tree->cdr->cdr->cdr->car); + if (REGX_NODE_LIST(tree)) { + dump_str(mrb, REGX_NODE_LIST(tree), offset+1, lineno); } - if (tree->cdr->cdr->cdr->cdr) { + if (REGX_NODE_FLAGS(tree)) { dump_prefix(offset+1, lineno); - printf("enc: %s\n", (char*)tree->cdr->cdr->cdr->cdr); + printf("flags: %s\n", REGX_NODE_FLAGS(tree)); + } + if (REGX_NODE_ENCODING(tree)) { + dump_prefix(offset+1, lineno); + printf("encoding: %s\n", REGX_NODE_ENCODING(tree)); } break;