ruby_tree_sitter 0.20.8.2-x86_64-darwin-20 → 1.0.0-x86_64-darwin-20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE +2 -1
- data/README.md +32 -18
- data/ext/tree_sitter/extconf.rb +1 -43
- data/ext/tree_sitter/input.c +1 -0
- data/ext/tree_sitter/language.c +131 -46
- data/ext/tree_sitter/logger.c +28 -12
- data/ext/tree_sitter/node.c +438 -130
- data/ext/tree_sitter/parser.c +232 -37
- data/ext/tree_sitter/query.c +197 -72
- data/ext/tree_sitter/query_cursor.c +140 -28
- data/ext/tree_sitter/repo.rb +121 -0
- data/ext/tree_sitter/tree.c +118 -34
- data/ext/tree_sitter/tree_cursor.c +205 -33
- data/ext/tree_sitter/tree_sitter.c +12 -0
- data/lib/tree_sitter/node.rb +43 -9
- data/lib/tree_sitter/tree_sitter.bundle +0 -0
- data/lib/tree_sitter/version.rb +4 -2
- data/lib/tree_sitter.rb +1 -0
- data/lib/tree_stand/ast_modifier.rb +30 -0
- data/lib/tree_stand/breadth_first_visitor.rb +54 -0
- data/lib/tree_stand/config.rb +13 -0
- data/lib/tree_stand/node.rb +224 -0
- data/lib/tree_stand/parser.rb +67 -0
- data/lib/tree_stand/range.rb +55 -0
- data/lib/tree_stand/tree.rb +123 -0
- data/lib/tree_stand/utils/printer.rb +73 -0
- data/lib/tree_stand/version.rb +7 -0
- data/lib/tree_stand/visitor.rb +127 -0
- data/lib/tree_stand/visitors/tree_walker.rb +37 -0
- data/lib/tree_stand.rb +48 -0
- data/tree_sitter.gemspec +15 -12
- metadata +37 -107
- data/test/README.md +0 -15
- data/test/test_helper.rb +0 -9
- data/test/tree_sitter/js_test.rb +0 -48
- data/test/tree_sitter/language_test.rb +0 -73
- data/test/tree_sitter/logger_test.rb +0 -70
- data/test/tree_sitter/node_test.rb +0 -355
- data/test/tree_sitter/parser_test.rb +0 -140
- data/test/tree_sitter/query_test.rb +0 -153
- data/test/tree_sitter/tree_cursor_test.rb +0 -83
- data/test/tree_sitter/tree_test.rb +0 -51
@@ -1,83 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative '../test_helper'
|
4
|
-
|
5
|
-
ruby = TreeSitter.lang('ruby')
|
6
|
-
parser = TreeSitter::Parser.new
|
7
|
-
parser.language = ruby
|
8
|
-
|
9
|
-
program = <<~RUBY
|
10
|
-
def mul(a, b)
|
11
|
-
res = a * b
|
12
|
-
puts res.inspect
|
13
|
-
return res
|
14
|
-
end
|
15
|
-
RUBY
|
16
|
-
|
17
|
-
tree = parser.parse_string(nil, program)
|
18
|
-
root = tree.root_node
|
19
|
-
|
20
|
-
describe 'TreeCursor should work properly' do
|
21
|
-
before do
|
22
|
-
@cursor = TreeSitter::TreeCursor.new(root)
|
23
|
-
end
|
24
|
-
|
25
|
-
it 'must return root node when created' do
|
26
|
-
assert_equal root, @cursor.current_node
|
27
|
-
end
|
28
|
-
|
29
|
-
it 'must return root node when reset after creation' do
|
30
|
-
@cursor.reset(root)
|
31
|
-
assert_equal root, @cursor.current_node
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'must reset to an arbitrary node' do
|
35
|
-
@cursor.reset(root.child(0).child(0))
|
36
|
-
assert_equal root.child(0).child(0), @cursor.current_node
|
37
|
-
end
|
38
|
-
|
39
|
-
it 'must move on the tree properly' do
|
40
|
-
@cursor.goto_first_child
|
41
|
-
assert_equal root.child(0), @cursor.current_node
|
42
|
-
|
43
|
-
@cursor.goto_first_child
|
44
|
-
@cursor.goto_next_sibling
|
45
|
-
assert_equal root.child(0).child(0).next_sibling, @cursor.current_node
|
46
|
-
|
47
|
-
@cursor.goto_parent
|
48
|
-
assert_equal root.child(0), @cursor.current_node
|
49
|
-
|
50
|
-
@cursor.reset(root)
|
51
|
-
assert_equal root, @cursor.current_node
|
52
|
-
end
|
53
|
-
|
54
|
-
it 'must return a String when current_field_name is called on a named child, or nil otherwise' do
|
55
|
-
assert_nil @cursor.current_field_name
|
56
|
-
|
57
|
-
@cursor.goto_first_child
|
58
|
-
@cursor.goto_first_child
|
59
|
-
@cursor.goto_next_sibling
|
60
|
-
|
61
|
-
assert_equal 'name', @cursor.current_field_name
|
62
|
-
assert_instance_of Integer, @cursor.current_field_id
|
63
|
-
end
|
64
|
-
|
65
|
-
it 'must return proper child for given byte' do
|
66
|
-
@cursor.goto_first_child_for_byte(0)
|
67
|
-
assert_equal root.child(0), @cursor.current_node
|
68
|
-
end
|
69
|
-
|
70
|
-
it 'must return proper child for given point' do
|
71
|
-
@cursor.goto_first_child_for_point(root.start_point)
|
72
|
-
assert_equal root.child(0), @cursor.current_node
|
73
|
-
end
|
74
|
-
|
75
|
-
it 'must return proper child for given point' do
|
76
|
-
@cursor.goto_first_child_for_point(root.start_point)
|
77
|
-
assert_equal root.child(0), @cursor.current_node
|
78
|
-
end
|
79
|
-
|
80
|
-
it 'must return a distinct copy on copy' do
|
81
|
-
refute_equal @cursor, @cursor.copy
|
82
|
-
end
|
83
|
-
end
|
@@ -1,51 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative '../test_helper.rb'
|
4
|
-
|
5
|
-
ruby = TreeSitter.lang('ruby')
|
6
|
-
parser = TreeSitter::Parser.new
|
7
|
-
parser.language = ruby
|
8
|
-
|
9
|
-
program = <<~RUBY
|
10
|
-
def mul(a, b)
|
11
|
-
res = a* b
|
12
|
-
puts res.inspect
|
13
|
-
return res
|
14
|
-
end
|
15
|
-
RUBY
|
16
|
-
|
17
|
-
tree = parser.parse_string(nil, program)
|
18
|
-
|
19
|
-
describe 'copy' do
|
20
|
-
it 'must make a new copy' do
|
21
|
-
copy = tree.copy
|
22
|
-
refute_equal tree, copy
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
describe 'root_node' do
|
27
|
-
it 'must be of type TreeSitter::Node' do
|
28
|
-
root = tree.root_node
|
29
|
-
assert_instance_of TreeSitter::Node, root
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
describe 'language' do
|
34
|
-
it 'must be identical to parser language' do
|
35
|
-
assert_equal parser.language, tree.language
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
describe 'print_dot_graph' do
|
40
|
-
it 'must save to disk' do
|
41
|
-
dot = File.expand_path('/tmp/tree-dot.gv', FileUtils.getwd)
|
42
|
-
tree.print_dot_graph(dot)
|
43
|
-
|
44
|
-
assert File.exist?(dot), 'dot file must be exist'
|
45
|
-
assert File.file?(dot), 'dot file must be a file'
|
46
|
-
refute_equal 0, File.size(dot)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
# TODO: edit
|
51
|
-
# TODO: changed_ranges
|