diff options
author | yui-knk <[email protected]> | 2024-02-10 10:05:18 +0900 |
---|---|---|
committer | Yuichiro Kaneko <[email protected]> | 2024-02-21 08:06:48 +0900 |
commit | e7ab5d891c3272e72caef6879e90ad8ae4e13dea (patch) | |
tree | 018b9b38b1ef3aaf87b6a6a8baf8a72d78460b27 /rubyparser.h | |
parent | 97d4363d3b4125d30120ab07cb69d3fc34b44bfc (diff) |
Introduce NODE_REGX to manage regexp literal
Diffstat (limited to 'rubyparser.h')
-rw-r--r-- | rubyparser.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/rubyparser.h b/rubyparser.h index f3bd76d2eb..3fcfd32c9c 100644 --- a/rubyparser.h +++ b/rubyparser.h @@ -127,6 +127,7 @@ enum node_type { NODE_XSTR, NODE_DXSTR, NODE_EVSTR, + NODE_REGX, NODE_DREGX, NODE_ONCE, NODE_ARGS, @@ -612,11 +613,12 @@ typedef struct RNode_BACK_REF { long nd_nth; } rb_node_back_ref_t; -/* RNode_MATCH and RNode_LIT should be same structure */ +/* RNode_MATCH and RNode_REGX should be same structure */ typedef struct RNode_MATCH { NODE node; - VALUE nd_lit; + struct rb_parser_string *string; + int options; } rb_node_match_t; typedef struct RNode_MATCH2 { @@ -719,6 +721,13 @@ typedef struct RNode_EVSTR { struct RNode *nd_body; } rb_node_evstr_t; +typedef struct RNode_REGX { + NODE node; + + struct rb_parser_string *string; + int options; +} rb_node_regx_t; + typedef struct RNode_DREGX { NODE node; @@ -1093,6 +1102,7 @@ typedef struct RNode_ERROR { #define RNODE_XSTR(node) ((struct RNode_XSTR *)(node)) #define RNODE_DXSTR(node) ((struct RNode_DXSTR *)(node)) #define RNODE_EVSTR(node) ((struct RNode_EVSTR *)(node)) +#define RNODE_REGX(node) ((struct RNode_REGX *)(node)) #define RNODE_DREGX(node) ((struct RNode_DREGX *)(node)) #define RNODE_ONCE(node) ((struct RNode_ONCE *)(node)) #define RNODE_ARGS(node) ((struct RNode_ARGS *)(node)) |