rattler 0.2.0 → 0.2.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 (38) hide show
  1. data/README.rdoc +2 -0
  2. data/bin/rtlr +8 -5
  3. data/bin/rtlr.bat +0 -0
  4. data/features/command_line/dest_option.feature +34 -0
  5. data/features/command_line/output_option.feature +31 -0
  6. data/features/command_line/parser_generator.feature +80 -0
  7. data/features/grammar/word_literal.feature +3 -3
  8. data/features/step_definitions/cli_steps.rb +3 -0
  9. data/features/step_definitions/{rattler_steps.rb → grammar_steps.rb} +0 -0
  10. data/features/support/env.rb +1 -0
  11. data/lib/rattler.rb +2 -2
  12. data/lib/rattler/back_end/parser_generator.rb +1 -0
  13. data/lib/rattler/back_end/parser_generator/one_or_more_generator.rb +17 -28
  14. data/lib/rattler/back_end/parser_generator/repeat_generating.rb +69 -0
  15. data/lib/rattler/back_end/parser_generator/rule_generator.rb +1 -1
  16. data/lib/rattler/back_end/parser_generator/zero_or_more_generator.rb +9 -63
  17. data/lib/rattler/grammar/grammar_parser.rb +1 -1
  18. data/lib/rattler/grammar/metagrammar.rb +63 -73
  19. data/lib/rattler/grammar/rattler.rtlr +5 -13
  20. data/lib/rattler/parsers/combining.rb +7 -0
  21. data/lib/rattler/parsers/match_joining.rb +7 -0
  22. data/lib/rattler/parsers/predicate.rb +7 -0
  23. data/lib/rattler/parsers/sequence.rb +1 -1
  24. data/lib/rattler/parsers/token.rb +1 -1
  25. data/lib/rattler/runner.rb +6 -0
  26. data/lib/rattler/runtime.rb +1 -1
  27. data/lib/rattler/runtime/extended_packrat_parser.rb +62 -0
  28. data/lib/rattler/runtime/packrat_parser.rb +46 -12
  29. data/lib/rattler/runtime/parse_failure.rb +1 -1
  30. data/lib/rattler/util/parser_spec_helper.rb +1 -0
  31. data/spec/rattler/back_end/parser_generator/one_or_more_generator_spec.rb +14 -4
  32. data/spec/rattler/back_end/parser_generator/zero_or_more_generator_spec.rb +12 -2
  33. data/spec/rattler/runtime/extended_packrat_parser_spec.rb +36 -0
  34. data/spec/rattler/runtime/packrat_parser_spec.rb +1 -1
  35. data/spec/rattler/runtime/shared_parser_examples.rb +29 -0
  36. metadata +462 -79
  37. data/lib/rattler/runtime/wdm_parser.rb +0 -83
  38. data/spec/rattler/runtime/wdm_parser_spec.rb +0 -21
@@ -10,13 +10,20 @@ describe Rattler::BackEnd::ParserGenerator::ZeroOrMoreGenerator do
10
10
 
11
11
  describe '#gen_basic' do
12
12
 
13
+ let :zero_or_more do
14
+ ZeroOrMore[Choice[Match[/[[:alpha:]]/], Match[/[[:digit:]]/]]]
15
+ end
16
+
13
17
  context 'when nested' do
14
18
  it 'generates nested zero-or-more matching code' do
15
19
  nested_code {|g| g.gen_basic zero_or_more }.
16
20
  should == (<<-CODE).strip
17
21
  begin
18
22
  a = []
19
- while r = @scanner.scan(/w+/)
23
+ while r = begin
24
+ @scanner.scan(/[[:alpha:]]/) ||
25
+ @scanner.scan(/[[:digit:]]/)
26
+ end
20
27
  a << r
21
28
  end
22
29
  a
@@ -30,7 +37,10 @@ end
30
37
  top_level_code {|g| g.gen_basic zero_or_more }.
