rubinius-melbourne 2.0.0.19 → 2.0.1.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.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +14 -0
  4. data/Gemfile +4 -0
  5. data/Rakefile +31 -0
  6. data/ext/rubinius/melbourne/extconf.rb +9 -2
  7. data/lib/rubinius/melbourne.rb +1 -1
  8. data/lib/rubinius/melbourne/version.rb +1 -1
  9. data/rubinius-melbourne.gemspec +5 -3
  10. data/spec/alias_spec.rb +40 -0
  11. data/spec/and_spec.rb +19 -0
  12. data/spec/array_spec.rb +81 -0
  13. data/spec/attrasgn_spec.rb +112 -0
  14. data/spec/back_ref_spec.rb +11 -0
  15. data/spec/call_spec.rb +298 -0
  16. data/spec/case_spec.rb +234 -0
  17. data/spec/cdecl_spec.rb +45 -0
  18. data/spec/class_spec.rb +83 -0
  19. data/spec/colon2_spec.rb +7 -0
  20. data/spec/colon3_spec.rb +7 -0
  21. data/spec/const_spec.rb +7 -0
  22. data/spec/custom/matchers/parse_as.rb +27 -0
  23. data/spec/custom/runner/relates.rb +83 -0
  24. data/spec/cvar_spec.rb +29 -0
  25. data/spec/cvasgn_spec.rb +30 -0
  26. data/spec/cvdecl_spec.rb +12 -0
  27. data/spec/default.mspec +4 -0
  28. data/spec/defined_spec.rb +117 -0
  29. data/spec/defn_spec.rb +554 -0
  30. data/spec/defs_spec.rb +81 -0
  31. data/spec/dot2_spec.rb +7 -0
  32. data/spec/dot3_spec.rb +7 -0
  33. data/spec/dregx_spec.rb +52 -0
  34. data/spec/dstr_spec.rb +169 -0
  35. data/spec/dsym_spec.rb +10 -0
  36. data/spec/dxstr_spec.rb +11 -0
  37. data/spec/ensure_spec.rb +117 -0
  38. data/spec/false_spec.rb +7 -0
  39. data/spec/flip2_spec.rb +43 -0
  40. data/spec/flip3_spec.rb +27 -0
  41. data/spec/for_spec.rb +61 -0
  42. data/spec/gasgn_spec.rb +13 -0
  43. data/spec/gvar_spec.rb +25 -0
  44. data/spec/hash_spec.rb +31 -0
  45. data/spec/iasgn_spec.rb +25 -0
  46. data/spec/if_spec.rb +131 -0
  47. data/spec/iter_spec.rb +613 -0
  48. data/spec/lasgn_spec.rb +377 -0
  49. data/spec/lit_spec.rb +61 -0
  50. data/spec/masgn_spec.rb +406 -0
  51. data/spec/match2_spec.rb +19 -0
  52. data/spec/match3_spec.rb +24 -0
  53. data/spec/match_spec.rb +7 -0
  54. data/spec/module_spec.rb +47 -0
  55. data/spec/nil_spec.rb +7 -0
  56. data/spec/not_spec.rb +17 -0
  57. data/spec/nth_ref_spec.rb +7 -0
  58. data/spec/op_asgn_spec.rb +246 -0
  59. data/spec/or_spec.rb +35 -0
  60. data/spec/postexe_spec.rb +7 -0
  61. data/spec/regex_spec.rb +28 -0
  62. data/spec/rescue_spec.rb +359 -0
  63. data/spec/return_spec.rb +57 -0
  64. data/spec/sclass_spec.rb +55 -0
  65. data/spec/str_spec.rb +97 -0
  66. data/spec/super_spec.rb +93 -0
  67. data/spec/true_spec.rb +7 -0
  68. data/spec/undef_spec.rb +98 -0
  69. data/spec/until_spec.rb +140 -0
  70. data/spec/valias_spec.rb +7 -0
  71. data/spec/while_spec.rb +192 -0
  72. data/spec/xstr_spec.rb +7 -0
  73. data/spec/yield_spec.rb +65 -0
  74. data/spec/zsuper_spec.rb +45 -0
  75. metadata +171 -13
