rattler 0.2.2 → 0.3.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 (56) hide show
  1. data/README.rdoc +83 -64
  2. data/features/grammar/comments.feature +24 -0
  3. data/features/grammar/list_matching.feature +41 -0
  4. data/features/grammar/symantic_action.feature +30 -12
  5. data/lib/rattler/back_end/parser_generator/assert_generator.rb +27 -27
  6. data/lib/rattler/back_end/parser_generator/choice_generator.rb +29 -29
  7. data/lib/rattler/back_end/parser_generator/direct_action_generator.rb +17 -17
  8. data/lib/rattler/back_end/parser_generator/disallow_generator.rb +27 -27
  9. data/lib/rattler/back_end/parser_generator/dispatch_action_generator.rb +17 -17
  10. data/lib/rattler/back_end/parser_generator/expr_generator.rb +129 -40
  11. data/lib/rattler/back_end/parser_generator/label_generator.rb +15 -15
  12. data/lib/rattler/back_end/parser_generator/list1_generator.rb +61 -0
  13. data/lib/rattler/back_end/parser_generator/list_generating.rb +71 -0
  14. data/lib/rattler/back_end/parser_generator/list_generator.rb +57 -0
  15. data/lib/rattler/back_end/parser_generator/one_or_more_generator.rb +14 -15
  16. data/lib/rattler/back_end/parser_generator/optional_generator.rb +24 -24
  17. data/lib/rattler/back_end/parser_generator/predicate_propogating.rb +9 -9
  18. data/lib/rattler/back_end/parser_generator/repeat_generating.rb +16 -16
  19. data/lib/rattler/back_end/parser_generator/sequence_generator.rb +40 -40
  20. data/lib/rattler/back_end/parser_generator/skip_generator.rb +18 -18
  21. data/lib/rattler/back_end/parser_generator/skip_propogating.rb +5 -5
  22. data/lib/rattler/back_end/parser_generator/sub_generating.rb +128 -0
  23. data/lib/rattler/back_end/parser_generator/token_generator.rb +15 -15
  24. data/lib/rattler/back_end/parser_generator/token_propogating.rb +1 -1
  25. data/lib/rattler/back_end/parser_generator/zero_or_more_generator.rb +12 -13
  26. data/lib/rattler/back_end/parser_generator.rb +10 -7
  27. data/lib/rattler/grammar/grammar_parser.rb +16 -21
  28. data/lib/rattler/grammar/metagrammar.rb +1039 -1035
  29. data/lib/rattler/grammar/rattler.rtlr +28 -28
  30. data/lib/rattler/parsers/action_code.rb +20 -9
  31. data/lib/rattler/parsers/fail.rb +7 -1
  32. data/lib/rattler/parsers/list.rb +57 -0
  33. data/lib/rattler/parsers/list1.rb +58 -0
  34. data/lib/rattler/parsers/parser_dsl.rb +60 -38
  35. data/lib/rattler/parsers.rb +5 -3
  36. data/lib/rattler/runtime/extended_packrat_parser.rb +88 -20
  37. data/lib/rattler/runtime/packrat_parser.rb +21 -14
  38. data/lib/rattler/runtime/parser.rb +74 -18
  39. data/lib/rattler/runtime/recursive_descent_parser.rb +15 -46
  40. data/spec/rattler/back_end/compiler_spec.rb +173 -107
  41. data/spec/rattler/back_end/parser_generator/list1_generator_spec.rb +304 -0
  42. data/spec/rattler/back_end/parser_generator/list_generator_spec.rb +288 -0
  43. data/spec/rattler/grammar/grammar_parser_spec.rb +65 -76
  44. data/spec/rattler/parsers/action_code_spec.rb +84 -34
  45. data/spec/rattler/parsers/direct_action_spec.rb +56 -34
  46. data/spec/rattler/parsers/fail_spec.rb +20 -0
  47. data/spec/rattler/parsers/list1_spec.rb +82 -0
  48. data/spec/rattler/parsers/list_spec.rb +82 -0
  49. data/spec/rattler/parsers/parser_dsl_spec.rb +48 -19
  50. data/spec/rattler/runtime/extended_packrat_parser_spec.rb +0 -1
  51. metadata +92 -173
  52. data/bin/rtlr.bat +0 -3
  53. data/lib/rattler/back_end/parser_generator/generator_helper.rb +0 -130
  54. data/lib/rattler/back_end/parser_generator/generators.rb +0 -86
  55. data/lib/rattler/back_end/parser_generator/nested_generators.rb +0 -15
  56. data/lib/rattler/back_end/parser_generator/top_level_generators.rb +0 -15
