ruby_parser 3.0.0 → 3.19.1

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.
Files changed (58) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +0 -0
  3. data/.autotest +36 -19
  4. data/History.rdoc +1297 -0
  5. data/Manifest.txt +35 -7
  6. data/{README.txt → README.rdoc} +44 -14
  7. data/Rakefile +308 -110
  8. data/bin/ruby_parse +3 -1
  9. data/bin/ruby_parse_extract_error +36 -16
  10. data/compare/normalize.rb +218 -0
  11. data/debugging.md +190 -0
  12. data/gauntlet.md +107 -0
  13. data/lib/.document +1 -0
  14. data/lib/rp_extensions.rb +53 -0
  15. data/lib/rp_stringscanner.rb +33 -0
  16. data/lib/ruby20_parser.rb +10973 -0
  17. data/lib/ruby20_parser.y +2683 -0
  18. data/lib/ruby21_parser.rb +10980 -0
  19. data/lib/ruby21_parser.y +2700 -0
  20. data/lib/ruby22_parser.rb +11123 -0
  21. data/lib/ruby22_parser.y +2711 -0
  22. data/lib/ruby23_parser.rb +11132 -0
  23. data/lib/ruby23_parser.y +2713 -0
  24. data/lib/ruby24_parser.rb +11231 -0
  25. data/lib/ruby24_parser.y +2721 -0
  26. data/lib/ruby25_parser.rb +11231 -0
  27. data/lib/ruby25_parser.y +2721 -0
  28. data/lib/ruby26_parser.rb +11253 -0
  29. data/lib/ruby26_parser.y +2736 -0
  30. data/lib/ruby27_parser.rb +12980 -0
  31. data/lib/ruby27_parser.y +3324 -0
  32. data/lib/ruby30_parser.rb +13242 -0
  33. data/lib/ruby30_parser.y +3447 -0
  34. data/lib/ruby31_parser.rb +13622 -0
  35. data/lib/ruby31_parser.y +3481 -0
  36. data/lib/ruby3_parser.yy +3536 -0
  37. data/lib/ruby_lexer.rb +933 -1232
  38. data/lib/ruby_lexer.rex +185 -0
  39. data/lib/ruby_lexer.rex.rb +399 -0
  40. data/lib/ruby_lexer_strings.rb +638 -0
  41. data/lib/ruby_parser.rb +97 -3
  42. data/lib/ruby_parser.yy +3465 -0
  43. data/lib/ruby_parser_extras.rb +1216 -687
  44. data/test/test_ruby_lexer.rb +2249 -1092
  45. data/test/test_ruby_parser.rb +5156 -975
  46. data/test/test_ruby_parser_extras.rb +47 -77
  47. data/tools/munge.rb +250 -0
  48. data/tools/ripper.rb +44 -0
  49. data.tar.gz.sig +1 -1
  50. metadata +200 -155
  51. metadata.gz.sig +0 -0
  52. data/.gemtest +0 -0
  53. data/History.txt +0 -482
  54. data/lib/gauntlet_rubyparser.rb +0 -120
  55. data/lib/ruby18_parser.rb +0 -5747
  56. data/lib/ruby18_parser.y +0 -1873
  57. data/lib/ruby19_parser.rb +0 -6110
  58. data/lib/ruby19_parser.y +0 -2078
metadata CHANGED
@@ -1,24 +1,18 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: ruby_parser
3
- version: !ruby/object:Gem::Version
4
- hash: 7
5
- prerelease:
6
- segments:
7
- - 3
8
- - 0
9
- - 0
10
- version: 3.0.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.19.1
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Ryan Davis
14
- autorequire:
8
+ autorequire:
15
9
  bindir: bin
16
- cert_chain:
10
+ cert_chain:
17
11
  - |
18
12
  -----BEGIN CERTIFICATE-----
19
- MIIDPjCCAiagAwIBAgIBADANBgkqhkiG9w0BAQUFADBFMRMwEQYDVQQDDApyeWFu
13
+ MIIDPjCCAiagAwIBAgIBBjANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
20
14
  ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
21
- GRYDY29tMB4XDTA5MDMwNjE4NTMxNVoXDTEwMDMwNjE4NTMxNVowRTETMBEGA1UE
15
+ GRYDY29tMB4XDTIxMTIyMzIzMTkwNFoXDTIyMTIyMzIzMTkwNFowRTETMBEGA1UE
22
16
  AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