@@ -0,0 +1,192 @@
1
+ describe "A While node" do
2
+ pre_while_sexp = [
3
+ :while,
4
+ [:call, nil, :a, [:arglist]],
5
+ [:call, [:call, nil, :b, [:arglist]], :+, [:arglist, [:lit, 1]]],
6
+ true
7
+ ]
8
+
9
+ relates <<-ruby do
10
+ while a
11
+ b + 1
12
+ end
13
+ ruby
14
+
15
+ parse do
16
+ pre_while_sexp
17
+ end
18
+ end
19
+
20
+ relates <<-ruby do
21
+ a = x
22
+ while a.b
23
+ 1
24
+ end
25
+ ruby
26
+
27
+ parse do
28
+ [:block,
29
+ [:lasgn, :a, [:call, nil, :x, [:arglist]]],
30
+ [:while, [:call, [:lvar, :a], :b, [:arglist]], [:lit, 1], true]]
31
+ end
32
+ end
33
+
34
+ relates "b + 1 while a" do
35
+ parse do
36
+ pre_while_sexp
37
+ end
38
+ end
39
+
40
+ relates <<-ruby do
41
+ until not a
42
+ b + 1
43
+ end
44
+ ruby
45
+
46
+ parse do
47
+ pre_while_sexp
48
+ end
49
+ end
50
+
51
+ relates "b + 1 until not a" do
52
+ parse do
53
+ pre_while_sexp
54
+ end
55
+ end
56
+
57
+ post_while_sexp = [
58
+ :while,
59
+ [:call, nil, :a, [:arglist]],
60
+ [:call, [:call, nil, :b, [:arglist]], :+, [:arglist, [:lit, 1]]],
61
+ false
62
+ ]
63
+
64
+ post_while = lambda do |g|
65
+ top = g.new_label
66
+ rdo = g.new_label
67
+ brk = g.new_label
68
+ bottom = g.new_label
69
+
70
+ g.push_modifiers
71
+
72
+ top.set!
73
+
74
+ g.push :self
75
+ g.send :b, 0, true
76
+ g.push 1
77
+ g.send :+, 1, false
78
+ g.pop
79
+
80
+ rdo.set!
81
+
82
+ g.push :self
83
+ g.send :a, 0, true
84
+ g.gif bottom
85
+
86
+ g.check_interrupts
87
+ g.goto top
88
+
89
+ bottom.set!
90
+ g.push :nil
91
+
92
+ brk.set!
93
+ g.pop_modifiers
94
+ end
95
+
96
+ relates <<-ruby do
97
+ begin
98
+ b + 1
99
+ end while a
100
+ ruby
101
+
102
+ parse do
103
+ post_while_sexp
104
+ end
105
+ end
106
+
107
+ relates <<-ruby do
108
+ begin
109
+ b + 1
110
+ end until not a
111
+ ruby
112
+
113
+ parse do
114
+ post_while_sexp
115
+ end
116
+ end
117
+
118
+ nil_condition_sexp = [:while, [:nil], [:call, nil, :a, [:arglist]], true]
119
+
120
+ relates "a while ()" do
121
+ parse do
122
+ nil_condition_sexp
123
+ end
124
+ end
125
+
126
+ relates <<-ruby do
127
+ while ()
128
+ a
129
+ end
130
+ ruby
131
+
132
+ parse do
133
+ nil_condition_sexp
134
+ end
135
+ end
136
+
137
+ relates "a until not ()" do
138
+
139
+ parse do
140
+ nil_condition_sexp
141
+ end
142
+ end
143
+
144
+ relates <<-ruby do
145
+ until not ()
146
+ a
147
+ end
148
+ ruby
149
+
150
+ parse do
151
+ nil_condition_sexp
152
+ end
153
+ end
154
+
155
+ relates <<-ruby do
156
+ while 1
157
+ 2
158
+ break :brk
159
+ end
160
+ ruby
161
+
162
+ # TODO
163
+ end
164
+
165
+ relates <<-ruby do
166
+ while 1
167
+ begin
168
+ 2
169
+ break :brk
170
+ rescue
171
+ 3
172
+ end
173
+ end
174
+ ruby
175
+
176
+ # TODO
177
+ end
178
+
179
+ relates <<-ruby do
180
+ while 1
181
+ begin
182
+ 2
183
+ rescue
184
+ 3
185
+ break :brk
186
+ end
187
+ end
188
+ ruby
189
+
190
+ # TODO
191
+ end
192
+ end
data/spec/xstr_spec.rb ADDED
@@ -0,0 +1,7 @@
1
+ describe "A Xstr node" do
2
+ relates "`touch 5`" do
3
+ parse do
4
+ [:xstr, "touch 5"]
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,65 @@
1
+ describe "A Yield node" do
2
+ relates "yield(42, 24)" do
3
+ parse do
4
+ [:yield, [:lit, 42], [:lit, 24]]
5
+ end
6
+ end
7
+
8
+ relates "yield([42, 24])" do
9
+ parse do
10
+ [:yield, [:array, [:lit, 42], [:lit, 24]]]
11
+ end
12
+ end
13
+
14
+ relates "yield([42])" do
15
+ parse do
16
+ [:yield, [:array, [:lit, 42]]]
17
+ end
18
+ end
19
+
20
+ relates "yield([])" do
21
+ parse do
22
+ [:yield, [:array]]
23
+ end
24
+ end
25
+
26
+ relates "yield(42)" do
27
+ parse do
28
+ [:yield, [:lit, 42]]
29
+ end
30
+ end
31
+
32
+ relates "yield" do
33
+ parse do
34
+ [:yield]
35
+ end
36
+ end
37
+
38
+ relates "yield([*[]])" do
39
+ # TODO
40
+ end
41
+
42
+ relates "yield([*[1]])" do
43
+ parse do
44
+ [:yield, [:array, [:splat, [:array, [:lit, 1]]]]]
45
+ end
46
+ end
47
+
48
+ relates "yield([*[1, 2]])" do
49
+ parse do
50
+ [:yield, [:array, [:splat, [:array, [:lit, 1], [:lit, 2]]]]]
51
+ end
52
+ end
53
+
54
+ relates "yield(*[1])" do
55
+ parse do
56
+ [:yield, [:splat, [:array, [:lit, 1]]]]
57
+ end
58
+ end
59
+
60
+ relates "yield(*[1, 2])" do
61
+ parse do
62
+ [:yield, [:splat, [:array, [:lit, 1], [:lit, 2]]]]
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,45 @@
1
+ describe "A Zsuper node" do
2
+ relates <<-ruby do
3
+ def x
4
+ super
5
+ end
6
+ ruby
7
+
8
+ parse do
9
+ [:defn, :x, [:args], [:scope, [:block, [:zsuper]]]]
10
+ end
11
+ end
12
+
13
+ relates <<-ruby do
14
+ def x(a)
15
+ super
16
+ end
17
+ ruby
18
+
19
+ parse do
20
+ [:defn, :x, [:args, :a], [:scope, [:block, [:zsuper]]]]
21
+ end
22
+ end
23
+
24
+ relates <<-ruby do
25
+ def x(&block)
26
+ super
27
+ end
28
+ ruby
29
+
30
+ parse do
31
+ [:defn, :x, [:args, :"&block"], [:scope, [:block, [:zsuper]]]]
32
+ end
33
+ end
34
+
35
+ relates <<-ruby do
36
+ def x(a, *as)
37
+ super
38
+ end
39
+ ruby
40
+
41
+ parse do
42
+ [:defn, :x, [:args, :a, :"*as"], [:scope, [:block, [:zsuper]]]]
43
+ end
44
+ end
45
+ end
metadata CHANGED
@@ -1,55 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubinius-melbourne
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.19
4
+ version: 2.0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Shirai
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-22 00:00:00.000000000 Z
11
+ date: 2013-12-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubinius-toolset
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rubinius-toolset
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '2.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '2.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: redcard
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '1.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '1.0'
27
55
  - !ruby/object:Gem::Dependency