metadata CHANGED
@@ -1,196 +1,104 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rattler
3
- version: !ruby/object:Gem::Version
4
- hash: 19
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 2
9
- - 2
10
- version: 0.2.2
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Jason Arhart
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-02-16 00:00:00 -08:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2011-02-24 00:00:00.000000000 -08:00
13
+ default_executable: rtlr
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
22
16
  name: bundler
23
- version_requirements: &id001 !ruby/object:Gem::Requirement
17
+ requirement: &78063500 !ruby/object:Gem::Requirement
24
18
  none: false
25
- requirements:
19
+ requirements:
26
20
  - - ~>
27
- - !ruby/object:Gem::Version
28
- hash: 23
29
- segments:
30
- - 1
31
- - 0
32
- - 0
21
+ - !ruby/object:Gem::Version
33
22
  version: 1.0.0
34
- prerelease: false
35
23
  type: :development
36
- requirement: *id001
37
- - !ruby/object:Gem::Dependency
24
+ prerelease: false
25
+ version_requirements: *78063500
26
+ - !ruby/object:Gem::Dependency
38
27
  name: jeweler
39
- version_requirements: &id002 !ruby/object:Gem::Requirement
28
+ requirement: &78062620 !ruby/object:Gem::Requirement
40
29
  none: false
41
- requirements:
30
+ requirements:
42
31
  - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 7
45
- segments:
46
- - 1
47
- - 5
48
- - 2
32
+ - !ruby/object:Gem::Version
49
33
  version: 1.5.2
50
- prerelease: false
51
34
  type: :development
52
- requirement: *id002
53
- - !ruby/object:Gem::Dependency
35
+ prerelease: false
36
+ version_requirements: *78062620
37
+ - !ruby/object:Gem::Dependency
54
38
  name: rspec
55
- version_requirements: &id003 !ruby/object:Gem::Requirement
39
+ requirement: &78061750 !ruby/object:Gem::Requirement
56
40
  none: false
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- hash: 3
61
- segments:
62
- - 2
63
- - 3
64
- - 0
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
65
44
  version: 2.3.0
66
- prerelease: false
67
45
  type: :development
68
- requirement: *id003
69
- - !ruby/object:Gem::Dependency
46
+ prerelease: false
47
+ version_requirements: *78061750
48
+ - !ruby/object:Gem::Dependency
70
49
  name: cucumber
71
- version_requirements: &id004 !ruby/object:Gem::Requirement
50
+ requirement: &78061040 !ruby/object:Gem::Requirement
72
51
  none: false
73
- requirements:
74
- - - ">="
75
- - !ruby/object:Gem::Version
76
- hash: 63
77
- segments:
78
- - 0
79
- - 8
80
- - 0
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
81
55
  version: 0.8.0
82
- prerelease: false
83
56
  type: :development
84
- requirement: *id004
85
- - !ruby/object:Gem::Dependency
57
+ prerelease: false
58
+ version_requirements: *78061040
59
+ - !ruby/object:Gem::Dependency
86
60
  name: aruba
87
- version_requirements: &id005 !ruby/object:Gem::Requirement
61
+ requirement: &78060020 !ruby/object:Gem::Requirement
88
62
  none: false