23
17
  JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
24
18
  b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
@@ -27,180 +21,231 @@ cert_chain:
27
21
  GiadM9GHRaDiaxuX0cIUBj19T01mVE2iymf9I6bEsiayK/n6QujtyCbTWsAS9Rqt
28
22
  qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
29
23
  gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
30
- HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBBQUAA4IB
31
- AQAY59gYvDxqSqgC92nAP9P8dnGgfZgLxP237xS6XxFGJSghdz/nI6pusfCWKM8m
32
- vzjjH2wUMSSf3tNudQ3rCGLf2epkcU13/rguI88wO6MrE0wi4ZqLQX+eZQFskJb/
33
- w6x9W1ur8eR01s397LSMexySDBrJOh34cm2AlfKr/jokKCTwcM0OvVZnAutaovC0
34
- l1SVZ0ecg88bsWHA0Yhh7NFxK1utWoIhtB6AFC/+trM0FQEB/jZkIS8SaNzn96Rl
35
- n0sZEf77FLf5peR8TP/PtmIg7Cyqz23sLM4mCOoTGIy5OcZ8TdyiyINUHtb5ej/T
36
- FBHgymkyj/AOSqKRIpXPhjC6
24
+ HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBCwUAA4IB
25
+ AQCKB5jfsuSnKb+t/Wrh3UpdkmX7TrEsjVmERC0pPqzQ5GQJgmEXDD7oMgaKXaAq
26
+ x2m+KSZDrqk7c8uho5OX6YMqg4KdxehfSLqqTZGoeV78qwf/jpPQZKTf+W9gUSJh
27
+ zsWpo4K50MP+QtdSbKXZwjAafpQ8hK0MnnZ/aeCsW9ov5vdXpYbf3dpg6ADXRGE7
28
+ lQY2y1tJ5/chqu6h7dQmnm2ABUqx9O+JcN9hbCYoA5i/EeubUEtFIh2w3SpO6YfB
29
+ JFmxn4h9YO/pVdB962BdBNNDia0kgIjI3ENnkLq0dKpYU3+F3KhEuTksLO0L6X/V
30
+ YsuyUzsMz6GQA4khyaMgKNSD
37
31
  -----END CERTIFICATE-----
38
-
39
- date: 2012-11-02 00:00:00 Z
40
- dependencies:
41
- - !ruby/object:Gem::Dependency
32
+ date: 2022-04-06 00:00:00.000000000 Z
33
+ dependencies:
34
+ - !ruby/object:Gem::Dependency
42
35
  name: sexp_processor
43
- prerelease: false
44
- requirement: &id001 !ruby/object:Gem::Requirement
45
- none: false
46
- requirements:
47
- - - ~>
48
- - !ruby/object:Gem::Version
49
- hash: 25
50
- segments:
51
- - 4
52
- - 1
53
- version: "4.1"
36
+ requirement: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '4.16'
54
41
  type: :runtime
55
- version_requirements: *id001
56
- - !ruby/object:Gem::Dependency
57
- name: minitest
58
42
  prerelease: false
59
- requirement: &id002 !ruby/object:Gem::Requirement
60
- none: false
61
- requirements:
62
- - - ~>
63
- - !ruby/object:Gem::Version
64
- hash: 25
65
- segments:
66
- - 4
67
- - 1
68
- version: "4.1"
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '4.16'
48
+ - !ruby/object:Gem::Dependency
49
+ name: rake
50
+ requirement: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '10'
55
+ - - "<"
56
+ - !ruby/object:Gem::Version
57
+ version: '15'
69
58
  type: :development
70
- version_requirements: *id002
71
- - !ruby/object:Gem::Dependency
72
- name: rdoc
73
59
  prerelease: false
74
- requirement: &id003 !ruby/object:Gem::Requirement
75
- none: false
76
- requirements:
77
- - - ~>
78
- - !ruby/object:Gem::Version
79
- hash: 19
80
- segments:
81
- - 3
82
- - 10
83
- version: "3.10"
60
+ version_requirements: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: '10'
65
+ - - "<"
66
+ - !ruby/object:Gem::Version
67
+ version: '15'
68
+ - !ruby/object:Gem::Dependency
69
+ name: oedipus_lex
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '2.6'
84
75
  type: :development
85
- version_requirements: *id003
86
- - !ruby/object:Gem::Dependency
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '2.6'
82
+ - !ruby/object:Gem::Dependency
87
83
  name: racc
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '1.5'
89
+ type: :development
88
90
  prerelease: false