31
38
  should == (<<-CODE).strip
32
39
  a = []
33
- while r = @scanner.scan(/w+/)
40
+ while r = begin
41
+ @scanner.scan(/[[:alpha:]]/) ||
42
+ @scanner.scan(/[[:digit:]]/)
43
+ end
34
44
  a << r
35
45
  end
36
46
  a
@@ -0,0 +1,36 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
+ require File.expand_path(File.dirname(__FILE__) + '/shared_parser_examples')
3
+
4
+ describe Rattler::Runtime::ExtendedPackratParser do
5
+ include RuntimeParserSpecHelper
6
+
7
+ it_behaves_like 'a packrat parser'
8
+
9
+ describe '#match' do
10
+
11
+ it 'supports directly left-recursive rules' do
12
+ given_rules do
13
+ rule :a do
14
+ ( match(:a) & match(/\d/) \
15
+ | match(/\d/) )
16
+ end
17
+ end.
18
+ parsing('12345a').as(:a).
19
+ should result_in([[[['1', '2'], '3'], '4'], '5']).
20
+ at(5)
21
+ end
22
+
23
+ it 'supports indirectly left-recursive rules' do
24
+ pending 'implement full algorithm'
25
+ given_rules do
26
+ rule(:a) { match(:b) | match(/\d/) }
27
+ rule(:b) { match(:a) & match(/\d/) }
28
+ end.
29
+ parsing('12345a').as(:a).
30
+ should result_in([[[['1', '2'], '3'], '4'], '5']).
31
+ at(5)
32
+ end
33
+
34
+ end
35
+
36
+ end
@@ -2,5 +2,5 @@ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
2
  require File.expand_path(File.dirname(__FILE__) + '/shared_parser_examples')
3
3
 
4
4
  describe Rattler::Runtime::PackratParser do
5
- it_behaves_like 'a recursive descent parser'
5
+ it_behaves_like 'a packrat parser'
6
6
  end
@@ -29,3 +29,32 @@ shared_examples_for 'a recursive descent parser' do
29
29
  end
30
30
 
31
31
  end
32
+
33
+ shared_examples_for 'a packrat parser' do
34
+ include RuntimeParserSpecHelper
35
+
36
+ it_behaves_like 'a recursive descent parser'
37
+
38
+ describe '#match' do
39
+
40
+ it 'memoizes parse results' do
41
+ example = given_rules do
42
+ rule :a do
43
+ ( match(:b) & match('a') \
44
+ | match(:b) & match('b') )
45
+ end
46
+ rule :b do
47
+ match('b')
48
+ end
49
+ end.
50
+ parsing('bb').as(:a)
51
+ example.parser.should_receive(:match_b).and_return do
52
+ example.parser.pos = example.parser.pos + 1
53
+ 'b'
54
+ end
55
+ example.should result_in(['b', 'b']).at(2)
56
+ end
57
+
58
+ end
59
+
60
+ end
metadata CHANGED
@@ -1,13 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rattler
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 2
9
- - 0
10
- version: 0.2.0
4
+ prerelease:
5
+ version: 0.2.1
11
6
  platform: ruby
12
7
  authors:
13
8
  - Jason Arhart
@@ -15,138 +10,520 @@ autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
12
 
18
- date: 2011-02-14 00:00:00 -08:00
13
+ date: 2011-02-16 00:00:00 -08:00
19
14
  default_executable:
20
15
  dependencies:
21
16
  - !ruby/object:Gem::Dependency
17
+ name: rattler
18
+ requirement: &id001 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: *id001
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: &id002 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ~>
33
+ - !ruby/object:Gem::Version
34
+ version: 1.0.0
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: *id002
38
+ - !ruby/object:Gem::Dependency
39
+ name: bundler
40
+ requirement: &id003 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 1.0.0
46
+ type: :development
47
+ prerelease: false
48
+ version_requirements: *id003
49
+ - !ruby/object:Gem::Dependency
50
+ name: bundler
51
+ requirement: &id004 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ~>
55
+ - !ruby/object:Gem::Version
56
+ version: 1.0.0
22
57
  type: :development