89
- requirements:
90
- - - ">="
91
- - !ruby/object:Gem::Version
92
- hash: 19
93
- segments:
94
- - 0
95
- - 3
96
- - 0
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
97
66
  version: 0.3.0
98
- prerelease: false
99
- type: :development
100
- requirement: *id005
101
- - !ruby/object:Gem::Dependency
102
- name: yard
103
- version_requirements: &id006 !ruby/object:Gem::Requirement
104
- none: false
105
- requirements:
106
- - - ">="
107
- - !ruby/object:Gem::Version
108
- hash: 7
109
- segments:
110
- - 0
111
- - 6
112
- - 0
113
- version: 0.6.0
114
- prerelease: false
115
67
  type: :development
116
- requirement: *id006
117
- - !ruby/object:Gem::Dependency
118
- name: rspec
119
- version_requirements: &id007 !ruby/object:Gem::Requirement
120
- none: false
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- hash: 3
125
- segments:
126
- - 2
127
- - 3
128
- - 0
129
- version: 2.3.0
130
68
  prerelease: false
131
- type: :development
132
- requirement: *id007
133
- - !ruby/object:Gem::Dependency
69
+ version_requirements: *78060020
70
+ - !ruby/object:Gem::Dependency
134
71
  name: yard
135
- version_requirements: &id008 !ruby/object:Gem::Requirement
72
+ requirement: &78059060 !ruby/object:Gem::Requirement
136
73
  none: false
137
- requirements:
138
- - - ">="
139
- - !ruby/object:Gem::Version
140
- hash: 7
141
- segments:
142
- - 0
143
- - 6
144
- - 0
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
145
77
  version: 0.6.0
146
- prerelease: false
147
78
  type: :development
148
- requirement: *id008
149
- - !ruby/object:Gem::Dependency
150
- name: cucumber
151
- version_requirements: &id009 !ruby/object:Gem::Requirement
152
- none: false
153
- requirements:
154
- - - ">="
155
- - !ruby/object:Gem::Version
156
- hash: 63
157
- segments:
158
- - 0
159
- - 8
160
- - 0
161
- version: 0.8.0
162
79
  prerelease: false
163
- type: :development
164
- requirement: *id009
165
- - !ruby/object:Gem::Dependency
166
- name: aruba
167
- version_requirements: &id010 !ruby/object:Gem::Requirement
80
+ version_requirements: *78059060
81
+ - !ruby/object:Gem::Dependency
82
+ name: watchr
83
+ requirement: &77992410 !ruby/object:Gem::Requirement
168
84
  none: false
169
- requirements:
170
- - - ">="
171
- - !ruby/object:Gem::Version
172
- hash: 19
173
- segments:
174
- - 0
175
- - 3
176
- - 0
177
- version: 0.3.0
178
- prerelease: false
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: 0.5.5
179
89
  type: :development
180
- requirement: *id010
90
+ prerelease: false
91
+ version_requirements: *77992410
181
92
  description: Simple language recognition tool for Ruby based on packrat parsing
182
93
  email: jarhart@gmail.com
183
- executables:
184
- - rtlr.bat
94
+ executables:
185
95
  - rtlr
186
96
  extensions: []
187
-
188
- extra_rdoc_files:
97
+ extra_rdoc_files:
189
98
  - LICENSE.txt
190
99
  - README.rdoc
191
- files:
100
+ files:
192
101
  - bin/rtlr
193
- - bin/rtlr.bat
194
102
  - lib/rattler.rb
195
103
  - lib/rattler/back_end.rb
196
104
  - lib/rattler/back_end/compiler.rb
@@ -204,12 +112,12 @@ files:
204
112
  - lib/rattler/back_end/parser_generator/expr_generator.rb
205
113
  - lib/rattler/back_end/parser_generator/fail_generator.rb
206
114
  - lib/rattler/back_end/parser_generator/gen_method_names.rb
207
- - lib/rattler/back_end/parser_generator/generator_helper.rb
208
- - lib/rattler/back_end/parser_generator/generators.rb
209
115
  - lib/rattler/back_end/parser_generator/label_generator.rb