89
- requirement: &id004 !ruby/object:Gem::Requirement
90
- none: false
91
- requirements:
92
- - - ~>
93
- - !ruby/object:Gem::Version
94
- hash: 11
95
- segments:
96
- - 1
97
- - 4
98
- - 6
99
- version: 1.4.6
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '1.5'
96
+ - !ruby/object:Gem::Dependency
97
+ name: rdoc
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '4.0'
103
+ - - "<"
104
+ - !ruby/object:Gem::Version
105
+ version: '7'
100
106
  type: :development
101
- version_requirements: *id004
102
- - !ruby/object:Gem::Dependency
103
- name: hoe
104
107
  prerelease: false
105
- requirement: &id005 !ruby/object:Gem::Requirement
106
- none: false
107
- requirements:
108
- - - ~>
109
- - !ruby/object:Gem::Version
110
- hash: 5
111
- segments:
112
- - 3
113
- - 1
114
- version: "3.1"
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: '4.0'
113
+ - - "<"
114
+ - !ruby/object:Gem::Version
115
+ version: '7'
116
+ - !ruby/object:Gem::Dependency
117
+ name: hoe
118
+ requirement: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: '3.23'
115
123
  type: :development
116
- version_requirements: *id005
124
+ prerelease: false
125
+ version_requirements: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - "~>"
128
+ - !ruby/object:Gem::Version
129
+ version: '3.23'
117
130
  description: |-
118
131
  ruby_parser (RP) is a ruby parser written in pure ruby (utilizing
119
- racc--which does by default use a C extension). RP's output is
120
- the same as ParseTree's output: s-expressions using ruby's arrays and
121
- base types.
122
-
132
+ racc--which does by default use a C extension). It outputs
133
+ s-expressions which can be manipulated and converted back to ruby via
134
+ the ruby2ruby gem.
135
+
123
136
  As an example:
124
-
125
- def conditional1 arg1
126
- return 1 if arg1 == 0
127
- return 0
128
- end
129
-
137
+
138
+ def conditional1 arg1
139
+ return 1 if arg1 == 0
140
+ return 0
141
+ end
142
+
130
143
  becomes:
131
-
132
- s(:defn, :conditional1, s(:args, :arg1),
133
- s(:if,
134
- s(:call, s(:lvar, :arg1), :==, s(:lit, 0)),
135
- s(:return, s(:lit, 1)),
136
- nil),
137
- s(:return, s(:lit, 0)))
138
- email:
144
+
145
+ s(:defn, :conditional1, s(:args, :arg1),
146
+ s(:if,
147
+ s(:call, s(:lvar, :arg1), :==, s(:lit, 0)),
148
+ s(:return, s(:lit, 1)),
149
+ nil),
150
+ s(:return, s(:lit, 0)))
151
+
152
+ Tested against 801,039 files from the latest of all rubygems (as of 2013-05):
153
+
154
+ * 1.8 parser is at 99.9739% accuracy, 3.651 sigma
155
+ * 1.9 parser is at 99.9940% accuracy, 4.013 sigma
156
+ * 2.0 parser is at 99.9939% accuracy, 4.008 sigma
157
+ * 2.6 parser is at 99.9972% accuracy, 4.191 sigma
158
+ * 3.0 parser has a 100% parse rate.
159
+ * Tested against 2,672,412 unique ruby files across 167k gems.
160
+ * As do all the others now, basically.
161
+ email:
139
162
  - ryand-ruby@zenspider.com
140
- executables:
163
+ executables:
141
164
  - ruby_parse
142
165
  - ruby_parse_extract_error
143
166
  extensions: []
144
-
145
- extra_rdoc_files:
146
- - History.txt
167
+ extra_rdoc_files:
168
+ - History.rdoc
147
169
  - Manifest.txt
148
- - README.txt
149
- files:
150
- - .autotest
151
- - History.txt
170
+ - README.rdoc
171
+ - debugging.md
172
+ - gauntlet.md
173
+ files:
174
+ - ".autotest"
175
+ - History.rdoc
152
176
  - Manifest.txt
153
- - README.txt
177
+ - README.rdoc
154
178
  - Rakefile
155
179
  - bin/ruby_parse
156
180
  - bin/ruby_parse_extract_error