28
56
  name: mspec
29
57
  requirement: !ruby/object:Gem::Requirement
30
58
  requirements:
31
- - - "~>"
59
+ - - ~>
32
60
  - !ruby/object:Gem::Version
33
61
  version: '1.5'
34
62
  type: :development
35
63
  prerelease: false
36
64
  version_requirements: !ruby/object:Gem::Requirement
37
65
  requirements:
38
- - - "~>"
66
+ - - ~>
39
67
  - !ruby/object:Gem::Version
40
68
  version: '1.5'
41
69
  - !ruby/object:Gem::Dependency
42
70
  name: rake
43
71
  requirement: !ruby/object:Gem::Requirement
44
72
  requirements:
45
- - - "~>"
73
+ - - ~>
46
74
  - !ruby/object:Gem::Version
47
75
  version: '10.0'
48
76
  type: :development
49
77
  prerelease: false
50
78
  version_requirements: !ruby/object:Gem::Requirement
51
79
  requirements:
52
- - - "~>"
80
+ - - ~>
53
81
  - !ruby/object:Gem::Version
54
82
  version: '10.0'
55
83
  description: Ruby parser extracted from MRI.
@@ -60,7 +88,8 @@ extensions:
60
88
  - ext/rubinius/melbourne/extconf.rb