116
+ - lib/rattler/back_end/parser_generator/list1_generator.rb
117
+ - lib/rattler/back_end/parser_generator/list_generating.rb
118
+ - lib/rattler/back_end/parser_generator/list_generator.rb
210
119
  - lib/rattler/back_end/parser_generator/match_generator.rb
211
120
  - lib/rattler/back_end/parser_generator/nested.rb
212
- - lib/rattler/back_end/parser_generator/nested_generators.rb
213
121
  - lib/rattler/back_end/parser_generator/one_or_more_generator.rb
214
122
  - lib/rattler/back_end/parser_generator/optional_generator.rb
215
123
  - lib/rattler/back_end/parser_generator/predicate_propogating.rb
@@ -218,10 +126,10 @@ files:
218
126
  - lib/rattler/back_end/parser_generator/sequence_generator.rb
219
127
  - lib/rattler/back_end/parser_generator/skip_generator.rb
220
128
  - lib/rattler/back_end/parser_generator/skip_propogating.rb
129
+ - lib/rattler/back_end/parser_generator/sub_generating.rb
221
130
  - lib/rattler/back_end/parser_generator/token_generator.rb
222
131
  - lib/rattler/back_end/parser_generator/token_propogating.rb
223
132
  - lib/rattler/back_end/parser_generator/top_level.rb
224
- - lib/rattler/back_end/parser_generator/top_level_generators.rb
225
133
  - lib/rattler/back_end/parser_generator/zero_or_more_generator.rb
226
134
  - lib/rattler/back_end/ruby_generator.rb
227
135
  - lib/rattler/grammar.rb
@@ -242,6 +150,8 @@ files:
242
150
  - lib/rattler/parsers/eof.rb
243
151
  - lib/rattler/parsers/fail.rb
244
152
  - lib/rattler/parsers/label.rb
153
+ - lib/rattler/parsers/list.rb
154
+ - lib/rattler/parsers/list1.rb
245
155
  - lib/rattler/parsers/match.rb
246
156
  - lib/rattler/parsers/match_joining.rb
247
157
  - lib/rattler/parsers/one_or_more.rb
@@ -276,9 +186,11 @@ files:
276
186
  - features/command_line/parser_generator.feature
277
187
  - features/grammar/any_character.feature
278
188
  - features/grammar/character_class.feature
189
+ - features/grammar/comments.feature
279
190
  - features/grammar/eof.feature
280
191
  - features/grammar/fail.feature
281
192
  - features/grammar/labels.feature
193
+ - features/grammar/list_matching.feature
282
194
  - features/grammar/literal.feature
283
195
  - features/grammar/negative_lookahead.feature
284
196
  - features/grammar/node_action.feature
@@ -309,6 +221,8 @@ files:
309
221
  - spec/rattler/back_end/parser_generator/dispatch_action_generator_spec.rb
310
222
  - spec/rattler/back_end/parser_generator/fail_generator_spec.rb
311
223
  - spec/rattler/back_end/parser_generator/label_generator_spec.rb
224
+ - spec/rattler/back_end/parser_generator/list1_generator_spec.rb
225
+ - spec/rattler/back_end/parser_generator/list_generator_spec.rb
312
226
  - spec/rattler/back_end/parser_generator/match_generator_spec.rb
313
227
  - spec/rattler/back_end/parser_generator/one_or_more_generator_spec.rb
314
228
  - spec/rattler/back_end/parser_generator/optional_generator_spec.rb
@@ -328,7 +242,10 @@ files:
328
242
  - spec/rattler/parsers/disallow_spec.rb
329
243
  - spec/rattler/parsers/dispatch_action_spec.rb
330
244
  - spec/rattler/parsers/eof_spec.rb
245
+ - spec/rattler/parsers/fail_spec.rb
331
246
  - spec/rattler/parsers/label_spec.rb