23
58
  prerelease: false
59
+ version_requirements: *id004
60
+ - !ruby/object:Gem::Dependency
61
+ name: bundler
62
+ requirement: &id005 !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ~>
66
+ - !ruby/object:Gem::Version
67
+ version: 1.0.0
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: *id005
71
+ - !ruby/object:Gem::Dependency
72
+ name: bundler
73
+ requirement: &id006 !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: 1.0.0
79
+ type: :development
80
+ prerelease: false
81
+ version_requirements: *id006
82
+ - !ruby/object:Gem::Dependency
83
+ name: bundler
84
+ requirement: &id007 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: 1.0.0
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: *id007
93
+ - !ruby/object:Gem::Dependency
94
+ name: bundler
95
+ requirement: &id008 !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ~>
99
+ - !ruby/object:Gem::Version
100
+ version: 1.0.0
101
+ type: :development
102
+ prerelease: false
103
+ version_requirements: *id008
104
+ - !ruby/object:Gem::Dependency
24
105
  name: rspec
25
- version_requirements: &id001 !ruby/object:Gem::Requirement
106
+ requirement: &id009 !ruby/object:Gem::Requirement
26
107
  none: false
27
108
  requirements:
28
109
  - - ">="
29
110
  - !ruby/object:Gem::Version
30
- hash: 3
31
- segments:
32
- - 2
33
- - 3
34
- - 0
35
111
  version: 2.3.0
36
- requirement: *id001
37
- - !ruby/object:Gem::Dependency
38
112
  type: :development
39
113
  prerelease: false
114
+ version_requirements: *id009
115
+ - !ruby/object:Gem::Dependency
40
116
  name: yard
41
- version_requirements: &id002 !ruby/object:Gem::Requirement
117
+ requirement: &id010 !ruby/object:Gem::Requirement
42
118
  none: false
43
119
  requirements:
44
- - - ~>
120
+ - - ">="
45
121
  - !ruby/object:Gem::Version
46
- hash: 7
47
- segments:
48
- - 0
49
- - 6
50
- - 0
51
122
  version: 0.6.0
52
- requirement: *id002
53
- - !ruby/object:Gem::Dependency
54
123
  type: :development
55
124
  prerelease: false
125
+ version_requirements: *id010
126
+ - !ruby/object:Gem::Dependency
56
127
  name: cucumber
57
- version_requirements: &id003 !ruby/object:Gem::Requirement
128
+ requirement: &id011 !ruby/object:Gem::Requirement
58
129
  none: false
59
130
  requirements:
60
131
  - - ">="
61
132
  - !ruby/object:Gem::Version
62
- hash: 3
63
- segments:
64
- - 0
65
- version: "0"
66
- requirement: *id003
133
+ version: 0.8.0
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: *id011
67
137
  - !ruby/object:Gem::Dependency
138
+ name: aruba
139
+ requirement: &id012 !ruby/object:Gem::Requirement
140
+ none: false
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: 0.3.0
68
145
  type: :development
69
146
  prerelease: false
147
+ version_requirements: *id012
148
+ - !ruby/object:Gem::Dependency
70
149
  name: bundler
71
- version_requirements: &id004 !ruby/object:Gem::Requirement
150
+ requirement: &id013 !ruby/object:Gem::Requirement
72
151
  none: false
73
152
  requirements:
74
153
  - - ~>
75
154
  - !ruby/object:Gem::Version
76
- hash: 23
77
- segments:
78
- - 1
79
- - 0
80
- - 0
81
155
  version: 1.0.0
82
- requirement: *id004
83
- - !ruby/object:Gem::Dependency
84
156
  type: :development
85
157
  prerelease: false
158
+ version_requirements: *id013
159
+ - !ruby/object:Gem::Dependency
86
160
  name: jeweler
