summaryrefslogtreecommitdiff
path: root/ast.c
diff options
context:
space:
mode:
authoryui-knk <[email protected]>2024-02-03 00:50:02 +0900
committerYuichiro Kaneko <[email protected]>2024-02-09 14:20:17 +0900
commit33c1e082d0807db403a2d93cbf0a094c91179d74 ()
tree84213018f402daec6fc167f206c4c3eb4551b699 /ast.c
parentf7a407cabda6eb787fb95fc6e3c1b2215b1aec19 (diff)
Remove ruby object from string nodes
String nodes holds ruby string object on `VALUE nd_lit`. This commit changes it to `struct rb_parser_string *string` to reduce dependency on ruby object. Sometimes these strings are concatenated with other string therefore string concatenate functions are needed.
-rw-r--r--ast.c5
1 files changed, 3 insertions, 2 deletions
@@ -555,9 +555,10 @@ node_children(rb_ast_t *ast, const NODE *node)
return rb_ary_new_from_node_args(ast, 2, RNODE_MATCH3(node)->nd_recv, RNODE_MATCH3(node)->nd_value);
case NODE_MATCH:
case NODE_LIT:
case NODE_STR:
case NODE_XSTR:
- return rb_ary_new_from_args(1, RNODE_LIT(node)->nd_lit);
case NODE_INTEGER:
return rb_ary_new_from_args(1, rb_node_integer_literal_val(node));
case NODE_FLOAT:
@@ -579,7 +580,7 @@ node_children(rb_ast_t *ast, const NODE *node)
head = NEW_CHILD(ast, n->nd_head);
next = NEW_CHILD(ast, n->nd_next);
}
- return rb_ary_new_from_args(3, RNODE_DSTR(node)->nd_lit, head, next);
}
case NODE_SYM:
return rb_ary_new_from_args(1, rb_node_sym_string_val(node));