61
89
  extra_rdoc_files: []
62
90
  files:
63
- - ".gitignore"
91
+ - .gitignore
92
+ - .travis.yml
64
93
  - Gemfile
65
94
  - LICENSE
66
95
  - README.md
@@ -88,6 +117,71 @@ files:
88
117
  - lib/rubinius/melbourne.rb
89
118
  - lib/rubinius/melbourne/version.rb
90
119
  - rubinius-melbourne.gemspec
120
+ - spec/alias_spec.rb
121
+ - spec/and_spec.rb
122
+ - spec/array_spec.rb
123
+ - spec/attrasgn_spec.rb
124
+ - spec/back_ref_spec.rb
125
+ - spec/call_spec.rb
126
+ - spec/case_spec.rb
127
+ - spec/cdecl_spec.rb
128
+ - spec/class_spec.rb
129
+ - spec/colon2_spec.rb
130
+ - spec/colon3_spec.rb
131
+ - spec/const_spec.rb
132
+ - spec/custom/matchers/parse_as.rb
133
+ - spec/custom/runner/relates.rb
134
+ - spec/cvar_spec.rb
135
+ - spec/cvasgn_spec.rb
136
+ - spec/cvdecl_spec.rb
137
+ - spec/default.mspec
138
+ - spec/defined_spec.rb
139
+ - spec/defn_spec.rb
140
+ - spec/defs_spec.rb
141
+ - spec/dot2_spec.rb
142
+ - spec/dot3_spec.rb
143
+ - spec/dregx_spec.rb
144
+ - spec/dstr_spec.rb
145
+ - spec/dsym_spec.rb
146
+ - spec/dxstr_spec.rb
147
+ - spec/ensure_spec.rb
148
+ - spec/false_spec.rb
149
+ - spec/flip2_spec.rb
150
+ - spec/flip3_spec.rb
151
+ - spec/for_spec.rb
152
+ - spec/gasgn_spec.rb
153
+ - spec/gvar_spec.rb
154
+ - spec/hash_spec.rb
155
+ - spec/iasgn_spec.rb
156
+ - spec/if_spec.rb
157
+ - spec/iter_spec.rb
158
+ - spec/lasgn_spec.rb
159
+ - spec/lit_spec.rb
160
+ - spec/masgn_spec.rb
161
+ - spec/match2_spec.rb
162
+ - spec/match3_spec.rb
163
+ - spec/match_spec.rb
164
+ - spec/module_spec.rb
165
+ - spec/nil_spec.rb
166
+ - spec/not_spec.rb
167
+ - spec/nth_ref_spec.rb
168
+ - spec/op_asgn_spec.rb
169
+ - spec/or_spec.rb
170
+ - spec/postexe_spec.rb
171
+ - spec/regex_spec.rb
172
+ - spec/rescue_spec.rb
173
+ - spec/return_spec.rb
174
+ - spec/sclass_spec.rb
175
+ - spec/str_spec.rb
176
+ - spec/super_spec.rb
177
+ - spec/true_spec.rb
178
+ - spec/undef_spec.rb
179
+ - spec/until_spec.rb
180
+ - spec/valias_spec.rb
181
+ - spec/while_spec.rb
182
+ - spec/xstr_spec.rb
183
+ - spec/yield_spec.rb
184
+ - spec/zsuper_spec.rb
91
185
  homepage: https://github.com/rubinius/rubinius-melbourne