87
- version_requirements: &id005 !ruby/object:Gem::Requirement
161
+ requirement: &id014 !ruby/object:Gem::Requirement
88
162
  none: false
89
163
  requirements:
90
164
  - - ~>
91
165
  - !ruby/object:Gem::Version
92
- hash: 7
93
- segments:
94
- - 1
95
- - 5
96
- - 2
97
166
  version: 1.5.2
98
- requirement: *id005
167
+ type: :development
168
+ prerelease: false
169
+ version_requirements: *id014
170
+ - !ruby/object:Gem::Dependency
171
+ name: rspec
172
+ requirement: &id015 !ruby/object:Gem::Requirement
173
+ none: false
174
+ requirements:
175
+ - - ">="
176
+ - !ruby/object:Gem::Version
177
+ version: 2.3.0
178
+ type: :development
179
+ prerelease: false
180
+ version_requirements: *id015
181
+ - !ruby/object:Gem::Dependency
182
+ name: yard
183
+ requirement: &id016 !ruby/object:Gem::Requirement
184
+ none: false
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: 0.6.0
189
+ type: :development
190
+ prerelease: false
191
+ version_requirements: *id016
192
+ - !ruby/object:Gem::Dependency
193
+ name: cucumber
194
+ requirement: &id017 !ruby/object:Gem::Requirement
195
+ none: false
196
+ requirements:
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ version: 0.8.0
200
+ type: :development
201
+ prerelease: false
202
+ version_requirements: *id017
203
+ - !ruby/object:Gem::Dependency
204
+ name: aruba
205
+ requirement: &id018 !ruby/object:Gem::Requirement
206
+ none: false
207
+ requirements:
208
+ - - ">="
209
+ - !ruby/object:Gem::Version
210
+ version: 0.3.0
211
+ type: :development
212
+ prerelease: false
213
+ version_requirements: *id018
214
+ - !ruby/object:Gem::Dependency
215
+ name: rspec
216
+ requirement: &id019 !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ version: 2.3.0
222
+ type: :development
223
+ prerelease: false
224
+ version_requirements: *id019
225
+ - !ruby/object:Gem::Dependency
226
+ name: yard
227
+ requirement: &id020 !ruby/object:Gem::Requirement
228
+ none: false
229
+ requirements:
230
+ - - ">="
231
+ - !ruby/object:Gem::Version
232
+ version: 0.6.0
233
+ type: :development
234
+ prerelease: false
235
+ version_requirements: *id020
236
+ - !ruby/object:Gem::Dependency
237
+ name: cucumber
238
+ requirement: &id021 !ruby/object:Gem::Requirement
239
+ none: false
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: 0.8.0
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: *id021
247
+ - !ruby/object:Gem::Dependency
248
+ name: aruba
249
+ requirement: &id022 !ruby/object:Gem::Requirement
250
+ none: false
251
+ requirements:
252
+ - - ">="
253
+ - !ruby/object:Gem::Version
254
+ version: 0.3.0
255
+ type: :development
256
+ prerelease: false
257
+ version_requirements: *id022
258
+ - !ruby/object:Gem::Dependency
259
+ name: rspec
260
+ requirement: &id023 !ruby/object:Gem::Requirement
261
+ none: false
262
+ requirements:
263
+ - - ">="
264
+ - !ruby/object:Gem::Version
265
+ version: 2.3.0
266
+ type: :development
267
+ prerelease: false
268
+ version_requirements: *id023
269
+ - !ruby/object:Gem::Dependency
270
+ name: yard
271
+ requirement: &id024 !ruby/object:Gem::Requirement
272
+ none: false
273
+ requirements:
274
+ - - ">="
275
+ - !ruby/object:Gem::Version
276
+ version: 0.6.0
277
+ type: :development
278
+ prerelease: false
279
+ version_requirements: *id024
280
+ - !ruby/object:Gem::Dependency
281
+ name: cucumber
282
+ requirement: &id025 !ruby/object:Gem::Requirement
283
+ none: false
284
+ requirements:
285
+ - - ">="
286
+ - !ruby/object:Gem::Version
287
+ version: 0.8.0
288
+ type: :development
289
+ prerelease: false
290
+ version_requirements: *id025
291
+ - !ruby/object:Gem::Dependency
292
+ name: aruba
293
+ requirement: &id026 !ruby/object:Gem::Requirement
294
+ none: false
295
+ requirements:
296
+ - - ">="
297
+ - !ruby/object:Gem::Version
298
+ version: 0.3.0
299
+ type: :development
300
+ prerelease: false
301
+ version_requirements: *id026
302
+ - !ruby/object:Gem::Dependency
303
+ name: rspec
304
+ requirement: &id027 !ruby/object:Gem::Requirement
305
+ none: false
306
+ requirements:
307
+ - - ">="
308
+ - !ruby/object:Gem::Version
309
+ version: 2.3.0
310
+ type: :development
311
+ prerelease: false
312
+ version_requirements: *id027
99
313
  - !ruby/object:Gem::Dependency
