manamana 0.0.1 → 0.0.2

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/.gitignore CHANGED
@@ -3,7 +3,6 @@
3
3
  .bundle
4
4
  .config
5
5
  .yardoc
6
- Gemfile.lock
7
6
  InstalledFiles
8
7
  _yardoc
9
8
  coverage
data/Gemfile CHANGED
@@ -2,3 +2,14 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in manamana.gemspec
4
4
  gemspec
5
+
6
+ group :development do
7
+ gem "minitest"
8
+ gem "minitest-colorize", :git => 'git://github.com/sobrinho/minitest-colorize.git', :branch => 'master'
9
+ gem 'rb-fsevent', '~> 0.9'
10
+ gem "guard"
11
+ gem "guard-rake"
12
+ gem "guard-minitest"
13
+ gem 'ruby_gntp'
14
+ gem "racc"
15
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,58 @@
1
+ GIT
2
+ remote: git://github.com/sobrinho/minitest-colorize.git
3
+ revision: c75efb2064453bab38329a3f89487c9dbeb2887d
4
+ branch: master
5
+ specs:
6
+ minitest-colorize (0.0.5)
7
+ minitest (>= 2.0)
8
+
9
+ PATH
10
+ remote: .
11
+ specs:
12
+ manamana (0.0.2)
13
+ racc (= 1.4.9)
14
+
15
+ GEM
16
+ remote: https://rubygems.org/
17
+ specs:
18
+ coderay (1.0.9)
19
+ guard (1.6.2)
20
+ listen (>= 0.6.0)
21
+ lumberjack (>= 1.0.2)
22
+ pry (>= 0.9.10)
23
+ terminal-table (>= 1.4.3)
24
+ thor (>= 0.14.6)
25
+ guard-minitest (0.5.0)
26
+ guard (>= 0.4)
27
+ guard-rake (0.0.7)
28
+ guard
29
+ rake
30
+ listen (0.7.3)
31
+ lumberjack (1.0.2)
32
+ method_source (0.8.1)
33
+ minitest (4.6.2)
34
+ pry (0.9.12)
35
+ coderay (~> 1.0.5)
36
+ method_source (~> 0.8)
37
+ slop (~> 3.4)
38
+ racc (1.4.9)
39
+ rake (10.0.3)
40
+ rb-fsevent (0.9.3)
41
+ ruby_gntp (0.3.4)
42
+ slop (3.4.3)
43
+ terminal-table (1.4.5)
44
+ thor (0.17.0)
45
+
46
+ PLATFORMS
47
+ ruby
48
+
49
+ DEPENDENCIES
50
+ guard
51
+ guard-minitest
52
+ guard-rake
53
+ manamana!
54
+ minitest
55
+ minitest-colorize!
56
+ racc
57
+ rb-fsevent (~> 0.9)
58
+ ruby_gntp
data/Guardfile ADDED
@@ -0,0 +1,27 @@
1
+ # More info at https://github.com/guard/guard#readme
2
+
3
+ guard 'minitest' do
4
+ watch(%r|^lib/manamana\.rb|) { "test" }
5
+ watch(%r|^lib/manamana/rdsl/nodes\.rb|) { "test/lib/manamana/rdsl/requirements_node_test.rb" }
6
+ watch(%r|^lib/manamana/tdsl/nodes\.rb|) { "test/lib/manamana/tdsl/test_case_node_test.rb" }
7
+ watch(%r|^lib/(.*)/(.*)\.rb|) { |m| "test/lib/#{m[1]}/#{m[2]}_test.rb" }
8
+
9
+ watch(%r|^test/test_helper\.rb|) { "test" }
10
+ watch(%r|^test/lib/.*/.*_test\.rb|)
11
+ end
12
+
13
+ guard 'rake', :task => 'rdsl:compile_lexer' do
14
+ watch %r{^src/rdsl/lexer\.rl$}
15
+ end
16
+
17
+ guard 'rake', :task => 'rdsl:compile_parser' do
18
+ watch %r{^src/rdsl/parser\.y$}
19
+ end
20
+
21
+ guard 'rake', :task => 'tdsl:compile_lexer' do
22
+ watch %r{^src/tdsl/lexer\.rl$}
23
+ end
24
+
25
+ guard 'rake', :task => 'tdsl:compile_parser' do
26
+ watch %r{^src/tdsl/parser\.y$}
27
+ end
data/Rakefile CHANGED
@@ -1,2 +1,44 @@
1
1
  #!/usr/bin/env rake