157
- - lib/gauntlet_rubyparser.rb
158
- - lib/ruby18_parser.rb
159
- - lib/ruby18_parser.y
160
- - lib/ruby19_parser.rb
161
- - lib/ruby19_parser.y
181
+ - compare/normalize.rb
182
+ - debugging.md
183
+ - gauntlet.md
184
+ - lib/.document
185
+ - lib/rp_extensions.rb
186
+ - lib/rp_stringscanner.rb
187
+ - lib/ruby20_parser.rb
188
+ - lib/ruby20_parser.y
189
+ - lib/ruby21_parser.rb
190
+ - lib/ruby21_parser.y
191
+ - lib/ruby22_parser.rb
192
+ - lib/ruby22_parser.y
193
+ - lib/ruby23_parser.rb
194
+ - lib/ruby23_parser.y
195
+ - lib/ruby24_parser.rb
196
+ - lib/ruby24_parser.y
197
+ - lib/ruby25_parser.rb
198
+ - lib/ruby25_parser.y
199
+ - lib/ruby26_parser.rb
200
+ - lib/ruby26_parser.y
201
+ - lib/ruby27_parser.rb
202
+ - lib/ruby27_parser.y
203
+ - lib/ruby30_parser.rb
204
+ - lib/ruby30_parser.y
205
+ - lib/ruby31_parser.rb
206
+ - lib/ruby31_parser.y
207
+ - lib/ruby3_parser.yy
162
208
  - lib/ruby_lexer.rb
209
+ - lib/ruby_lexer.rex
210
+ - lib/ruby_lexer.rex.rb
211
+ - lib/ruby_lexer_strings.rb
163
212
  - lib/ruby_parser.rb
213
+ - lib/ruby_parser.yy
164
214
  - lib/ruby_parser_extras.rb
165
215
  - test/test_ruby_lexer.rb
166
216
  - test/test_ruby_parser.rb
167
217
  - test/test_ruby_parser_extras.rb
168
- - .gemtest
218
+ - tools/munge.rb
219
+ - tools/ripper.rb
169
220
  homepage: https://github.com/seattlerb/ruby_parser
170
- licenses: []
171
-
172
- post_install_message:
173
- rdoc_options:
174
- - --main
175
- - README.txt
176
- require_paths:
221
+ licenses:
222
+ - MIT
223
+ metadata:
224
+ homepage_uri: https://github.com/seattlerb/ruby_parser
225
+ bug_tracker_uri: https://github.com/seattlerb/ruby_parser/issues
226
+ post_install_message:
227
+ rdoc_options:
228
+ - "--main"
229
+ - README.rdoc
230
+ require_paths:
177
231
  - lib
178
- required_ruby_version: !ruby/object:Gem::Requirement
179
- none: false
180
- requirements:
232
+ required_ruby_version: !ruby/object:Gem::Requirement
233
+ requirements:
181
234
  - - ">="
182
- - !ruby/object:Gem::Version
183
- hash: 3
184
- segments:
185
- - 0
186
- version: "0"
187
- required_rubygems_version: !ruby/object:Gem::Requirement
188
- none: false
189
- requirements:
235
+ - !ruby/object:Gem::Version
236
+ version: '2.1'
237
+ - - "<"
238
+ - !ruby/object:Gem::Version
239
+ version: '4'
240
+ required_rubygems_version: !ruby/object:Gem::Requirement
241
+ requirements:
190
242
  - - ">="
191
- - !ruby/object:Gem::Version
192
- hash: 3
193
- segments:
194
- - 0
195
- version: "0"
243
+ - !ruby/object:Gem::Version
244
+ version: '0'
196
245
  requirements: []
197
-
198
- rubyforge_project: parsetree
199
- rubygems_version: 1.8.24
200
- signing_key:
201
- specification_version: 3
202
- summary: ruby_parser (RP) is a ruby parser written in pure ruby (utilizing racc--which does by default use a C extension)
203
- test_files:
204
- - test/test_ruby_lexer.rb
205
- - test/test_ruby_parser.rb
206
- - test/test_ruby_parser_extras.rb
246
+ rubygems_version: 3.3.3
247
+ signing_key:
248
+ specification_version: 4
249
+ summary: ruby_parser (RP) is a ruby parser written in pure ruby (utilizing racc--which
250
+ does by default use a C extension)
251
+ test_files: []
metadata.gz.sig CHANGED
Binary file
data/.gemtest DELETED
File without changes