314
+ name: yard
315
+ requirement: &id028 !ruby/object:Gem::Requirement
316
+ none: false
317
+ requirements:
318
+ - - ">="
319
+ - !ruby/object:Gem::Version
320
+ version: 0.6.0
321
+ type: :development
322
+ prerelease: false
323
+ version_requirements: *id028
324
+ - !ruby/object:Gem::Dependency
325
+ name: cucumber
326
+ requirement: &id029 !ruby/object:Gem::Requirement
327
+ none: false
328
+ requirements:
329
+ - - ">="
330
+ - !ruby/object:Gem::Version
331
+ version: 0.8.0
332
+ type: :development
333
+ prerelease: false
334
+ version_requirements: *id029
335
+ - !ruby/object:Gem::Dependency
336
+ name: aruba
337
+ requirement: &id030 !ruby/object:Gem::Requirement
338
+ none: false
339
+ requirements:
340
+ - - ">="
341
+ - !ruby/object:Gem::Version
342
+ version: 0.3.0
343
+ type: :development
344
+ prerelease: false
345
+ version_requirements: *id030
346
+ - !ruby/object:Gem::Dependency
347
+ name: rspec
348
+ requirement: &id031 !ruby/object:Gem::Requirement
349
+ none: false
350
+ requirements:
351
+ - - ">="
352
+ - !ruby/object:Gem::Version
353
+ version: 2.3.0
354
+ type: :development
355
+ prerelease: false
356
+ version_requirements: *id031
357
+ - !ruby/object:Gem::Dependency
358
+ name: yard
359
+ requirement: &id032 !ruby/object:Gem::Requirement
360
+ none: false
361
+ requirements:
362
+ - - ">="
363
+ - !ruby/object:Gem::Version
364
+ version: 0.6.0
365
+ type: :development
366
+ prerelease: false
367
+ version_requirements: *id032
368
+ - !ruby/object:Gem::Dependency
369
+ name: cucumber
370
+ requirement: &id033 !ruby/object:Gem::Requirement
371
+ none: false
372
+ requirements:
373
+ - - ">="
374
+ - !ruby/object:Gem::Version
375
+ version: 0.8.0
376
+ type: :development
377
+ prerelease: false
378
+ version_requirements: *id033
379
+ - !ruby/object:Gem::Dependency
380
+ name: aruba
381
+ requirement: &id034 !ruby/object:Gem::Requirement
382
+ none: false
383
+ requirements:
384
+ - - ">="
385
+ - !ruby/object:Gem::Version
386
+ version: 0.3.0
100
387
  type: :development
101
388
  prerelease: false
389
+ version_requirements: *id034
390
+ - !ruby/object:Gem::Dependency
102
391
  name: rspec