247
+ - spec/rattler/parsers/list1_spec.rb
248
+ - spec/rattler/parsers/list_spec.rb
332
249
  - spec/rattler/parsers/match_spec.rb
333
250
  - spec/rattler/parsers/one_or_more_spec.rb
334
251
  - spec/rattler/parsers/optional_spec.rb
@@ -354,47 +271,44 @@ files:
354
271
  - spec/support/runtime_parser_spec_helper.rb
355
272
  has_rdoc: true
356
273
  homepage: http://github.com/jarhart/rattler
357
- licenses:
274
+ licenses:
358
275
  - MIT
359
276
  post_install_message:
360
277
  rdoc_options: []
361
-
362
- require_paths:
278
+ require_paths:
363
279
  - lib
364
- required_ruby_version: !ruby/object:Gem::Requirement
280
+ required_ruby_version: !ruby/object:Gem::Requirement
365
281
  none: false
366
- requirements:
367
- - - ">="
368
- - !ruby/object:Gem::Version
369
- hash: 3
370
- segments:
282
+ requirements:
283
+ - - ! '>='
284
+ - !ruby/object:Gem::Version
285
+ version: '0'
286
+ segments:
371
287
  - 0
372
- version: "0"
373
- required_rubygems_version: !ruby/object:Gem::Requirement
288
+ hash: -628641389
289
+ required_rubygems_version: !ruby/object:Gem::Requirement
374
290
  none: false
375
- requirements:
376
- - - ">="
377
- - !ruby/object:Gem::Version
378
- hash: 3
379
- segments:
380
- - 0
381
- version: "0"
291
+ requirements:
292
+ - - ! '>='
293
+ - !ruby/object:Gem::Version
294
+ version: '0'
382
295
  requirements: []
383
-
384
296
  rubyforge_project:
385
297
  rubygems_version: 1.5.2
386
298
  signing_key:
387
299
  specification_version: 3
388
300
  summary: Ruby Tool for Language Recognition
389
- test_files:
301
+ test_files:
390
302
  - features/command_line/dest_option.feature
391
303
  - features/command_line/output_option.feature
392
304
  - features/command_line/parser_generator.feature
393
305
  - features/grammar/any_character.feature
394
306
  - features/grammar/character_class.feature
307
+ - features/grammar/comments.feature
395
308
  - features/grammar/eof.feature
396
309
  - features/grammar/fail.feature
397
310
  - features/grammar/labels.feature
311
+ - features/grammar/list_matching.feature
398
312
  - features/grammar/literal.feature
399
313
  - features/grammar/negative_lookahead.feature
400
314
  - features/grammar/node_action.feature
@@ -425,6 +339,8 @@ test_files:
425
339
  - spec/rattler/back_end/parser_generator/dispatch_action_generator_spec.rb
426
340
  - spec/rattler/back_end/parser_generator/fail_generator_spec.rb
427
341
  - spec/rattler/back_end/parser_generator/label_generator_spec.rb
342
+ - spec/rattler/back_end/parser_generator/list1_generator_spec.rb
343
+ - spec/rattler/back_end/parser_generator/list_generator_spec.rb
428
344
  - spec/rattler/back_end/parser_generator/match_generator_spec.rb
429
345
  - spec/rattler/back_end/parser_generator/one_or_more_generator_spec.rb
430
346
  - spec/rattler/back_end/parser_generator/optional_generator_spec.rb
@@ -444,7 +360,10 @@ test_files:
444
360
  - spec/rattler/parsers/disallow_spec.rb
445
361
  - spec/rattler/parsers/dispatch_action_spec.rb
446
362
  - spec/rattler/parsers/eof_spec.rb
363
+ - spec/rattler/parsers/fail_spec.rb
447
364
  - spec/rattler/parsers/label_spec.rb
365
+ - spec/rattler/parsers/list1_spec.rb
366
+ - spec/rattler/parsers/list_spec.rb
448
367
  - spec/rattler/parsers/match_spec.rb
