From db476cc71cb6c690bd5b32cebebf7ebcbff604ad Mon Sep 17 00:00:00 2001 From: yui-knk Date: Mon, 1 Jan 2024 01:31:28 +0900 Subject: 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 --- ruby_parser.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'ruby_parser.c') diff --git a/ruby_parser.c b/ruby_parser.c index 6689483f45..1721df841b 100644 --- a/ruby_parser.c +++ b/ruby_parser.c @@ -964,6 +964,13 @@ rb_parser_set_yydebug(VALUE vparser, VALUE flag) } #endif +VALUE +rb_node_sym_string_val(const NODE *node) +{ + rb_parser_string_t *str = RNODE_SYM(node)->string; + return ID2SYM(rb_intern3(str->ptr, str->len, str->enc)); +} + VALUE rb_node_line_lineno_val(const NODE *node) { -- cgit v1.2.3