103
- version_requirements: &id006 !ruby/object:Gem::Requirement
392
+ requirement: &id035 !ruby/object:Gem::Requirement
393
+ none: false
394
+ requirements:
395
+ - - ">="
396
+ - !ruby/object:Gem::Version
397
+ version: 2.3.0
398
+ type: :development
399
+ prerelease: false
400
+ version_requirements: *id035
401
+ - !ruby/object:Gem::Dependency
402
+ name: yard
403
+ requirement: &id036 !ruby/object:Gem::Requirement
404
+ none: false
405
+ requirements:
406
+ - - ">="
407
+ - !ruby/object:Gem::Version
408
+ version: 0.6.0
409
+ type: :development
410
+ prerelease: false
411
+ version_requirements: *id036
412
+ - !ruby/object:Gem::Dependency
413
+ name: cucumber
414
+ requirement: &id037 !ruby/object:Gem::Requirement
415
+ none: false
416
+ requirements:
417
+ - - ">="
418
+ - !ruby/object:Gem::Version
419
+ version: 0.8.0
420
+ type: :development
421
+ prerelease: false
422
+ version_requirements: *id037
423
+ - !ruby/object:Gem::Dependency
424
+ name: aruba
425
+ requirement: &id038 !ruby/object:Gem::Requirement
104
426
  none: false
105
427
  requirements:
106
428
  - - ">="
107
429
  - !ruby/object:Gem::Version
108
- hash: 15
109
- segments:
110
- - 2
111
- - 0
112
- - 0
113
- version: 2.0.0
114
- requirement: *id006
430
+ version: 0.3.0
431
+ type: :development
432
+ prerelease: false
433
+ version_requirements: *id038
115
434
  - !ruby/object:Gem::Dependency
435
+ name: rspec
436
+ requirement: &id039 !ruby/object:Gem::Requirement
437
+ none: false
438
+ requirements:
439
+ - - ">="
440
+ - !ruby/object:Gem::Version
441
+ version: 2.3.0
116
442
  type: :development
117
443
  prerelease: false
444
+ version_requirements: *id039
445
+ - !ruby/object:Gem::Dependency
118
446
  name: yard
119
- version_requirements: &id007 !ruby/object:Gem::Requirement
447
+ requirement: &id040 !ruby/object:Gem::Requirement
120
448
  none: false
121
449
  requirements:
122
450
  - - ">="
123
451
  - !ruby/object:Gem::Version
124
- hash: 3
125
- segments:
126
- - 0
127
- - 6
128
- - 2
129
- version: 0.6.2
130
- requirement: *id007
452
+ version: 0.6.0
453
+ type: :development
454
+ prerelease: false
455
+ version_requirements: *id040
131
456
  - !ruby/object:Gem::Dependency
457
+ name: cucumber
458
+ requirement: &id041 !ruby/object:Gem::Requirement
459
+ none: false
460
+ requirements:
461
+ - - ">="
462
+ - !ruby/object:Gem::Version
463
+ version: 0.8.0
132
464
  type: :development
133
465
  prerelease: false
466
+ version_requirements: *id041
467
+ - !ruby/object:Gem::Dependency
468
+ name: aruba
469
+ requirement: &id042 !ruby/object:Gem::Requirement
470
+ none: false
471
+ requirements:
472
+ - - ">="
473
+ - !ruby/object:Gem::Version
474
+ version: 0.3.0
475
+ type: :development
476
+ prerelease: false
477
+ version_requirements: *id042
478
+ - !ruby/object:Gem::Dependency
479
+ name: rspec
480
+ requirement: &id043 !ruby/object:Gem::Requirement
481
+ none: false
482
+ requirements:
483
+ - - ">="
484
+ - !ruby/object:Gem::Version
485
+ version: 2.3.0
486
+ type: :development
487
+ prerelease: false
488
+ version_requirements: *id043
489
+ - !ruby/object:Gem::Dependency
490
+ name: yard
491
+ requirement: &id044 !ruby/object:Gem::Requirement
492
+ none: false
493
+ requirements:
494
+ - - ">="
495
+ - !ruby/object:Gem::Version
496
+ version: 0.6.0
497
+ type: :development
498
+ prerelease: false
499
+ version_requirements: *id044
500
+ - !ruby/object:Gem::Dependency
134
501
  name: cucumber
