synvert-core 1.31.1 → 1.32.0
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/CHANGELOG.md +6 -0
- data/Gemfile.lock +16 -11
- data/lib/synvert/core/rewriter/instance.rb +16 -2
- data/lib/synvert/core/rewriter.rb +2 -2
- data/lib/synvert/core/version.rb +1 -1
- data/lib/synvert/core.rb +1 -0
- data/synvert-core-ruby.gemspec +6 -4
- metadata +38 -10
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: eba97ad9bc0ca05de1f79a1fcfeb5bca602d71117d1ec9bef2e540e0180cffb3
|
|
4
|
+
data.tar.gz: 92d790d50d7d11c4d726bf16e30de8de4874cfbfec00b1c28043190e888b4e3b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 490772f30d18037ad305217bfa7ae5ddce828a8decdecac855c8666a52beb92e23786f1057f3f3528d93005eebe07d15cc550479c7116c8434e6b2f275248125
|
|
7
|
+
data.tar.gz: 92450dc3df3f69e664e1b95e98c17814a3ad9e1c700c5b73741703abb54fbc96a598f0e5cc4783331355f8fb153dbe08ef41bb098327520e5851724a6a103355
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
synvert-core (1.
|
|
4
|
+
synvert-core (1.32.0)
|
|
5
5
|
activesupport (< 7.0.0)
|
|
6
|
-
node_mutation (>= 1.
|
|
7
|
-
node_query (>= 1.
|
|
6
|
+
node_mutation (>= 1.23.0)
|
|
7
|
+
node_query (>= 1.15.0)
|
|
8
8
|
parallel
|
|
9
9
|
parser
|
|
10
|
-
parser_node_ext (>= 1.2.
|
|
10
|
+
parser_node_ext (>= 1.2.2)
|
|
11
|
+
prism
|
|
12
|
+
prism_ext (>= 0.2.2)
|
|
11
13
|
syntax_tree
|
|
12
|
-
syntax_tree_ext (>= 0.
|
|
14
|
+
syntax_tree_ext (>= 0.7.1)
|
|
13
15
|
|
|
14
16
|
GEM
|
|
15
17
|
remote: https://rubygems.org/
|
|
@@ -48,10 +50,10 @@ GEM
|
|
|
48
50
|
rb-inotify (~> 0.9, >= 0.9.10)
|
|
49
51
|
lumberjack (1.2.8)
|
|
50
52
|
method_source (1.0.0)
|
|
51
|
-
minitest (5.
|
|
53
|
+
minitest (5.22.2)
|
|
52
54
|
nenv (0.3.0)
|
|
53
|
-
node_mutation (1.
|
|
54
|
-
node_query (1.
|
|
55
|
+
node_mutation (1.23.0)
|
|
56
|
+
node_query (1.15.0)
|
|
55
57
|
notiffany (0.1.3)
|
|
56
58
|
nenv (~> 0.1)
|
|
57
59
|
shellany (~> 0.0)
|
|
@@ -59,9 +61,12 @@ GEM
|
|
|
59
61
|
parser (3.3.0.5)
|
|
60
62
|
ast (~> 2.4.1)
|
|
61
63
|
racc
|
|
62
|
-
parser_node_ext (1.2.
|
|
64
|
+
parser_node_ext (1.2.2)
|
|
63
65
|
parser
|
|
64
66
|
prettier_print (1.2.1)
|
|
67
|
+
prism (0.22.0)
|
|
68
|
+
prism_ext (0.2.2)
|
|
69
|
+
prism
|
|
65
70
|
pry (0.14.1)
|
|
66
71
|
coderay (~> 1.1)
|
|
67
72
|
method_source (~> 1.0)
|
|
@@ -86,12 +91,12 @@ GEM
|
|
|
86
91
|
shellany (0.0.1)
|
|
87
92
|
syntax_tree (6.2.0)
|
|
88
93
|
prettier_print (>= 1.2.0)
|
|
89
|
-
syntax_tree_ext (0.
|
|
94
|
+
syntax_tree_ext (0.7.1)
|
|
90
95
|
syntax_tree
|
|
91
96
|
thor (1.2.1)
|
|
92
97
|
tzinfo (2.0.6)
|
|
93
98
|
concurrent-ruby (~> 1.0)
|
|
94
|
-
zeitwerk (2.6.
|
|
99
|
+
zeitwerk (2.6.13)
|
|
95
100
|
|
|
96
101
|
PLATFORMS
|
|
97
102
|
ruby
|
|
@@ -4,6 +4,8 @@ require 'parser/current'
|
|
|
4
4
|
require 'parser_node_ext'
|
|
5
5
|
require 'syntax_tree'
|
|
6
6
|
require 'syntax_tree_ext'
|
|
7
|
+
require 'prism'
|
|
8
|
+
require 'prism_ext'
|
|
7
9
|
|
|
8
10
|
module Synvert::Core
|
|
9
11
|
# Instance is an execution unit, it finds specified ast nodes,
|
|
@@ -490,8 +492,11 @@ module Synvert::Core
|
|
|
490
492
|
# @param encoded_source [String] encoded source code
|
|
491
493
|
# @return [Node] ast node for file
|
|
492
494
|
def parse_code(file_path, encoded_source)
|
|
493
|
-
|
|
495
|
+
case @rewriter.parser
|
|
496
|
+
when Synvert::SYNTAX_TREE_PARSER
|
|
494
497
|
parse_code_by_syntax_tree(file_path, encoded_source)
|
|
498
|
+
when Synvert::PRISM_PARSER
|
|
499
|
+
parse_code_by_prism(file_path, encoded_source)
|
|
495
500
|
else
|
|
496
501
|
parse_code_by_parser(file_path, encoded_source)
|
|
497
502
|
end
|
|
@@ -517,7 +522,16 @@ module Synvert::Core
|
|
|
517
522
|
# @param encoded_source [String] encoded source code
|
|
518
523
|
# @return [Node] ast node for file
|
|
519
524
|
def parse_code_by_syntax_tree(_file_path, encoded_source)
|
|
520
|
-
SyntaxTree
|
|
525
|
+
SyntaxTree.parse(encoded_source).statements
|
|
526
|
+
end
|
|
527
|
+
|
|
528
|
+
# Parse code ast node by prism.
|
|
529
|
+
#
|
|
530
|
+
# @param file_path [String] file path
|
|
531
|
+
# @param encoded_source [String] encoded source code
|
|
532
|
+
# @return [Node] ast node for file
|
|
533
|
+
def parse_code_by_prism(_file_path, encoded_source)
|
|
534
|
+
Prism.parse(encoded_source).value.statements
|
|
521
535
|
end
|
|
522
536
|
end
|
|
523
537
|
end
|
|
@@ -193,11 +193,11 @@ module Synvert::Core
|
|
|
193
193
|
# configure({ parser: Synvert::PARSER_PARSER })
|
|
194
194
|
# configure({ strategy: 'allow_insert_at_same_position' })
|
|
195
195
|
# @param options [Hash]
|
|
196
|
-
# @option parser [String] Synvert::PARSER_PARSER or Synvert::
|
|
196
|
+
# @option parser [String] Synvert::PARSER_PARSER, Synvert::SYNTAX_TREE_PARSER, or Synvert::PRISM_PARSER
|
|
197
197
|
# @option strategy [String] 'allow_insert_at_same_position'
|
|
198
198
|
def configure(options)
|
|
199
199
|
@options = @options.merge(options)
|
|
200
|
-
if options[:parser] && ![Synvert::PARSER_PARSER, Synvert::SYNTAX_TREE_PARSER].include?(options[:parser])
|
|
200
|
+
if options[:parser] && ![Synvert::PARSER_PARSER, Synvert::SYNTAX_TREE_PARSER, Synvert::PRISM_PARSER].include?(options[:parser])
|
|
201
201
|
raise Errors::ParserNotSupported.new("Parser #{options[:parser]} not supported")
|
|
202
202
|
end
|
|
203
203
|
end
|
data/lib/synvert/core/version.rb
CHANGED
data/lib/synvert/core.rb
CHANGED
data/synvert-core-ruby.gemspec
CHANGED
|
@@ -20,11 +20,13 @@ Gem::Specification.new do |spec|
|
|
|
20
20
|
spec.require_paths = ["lib"]
|
|
21
21
|
|
|
22
22
|
spec.add_runtime_dependency "activesupport", "< 7.0.0"
|
|
23
|
-
spec.add_runtime_dependency "node_query", ">= 1.
|
|
24
|
-
spec.add_runtime_dependency "node_mutation", ">= 1.
|
|
23
|
+
spec.add_runtime_dependency "node_query", ">= 1.15.0"
|
|
24
|
+
spec.add_runtime_dependency "node_mutation", ">= 1.23.0"
|
|
25
25
|
spec.add_runtime_dependency "parser"
|
|
26
|
-
spec.add_runtime_dependency "parser_node_ext", ">= 1.2.
|
|
26
|
+
spec.add_runtime_dependency "parser_node_ext", ">= 1.2.2"
|
|
27
27
|
spec.add_runtime_dependency "syntax_tree"
|
|
28
|
-
spec.add_runtime_dependency "syntax_tree_ext", ">= 0.
|
|
28
|
+
spec.add_runtime_dependency "syntax_tree_ext", ">= 0.7.1"
|
|
29
|
+
spec.add_runtime_dependency "prism"
|
|
30
|
+
spec.add_runtime_dependency "prism_ext", ">= 0.2.2"
|
|
29
31
|
spec.add_runtime_dependency "parallel"
|
|
30
32
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: synvert-core
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.32.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Richard Huang
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2024-
|
|
11
|
+
date: 2024-02-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|
|
@@ -30,28 +30,28 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - ">="
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 1.
|
|
33
|
+
version: 1.15.0
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - ">="
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 1.
|
|
40
|
+
version: 1.15.0
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: node_mutation
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - ">="
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: 1.
|
|
47
|
+
version: 1.23.0
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - ">="
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: 1.
|
|
54
|
+
version: 1.23.0
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: parser
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -72,14 +72,14 @@ dependencies:
|
|
|
72
72
|
requirements:
|
|
73
73
|
- - ">="
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: 1.2.
|
|
75
|
+
version: 1.2.2
|
|
76
76
|
type: :runtime
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
80
|
- - ">="
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: 1.2.
|
|
82
|
+
version: 1.2.2
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
84
|
name: syntax_tree
|
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -100,14 +100,42 @@ dependencies:
|
|
|
100
100
|
requirements:
|
|
101
101
|
- - ">="
|
|
102
102
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: 0.
|
|
103
|
+
version: 0.7.1
|
|
104
104
|
type: :runtime
|
|
105
105
|
prerelease: false
|
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
107
|
requirements:
|
|
108
108
|
- - ">="
|
|
109
109
|
- !ruby/object:Gem::Version
|
|
110
|
-
version: 0.
|
|
110
|
+
version: 0.7.1
|
|
111
|
+
- !ruby/object:Gem::Dependency
|
|
112
|
+
name: prism
|
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
|
114
|
+
requirements:
|
|
115
|
+
- - ">="
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
version: '0'
|
|
118
|
+
type: :runtime
|
|
119
|
+
prerelease: false
|
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
+
requirements:
|
|
122
|
+
- - ">="
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: '0'
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: prism_ext
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - ">="
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: 0.2.2
|
|
132
|
+
type: :runtime
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - ">="
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: 0.2.2
|
|
111
139
|
- !ruby/object:Gem::Dependency
|
|
112
140
|
name: parallel
|
|
113
141
|
requirement: !ruby/object:Gem::Requirement
|