summaryrefslogtreecommitdiff
path: root/rubyparser.h
diff options
context:
space:
mode:
authoryui-knk <spiketeika@gmail.com>2024-01-01 01:31:28 +0900
committerYuichiro Kaneko <spiketeika@gmail.com>2024-01-09 16:07:19 +0900
commitdb476cc71cb6c690bd5b32cebebf7ebcbff604ad (patch)
tree3fa0bfc4a58f6016e7cad7304e951b063f94209f /rubyparser.h
parentf82a6172a2a96815f9478410116d35c76b56efb5 (diff)
Introduce NODE_SYM to manage symbol literal
`:sym` was managed by `NODE_LIT` with `Symbol` object. This commit introduces `NODE_SYM` so that 1. Symbol literal is detectable from AST Node 2. Reduce dependency on ruby object
Diffstat (limited to 'rubyparser.h')
-rw-r--r--rubyparser.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/rubyparser.h b/rubyparser.h
index 2fe9430f88..4b37cf6883 100644
--- a/rubyparser.h
+++ b/rubyparser.h
@@ -150,6 +150,7 @@ enum node_type {
NODE_ERRINFO,
NODE_DEFINED,
NODE_POSTEXE,
+ NODE_SYM,
NODE_DSYM,
NODE_ATTRASGN,
NODE_LAMBDA,
@@ -940,6 +941,12 @@ typedef struct RNode_POSTEXE {
struct RNode *nd_body;
} rb_node_postexe_t;
+typedef struct RNode_SYM {
+ NODE node;
+
+ struct rb_parser_string *string;
+} rb_node_sym_t;
+
typedef struct RNode_DSYM {
NODE node;
@@ -1105,6 +1112,7 @@ typedef struct RNode_ERROR {
#define RNODE_ERRINFO(node) ((struct RNode_ERRINFO *)(node))
#define RNODE_DEFINED(node) ((struct RNode_DEFINED *)(node))
#define RNODE_POSTEXE(node) ((struct RNode_POSTEXE *)(node))
+#define RNODE_SYM(node) ((struct RNode_SYM *)(node))
#define RNODE_DSYM(node) ((struct RNode_DSYM *)(node))
#define RNODE_ATTRASGN(node) ((struct RNode_ATTRASGN *)(node))
#define RNODE_LAMBDA(node) ((struct RNode_LAMBDA *)(node))