135
- version_requirements: &id008 !ruby/object:Gem::Requirement
502
+ requirement: &id045 !ruby/object:Gem::Requirement
136
503
  none: false
137
504
  requirements:
138
505
  - - ">="
139
506
  - !ruby/object:Gem::Version
140
- hash: 3
141
- segments:
142
- - 0
143
- version: "0"
144
- requirement: *id008
507
+ version: 0.8.0
508
+ type: :development
509
+ prerelease: false
510
+ version_requirements: *id045
511
+ - !ruby/object:Gem::Dependency
512
+ name: aruba
513
+ requirement: &id046 !ruby/object:Gem::Requirement
514
+ none: false
515
+ requirements:
516
+ - - ">="
517
+ - !ruby/object:Gem::Version
518
+ version: 0.3.0
519
+ type: :development
520
+ prerelease: false
521
+ version_requirements: *id046
145
522
  description: Simple language recognition tool for Ruby based on packrat parsing
146
523
  email: jarhart@gmail.com
147
524
  executables:
148
- - rtlr.bat
149
525
  - rtlr
526
+ - rtlr.bat
150
527
  extensions: []
151
528
 
152
529
  extra_rdoc_files:
@@ -177,6 +554,7 @@ files:
177
554
  - lib/rattler/back_end/parser_generator/one_or_more_generator.rb
178
555
  - lib/rattler/back_end/parser_generator/optional_generator.rb
179
556
  - lib/rattler/back_end/parser_generator/predicate_propogating.rb
557
+ - lib/rattler/back_end/parser_generator/repeat_generating.rb
180
558
  - lib/rattler/back_end/parser_generator/rule_generator.rb
181
559
  - lib/rattler/back_end/parser_generator/sequence_generator.rb
182
560
  - lib/rattler/back_end/parser_generator/skip_generator.rb
@@ -220,6 +598,7 @@ files:
220
598
  - lib/rattler/parsers/zero_or_more.rb
221
599
  - lib/rattler/runner.rb
222
600
  - lib/rattler/runtime.rb
601
+ - lib/rattler/runtime/extended_packrat_parser.rb
223
602
  - lib/rattler/runtime/packrat_parser.rb
224
603
  - lib/rattler/runtime/parse_failure.rb
225
604
  - lib/rattler/runtime/parse_node.rb
@@ -227,13 +606,15 @@ files:
227
606
  - lib/rattler/runtime/parser_helper.rb
228
607
  - lib/rattler/runtime/recursive_descent_parser.rb
229
608
  - lib/rattler/runtime/syntax_error.rb
230
- - lib/rattler/runtime/wdm_parser.rb
231
609
  - lib/rattler/util.rb
232
610
  - lib/rattler/util/line_counter.rb
233
611
  - lib/rattler/util/node.rb
234
612
  - lib/rattler/util/parser_spec_helper.rb
235
613
  - LICENSE.txt
236
614
  - README.rdoc
615
+ - features/command_line/dest_option.feature
616
+ - features/command_line/output_option.feature
617
+ - features/command_line/parser_generator.feature
237
618
  - features/grammar/any_character.feature
238
619
  - features/grammar/character_class.feature
239
620
  - features/grammar/eof.feature
@@ -257,7 +638,8 @@ files:
257
638
  - features/grammar/whitespace.feature
258
639
  - features/grammar/word_literal.feature
259
640
  - features/grammar/zero_or_more.feature
260
- - features/step_definitions/rattler_steps.rb
641
+ - features/step_definitions/cli_steps.rb
642
+ - features/step_definitions/grammar_steps.rb
261
643
  - features/support/env.rb