2
2
  require "bundler/gem_tasks"
3
+ require 'rake/testtask'
4
+
5
+ Rake::TestTask.new do |t|
6
+ t.libs << 'lib/manamana'
7
+ t.test_files = FileList[
8
+ 'test/lib/manamana/*_test.rb',
9
+ 'test/lib/rsyntax/*_test.rb'
10
+ ]
11
+ t.verbose = false
12
+ end
13
+
14
+ task :default => :test
15
+
16
+
17
+ namespace :rdsl do
18
+
19
+ desc "Compiles the Requirements DSL lexer"
20
+ task :compile_lexer do |t|
21
+ `ragel -R src/rdsl/lexer.rl -o lib/manamana/rdsl/lexer.rb`
22
+ end
23
+
24
+ desc "Compiles the Requirements DSL parser"
25
+ task :compile_parser do |t|
26
+ `racc src/rdsl/parser.y -o lib/manamana/rdsl/parser.rb`
27
+ end
28
+
29
+ end
30
+
31
+
32
+ namespace :tdsl do
33
+
34
+ desc "Compiles the Test Case DSL lexer"
35
+ task :compile_lexer do |t|
36
+ `ragel -R src/tdsl/lexer.rl -o lib/manamana/tdsl/lexer.rb`
37
+ end
38
+
39
+ desc "Compiles the Test Case DSL parser"
40
+ task :compile_parser do |t|
41
+ `racc src/tdsl/parser.y -o lib/manamana/tdsl/parser.rb`
42
+ end
43
+
44
+ end
data/bin/mana ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+ require 'bundler/setup'
3
+ require 'manamana'
4
+
5
+ include ManaMana
6
+ Compiler.new.start
7
+ Runner.new.start
@@ -0,0 +1,63 @@
1
+ module ManaMana
2
+
3
+ class Compiler
4
+ def start(options = {})
5
+ options[:requirements_path] = File.join(Dir.pwd, 'requirements')
6
+ options[:test_cases_path] = File.join(Dir.pwd, 'test_cases')
7
+ options[:utilities_path] = File.join(Dir.pwd, 'utilities')
8
+ options[:output_path] = File.join(Dir.pwd, '__spec__.rb')
9
+ @options = options
10
+
11
+ req_groups = load_and_parse_requirements.groups
12
+ test_cases = load_and_parse_test_cases
13
+
14
+ output = ""
15
+
16
+ req_groups.each do |group|
17
+ output << "describe \"#{ group.name }\" do\n\n"
18
+
19
+ group.all_requirements.each do |r|
20
+ output << test_cases.find(r).translate(r) + "\n"
21
+ end
22
+
23
+ output << "end\n\n"
24
+ end
25
+
26
+ file = File.new(options[:output_path], 'w')
27
+ file.write(output)
28
+ file.close
29
+ end
30
+
31
+ private
32
+
33
+ def load_and_parse_requirements
34
+ requirements = load_files options[:requirements_path]
35
+ nodes = RDSL::Parser.new.parse(requirements)
36
+ end
37
+
38
+ def load_and_parse_test_cases
39
+ test_cases = load_files options[:test_cases_path]
40
+ nodes = TDSL::Parser.new.parse(test_cases)
41
+ end
42
+
43
+ def options
44
+ @options
45
+ end
46
+
47
+ def load_files(in_dir, lines = '')
48
+ Dir.entries(in_dir).each do |entry|
49
+ next if ['.', '..'].include? entry
50
+
51
+ path = File.join(in_dir, entry)
52
+
53
+ if File.directory?(path)
54
+ lines = load_files(path, lines)
55
+ else
56
+ lines = lines + "\n\n" + File.open(path, "rb").read
57
+ end
58
+ end
59
+ lines
60
+ end
61
+ end
62
+
63
+ end
@@ -0,0 +1,484 @@
1
+
2
+ # line 1 "src/rdsl/lexer.rl"
3
+ # lib/manamana/rdsl/lexer.rb is autogenerated by
4
+ # ragel from src/rdsl/lexer.rl. Please edit the
5
+ # .rl file and not the .rb file.
6
+
7
+
8
+ # line 31 "src/rdsl/lexer.rl"
9
+
10
+
11
+ module ManaMana
12
+
13
+ module RDSL
14
+
15
+ class Lexer
16
+
17
+ def initialize
18
+
19
+ # line 20 "lib/manamana/rdsl/lexer.rb"
20
+ class << self
21
+ attr_accessor :_lexer_actions
22
+ private :_lexer_actions, :_lexer_actions=
23
+ end
24
+ self._lexer_actions = [
25
+ 0, 1, 2, 1, 3, 1, 5, 1,
26
+ 6, 1, 7, 1, 8, 1, 9, 1,
27
+ 10, 1, 11, 1, 12, 2, 0, 1,
28
+ 2, 3, 4
29
+ ]
30
+
31
+ class << self
32
+ attr_accessor :_lexer_key_offsets
33
+ private :_lexer_key_offsets, :_lexer_key_offsets=
34
+ end
35
+ self._lexer_key_offsets = [
36
+ 0, 0, 15, 28, 42, 54, 56, 57,
37
+ 58, 59, 60, 61, 62, 63, 70, 81,
38
+ 90, 91, 93, 94, 95, 98, 112, 117,
39
+ 121, 125, 127, 128, 133, 137, 141, 143
40
+ ]
41
+
42
+ class << self
43
+ attr_accessor :_lexer_trans_keys
44
+ private :_lexer_trans_keys, :_lexer_trans_keys=
45
+ end
46
+ self._lexer_trans_keys = [
47
+ 9, 10, 13, 32, 61, 93, 125, 40,
48
+ 41, 48, 57, 65, 91, 97, 123, 9,
49
+ 32, 61, 93, 125, 40, 41, 48, 57,
50
+ 65, 91, 97, 123, 9, 10, 13, 32,
51
+ 93, 125, 40, 41, 48, 57, 65, 91,
52
+ 97, 123, 9, 32, 93, 125, 40, 41,
53
+ 48, 57, 65, 91, 97, 123, 10, 13,
54
+ 10, 10, 10, 61, 61, 10, 32, 60,
55
+ 48, 57, 65, 90, 97, 122, 9, 10,
56
+ 13, 32, 60, 48, 57, 65, 90, 97,
57
+ 122, 9, 32, 60, 48, 57, 65, 90,
58
+ 97, 122, 10, 10, 13, 10, 10, 124,
59
+ 32, 126, 32, 42, 93, 124, 9, 13,
60
+ 40, 41, 48, 57, 65, 91, 97, 125,
61
+ 9, 10, 13, 32, 126, 9, 10, 13,
62
+ 32, 10, 13, 32, 126, 10, 13, 61,
63
+ 9, 10, 13, 32, 126, 9, 10, 13,
64
+ 32, 10, 13, 32, 126, 10, 13, 124,
65
+ 32, 126, 0
66
+ ]
67
+
68
+ class << self
69
+ attr_accessor :_lexer_single_lengths
70
+ private :_lexer_single_lengths, :_lexer_single_lengths=
71
+ end
72
+ self._lexer_single_lengths = [
73
+ 0, 7, 5, 6, 4, 2, 1, 1,
74
+ 1, 1, 1, 1, 1, 1, 5, 3,
75
+ 1, 2, 1, 1, 1, 4, 3, 4,
76
+ 2, 2, 1, 3, 4, 2, 2, 1
77
+ ]
78
+
79
+ class << self
80
+ attr_accessor :_lexer_range_lengths
81
+ private :_lexer_range_lengths, :_lexer_range_lengths=
82
+ end
83
+ self._lexer_range_lengths = [
84
+ 0, 4, 4, 4, 4, 0, 0, 0,
85
+ 0, 0, 0, 0, 0, 3, 3, 3,
86
+ 0, 0, 0, 0, 1, 5, 1, 0,
87
+ 1, 0, 0, 1, 0, 1, 0, 1
88
+ ]
89
+
90
+ class << self
91
+ attr_accessor :_lexer_index_offsets
92
+ private :_lexer_index_offsets, :_lexer_index_offsets=
93
+ end
94
+ self._lexer_index_offsets = [
95
+ 0, 0, 12, 22, 33, 42, 45, 47,
96
+ 49, 51, 53, 55, 57, 59, 64, 73,
97
+ 80, 82, 85, 87, 89, 92, 102, 107,
98
+ 112, 116, 119, 121, 126, 131, 135, 138
99
+ ]
100
+
101
+ class << self
102
+ attr_accessor :_lexer_indicies
103
+ private :_lexer_indicies, :_lexer_indicies=
104
+ end
105
+ self._lexer_indicies = [
106
+ 1, 2, 3, 1, 5, 4, 4, 4,
107
+ 4, 4, 4, 0, 1, 1, 5, 4,
108
+ 4, 4, 4, 4, 4, 0, 6, 2,
109
+ 3, 6, 4, 4, 4, 4, 4, 4,
110
+ 0, 6, 6, 4, 4, 4, 4, 4,
111
+ 4, 0, 2, 3, 0, 2, 0, 7,
112
+ 0, 8, 0, 9, 0, 10, 0, 11,
113
+ 0, 12, 13, 14, 14, 14, 14, 13,
114
+ 16, 17, 18, 16, 19, 19, 19, 19,
115
+ 15, 16, 16, 19, 19, 19, 19, 15,
116
+ 20, 15, 17, 18, 15, 17, 15, 21,
117
+ 15, 24, 23, 22, 25, 27, 26, 23,
118
+ 25, 26, 26, 26, 26, 13, 29, 11,
119
+ 30, 26, 28, 29, 11, 30, 29, 28,
120
+ 8, 31, 4, 28, 7, 32, 28, 10,
121
+ 33, 35, 20, 36, 14, 34, 35, 20,
122
+ 36, 35, 34, 20, 36, 19, 34, 21,
123
+ 37, 34, 24, 23, 38, 0
124
+ ]
125
+
126
+ class << self
127
+ attr_accessor :_lexer_trans_targs
128
+ private :_lexer_trans_targs, :_lexer_trans_targs=
129
+ end
130
+ self._lexer_trans_targs = [
131
+ 21, 2, 25, 6, 24, 9, 4, 5,
132
+ 3, 10, 26, 1, 13, 0, 27, 21,
133
+ 15, 30, 18, 29, 14, 17, 21, 20,
134
+ 31, 21, 22, 12, 21, 23, 11, 8,
135
+ 7, 21, 21, 28, 16, 19, 21
136
+ ]
137
+
138
+ class << self
139
+ attr_accessor :_lexer_trans_actions
140
+ private :_lexer_trans_actions, :_lexer_trans_actions=
141
+ end
142
+ self._lexer_trans_actions = [
143
+ 17, 0, 3, 0, 3, 0, 0, 0,
144
+ 0, 0, 0, 0, 0, 0, 3, 15,
145
+ 0, 3, 0, 3, 0, 0, 19, 0,
146
+ 24, 5, 3, 0, 13, 3, 0, 0,
147
+ 0, 7, 9, 3, 0, 0, 11
148
+ ]
149
+
150
+ class << self
151
+ attr_accessor :_lexer_to_state_actions
152
+ private :_lexer_to_state_actions, :_lexer_to_state_actions=
153
+ end
154
+ self._lexer_to_state_actions = [
155
+ 0, 0, 0, 0, 0, 0, 0, 0,
156
+ 0, 0, 0, 0, 0, 0, 0, 0,
157
+ 0, 0, 0, 0, 0, 21, 0, 0,
158
+ 0, 0, 0, 0, 0, 0, 0, 0
159
+ ]
160
+
161
+ class << self
162
+ attr_accessor :_lexer_from_state_actions
163
+ private :_lexer_from_state_actions, :_lexer_from_state_actions=
164
+ end
165
+ self._lexer_from_state_actions = [
166
+ 0, 0, 0, 0, 0, 0, 0, 0,
167
+ 0, 0, 0, 0, 0, 0, 0, 0,
168
+ 0, 0, 0, 0, 0, 1, 0, 0,
169
+ 0, 0, 0, 0, 0, 0, 0, 0
170
+ ]
171
+
172
+ class << self
173
+ attr_accessor :_lexer_eof_trans
174
+ private :_lexer_eof_trans, :_lexer_eof_trans=
175
+ end
176
+ self._lexer_eof_trans = [
177
+ 0, 1, 1, 1, 1, 1, 1, 1,
178
+ 1, 1, 1, 1, 0, 0, 16, 16,
179
+ 16, 16, 16, 16, 23, 0, 29, 29,
180
+ 29, 29, 34, 35, 35, 35, 35, 39
181
+ ]
182
+
183
+ class << self
184
+ attr_accessor :lexer_start
185
+ end
186
+ self.lexer_start = 21;
187
+ class << self
188
+ attr_accessor :lexer_first_final
189
+ end
190
+ self.lexer_first_final = 21;
191
+ class << self
192
+ attr_accessor :lexer_error
193
+ end
194
+ self.lexer_error = 0;
195
+
196
+ class << self
197
+ attr_accessor :lexer_en_main
198
+ end
199
+ self.lexer_en_main = 21;
200
+
201
+
202
+ # line 41 "src/rdsl/lexer.rl"
203
+ # %% this just fixes syntax highlighting in TextMate et al.
204
+ end
205
+
206
+ def emit_group_name(token_array, data, ts, te)
207
+ value = data[ts...te].pack("c*").split(/=+/)[0].strip
208
+ token_array << [:GROUP, value]
209
+ end
210
+
211
+ def emit_row(data, target_array, ts, te)
212
+ cells = data[(ts + 1)...( te - 1)].pack("c*")
213
+
214
+ # ignore borders
215
+ return if /^\-+/ =~ cells
216
+
217
+ target_array << [:ROW, 'Row']
218
+ cells.split('|').each do |cell|
219
+ target_array << [:CELL, cell.strip]
220
+ end
221
+ end
222
+
223
+ def emit_requirement(token_array, data, ts, te)
224
+ value = data[ts...te].pack("c*").gsub(/^\* /, '').split.join(' ')
225
+ token_array << [:REQUIREMENT, value]
226
+ end
227
+
228
+ def emit_text(token_array, data, ts, te)
229
+ value = data[ts...te].pack("c*").strip.split.join(' ')
230
+ token_array << [:TEXT, value]
231
+ end
232
+
233
+ def tokenize(data)
234
+ data = data.unpack("c*") if(data.is_a?(String))
235
+ eof = data.length
236
+ token_array = []
237
+
238
+
239
+ # line 240 "lib/manamana/rdsl/lexer.rb"
240
+ begin
241
+ p ||= 0
242
+ pe ||= data.length
243
+ cs = lexer_start
244
+ ts = nil
245
+ te = nil
246
+ act = 0
247
+ end
248
+
249
+ # line 77 "src/rdsl/lexer.rl"
250
+
251
+ # line 252 "lib/manamana/rdsl/lexer.rb"
252
+ begin
253
+ _klen, _trans, _keys, _acts, _nacts = nil
254
+ _goto_level = 0
255
+ _resume = 10
256
+ _eof_trans = 15
257
+ _again = 20
258
+ _test_eof = 30
259
+ _out = 40
260
+ while true
261
+ _trigger_goto = false
262
+ if _goto_level <= 0
263
+ if p == pe
264
+ _goto_level = _test_eof
265
+ next
266
+ end
267
+ if cs == 0
268
+ _goto_level = _out
269
+ next
270
+ end
271
+ end
272
+ if _goto_level <= _resume
273
+ _acts = _lexer_from_state_actions[cs]
274
+ _nacts = _lexer_actions[_acts]
275
+ _acts += 1
276
+ while _nacts > 0
277
+ _nacts -= 1
278
+ _acts += 1
279
+ case _lexer_actions[_acts - 1]
280
+ when 2 then
281
+ # line 1 "NONE"
282
+ begin
283
+ ts = p
284
+ end
285
+ # line 286 "lib/manamana/rdsl/lexer.rb"
286
+ end # from state action switch
287
+ end
288
+ if _trigger_goto
289
+ next
290
+ end
291
+ _keys = _lexer_key_offsets[cs]
292
+ _trans = _lexer_index_offsets[cs]
293
+ _klen = _lexer_single_lengths[cs]
294
+ _break_match = false
295
+
296
+ begin
297
+ if _klen > 0
298
+ _lower = _keys
299
+ _upper = _keys + _klen - 1
300
+
301
+ loop do
302
+ break if _upper < _lower
303
+ _mid = _lower + ( (_upper - _lower) >> 1 )
304
+
305
+ if data[p].ord < _lexer_trans_keys[_mid]
306
+ _upper = _mid - 1
307
+ elsif data[p].ord > _lexer_trans_keys[_mid]
308
+ _lower = _mid + 1
309
+ else
310
+ _trans += (_mid - _keys)
311
+ _break_match = true
312
+ break
313
+ end
314
+ end # loop
315
+ break if _break_match
316
+ _keys += _klen
317
+ _trans += _klen
318
+ end
319
+ _klen = _lexer_range_lengths[cs]
320
+ if _klen > 0
321
+ _lower = _keys
322
+ _upper = _keys + (_klen << 1) - 2
323
+ loop do
324
+ break if _upper < _lower
325
+ _mid = _lower + (((_upper-_lower) >> 1) & ~1)
326
+ if data[p].ord < _lexer_trans_keys[_mid]
327
+ _upper = _mid - 2
328
+ elsif data[p].ord > _lexer_trans_keys[_mid+1]
329
+ _lower = _mid + 2
330
+ else
331
+ _trans += ((_mid - _keys) >> 1)
332
+ _break_match = true
333
+ break
334
+ end
335
+ end # loop
336
+ break if _break_match
337
+ _trans += _klen
338
+ end
339
+ end while false
340
+ _trans = _lexer_indicies[_trans]
341
+ end
342
+ if _goto_level <= _eof_trans
343
+ cs = _lexer_trans_targs[_trans]
344
+ if _lexer_trans_actions[_trans] != 0
345
+ _acts = _lexer_trans_actions[_trans]
346
+ _nacts = _lexer_actions[_acts]
347
+ _acts += 1
348
+ while _nacts > 0
349
+ _nacts -= 1
350
+ _acts += 1
351
+ case _lexer_actions[_acts - 1]
352
+ when 3 then
353
+ # line 1 "NONE"
354
+ begin
355
+ te = p+1
356
+ end
357
+ when 4 then
358
+ # line 25 "src/rdsl/lexer.rl"
359
+ begin
360
+ act = 3; end
361
+ when 5 then
362
+ # line 28 "src/rdsl/lexer.rl"
363
+ begin
364
+ te = p+1
365
+ end
366
+ when 6 then
367
+ # line 23 "src/rdsl/lexer.rl"
368
+ begin
369
+ te = p
370
+ p = p - 1; begin emit_group_name(token_array, data, ts, te) end
371
+ end
372
+ when 7 then
373
+ # line 24 "src/rdsl/lexer.rl"
374
+ begin
375
+ te = p
376
+ p = p - 1; begin emit_requirement(token_array, data, ts, te) end
377
+ end
378
+ when 8 then
379
+ # line 25 "src/rdsl/lexer.rl"
380
+ begin
381
+ te = p
382
+ p = p - 1; begin emit_row(data, token_array, ts, te) end
383
+ end
384
+ when 9 then
385
+ # line 26 "src/rdsl/lexer.rl"
386
+ begin
387
+ te = p
388
+ p = p - 1; begin emit_text(token_array, data, ts, te) end
389
+ end
390
+ when 10 then
391
+ # line 24 "src/rdsl/lexer.rl"
392
+ begin
393
+ begin p = ((te))-1; end
394
+ begin emit_requirement(token_array, data, ts, te) end
395
+ end
396
+ when 11 then
397
+ # line 26 "src/rdsl/lexer.rl"
398
+ begin
399
+ begin p = ((te))-1; end
400
+ begin emit_text(token_array, data, ts, te) end
401
+ end
402
+ when 12 then
403
+ # line 1 "NONE"
404
+ begin
405
+ case act
406
+ when 0 then
407
+ begin begin
408
+ cs = 0
409
+ _trigger_goto = true
410
+ _goto_level = _again
411
+ break
412
+ end
413
+ end
414
+ when 3 then
415
+ begin begin p = ((te))-1; end
416
+ emit_row(data, token_array, ts, te) end
417
+ end
418
+ end
419
+ # line 420 "lib/manamana/rdsl/lexer.rb"
420
+ end # action switch
421
+ end
422
+ end
423
+ if _trigger_goto
424
+ next
425
+ end
426
+ end
427
+ if _goto_level <= _again
428
+ _acts = _lexer_to_state_actions[cs]
429
+ _nacts = _lexer_actions[_acts]
430
+ _acts += 1
431
+ while _nacts > 0
432
+ _nacts -= 1
433
+ _acts += 1
434
+ case _lexer_actions[_acts - 1]
435
+ when 0 then
436
+ # line 1 "NONE"
437
+ begin
438
+ ts = nil; end
439
+ when 1 then
440
+ # line 1 "NONE"
441
+ begin
442
+ act = 0
443
+ end
444
+ # line 445 "lib/manamana/rdsl/lexer.rb"
445
+ end # to state action switch
446
+ end
447
+ if _trigger_goto
448
+ next
449
+ end
450
+ if cs == 0
451
+ _goto_level = _out
452
+ next
453
+ end
454
+ p += 1
455
+ if p != pe
456
+ _goto_level = _resume
457
+ next
458
+ end
459
+ end
460
+ if _goto_level <= _test_eof
461
+ if p == eof
462
+ if _lexer_eof_trans[cs] > 0
463
+ _trans = _lexer_eof_trans[cs] - 1;
464
+ _goto_level = _eof_trans
465
+ next;
466
+ end
467
+ end
468
+ end
469
+ if _goto_level <= _out
470
+ break
471
+ end
472
+ end
473
+ end
474
+
475
+ # line 78 "src/rdsl/lexer.rl"
476
+
477
+ token_array
478
+ end
479
+
480
+ end
481
+
482
+ end
483
+
484
+ end