summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-11-09 13:39:35 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-11-09 13:39:35 +0000
commit49c7c8ed85cfeaae98fbfb1828424e1e5bb9b0dc (patch)
tree08f70858fee5a8e636af82d32091ccdad5d020bc
parent51902ea5c96b1bdaa6d418a5af74b09cec0a10fb (diff)
Hoisted out rb_ast_parse_str and rb_ast_parse_file
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65646 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ast.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/ast.c b/ast.c
index a64278f8c7..3d09756225 100644
--- a/ast.c
+++ b/ast.c
@@ -52,6 +52,9 @@ ast_new_internal(rb_ast_t *ast, NODE *node)
return obj;
}
+VALUE rb_ast_parse_str(VALUE str);
+VALUE rb_ast_parse_file(VALUE path);
+
/*
* call-seq:
* RubyVM::AbstractSyntaxTree.parse(string) -> RubyVM::AbstractSyntaxTree::Node
@@ -67,6 +70,12 @@ ast_new_internal(rb_ast_t *ast, NODE *node)
static VALUE
rb_ast_s_parse(VALUE module, VALUE str)
{
+ return rb_ast_parse_str(str);
+}
+
+VALUE
+rb_ast_parse_str(VALUE str)
+{
VALUE obj;
rb_ast_t *ast = 0;
@@ -102,6 +111,12 @@ rb_ast_s_parse(VALUE module, VALUE str)
static VALUE
rb_ast_s_parse_file(VALUE module, VALUE path)
{
+ return rb_ast_parse_file(path);
+}
+
+VALUE
+rb_ast_parse_file(VALUE path)
+{
VALUE obj, f;
rb_ast_t *ast = 0;
rb_encoding *enc = rb_utf8_encoding();
@@ -174,7 +189,7 @@ rb_ast_s_of(VALUE module, VALUE body)
path = rb_iseq_path(iseq);
node_id = iseq->body->location.node_id;
- node = rb_ast_s_parse_file(module, path);
+ node = rb_ast_parse_file(path);
return node_find(node, node_id);
}