262
644
  - spec/rattler/back_end/compiler_spec.rb
263
645
  - spec/rattler/back_end/parser_generator/apply_generator_spec.rb
@@ -296,13 +678,13 @@ files:
296
678
  - spec/rattler/parsers/skip_spec.rb
297
679
  - spec/rattler/parsers/token_spec.rb
298
680
  - spec/rattler/parsers/zero_or_more_spec.rb
681
+ - spec/rattler/runtime/extended_packrat_parser_spec.rb
299
682
  - spec/rattler/runtime/packrat_parser_spec.rb
300
683
  - spec/rattler/runtime/parse_failure_spec.rb
301
684
  - spec/rattler/runtime/parse_node_spec.rb
302
685
  - spec/rattler/runtime/parser_spec.rb
303
686
  - spec/rattler/runtime/recursive_descent_parser_spec.rb
304
687
  - spec/rattler/runtime/shared_parser_examples.rb
305
- - spec/rattler/runtime/wdm_parser_spec.rb
306
688
  - spec/rattler/util/line_counter_spec.rb
307
689
  - spec/rattler/util/node_spec.rb
308
690
  - spec/rattler_spec.rb
@@ -325,7 +707,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
325
707
  requirements:
326
708
  - - ">="
327
709
  - !ruby/object:Gem::Version
328
- hash: 3
710
+ hash: -3248622694198358537
329
711
  segments:
330
712
  - 0
331
713
  version: "0"
@@ -334,18 +716,18 @@ required_rubygems_version: !ruby/object:Gem::Requirement
334
716
  requirements:
335
717
  - - ">="
336
718
  - !ruby/object:Gem::Version
337
- hash: 3
338
- segments:
339
- - 0
340
719
  version: "0"
341
720
  requirements: []
342
721
 
343
722
  rubyforge_project:
344
- rubygems_version: 1.3.7
723
+ rubygems_version: 1.5.2
345
724
  signing_key:
346
725
  specification_version: 3
347
726
  summary: Ruby Tool for Language Recognition
348
727
  test_files:
728
+ - features/command_line/dest_option.feature
729
+ - features/command_line/output_option.feature
730
+ - features/command_line/parser_generator.feature
349
731
  - features/grammar/any_character.feature
350
732
  - features/grammar/character_class.feature
351
733
  - features/grammar/eof.feature
@@ -369,7 +751,8 @@ test_files:
369
751
  - features/grammar/whitespace.feature
370
752
  - features/grammar/word_literal.feature
371
753
  - features/grammar/zero_or_more.feature
372
- - features/step_definitions/rattler_steps.rb
754
+ - features/step_definitions/cli_steps.rb
755
+ - features/step_definitions/grammar_steps.rb
373
756
  - features/support/env.rb
374
757
  - spec/rattler/back_end/compiler_spec.rb
375
758
  - spec/rattler/back_end/parser_generator/apply_generator_spec.rb
@@ -408,13 +791,13 @@ test_files:
408
791
  - spec/rattler/parsers/skip_spec.rb
409
792
  - spec/rattler/parsers/token_spec.rb
410
793
  - spec/rattler/parsers/zero_or_more_spec.rb
794
+ - spec/rattler/runtime/extended_packrat_parser_spec.rb
411
795
  - spec/rattler/runtime/packrat_parser_spec.rb
412
796
  - spec/rattler/runtime/parse_failure_spec.rb
413
797
  - spec/rattler/runtime/parse_node_spec.rb
414
798
  - spec/rattler/runtime/parser_spec.rb
415
799
  - spec/rattler/runtime/recursive_descent_parser_spec.rb
416
800
  - spec/rattler/runtime/shared_parser_examples.rb
417
- - spec/rattler/runtime/wdm_parser_spec.rb
418
801
  - spec/rattler/util/line_counter_spec.rb
419
802
  - spec/rattler/util/node_spec.rb
420
803
  - spec/rattler_spec.rb