diff options
author | yui-knk <spiketeika@gmail.com> | 2024-01-01 01:31:28 +0900 |
---|---|---|
committer | Yuichiro Kaneko <spiketeika@gmail.com> | 2024-01-09 16:07:19 +0900 |
commit | db476cc71cb6c690bd5b32cebebf7ebcbff604ad (patch) | |
tree | 3fa0bfc4a58f6016e7cad7304e951b063f94209f /rubyparser.h | |
parent | f82a6172a2a96815f9478410116d35c76b56efb5 (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.h | 8 |
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)) |