trxl 0.1.10 → 0.1.11
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.
- data/VERSION +1 -1
- data/lib/trxl/trxl_grammar.rb +1 -1
- data/lib/trxl/trxl_grammar.treetop +1 -1
- data/spec/trxl/arithmetics_spec.rb +92 -44
- data/trxl.gemspec +10 -10
- metadata +5 -5
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.11
|
data/lib/trxl/trxl_grammar.rb
CHANGED
@@ -3382,7 +3382,7 @@ module Trxl
|
|
3382
3382
|
def eval(env = Environment.new)
|
3383
3383
|
# left associative evaluation
|
3384
3384
|
multitives(env).inject(exponential.eval(env)) do |operand, next_op|
|
3385
|
-
op = (next_op[0].text_value == '/' ? operand.to_f : operand)
|
3385
|
+
op = (next_op[0].text_value == '/' ? (operand ? operand.to_f : nil) : operand)
|
3386
3386
|
next_op[0].apply(op, next_op[1])
|
3387
3387
|
end
|
3388
3388
|
end
|
@@ -518,7 +518,7 @@ grammar Trxl
|
|
518
518
|
def eval(env = Environment.new)
|
519
519
|
# left associative evaluation
|
520
520
|
multitives(env).inject(exponential.eval(env)) do |operand, next_op|
|
521
|
-
op = (next_op[0].text_value == '/' ? operand.to_f : operand)
|
521
|
+
op = (next_op[0].text_value == '/' ? (operand ? operand.to_f : nil) : operand)
|
522
522
|
next_op[0].apply(op, next_op[1])
|
523
523
|
end
|
524
524
|
end
|
@@ -3,13 +3,13 @@ require 'spec_helper'
|
|
3
3
|
Infinity = 1.0 / 0
|
4
4
|
|
5
5
|
describe "When evaluating addition expressions, the language" do
|
6
|
-
|
6
|
+
|
7
7
|
include Trxl::SpecHelper
|
8
8
|
|
9
9
|
before(:each) do
|
10
10
|
@parser = Trxl::Calculator.new
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
it "should allow integers as operands" do
|
14
14
|
eval("0+0").should == 0 + 0
|
15
15
|
eval("0+1").should == 0 + 1
|
@@ -18,7 +18,7 @@ describe "When evaluating addition expressions, the language" do
|
|
18
18
|
eval("2+2").should == 2 + 2
|
19
19
|
eval("2+-2").should == 2 + -2
|
20
20
|
end
|
21
|
-
|
21
|
+
|
22
22
|
it "should allow floats as operands" do
|
23
23
|
eval("0.0+0.0").should == 0.0 + 0.0
|
24
24
|
eval("0.1+1").should == 0.1 + 1
|
@@ -28,6 +28,14 @@ describe "When evaluating addition expressions, the language" do
|
|
28
28
|
eval("2.0+-2.01").should == 2.0 + -2.01
|
29
29
|
end
|
30
30
|
|
31
|
+
it "should raise Trxl::InvalidArgumentException when the LHS is NULL" do
|
32
|
+
expect { eval("NULL + 1") }.to raise_error(Trxl::InvalidArgumentException)
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should raise Trxl::InvalidArgumentException when the RHS is NULL" do
|
36
|
+
expect { eval("1 + NULL") }.to raise_error(Trxl::InvalidArgumentException)
|
37
|
+
end
|
38
|
+
|
31
39
|
it "should allow arbitrary spacing" do
|
32
40
|
eval("4 + 2").should == 4 + 2
|
33
41
|
eval("4 +2").should == 4 + 2
|
@@ -36,23 +44,23 @@ describe "When evaluating addition expressions, the language" do
|
|
36
44
|
eval("4 + 2 ").should == 4 + 2
|
37
45
|
eval(" 4 + 2 ").should == 4 + 2
|
38
46
|
end
|
39
|
-
|
47
|
+
|
40
48
|
it "should allow chained expressions" do
|
41
49
|
eval("1 + 1 + 1").should == 1 + 1 + 1
|
42
50
|
eval("1 + 1 + 1 + 1").should == 1 + 1 + 1 + 1
|
43
51
|
end
|
44
|
-
|
52
|
+
|
45
53
|
end
|
46
54
|
|
47
55
|
|
48
56
|
describe "When evaluating subtraction expressions, the language" do
|
49
|
-
|
57
|
+
|
50
58
|
include Trxl::SpecHelper
|
51
59
|
|
52
60
|
before(:each) do
|
53
61
|
@parser = Trxl::Calculator.new
|
54
62
|
end
|
55
|
-
|
63
|
+
|
56
64
|
it "should allow integers as operands" do
|
57
65
|
eval("0-0").should == 0 - 0
|
58
66
|
eval("0-2").should == 0 - 2
|
@@ -61,7 +69,7 @@ describe "When evaluating subtraction expressions, the language" do
|
|
61
69
|
eval("5--2").should == 5--2
|
62
70
|
end
|
63
71
|
|
64
|
-
|
72
|
+
|
65
73
|
it "should allow floats as operands" do
|
66
74
|
eval("0.0-0.0").should == 0.0 - 0.0
|
67
75
|
eval("0.1-2.34").should == 0.1 - 2.34
|
@@ -69,7 +77,15 @@ describe "When evaluating subtraction expressions, the language" do
|
|
69
77
|
eval("5.45678-2.456789").should == 5.45678 - 2.456789
|
70
78
|
eval("5.45678--2.456789").should == 5.45678 - -2.456789
|
71
79
|
end
|
72
|
-
|
80
|
+
|
81
|
+
it "should raise Trxl::InvalidArgumentException when the LHS is NULL" do
|
82
|
+
expect { eval("NULL - 1") }.to raise_error(Trxl::InvalidArgumentException)
|
83
|
+
end
|
84
|
+
|
85
|
+
it "should raise Trxl::InvalidArgumentException when the RHS is NULL" do
|
86
|
+
expect { eval("1 - NULL") }.to raise_error(Trxl::InvalidArgumentException)
|
87
|
+
end
|
88
|
+
|
73
89
|
it "should allow arbitrary spacing" do
|
74
90
|
eval("4 - 2").should == 4 - 2
|
75
91
|
eval("4 -2").should == 4 - 2
|
@@ -78,12 +94,12 @@ describe "When evaluating subtraction expressions, the language" do
|
|
78
94
|
eval("4 - 2 ").should == 4 - 2
|
79
95
|
eval(" 4 - 2 ").should == 4 - 2
|
80
96
|
end
|
81
|
-
|
97
|
+
|
82
98
|
it "should perform left associative evaluation in chained expressions" do
|
83
99
|
eval("16 - 4 - 2").should == (16 - 4 - 2)
|
84
100
|
eval("16 - 4 - 2 - 2").should == (16 - 4 - 2 - 2)
|
85
101
|
end
|
86
|
-
|
102
|
+
|
87
103
|
it "should allow to override operator precedence with parentheses" do
|
88
104
|
eval("(16 - 4) - 2").should == (16 - 4) - 2
|
89
105
|
eval("16 - (4 - 2)").should == 16 - (4 - 2)
|
@@ -91,17 +107,17 @@ describe "When evaluating subtraction expressions, the language" do
|
|
91
107
|
eval("16 - (4 - 2) - 2").should == 16 - (4 - 2) - 2
|
92
108
|
end
|
93
109
|
|
94
|
-
end
|
110
|
+
end
|
95
111
|
|
96
112
|
|
97
113
|
describe "When evaluating multiplication expressions, the language" do
|
98
|
-
|
114
|
+
|
99
115
|
include Trxl::SpecHelper
|
100
116
|
|
101
117
|
before(:each) do
|
102
118
|
@parser = Trxl::Calculator.new
|
103
119
|
end
|
104
|
-
|
120
|
+
|
105
121
|
it "should allow integers as operands" do
|
106
122
|
eval("0*0").should == 0 * 0
|
107
123
|
eval("0*1").should == 0 * 1
|
@@ -112,7 +128,7 @@ describe "When evaluating multiplication expressions, the language" do
|
|
112
128
|
eval("3*-4").should == 3 * -4
|
113
129
|
end
|
114
130
|
|
115
|
-
|
131
|
+
|
116
132
|
it "should allow floats as operands" do
|
117
133
|
eval("0.0*0.0").should == 0.0 * 0.0
|
118
134
|
eval("0.1*1.0").should == 0.1 * 1.0
|
@@ -123,6 +139,14 @@ describe "When evaluating multiplication expressions, the language" do
|
|
123
139
|
eval("3.45*-4.45").should == 3.45 * -4.45
|
124
140
|
end
|
125
141
|
|
142
|
+
it "should raise Trxl::InvalidArgumentException when the LHS is NULL" do
|
143
|
+
expect { eval("NULL * 1") }.to raise_error(Trxl::InvalidArgumentException)
|
144
|
+
end
|
145
|
+
|
146
|
+
it "should raise Trxl::InvalidArgumentException when the RHS is NULL" do
|
147
|
+
expect { eval("1 * NULL") }.to raise_error(Trxl::InvalidArgumentException)
|
148
|
+
end
|
149
|
+
|
126
150
|
it "should allow arbitrary spacing" do
|
127
151
|
eval("4 * 2").should == 4 * 2
|
128
152
|
eval("4 *2").should == 4 * 2
|
@@ -131,23 +155,23 @@ describe "When evaluating multiplication expressions, the language" do
|
|
131
155
|
eval("4 * 2 ").should == 4 * 2
|
132
156
|
eval(" 4 * 2 ").should == 4 * 2
|
133
157
|
end
|
134
|
-
|
158
|
+
|
135
159
|
it "should allow chained expressions" do
|
136
160
|
eval("1 * 2 * 3").should == 1 * 2 * 3
|
137
161
|
eval("1 * 2 * 3 * 4").should == 1 * 2 * 3 * 4
|
138
162
|
end
|
139
|
-
|
163
|
+
|
140
164
|
end
|
141
165
|
|
142
166
|
|
143
167
|
describe "When evaluating division expressions, the language" do
|
144
|
-
|
168
|
+
|
145
169
|
include Trxl::SpecHelper
|
146
170
|
|
147
171
|
before(:each) do
|
148
172
|
@parser = Trxl::Calculator.new
|
149
173
|
end
|
150
|
-
|
174
|
+
|
151
175
|
it "should allow integers as operands" do
|
152
176
|
eval("1/1").should == 1.0 / 1
|
153
177
|
eval("0/1").should == 0.0 / 1
|
@@ -167,10 +191,18 @@ describe "When evaluating division expressions, the language" do
|
|
167
191
|
eval("4.2345678/2").should == 4.2345678 / 2
|
168
192
|
eval("3/2.123456").should == 3 / 2.123456
|
169
193
|
eval("3/-2.123456").should == 3 / -2.123456
|
170
|
-
|
194
|
+
|
171
195
|
# TODO think about DivisonByZero vs. Infinity
|
172
196
|
end
|
173
|
-
|
197
|
+
|
198
|
+
it "should raise Trxl::InvalidArgumentException when the LHS is NULL" do
|
199
|
+
expect { eval("NULL / 1") }.to raise_error(Trxl::InvalidArgumentException)
|
200
|
+
end
|
201
|
+
|
202
|
+
it "should raise Trxl::InvalidArgumentException when the RHS is NULL" do
|
203
|
+
expect { eval("1 / NULL") }.to raise_error(Trxl::InvalidArgumentException)
|
204
|
+
end
|
205
|
+
|
174
206
|
it "should allow arbitrary spacing" do
|
175
207
|
eval("4 / 2").should == 4 / 2
|
176
208
|
eval("4 /2").should == 4 / 2
|
@@ -179,7 +211,7 @@ describe "When evaluating division expressions, the language" do
|
|
179
211
|
eval("4 / 2 ").should == 4 / 2
|
180
212
|
eval(" 4 / 2 ").should == 4 / 2
|
181
213
|
end
|
182
|
-
|
214
|
+
|
183
215
|
it "should perform left associative evaluation in chained expressions" do
|
184
216
|
eval("16 / 4 / 2").should == (16 / 4 / 2)
|
185
217
|
eval("16 / 4 / 2 / 2").should == (16 / 4 / 2 / 2)
|
@@ -191,38 +223,46 @@ describe "When evaluating division expressions, the language" do
|
|
191
223
|
eval("(16 / 4) / (2 / 2)").should == (16 / 4) / (2 / 2)
|
192
224
|
eval("16 / (4 / 2) / 2").should == 16 / (4 / 2) / 2
|
193
225
|
end
|
194
|
-
|
226
|
+
|
195
227
|
end
|
196
228
|
|
197
229
|
|
198
230
|
describe "When evaluating modulo expressions, the language" do
|
199
|
-
|
231
|
+
|
200
232
|
include Trxl::SpecHelper
|
201
233
|
|
202
234
|
before(:each) do
|
203
235
|
@parser = Trxl::Calculator.new
|
204
236
|
end
|
205
|
-
|
237
|
+
|
206
238
|
it "should allow integers as operands" do
|
207
239
|
eval("1%1").should == 1 % 1
|
208
240
|
eval("4%2").should == 4 % 2
|
209
241
|
eval("8%3").should == 8 % 3
|
210
242
|
eval("8%-3").should == 8 % -3
|
211
|
-
|
243
|
+
|
212
244
|
# test division by zero
|
213
245
|
lambda { eval("1%0") }.should raise_error(Trxl::DivisionByZeroError)
|
214
246
|
end
|
215
|
-
|
247
|
+
|
216
248
|
|
217
249
|
it "should allow floats as operands" do
|
218
250
|
eval("1.0%1.0").should == 1.0 % 1.0
|
219
251
|
eval("4.0%2.0").should == 4.0 % 2.0
|
220
252
|
eval("8.0%3.2").should == 8.0 % 3.2
|
221
253
|
eval("8.0%-3.2").should == 8.0 % -3.2
|
222
|
-
|
254
|
+
|
223
255
|
# TODO think about DivisonByZero vs. Infinity
|
224
256
|
end
|
225
|
-
|
257
|
+
|
258
|
+
it "should raise Trxl::InvalidArgumentException when the LHS is NULL" do
|
259
|
+
expect { eval("NULL % 1") }.to raise_error(Trxl::InvalidArgumentException)
|
260
|
+
end
|
261
|
+
|
262
|
+
it "should raise Trxl::InvalidArgumentException when the RHS is NULL" do
|
263
|
+
expect { eval("1 % NULL") }.to raise_error(Trxl::InvalidArgumentException)
|
264
|
+
end
|
265
|
+
|
226
266
|
it "should allow arbitrary spacing" do
|
227
267
|
eval("4 % 2").should == 4 % 2
|
228
268
|
eval("4 %2").should == 4 % 2
|
@@ -231,7 +271,7 @@ describe "When evaluating modulo expressions, the language" do
|
|
231
271
|
eval("4 % 2 ").should == 4 % 2
|
232
272
|
eval(" 4 % 2 ").should == 4 % 2
|
233
273
|
end
|
234
|
-
|
274
|
+
|
235
275
|
it "should perform left associative evaluation in chained expressions" do
|
236
276
|
eval("15 % 5 % 3").should == (15 % 5 % 3)
|
237
277
|
eval("16 % 9 % 4 % 2").should == (16 % 9 % 4 % 2)
|
@@ -243,24 +283,24 @@ describe "When evaluating modulo expressions, the language" do
|
|
243
283
|
eval("(16 % 4) % (5 % 3)").should == (16 % 4) % (5 % 3)
|
244
284
|
eval("16 % (5 % 3) % 2").should == 16 % (5 % 3) % 2
|
245
285
|
end
|
246
|
-
|
286
|
+
|
247
287
|
end
|
248
288
|
|
249
289
|
describe "When evaluating exponential expressions, the language" do
|
250
|
-
|
290
|
+
|
251
291
|
include Trxl::SpecHelper
|
252
292
|
|
253
293
|
before(:each) do
|
254
294
|
@parser = Trxl::Calculator.new
|
255
295
|
end
|
256
|
-
|
296
|
+
|
257
297
|
it "should allow integers as operands" do
|
258
298
|
eval("1^1").should == 1 ** 1
|
259
299
|
eval("4^2").should == 4 ** 2
|
260
300
|
eval("8^3").should == 8 ** 3
|
261
301
|
eval("8^-3").should == 8 ** -3
|
262
302
|
end
|
263
|
-
|
303
|
+
|
264
304
|
|
265
305
|
it "should allow floats as operands" do
|
266
306
|
eval("1.0^1.0").should == 1.0 ** 1.0
|
@@ -268,7 +308,15 @@ describe "When evaluating exponential expressions, the language" do
|
|
268
308
|
eval("8.0^3.2").should == 8.0 ** 3.2
|
269
309
|
eval("8.0^-3.2").should == 8.0 ** -3.2
|
270
310
|
end
|
271
|
-
|
311
|
+
|
312
|
+
it "should raise Trxl::InvalidArgumentException when the LHS is NULL" do
|
313
|
+
expect { eval("NULL ^ 1") }.to raise_error(Trxl::InvalidArgumentException)
|
314
|
+
end
|
315
|
+
|
316
|
+
it "should raise Trxl::InvalidArgumentException when the RHS is NULL" do
|
317
|
+
expect { eval("1 ^ NULL") }.to raise_error(Trxl::InvalidArgumentException)
|
318
|
+
end
|
319
|
+
|
272
320
|
it "should allow arbitrary spacing" do
|
273
321
|
eval("4 ^ 2").should == 4 ** 2
|
274
322
|
eval("4 ^2").should == 4 ** 2
|
@@ -277,17 +325,17 @@ describe "When evaluating exponential expressions, the language" do
|
|
277
325
|
eval("4 ^ 2 ").should == 4 ** 2
|
278
326
|
eval(" 4 ^ 2 ").should == 4 ** 2
|
279
327
|
end
|
280
|
-
|
328
|
+
|
281
329
|
it "should perform left associative evaluation in chained expressions" do
|
282
330
|
eval("2 ^ 2 ^ 2").should == (2 ** 2 ** 2)
|
283
331
|
eval("2 ^ 2 ^ 2 ^ 2").should == (2 ** 2 ** 2 ** 2)
|
284
332
|
end
|
285
|
-
|
333
|
+
|
286
334
|
end
|
287
335
|
|
288
336
|
|
289
337
|
describe "When evaluating arbitrary arithmetic expressions, the language" do
|
290
|
-
|
338
|
+
|
291
339
|
include Trxl::SpecHelper
|
292
340
|
|
293
341
|
before(:each) do
|
@@ -323,12 +371,12 @@ describe "When evaluating arbitrary arithmetic expressions, the language" do
|
|
323
371
|
eval("4 + 2 - 2").should == 4 + 2 - 2
|
324
372
|
eval("4 * 2 / 2").should == 4 * 2 / 2
|
325
373
|
eval("4 * 2 % 2").should == 4 * 2 % 2
|
326
|
-
|
374
|
+
|
327
375
|
eval("4 - 2 + 2").should == 4 - 2 + 2
|
328
376
|
eval("4 / 2 * 2").should == 4 / 2 * 2
|
329
377
|
eval("4 % 2 * 2").should == 4 % 2 * 2
|
330
378
|
eval("4 ^ 2 * 2").should == 4 ** 2 * 2
|
331
|
-
|
379
|
+
|
332
380
|
end
|
333
381
|
|
334
382
|
it "should allow to override operator precedence using parentheses" do
|
@@ -349,7 +397,7 @@ describe "When evaluating arbitrary arithmetic expressions, the language" do
|
|
349
397
|
eval("8 % (4 % 2 - 2)").should == 8 % (4 % 2 - 2)
|
350
398
|
eval("2 ^ (2 ^ 2) - 2").should == 2 ** (2 ** 2) - 2
|
351
399
|
eval("2 ^ (2 ^ 2 - 2)").should == 2 ** (2 ** 2 - 2)
|
352
|
-
|
400
|
+
|
353
401
|
eval("2 * 4 * (2 - 2) * 3").should == 2 * 4 * (2 - 2) * 3
|
354
402
|
eval("2 * 4 * (2 - 2 * 3)").should == 2 * 4 * (2 - 2 * 3)
|
355
403
|
eval("8 / 4 / (2 - 4) / 2").should == 8.0 / 4 / (2 - 4) / 2
|
@@ -358,7 +406,7 @@ describe "When evaluating arbitrary arithmetic expressions, the language" do
|
|
358
406
|
eval("8 % 4 % (2 - 6 % 3)").should == 8 % 4 % (2 - 6 % 3)
|
359
407
|
eval("2 ^ 2 ^ (2 - 2) ^ 2").should == 2 ** 2 ** (2 - 2) ** 2
|
360
408
|
eval("2 ^ 2 ^ (2 - 2 ^ 2)").should == 2 ** 2 ** (2 - 2 ** 2)
|
361
|
-
|
409
|
+
|
362
410
|
eval("4 / (2 + 2 * 4) * (2 - 2) * 3").should == 4 / (2 + 2 * 4) * (2 - 2) * 3
|
363
411
|
eval("2 * (2 + 8 / 4 / 2 - 4) / 2").should == 2 * (2 + 8 / 4 / 2 - 4) / 2
|
364
412
|
eval("(2 + 4 + 8 % 4) % 2 - (5 % 3)").should == (2 + 4 + 8 % 4) % 2 - (5 % 3)
|
@@ -387,5 +435,5 @@ describe "When evaluating arbitrary arithmetic expressions, the language" do
|
|
387
435
|
PROGRAM
|
388
436
|
eval(program).should == 5
|
389
437
|
end
|
390
|
-
|
391
|
-
end
|
438
|
+
|
439
|
+
end
|
data/trxl.gemspec
CHANGED
@@ -4,14 +4,14 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.1.
|
7
|
+
s.name = "trxl"
|
8
|
+
s.version = "0.1.11"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = [
|
12
|
-
s.date =
|
13
|
-
s.description =
|
14
|
-
s.email =
|
11
|
+
s.authors = ["Martin Gamsjaeger (snusnu)", "Michael Aufreiter"]
|
12
|
+
s.date = "2012-05-08"
|
13
|
+
s.description = "A specced little language written with ruby and treetop. It has lambdas, recursion, conditionals, arrays, hashes, ranges, strings, arithmetics and some other stuff. It even has a small code import facility."
|
14
|
+
s.email = "gamsnjaga [at] gmail [dot] com"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"README"
|
17
17
|
]
|
@@ -44,10 +44,10 @@ Gem::Specification.new do |s|
|
|
44
44
|
"spec/trxl/variables_spec.rb",
|
45
45
|
"trxl.gemspec"
|
46
46
|
]
|
47
|
-
s.homepage =
|
48
|
-
s.require_paths = [
|
49
|
-
s.rubygems_version =
|
50
|
-
s.summary =
|
47
|
+
s.homepage = "http://github.com/snusnu/trxl"
|
48
|
+
s.require_paths = ["lib"]
|
49
|
+
s.rubygems_version = "1.8.17"
|
50
|
+
s.summary = "A specced little language written with ruby and treetop."
|
51
51
|
|
52
52
|
if s.respond_to? :specification_version then
|
53
53
|
s.specification_version = 3
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trxl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 13
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 11
|
10
|
+
version: 0.1.11
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Martin Gamsjaeger (snusnu)
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date:
|
19
|
+
date: 2012-05-08 00:00:00 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
name: treetop
|
@@ -114,7 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
114
114
|
requirements: []
|
115
115
|
|
116
116
|
rubyforge_project:
|
117
|
-
rubygems_version: 1.8.
|
117
|
+
rubygems_version: 1.8.17
|
118
118
|
signing_key:
|
119
119
|
specification_version: 3
|
120
120
|
summary: A specced little language written with ruby and treetop.
|