summaryrefslogtreecommitdiff
path: root/rubyparser.h
diff options
context:
space:
mode:
authoryui-knk <[email protected]>2024-02-10 10:05:18 +0900
committerYuichiro Kaneko <[email protected]>2024-02-21 08:06:48 +0900
commite7ab5d891c3272e72caef6879e90ad8ae4e13dea (patch)
tree018b9b38b1ef3aaf87b6a6a8baf8a72d78460b27 /rubyparser.h
parent97d4363d3b4125d30120ab07cb69d3fc34b44bfc (diff)
Introduce NODE_REGX to manage regexp literal
Diffstat (limited to 'rubyparser.h')
-rw-r--r--rubyparser.h14
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))