449
368
  - spec/rattler/parsers/one_or_more_spec.rb
450
369
  - spec/rattler/parsers/optional_spec.rb
data/bin/rtlr.bat DELETED
@@ -1,3 +0,0 @@
1
- @echo off
2
- set SCRIPT_DIR=%~dp0
3
- ruby "%SCRIPT_DIR%rtlr" %*
@@ -1,130 +0,0 @@
1
- require 'rattler/back_end/parser_generator'
2
-
3
- module Rattler::BackEnd::ParserGenerator
4
- # @private
5
- module GeneratorHelper #:nodoc:
6
-
7
- def gen_basic_nested(parser)
8
- gen_basic parser
9
- end
10
-
11
- def gen_basic_top_level(parser)
12
- gen_basic parser
13
- end
14
-
15
- def gen_assert_nested(parser)
16
- gen_assert parser
17
- end
18
-
19
- def gen_assert_top_level(parser)
20
- gen_assert parser
21
- end
22
-
23
- def gen_disallow_nested(parser)
24
- gen_disallow parser
25
- end
26
-
27
- def gen_disallow_top_level(parser)
28
- gen_disallow parser
29
- end
30
-
31
- def gen_dispatch_action_nested(parser, target, method_name)
32
- gen_dispatch_action parser, target, method_name
33
- end
34
-
35
- def gen_dispatch_action_top_level(parser, target, method_name)
36
- gen_dispatch_action parser, target, method_name
37
- end
38
-
39
- def gen_direct_action_nested(parser, action)
40
- gen_direct_action parser, action
41
- end
42
-
43
- def gen_direct_action_top_level(parser, action)
44
- gen_direct_action parser, action
45
- end
46
-
47
- def gen_token_nested(parser)
48
- atomic_block { gen_token_top_level parser }
49
- end
50
-
51
- def gen_token_top_level(parser)
52
- (@g << "tp = @scanner.pos").newline
53
- gen_intermediate_skip parser
54
- (@g << ' &&').newline
55
- @g << "@scanner.string[tp...(@scanner.pos)]"
56
- end
57
-
58
- def gen_skip_nested(parser)
59
- gen_skip parser
60
- end
61
-
62
- def gen_skip_top_level(parser)
63
- gen_skip parser
64
- end
65
-
66
- def gen_intermediate(parser)
67
- gen_basic_nested parser
68
- end
69
-
70
- def gen_intermediate_assert(parser)
71
- gen_assert_nested parser
72
- end
73
-
74
- def gen_intermediate_disallow(parser)
75
- gen_disallow_nested parser
76
- end
77
-
78
- def gen_intermediate_skip(parser)
79
- gen_skip_nested parser
80
- end
81
-
82
- protected
83
-
84
- def atomic_expr
85
- @g.surround('(', ')') { yield }
86
- end
87
-
88
- def atomic_block
89
- @g.block('begin') { yield }
90
- end
91
-
92
- def result_name
93
- 'r'
94
- end
95
-
96
- def saved_pos_name
97
- "p#{sequence_level}"
98
- end
99
-
100
- def dispatch_action_result(target, method_name, options = {})
101
- args = [options[:array_expr] || "[#{result_name}]"]
102
- labeled = options[:labeled]
103
- if labeled and not labeled.empty?
104
- if labeled.respond_to?(:to_hash)
105
- labeled = '{' + labeled.map {|k, v| ":#{k} => #{v}"}.join(', ') + '}'
106
- end
107
- args << ":labeled => #{labeled}"
108
- end
109
- t = target == 'self' ? '' : "#{target}."
110
- "#{t}#{method_name}(#{args.join ', '})"
111
- end
112
-
113
- def direct_action_result(action, options = {})
114
- args = options[:bind_args] || [result_name]
115
- labeled = options[:labeled] || {}
116
- "(#{action.bind args, labeled})"
117
- end
118
-
119
- def lookahead
120
- (@g << "#{saved_pos_name} = @scanner.pos").newline
121
- yield
122
- (@g << "@scanner.pos = #{saved_pos_name}").newline
123
- end
124
-
125
- def new_level(old_level)
126
- old_level ? (old_level + 1) : 0
127
- end
128
-
129
- end
130
- end
@@ -1,86 +0,0 @@
1
- require 'rattler/back_end/parser_generator'
2
-
3
- module Rattler::BackEnd::ParserGenerator
4
-
5
- # @private
6
- module Generators #:nodoc:
7
-
8
- protected
9
-
10
- def match_generator
11
- @match_generator ||= MatchGenerator.send(factory_method, @g,
12
- choice_level, sequence_level, repeat_level)
13
- end
14
-
15
- def choice_generator
16
- ChoiceGenerator.send(factory_method, @g,
17
- new_level(choice_level), sequence_level, repeat_level)
18
- end
19
-
20
- def sequence_generator
21
- SequenceGenerator.send(factory_method, @g,
22
- choice_level, new_level(sequence_level), repeat_level)
23
- end
24
-
25
- def optional_generator
26
- @optional_generator ||= OptionalGenerator.send(factory_method, @g,
27
- choice_level, sequence_level, repeat_level)
28
- end
29
-
30
- def zero_or_more_generator
31
- ZeroOrMoreGenerator.send(factory_method, @g,
32
- choice_level, sequence_level, new_level(repeat_level))
33
- end
34
-
35
- def one_or_more_generator
36
- OneOrMoreGenerator.send(factory_method, @g,
37
- choice_level, sequence_level, new_level(repeat_level))
38
- end
39
-
40
- def apply_generator
41
- @apply_generator ||= ApplyGenerator.send(factory_method, @g,
42
- choice_level, sequence_level, repeat_level)
43
- end
44
-
45
- def assert_generator
46
- @assert_generator ||= AssertGenerator.send(factory_method, @g,
47
- choice_level, sequence_level, repeat_level)
48
- end
49
-
50
- def disallow_generator
51
- @disallow_generator ||= DisallowGenerator.send(factory_method, @g,
52
- choice_level, sequence_level, repeat_level)
53
- end
54
-
55
- def dispatch_action_generator
56
- @dispatch_action_generator ||= DispatchActionGenerator.send(factory_method, @g,
57
- choice_level, sequence_level, repeat_level)
58
- end
59
-
60
- def direct_action_generator
61
- @direct_action_generator ||= DirectActionGenerator.send(factory_method, @g,
62
- choice_level, sequence_level, repeat_level)
63
- end
64
-
65
- def token_generator
66
- @token_generator ||= TokenGenerator.send(factory_method, @g,
67
- choice_level, sequence_level, repeat_level)
68
- end
69
-
70
- def skip_generator
71
- @skip_generator ||= SkipGenerator.send(factory_method, @g,
72
- choice_level, sequence_level, repeat_level)
73
- end
74
-
75
- def label_generator
76
- @label_generator ||= LabelGenerator.send(factory_method, @g,
77
- choice_level, sequence_level, repeat_level)
78
- end
79
-
80
- def fail_generator
81
- @fail_generator ||= FailGenerator.send(factory_method, @g)
82
- end
83
-
84
- end
85
-
86
- end
@@ -1,15 +0,0 @@
1
- require 'rattler/back_end/parser_generator'
2
-
3
- module Rattler::BackEnd::ParserGenerator
4
- # @private
5
- module NestedGenerators #:nodoc:
6
- include Generators
7
-
8
- protected
9
-
10
- def factory_method
11
- :nested
12
- end
13
-
14
- end
15
- end
@@ -1,15 +0,0 @@
1
- require 'rattler/back_end/parser_generator'
2
-
3
- module Rattler::BackEnd::ParserGenerator
4
- # @private
5
- module TopLevelGenerators #:nodoc:
6
- include Generators
7
-
8
- protected
9
-
10
- def factory_method
11
- :top_level
12
- end
13
-
14
- end
15
- end