Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 4c6b89d

Browse files
committed
Use YARP as the backend
1 parent 20c62ef commit 4c6b89d

File tree

6 files changed

+1856
-8
lines changed

6 files changed

+1856
-8
lines changed

bin/console

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
require "bundler/setup"
55
require "syntax_tree"
6-
require "syntax_tree/reflection"
6+
# require "syntax_tree/reflection"
77

88
require "irb"
99
IRB.start(__FILE__)

lib/syntax_tree.rb

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,16 @@
22

33
require "prettier_print"
44
require "pp"
5-
require "ripper"
5+
# require "ripper"
6+
require "yarp"
67

7-
require_relative "syntax_tree/node"
8+
# require_relative "syntax_tree/node"
89
require_relative "syntax_tree/basic_visitor"
910
require_relative "syntax_tree/visitor"
1011

12+
require_relative "syntax_tree/formatting"
1113
require_relative "syntax_tree/formatter"
12-
require_relative "syntax_tree/parser"
14+
# require_relative "syntax_tree/parser"
1315
require_relative "syntax_tree/version"
1416

1517
# Syntax Tree is a suite of tools built on top of the internal CRuby parser. It
@@ -120,9 +122,11 @@ def self.mutation
120122

121123
# Parses the given source and returns the syntax tree.
122124
def self.parse(source)
123-
parser = Parser.new(source)
124-
response = parser.parse
125-
response unless parser.error?
125+
# parser = Parser.new(source)
126+
# response = parser.parse
127+
# response unless parser.error?
128+
result = YARP.parse(source)
129+
result.value if result.errors.empty?
126130
end
127131

128132
# Parses the given file and returns the syntax tree.

lib/syntax_tree/formatter.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,5 +224,10 @@ def seplist(list, sep = nil, iter_method = :each)
224224
def text(string)
225225
target << string
226226
end
227+
228+
# Slice out a portion of the source code and add it to the target.
229+
def slice(location)
230+
target << source.byteslice(location.start_offset...location.end_offset)
231+
end
227232
end
228233
end

0 commit comments

Comments
 (0)