92
186
  licenses:
93
187
  - BSD
@@ -98,12 +192,12 @@ require_paths:
98
192
  - lib
99
193
  required_ruby_version: !ruby/object:Gem::Requirement
100
194
  requirements:
101
- - - ">="
195
+ - - '>='
102
196
  - !ruby/object:Gem::Version
103
197
  version: '0'
104
198
  required_rubygems_version: !ruby/object:Gem::Requirement
105
199
  requirements:
106
- - - ">="
200
+ - - '>='
107
201
  - !ruby/object:Gem::Version
108
202
  version: '0'
109
203
  requirements: []
@@ -112,5 +206,69 @@ rubygems_version: 2.0.7
112
206
  signing_key:
113
207
  specification_version: 4
114
208
  summary: Rubinius Ruby Parser.
115
- test_files: []
116
- has_rdoc:
209
+ test_files:
210
+ - spec/alias_spec.rb
211
+ - spec/and_spec.rb
212
+ - spec/array_spec.rb
213
+ - spec/attrasgn_spec.rb
214
+ - spec/back_ref_spec.rb
215
+ - spec/call_spec.rb
216
+ - spec/case_spec.rb
217
+ - spec/cdecl_spec.rb
218
+ - spec/class_spec.rb
219
+ - spec/colon2_spec.rb
220
+ - spec/colon3_spec.rb
221
+ - spec/const_spec.rb
222
+ - spec/custom/matchers/parse_as.rb
223
+ - spec/custom/runner/relates.rb
224
+ - spec/cvar_spec.rb
225
+ - spec/cvasgn_spec.rb
226
+ - spec/cvdecl_spec.rb
227
+ - spec/default.mspec
228
+ - spec/defined_spec.rb
229
+ - spec/defn_spec.rb
230
+ - spec/defs_spec.rb
231
+ - spec/dot2_spec.rb
232
+ - spec/dot3_spec.rb
233
+ - spec/dregx_spec.rb
234
+ - spec/dstr_spec.rb
235
+ - spec/dsym_spec.rb
236
+ - spec/dxstr_spec.rb
237
+ - spec/ensure_spec.rb
238
+ - spec/false_spec.rb
239
+ - spec/flip2_spec.rb
240
+ - spec/flip3_spec.rb
241
+ - spec/for_spec.rb
242
+ - spec/gasgn_spec.rb
243
+ - spec/gvar_spec.rb
244
+ - spec/hash_spec.rb
245
+ - spec/iasgn_spec.rb
246
+ - spec/if_spec.rb
247
+ - spec/iter_spec.rb
248
+ - spec/lasgn_spec.rb
249
+ - spec/lit_spec.rb
250
+ - spec/masgn_spec.rb
251
+ - spec/match2_spec.rb
252
+ - spec/match3_spec.rb
253
+ - spec/match_spec.rb
254
+ - spec/module_spec.rb
255
+ - spec/nil_spec.rb
256
+ - spec/not_spec.rb
257
+ - spec/nth_ref_spec.rb
258
+ - spec/op_asgn_spec.rb
259
+ - spec/or_spec.rb
260
+ - spec/postexe_spec.rb
261
+ - spec/regex_spec.rb
262
+ - spec/rescue_spec.rb
263
+ - spec/return_spec.rb
264
+ - spec/sclass_spec.rb
265
+ - spec/str_spec.rb
266
+ - spec/super_spec.rb
267
+ - spec/true_spec.rb
268
+ - spec/undef_spec.rb
269
+ - spec/until_spec.rb
270
+ - spec/valias_spec.rb
271
+ - spec/while_spec.rb
272
+ - spec/xstr_spec.rb
273
+ - spec/yield_spec.rb
274
+ - spec/zsuper_spec.rb