gherkin 2.9.3 → 2.10.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.
data/gherkin.gemspec CHANGED
@@ -4,8 +4,8 @@ Gem::Specification.new do |s|
4
4
  s.name = "gherkin"
5
5
  # If the major version is bumped, verify that the change is ok:
6
6
  #
7
- # * Comment out cucumber dependency in gemspec
8
- # * Uncomment cucumber location in Gemfile
7
+ # * Comment out the cucumber dependency below
8
+ # * Uncomment the cucumber location in Gemfile
9
9
  # * Bump cucumber's gherkin dependency to the new version
10
10
  # * bundle update
11
11
  # * bundle exec rake
@@ -13,9 +13,9 @@ Gem::Specification.new do |s|
13
13
  # Repeat these step for cucumber (swap `cucumber` with `gherkin`).
14
14
  #
15
15
  # When both are building OK, do a `bundle exec rake install` in both cucumber and gherkin projects, revert the changes in the first 2 steps
16
- # and release both projects.
16
+ # and release both projects. Do this for both ruby 1.8.7, ruby 1.9.3 and jruby.
17
17
  #
18
- s.version = "2.9.3"
18
+ s.version = "2.10.0"
19
19
  s.authors = ["Mike Sassak", "Gregory Hnatiuk", "Aslak Hellesøy"]
20
20
  s.description = "A fast Gherkin lexer/parser based on the Ragel State Machine Compiler."
21
21
  s.summary = "#{s.name}-#{s.version}"
@@ -58,16 +58,16 @@ Gem::Specification.new do |s|
58
58
 
59
59
  s.add_runtime_dependency('json', '>= 1.4.6')
60
60
 
61
- s.add_development_dependency('cucumber', '>= 1.1.9')
61
+ s.add_development_dependency('cucumber', '>= 1.2.0')
62
62
  s.add_development_dependency('rake', '>= 0.9.2')
63
63
  s.add_development_dependency('bundler', '>= 1.1.0')
64
64
  s.add_development_dependency('rspec', '~> 2.9.0')
65
- s.add_development_dependency('rubyzip', '>= 0.9.6.1')
65
+ s.add_development_dependency('rubyzip', '>= 0.9.8')
66
66
 
67
67
  unless ENV['RUBY_CC_VERSION'] || defined?(JRUBY_VERSION)
68
- s.add_development_dependency('therubyracer', '>= 0.9.10') if ENV['GHERKIN_JS']
68
+ s.add_development_dependency('therubyracer', '>= 0.10.1') if ENV['GHERKIN_JS']
69
69
  # For Documentation:
70
- s.add_development_dependency('yard', '>= 0.7.5')
70
+ s.add_development_dependency('yard', '>= 0.8.0')
71
71
  s.add_development_dependency('rdiscount', '>= 1.6.8')
72
72
  end
73
73
 
@@ -0,0 +1,7 @@
1
+ #!/bin/sh
2
+
3
+ mkdir -p /usr/local/mingw
4
+ cd /usr/local/mingw
5
+ # Don't attempt any of the newer versions - they don't work (gcc 4.7.0)
6
+ wget http://downloads.sourceforge.net/project/mingw-w64/Toolchains%20targetting%20Win32/Automated%20Builds/mingw-w32-1.0-bin_i686-darwin_20110819.tar.bz2
7
+ tar xvfj mingw-w32-1.0-bin_i686-darwin_20110819.tar.bz2
@@ -6,9 +6,13 @@ module Gherkin
6
6
 
7
7
  text_start = 0
8
8
  arguments.each do |arg|
9
- io.write(text_format.text(unpacked_step_name[text_start..arg.offset-1].pack("U*"))) unless arg.offset == 0
10
- io.write(arg_format.text(arg.val))
11
- text_start = arg.offset + arg.val.unpack("U*").length
9
+ if(arg.offset != 0 && !arg.offset.nil?)
10
+ io.write(text_format.text(unpacked_step_name[text_start..arg.offset-1].pack("U*")))
11
+ end
12
+ if(!arg.val.nil?)
13
+ io.write(arg_format.text(arg.val))
14
+ text_start = arg.offset + arg.val.unpack("U*").length
15
+ end
12
16
  end
13
17
  io.write(text_format.text(unpacked_step_name[text_start..-1].pack("U*"))) unless text_start == unpacked_step_name.length
14
18
  end
data/lib/gherkin/i18n.rb CHANGED
@@ -59,9 +59,9 @@ module Gherkin
59
59
  require 'gherkin/formatter/pretty_formatter'
60
60
  require 'gherkin/formatter/model'
61
61
  io = StringIO.new
62
- pf = Gherkin::Formatter::PrettyFormatter.new(io, false, false)
62
+ pf = Gherkin::Formatter::PrettyFormatter.new(io, true, false)
63
63
  table = all.map do |i18n|
64
- Formatter::Model::Row.new([], [i18n.iso_code, i18n.keywords('name')[0], i18n.keywords('native')[0]], nil)
64
+ Formatter::Model::DataTableRow.new([], [i18n.iso_code, i18n.keywords('name')[0], i18n.keywords('native')[0]], nil)
65
65
  end
66
66
  pf.table(table)
67
67
  io.string
data/lib/gherkin/i18n.yml CHANGED
@@ -39,6 +39,19 @@
39
39
  then: "*|اذاً|ثم"
40
40
  and: "*|و"
41
41
  but: "*|لكن"
42
+ "bm":
43
+ name: Malay
44
+ native: Bahasa Melayu
45
+ feature: Fungsi
46
+ background: Latar Belakang
47
+ scenario: Senario
48
+ scenario_outline: Menggariskan Senario
49
+ examples: Contoh
50
+ given: "*|Bagi"
51
+ when: "*|Apabila"
52
+ then: "*|Kemudian"
53
+ and: "*|Dan"
54
+ but: "*|Tetapi"
42
55
  "bg":
43
56
  name: Bulgarian
44
57
  native: български
@@ -432,11 +445,11 @@
432
445
  "pt":
433
446
  name: Portuguese
434
447
  native: português
435
- background: Contexto
436
- feature: Funcionalidade
448
+ background: Contexto|Cenário de Fundo|Cenario de Fundo|Fundo
449
+ feature: Funcionalidade|Característica|Caracteristica
437
450
  scenario: Cenário|Cenario
438
- scenario_outline: Esquema do Cenário|Esquema do Cenario
439
- examples: Exemplos
451
+ scenario_outline: Esquema do Cenário|Esquema do Cenario|Delineação do Cenário|Delineacao do Cenario
452
+ examples: Exemplos|Cenários|Cenarios
440
453
  given: "*|Dado|Dada|Dados|Dadas"
441
454
  when: "*|Quando"
442
455
  then: "*|Então|Entao"
@@ -73,4 +73,4 @@ class Class
73
73
  end
74
74
  end
75
75
  end
76
- end
76
+ end
@@ -0,0 +1,1081 @@
1
+
2
+ # line 1 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
3
+ require 'gherkin/lexer/i18n_lexer'
4
+
5
+ module Gherkin
6
+ module RbLexer
7
+ class Bm #:nodoc:
8
+
9
+ # line 123 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
10
+
11
+
12
+ def initialize(listener)
13
+ @listener = listener
14
+
15
+ # line 16 "lib/gherkin/rb_lexer/bm.rb"
16
+ class << self
17
+ attr_accessor :_lexer_actions
18
+ private :_lexer_actions, :_lexer_actions=
19
+ end
20
+ self._lexer_actions = [
21
+ 0, 1, 0, 1, 1, 1, 2, 1,
22
+ 3, 1, 4, 1, 5, 1, 6, 1,
23
+ 7, 1, 8, 1, 9, 1, 10, 1,
24
+ 11, 1, 12, 1, 13, 1, 16, 1,
25
+ 17, 1, 18, 1, 19, 1, 20, 1,
26
+ 21, 1, 22, 1, 23, 2, 2, 18,
27
+ 2, 3, 4, 2, 13, 0, 2, 14,
28
+ 15, 2, 17, 0, 2, 17, 1, 2,
29
+ 17, 16, 2, 17, 19, 2, 18, 6,
30
+ 2, 18, 7, 2, 18, 8, 2, 18,
31
+ 9, 2, 18, 10, 2, 18, 16, 2,
32
+ 20, 21, 2, 22, 0, 2, 22, 1,
33
+ 2, 22, 16, 2, 22, 19, 3, 4,
34
+ 14, 15, 3, 5, 14, 15, 3, 11,
35
+ 14, 15, 3, 12, 14, 15, 3, 13,
36
+ 14, 15, 3, 14, 15, 18, 3, 17,
37
+ 0, 11, 3, 17, 14, 15, 4, 2,
38
+ 14, 15, 18, 4, 3, 4, 14, 15,
39
+ 4, 17, 0, 14, 15, 5, 17, 0,
40
+ 11, 14, 15
41
+ ]
42
+
43
+ class << self
44
+ attr_accessor :_lexer_key_offsets
45
+ private :_lexer_key_offsets, :_lexer_key_offsets=
46
+ end
47
+ self._lexer_key_offsets = [
48
+ 0, 0, 21, 22, 23, 43, 44, 45,
49
+ 47, 49, 54, 59, 64, 69, 73, 77,
50
+ 79, 80, 81, 82, 83, 84, 85, 86,
51
+ 87, 88, 89, 90, 91, 92, 93, 94,
52
+ 95, 97, 99, 104, 111, 116, 117, 118,
53
+ 119, 120, 121, 122, 123, 124, 125, 126,
54
+ 127, 128, 129, 130, 131, 132, 133, 140,
55
+ 142, 144, 146, 148, 150, 152, 172, 173,
56
+ 174, 175, 176, 177, 178, 179, 180, 181,
57
+ 182, 194, 196, 198, 200, 202, 204, 206,
58
+ 208, 210, 212, 214, 216, 218, 220, 222,
59
+ 224, 226, 228, 230, 232, 234, 236, 238,
60
+ 240, 242, 244, 246, 248, 250, 252, 254,
61
+ 256, 258, 260, 262, 264, 266, 268, 270,
62
+ 272, 274, 276, 278, 280, 282, 284, 286,
63
+ 288, 290, 292, 294, 296, 298, 300, 302,
64
+ 304, 306, 308, 309, 310, 311, 312, 313,
65
+ 314, 315, 316, 317, 318, 319, 320, 321,
66
+ 322, 323, 324, 325, 326, 327, 328, 329,
67
+ 345, 347, 349, 351, 353, 355, 357, 359,
68
+ 361, 363, 365, 367, 369, 371, 373, 375,
69
+ 377, 379, 381, 383, 385, 387, 389, 391,
70
+ 393, 395, 397, 399, 401, 403, 405, 407,
71
+ 409, 411, 413, 415, 417, 419, 421, 423,
72
+ 425, 427, 429, 431, 433, 435, 437, 439,
73
+ 441, 443, 445, 447, 449, 451, 453, 455,
74
+ 457, 459, 461, 463, 465, 466, 467, 468,
75
+ 469, 470, 471, 472, 473, 474, 475, 476,
76
+ 477, 478, 479, 480, 481, 482, 483, 484,
77
+ 485, 486, 487, 502, 504, 506, 508, 510,
78
+ 512, 514, 516, 518, 520, 522, 524, 526,
79
+ 528, 530, 532, 534, 536, 538, 540, 542,
80
+ 544, 546, 548, 550, 552, 554, 556, 558,
81
+ 560, 562, 564, 566, 568, 570, 572, 574,
82
+ 576, 578, 580, 582, 584, 586, 588, 590,
83
+ 592, 594, 596, 597, 598, 599, 600, 601,
84
+ 602, 603, 604, 605, 622, 624, 626, 628,
85
+ 630, 632, 634, 636, 638, 640, 642, 644,
86
+ 646, 648, 650, 652, 654, 656, 658, 660,
87
+ 662, 664, 666, 668, 670, 672, 674, 676,
88
+ 678, 680, 682, 684, 686, 688, 690, 692,
89
+ 694, 696, 698, 700, 702, 704, 706, 708,
90
+ 710, 712, 714, 716, 718, 720, 722, 724,
91
+ 726, 728, 730, 732, 734, 736, 738, 740,
92
+ 742, 744, 746, 748, 750, 752, 754, 756,
93
+ 758, 760, 762, 764, 766, 768, 769, 770,
94
+ 771, 772, 776, 782, 785, 787, 793, 813
95
+ ]
96
+
97
+ class << self
98
+ attr_accessor :_lexer_trans_keys
99
+ private :_lexer_trans_keys, :_lexer_trans_keys=
100
+ end
101
+ self._lexer_trans_keys = [
102
+ -17, 10, 32, 34, 35, 37, 42, 64,
103
+ 65, 66, 67, 68, 70, 75, 76, 77,
104
+ 83, 84, 124, 9, 13, -69, -65, 10,
105
+ 32, 34, 35, 37, 42, 64, 65, 66,
106
+ 67, 68, 70, 75, 76, 77, 83, 84,
107
+ 124, 9, 13, 34, 34, 10, 13, 10,
108
+ 13, 10, 32, 34, 9, 13, 10, 32,
109
+ 34, 9, 13, 10, 32, 34, 9, 13,
110
+ 10, 32, 34, 9, 13, 10, 32, 9,
111
+ 13, 10, 32, 9, 13, 10, 13, 10,
112
+ 95, 70, 69, 65, 84, 85, 82, 69,
113
+ 95, 69, 78, 68, 95, 37, 32, 10,
114
+ 13, 10, 13, 13, 32, 64, 9, 10,
115
+ 9, 10, 13, 32, 64, 11, 12, 10,
116
+ 32, 64, 9, 13, 112, 97, 98, 105,
117
+ 108, 97, 97, 103, 105, 111, 110, 116,
118
+ 111, 104, 58, 10, 10, 10, 32, 35,
119
+ 70, 124, 9, 13, 10, 117, 10, 110,
120
+ 10, 103, 10, 115, 10, 105, 10, 58,
121
+ 10, 32, 34, 35, 37, 42, 64, 65,
122
+ 66, 67, 68, 70, 75, 76, 77, 83,
123
+ 84, 124, 9, 13, 97, 110, 117, 110,
124
+ 103, 115, 105, 58, 10, 10, 10, 32,
125
+ 35, 37, 64, 67, 70, 76, 77, 83,
126
+ 9, 13, 10, 95, 10, 70, 10, 69,
127
+ 10, 65, 10, 84, 10, 85, 10, 82,
128
+ 10, 69, 10, 95, 10, 69, 10, 78,
129
+ 10, 68, 10, 95, 10, 37, 10, 111,
130
+ 10, 110, 10, 116, 10, 111, 10, 104,
131
+ 10, 58, 10, 117, 10, 110, 10, 103,
132
+ 10, 115, 10, 105, 10, 97, 10, 116,
133
+ 10, 97, 10, 114, 10, 32, 10, 66,
134
+ 10, 101, 10, 108, 10, 97, 10, 107,
135
+ 10, 97, 10, 110, 10, 103, 10, 101,
136
+ 10, 110, 10, 103, 10, 103, 10, 97,
137
+ 10, 114, 10, 105, 10, 115, 10, 107,
138
+ 10, 97, 10, 110, 10, 32, 10, 83,
139
+ 10, 101, 10, 110, 10, 97, 10, 114,
140
+ 10, 105, 10, 111, 101, 109, 117, 100,
141
+ 105, 97, 116, 97, 114, 32, 66, 101,
142
+ 108, 97, 107, 97, 110, 103, 58, 10,
143
+ 10, 10, 32, 35, 37, 42, 64, 65,
144
+ 66, 68, 70, 75, 77, 83, 84, 9,
145
+ 13, 10, 95, 10, 70, 10, 69, 10,
146
+ 65, 10, 84, 10, 85, 10, 82, 10,
147
+ 69, 10, 95, 10, 69, 10, 78, 10,
148
+ 68, 10, 95, 10, 37, 10, 32, 10,
149
+ 112, 10, 97, 10, 98, 10, 105, 10,
150
+ 108, 10, 97, 10, 97, 10, 103, 10,
151
+ 105, 10, 97, 10, 110, 10, 117, 10,
152
+ 110, 10, 103, 10, 115, 10, 105, 10,
153
+ 58, 10, 101, 10, 109, 10, 117, 10,
154
+ 100, 10, 105, 10, 101, 10, 110, 10,
155
+ 103, 10, 103, 10, 97, 10, 114, 10,
156
+ 105, 10, 115, 10, 107, 10, 97, 10,
157
+ 110, 10, 32, 10, 83, 10, 101, 10,
158
+ 110, 10, 97, 10, 114, 10, 105, 10,
159
+ 111, 10, 101, 10, 116, 10, 97, 10,
160
+ 112, 101, 110, 103, 103, 97, 114, 105,
161
+ 115, 107, 97, 110, 32, 83, 101, 110,
162
+ 97, 114, 105, 111, 58, 10, 10, 10,
163
+ 32, 35, 37, 42, 64, 65, 66, 68,
164
+ 70, 75, 83, 84, 9, 13, 10, 95,
165
+ 10, 70, 10, 69, 10, 65, 10, 84,
166
+ 10, 85, 10, 82, 10, 69, 10, 95,
167
+ 10, 69, 10, 78, 10, 68, 10, 95,
168
+ 10, 37, 10, 32, 10, 112, 10, 97,
169
+ 10, 98, 10, 105, 10, 108, 10, 97,
170
+ 10, 97, 10, 103, 10, 105, 10, 97,
171
+ 10, 110, 10, 117, 10, 110, 10, 103,
172
+ 10, 115, 10, 105, 10, 58, 10, 101,
173
+ 10, 109, 10, 117, 10, 100, 10, 105,
174
+ 10, 101, 10, 110, 10, 97, 10, 114,
175
+ 10, 105, 10, 111, 10, 101, 10, 116,
176
+ 10, 97, 10, 112, 101, 110, 97, 114,
177
+ 105, 111, 58, 10, 10, 10, 32, 35,
178
+ 37, 42, 64, 65, 66, 68, 70, 75,
179
+ 76, 77, 83, 84, 9, 13, 10, 95,
180
+ 10, 70, 10, 69, 10, 65, 10, 84,
181
+ 10, 85, 10, 82, 10, 69, 10, 95,
182
+ 10, 69, 10, 78, 10, 68, 10, 95,
183
+ 10, 37, 10, 32, 10, 112, 10, 97,
184
+ 10, 98, 10, 105, 10, 108, 10, 97,
185
+ 10, 97, 10, 103, 10, 105, 10, 97,
186
+ 10, 110, 10, 117, 10, 110, 10, 103,
187
+ 10, 115, 10, 105, 10, 58, 10, 101,
188
+ 10, 109, 10, 117, 10, 100, 10, 105,
189
+ 10, 97, 10, 116, 10, 97, 10, 114,
190
+ 10, 32, 10, 66, 10, 101, 10, 108,
191
+ 10, 97, 10, 107, 10, 97, 10, 110,
192
+ 10, 103, 10, 101, 10, 110, 10, 103,
193
+ 10, 103, 10, 97, 10, 114, 10, 105,
194
+ 10, 115, 10, 107, 10, 97, 10, 110,
195
+ 10, 32, 10, 83, 10, 101, 10, 110,
196
+ 10, 97, 10, 114, 10, 105, 10, 111,
197
+ 10, 101, 10, 116, 10, 97, 10, 112,
198
+ 101, 116, 97, 112, 32, 124, 9, 13,
199
+ 10, 32, 92, 124, 9, 13, 10, 92,
200
+ 124, 10, 92, 10, 32, 92, 124, 9,
201
+ 13, 10, 32, 34, 35, 37, 42, 64,
202
+ 65, 66, 67, 68, 70, 75, 76, 77,
203
+ 83, 84, 124, 9, 13, 0
204
+ ]
205
+
206
+ class << self
207
+ attr_accessor :_lexer_single_lengths
208
+ private :_lexer_single_lengths, :_lexer_single_lengths=
209
+ end
210
+ self._lexer_single_lengths = [
211
+ 0, 19, 1, 1, 18, 1, 1, 2,
212
+ 2, 3, 3, 3, 3, 2, 2, 2,
213
+ 1, 1, 1, 1, 1, 1, 1, 1,
214
+ 1, 1, 1, 1, 1, 1, 1, 1,
215
+ 2, 2, 3, 5, 3, 1, 1, 1,
216
+ 1, 1, 1, 1, 1, 1, 1, 1,
217
+ 1, 1, 1, 1, 1, 1, 5, 2,
218
+ 2, 2, 2, 2, 2, 18, 1, 1,
219
+ 1, 1, 1, 1, 1, 1, 1, 1,
220
+ 10, 2, 2, 2, 2, 2, 2, 2,
221
+ 2, 2, 2, 2, 2, 2, 2, 2,
222
+ 2, 2, 2, 2, 2, 2, 2, 2,
223
+ 2, 2, 2, 2, 2, 2, 2, 2,
224
+ 2, 2, 2, 2, 2, 2, 2, 2,
225
+ 2, 2, 2, 2, 2, 2, 2, 2,
226
+ 2, 2, 2, 2, 2, 2, 2, 2,
227
+ 2, 2, 1, 1, 1, 1, 1, 1,
228
+ 1, 1, 1, 1, 1, 1, 1, 1,
229
+ 1, 1, 1, 1, 1, 1, 1, 14,
230
+ 2, 2, 2, 2, 2, 2, 2, 2,
231
+ 2, 2, 2, 2, 2, 2, 2, 2,
232
+ 2, 2, 2, 2, 2, 2, 2, 2,
233
+ 2, 2, 2, 2, 2, 2, 2, 2,
234
+ 2, 2, 2, 2, 2, 2, 2, 2,
235
+ 2, 2, 2, 2, 2, 2, 2, 2,
236
+ 2, 2, 2, 2, 2, 2, 2, 2,
237
+ 2, 2, 2, 2, 1, 1, 1, 1,
238
+ 1, 1, 1, 1, 1, 1, 1, 1,
239
+ 1, 1, 1, 1, 1, 1, 1, 1,
240
+ 1, 1, 13, 2, 2, 2, 2, 2,
241
+ 2, 2, 2, 2, 2, 2, 2, 2,
242
+ 2, 2, 2, 2, 2, 2, 2, 2,
243
+ 2, 2, 2, 2, 2, 2, 2, 2,
244
+ 2, 2, 2, 2, 2, 2, 2, 2,
245
+ 2, 2, 2, 2, 2, 2, 2, 2,
246
+ 2, 2, 1, 1, 1, 1, 1, 1,
247
+ 1, 1, 1, 15, 2, 2, 2, 2,
248
+ 2, 2, 2, 2, 2, 2, 2, 2,
249
+ 2, 2, 2, 2, 2, 2, 2, 2,
250
+ 2, 2, 2, 2, 2, 2, 2, 2,
251
+ 2, 2, 2, 2, 2, 2, 2, 2,
252
+ 2, 2, 2, 2, 2, 2, 2, 2,
253
+ 2, 2, 2, 2, 2, 2, 2, 2,
254
+ 2, 2, 2, 2, 2, 2, 2, 2,
255
+ 2, 2, 2, 2, 2, 2, 2, 2,
256
+ 2, 2, 2, 2, 2, 1, 1, 1,
257
+ 1, 2, 4, 3, 2, 4, 18, 0
258
+ ]
259
+
260
+ class << self
261
+ attr_accessor :_lexer_range_lengths
262
+ private :_lexer_range_lengths, :_lexer_range_lengths=
263
+ end
264
+ self._lexer_range_lengths = [
265
+ 0, 1, 0, 0, 1, 0, 0, 0,
266
+ 0, 1, 1, 1, 1, 1, 1, 0,
267
+ 0, 0, 0, 0, 0, 0, 0, 0,
268
+ 0, 0, 0, 0, 0, 0, 0, 0,
269
+ 0, 0, 1, 1, 1, 0, 0, 0,
270
+ 0, 0, 0, 0, 0, 0, 0, 0,
271
+ 0, 0, 0, 0, 0, 0, 1, 0,
272
+ 0, 0, 0, 0, 0, 1, 0, 0,
273
+ 0, 0, 0, 0, 0, 0, 0, 0,
274
+ 1, 0, 0, 0, 0, 0, 0, 0,
275
+ 0, 0, 0, 0, 0, 0, 0, 0,
276
+ 0, 0, 0, 0, 0, 0, 0, 0,
277
+ 0, 0, 0, 0, 0, 0, 0, 0,
278
+ 0, 0, 0, 0, 0, 0, 0, 0,
279
+ 0, 0, 0, 0, 0, 0, 0, 0,
280
+ 0, 0, 0, 0, 0, 0, 0, 0,
281
+ 0, 0, 0, 0, 0, 0, 0, 0,
282
+ 0, 0, 0, 0, 0, 0, 0, 0,
283
+ 0, 0, 0, 0, 0, 0, 0, 1,
284
+ 0, 0, 0, 0, 0, 0, 0, 0,
285
+ 0, 0, 0, 0, 0, 0, 0, 0,
286
+ 0, 0, 0, 0, 0, 0, 0, 0,
287
+ 0, 0, 0, 0, 0, 0, 0, 0,
288
+ 0, 0, 0, 0, 0, 0, 0, 0,
289
+ 0, 0, 0, 0, 0, 0, 0, 0,
290
+ 0, 0, 0, 0, 0, 0, 0, 0,
291
+ 0, 0, 0, 0, 0, 0, 0, 0,
292
+ 0, 0, 0, 0, 0, 0, 0, 0,
293
+ 0, 0, 0, 0, 0, 0, 0, 0,
294
+ 0, 0, 1, 0, 0, 0, 0, 0,
295
+ 0, 0, 0, 0, 0, 0, 0, 0,
296
+ 0, 0, 0, 0, 0, 0, 0, 0,
297
+ 0, 0, 0, 0, 0, 0, 0, 0,
298
+ 0, 0, 0, 0, 0, 0, 0, 0,
299
+ 0, 0, 0, 0, 0, 0, 0, 0,
300
+ 0, 0, 0, 0, 0, 0, 0, 0,
301
+ 0, 0, 0, 1, 0, 0, 0, 0,
302
+ 0, 0, 0, 0, 0, 0, 0, 0,
303
+ 0, 0, 0, 0, 0, 0, 0, 0,
304
+ 0, 0, 0, 0, 0, 0, 0, 0,
305
+ 0, 0, 0, 0, 0, 0, 0, 0,
306
+ 0, 0, 0, 0, 0, 0, 0, 0,
307
+ 0, 0, 0, 0, 0, 0, 0, 0,
308
+ 0, 0, 0, 0, 0, 0, 0, 0,
309
+ 0, 0, 0, 0, 0, 0, 0, 0,
310
+ 0, 0, 0, 0, 0, 0, 0, 0,
311
+ 0, 1, 1, 0, 0, 1, 1, 0
312
+ ]
313
+
314
+ class << self
315
+ attr_accessor :_lexer_index_offsets
316
+ private :_lexer_index_offsets, :_lexer_index_offsets=
317
+ end
318
+ self._lexer_index_offsets = [
319
+ 0, 0, 21, 23, 25, 45, 47, 49,
320
+ 52, 55, 60, 65, 70, 75, 79, 83,
321
+ 86, 88, 90, 92, 94, 96, 98, 100,
322
+ 102, 104, 106, 108, 110, 112, 114, 116,
323
+ 118, 121, 124, 129, 136, 141, 143, 145,
324
+ 147, 149, 151, 153, 155, 157, 159, 161,
325
+ 163, 165, 167, 169, 171, 173, 175, 182,
326
+ 185, 188, 191, 194, 197, 200, 220, 222,
327
+ 224, 226, 228, 230, 232, 234, 236, 238,
328
+ 240, 252, 255, 258, 261, 264, 267, 270,
329
+ 273, 276, 279, 282, 285, 288, 291, 294,
330
+ 297, 300, 303, 306, 309, 312, 315, 318,
331
+ 321, 324, 327, 330, 333, 336, 339, 342,
332
+ 345, 348, 351, 354, 357, 360, 363, 366,
333
+ 369, 372, 375, 378, 381, 384, 387, 390,
334
+ 393, 396, 399, 402, 405, 408, 411, 414,
335
+ 417, 420, 423, 425, 427, 429, 431, 433,
336
+ 435, 437, 439, 441, 443, 445, 447, 449,
337
+ 451, 453, 455, 457, 459, 461, 463, 465,
338
+ 481, 484, 487, 490, 493, 496, 499, 502,
339
+ 505, 508, 511, 514, 517, 520, 523, 526,
340
+ 529, 532, 535, 538, 541, 544, 547, 550,
341
+ 553, 556, 559, 562, 565, 568, 571, 574,
342
+ 577, 580, 583, 586, 589, 592, 595, 598,
343
+ 601, 604, 607, 610, 613, 616, 619, 622,
344
+ 625, 628, 631, 634, 637, 640, 643, 646,
345
+ 649, 652, 655, 658, 661, 663, 665, 667,
346
+ 669, 671, 673, 675, 677, 679, 681, 683,
347
+ 685, 687, 689, 691, 693, 695, 697, 699,
348
+ 701, 703, 705, 720, 723, 726, 729, 732,
349
+ 735, 738, 741, 744, 747, 750, 753, 756,
350
+ 759, 762, 765, 768, 771, 774, 777, 780,
351
+ 783, 786, 789, 792, 795, 798, 801, 804,
352
+ 807, 810, 813, 816, 819, 822, 825, 828,
353
+ 831, 834, 837, 840, 843, 846, 849, 852,
354
+ 855, 858, 861, 863, 865, 867, 869, 871,
355
+ 873, 875, 877, 879, 896, 899, 902, 905,
356
+ 908, 911, 914, 917, 920, 923, 926, 929,
357
+ 932, 935, 938, 941, 944, 947, 950, 953,
358
+ 956, 959, 962, 965, 968, 971, 974, 977,
359
+ 980, 983, 986, 989, 992, 995, 998, 1001,
360
+ 1004, 1007, 1010, 1013, 1016, 1019, 1022, 1025,
361
+ 1028, 1031, 1034, 1037, 1040, 1043, 1046, 1049,
362
+ 1052, 1055, 1058, 1061, 1064, 1067, 1070, 1073,
363
+ 1076, 1079, 1082, 1085, 1088, 1091, 1094, 1097,
364
+ 1100, 1103, 1106, 1109, 1112, 1115, 1117, 1119,
365
+ 1121, 1123, 1127, 1133, 1137, 1140, 1146, 1166
366
+ ]
367
+
368
+ class << self
369
+ attr_accessor :_lexer_indicies
370
+ private :_lexer_indicies, :_lexer_indicies=
371
+ end
372
+ self._lexer_indicies = [
373
+ 1, 3, 2, 4, 5, 6, 7, 8,
374
+ 9, 10, 11, 12, 13, 14, 15, 16,
375
+ 17, 18, 19, 2, 0, 20, 0, 2,
376
+ 0, 3, 2, 4, 5, 6, 7, 8,
377
+ 9, 10, 11, 12, 13, 14, 15, 16,
378
+ 17, 18, 19, 2, 0, 21, 0, 22,
379
+ 0, 24, 25, 23, 27, 28, 26, 31,
380
+ 30, 32, 30, 29, 35, 34, 36, 34,
381
+ 33, 35, 34, 37, 34, 33, 35, 34,
382
+ 38, 34, 33, 40, 39, 39, 0, 3,
383
+ 41, 41, 0, 43, 44, 42, 3, 0,
384
+ 45, 0, 46, 0, 47, 0, 48, 0,
385
+ 49, 0, 50, 0, 51, 0, 52, 0,
386
+ 53, 0, 54, 0, 55, 0, 56, 0,
387
+ 57, 0, 58, 0, 59, 0, 61, 62,
388
+ 60, 64, 65, 63, 0, 0, 0, 0,
389
+ 66, 67, 68, 67, 67, 70, 69, 66,
390
+ 3, 71, 8, 71, 0, 72, 0, 73,
391
+ 0, 74, 0, 75, 0, 76, 0, 77,
392
+ 0, 78, 0, 79, 0, 77, 0, 80,
393
+ 0, 81, 0, 82, 0, 83, 0, 84,
394
+ 0, 85, 0, 87, 86, 89, 88, 89,
395
+ 90, 91, 92, 91, 90, 88, 89, 93,
396
+ 88, 89, 94, 88, 89, 95, 88, 89,
397
+ 96, 88, 89, 97, 88, 89, 98, 88,
398
+ 100, 99, 101, 102, 103, 104, 105, 106,
399
+ 107, 108, 109, 110, 111, 112, 113, 114,
400
+ 115, 116, 99, 0, 117, 0, 77, 0,
401
+ 118, 0, 119, 0, 120, 0, 121, 0,
402
+ 122, 0, 123, 0, 125, 124, 127, 126,
403
+ 127, 128, 129, 130, 129, 131, 132, 133,
404
+ 134, 135, 128, 126, 127, 136, 126, 127,
405
+ 137, 126, 127, 138, 126, 127, 139, 126,
406
+ 127, 140, 126, 127, 141, 126, 127, 142,
407
+ 126, 127, 143, 126, 127, 144, 126, 127,
408
+ 145, 126, 127, 146, 126, 127, 147, 126,
409
+ 127, 148, 126, 127, 149, 126, 127, 150,
410
+ 126, 127, 151, 126, 127, 152, 126, 127,
411
+ 153, 126, 127, 154, 126, 127, 155, 126,
412
+ 127, 156, 126, 127, 157, 126, 127, 158,
413
+ 126, 127, 159, 126, 127, 154, 126, 127,
414
+ 160, 126, 127, 161, 126, 127, 162, 126,
415
+ 127, 163, 126, 127, 164, 126, 127, 165,
416
+ 126, 127, 166, 126, 127, 167, 126, 127,
417
+ 168, 126, 127, 169, 126, 127, 170, 126,
418
+ 127, 171, 126, 127, 154, 126, 127, 172,
419
+ 126, 127, 173, 126, 127, 174, 126, 127,
420
+ 175, 126, 127, 176, 126, 127, 177, 126,
421
+ 127, 178, 126, 127, 179, 126, 127, 180,
422
+ 126, 127, 181, 126, 127, 182, 126, 127,
423
+ 183, 126, 127, 184, 126, 127, 185, 126,
424
+ 127, 186, 126, 127, 187, 126, 127, 188,
425
+ 126, 127, 189, 126, 127, 154, 126, 190,
426
+ 0, 191, 0, 192, 0, 193, 0, 194,
427
+ 0, 195, 0, 196, 0, 197, 0, 198,
428
+ 0, 199, 0, 200, 0, 201, 0, 202,
429
+ 0, 203, 0, 204, 0, 205, 0, 206,
430
+ 0, 207, 0, 208, 0, 210, 209, 212,
431
+ 211, 212, 213, 214, 215, 216, 214, 217,
432
+ 218, 219, 220, 221, 222, 223, 224, 213,
433
+ 211, 212, 225, 211, 212, 226, 211, 212,
434
+ 227, 211, 212, 228, 211, 212, 229, 211,
435
+ 212, 230, 211, 212, 231, 211, 212, 232,
436
+ 211, 212, 233, 211, 212, 234, 211, 212,
437
+ 235, 211, 212, 236, 211, 212, 237, 211,
438
+ 212, 238, 211, 212, 239, 211, 212, 240,
439
+ 211, 212, 241, 211, 212, 242, 211, 212,
440
+ 243, 211, 212, 244, 211, 212, 245, 211,
441
+ 212, 246, 211, 212, 247, 211, 212, 245,
442
+ 211, 212, 248, 211, 212, 245, 211, 212,
443
+ 249, 211, 212, 250, 211, 212, 251, 211,
444
+ 212, 252, 211, 212, 253, 211, 212, 239,
445
+ 211, 212, 254, 211, 212, 255, 211, 212,
446
+ 256, 211, 212, 257, 211, 212, 258, 211,
447
+ 212, 259, 211, 212, 260, 211, 212, 261,
448
+ 211, 212, 262, 211, 212, 263, 211, 212,
449
+ 264, 211, 212, 265, 211, 212, 266, 211,
450
+ 212, 267, 211, 212, 268, 211, 212, 269,
451
+ 211, 212, 270, 211, 212, 271, 211, 212,
452
+ 272, 211, 212, 273, 211, 212, 274, 211,
453
+ 212, 275, 211, 212, 276, 211, 212, 253,
454
+ 211, 212, 277, 211, 212, 278, 211, 212,
455
+ 279, 211, 212, 247, 211, 280, 0, 281,
456
+ 0, 282, 0, 283, 0, 284, 0, 285,
457
+ 0, 286, 0, 287, 0, 288, 0, 289,
458
+ 0, 290, 0, 291, 0, 292, 0, 293,
459
+ 0, 294, 0, 295, 0, 296, 0, 297,
460
+ 0, 298, 0, 299, 0, 301, 300, 303,
461
+ 302, 303, 304, 305, 306, 307, 305, 308,
462
+ 309, 310, 311, 312, 313, 314, 304, 302,
463
+ 303, 315, 302, 303, 316, 302, 303, 317,
464
+ 302, 303, 318, 302, 303, 319, 302, 303,
465
+ 320, 302, 303, 321, 302, 303, 322, 302,
466
+ 303, 323, 302, 303, 324, 302, 303, 325,
467
+ 302, 303, 326, 302, 303, 327, 302, 303,
468
+ 328, 302, 303, 329, 302, 303, 330, 302,
469
+ 303, 331, 302, 303, 332, 302, 303, 333,
470
+ 302, 303, 334, 302, 303, 335, 302, 303,
471
+ 336, 302, 303, 337, 302, 303, 335, 302,
472
+ 303, 338, 302, 303, 335, 302, 303, 339,
473
+ 302, 303, 340, 302, 303, 341, 302, 303,
474
+ 342, 302, 303, 343, 302, 303, 329, 302,
475
+ 303, 344, 302, 303, 345, 302, 303, 346,
476
+ 302, 303, 347, 302, 303, 348, 302, 303,
477
+ 349, 302, 303, 350, 302, 303, 351, 302,
478
+ 303, 352, 302, 303, 353, 302, 303, 343,
479
+ 302, 303, 354, 302, 303, 355, 302, 303,
480
+ 356, 302, 303, 337, 302, 357, 0, 358,
481
+ 0, 359, 0, 360, 0, 361, 0, 362,
482
+ 0, 363, 0, 365, 364, 367, 366, 367,
483
+ 368, 369, 370, 371, 369, 372, 373, 374,
484
+ 375, 376, 377, 378, 379, 380, 368, 366,
485
+ 367, 381, 366, 367, 382, 366, 367, 383,
486
+ 366, 367, 384, 366, 367, 385, 366, 367,
487
+ 386, 366, 367, 387, 366, 367, 388, 366,
488
+ 367, 389, 366, 367, 390, 366, 367, 391,
489
+ 366, 367, 392, 366, 367, 393, 366, 367,
490
+ 394, 366, 367, 395, 366, 367, 396, 366,
491
+ 367, 397, 366, 367, 398, 366, 367, 399,
492
+ 366, 367, 400, 366, 367, 401, 366, 367,
493
+ 402, 366, 367, 403, 366, 367, 401, 366,
494
+ 367, 404, 366, 367, 401, 366, 367, 405,
495
+ 366, 367, 406, 366, 367, 407, 366, 367,
496
+ 408, 366, 367, 409, 366, 367, 395, 366,
497
+ 367, 410, 366, 367, 411, 366, 367, 412,
498
+ 366, 367, 413, 366, 367, 414, 366, 367,
499
+ 415, 366, 367, 416, 366, 367, 417, 366,
500
+ 367, 418, 366, 367, 419, 366, 367, 420,
501
+ 366, 367, 421, 366, 367, 422, 366, 367,
502
+ 423, 366, 367, 424, 366, 367, 425, 366,
503
+ 367, 426, 366, 367, 409, 366, 367, 427,
504
+ 366, 367, 428, 366, 367, 429, 366, 367,
505
+ 430, 366, 367, 431, 366, 367, 432, 366,
506
+ 367, 433, 366, 367, 434, 366, 367, 435,
507
+ 366, 367, 436, 366, 367, 437, 366, 367,
508
+ 438, 366, 367, 439, 366, 367, 440, 366,
509
+ 367, 441, 366, 367, 442, 366, 367, 443,
510
+ 366, 367, 444, 366, 367, 409, 366, 367,
511
+ 445, 366, 367, 446, 366, 367, 447, 366,
512
+ 367, 403, 366, 448, 0, 449, 0, 450,
513
+ 0, 79, 0, 451, 452, 451, 0, 455,
514
+ 454, 456, 457, 454, 453, 0, 459, 460,
515
+ 458, 0, 459, 458, 455, 461, 459, 460,
516
+ 461, 458, 455, 462, 463, 464, 465, 466,
517
+ 467, 468, 469, 470, 471, 472, 473, 474,
518
+ 475, 476, 477, 478, 462, 0, 479, 0
519
+ ]
520
+
521
+ class << self
522
+ attr_accessor :_lexer_trans_targs
523
+ private :_lexer_trans_targs, :_lexer_trans_targs=
524
+ end
525
+ self._lexer_trans_targs = [
526
+ 0, 2, 4, 4, 5, 15, 17, 31,
527
+ 34, 37, 43, 46, 62, 64, 130, 135,
528
+ 212, 282, 365, 369, 3, 6, 7, 8,
529
+ 9, 8, 8, 9, 8, 10, 10, 10,
530
+ 11, 10, 10, 10, 11, 12, 13, 14,
531
+ 4, 14, 15, 4, 16, 18, 19, 20,
532
+ 21, 22, 23, 24, 25, 26, 27, 28,
533
+ 29, 30, 375, 32, 33, 4, 16, 33,
534
+ 4, 16, 35, 36, 4, 35, 34, 36,
535
+ 38, 39, 40, 41, 42, 31, 44, 45,
536
+ 47, 48, 49, 50, 51, 52, 53, 54,
537
+ 53, 54, 54, 4, 55, 56, 57, 58,
538
+ 59, 60, 61, 4, 4, 5, 15, 17,
539
+ 31, 34, 37, 43, 46, 62, 64, 130,
540
+ 135, 212, 282, 365, 369, 63, 65, 66,
541
+ 67, 68, 69, 70, 71, 72, 71, 72,
542
+ 72, 4, 73, 87, 93, 98, 111, 124,
543
+ 74, 75, 76, 77, 78, 79, 80, 81,
544
+ 82, 83, 84, 85, 86, 4, 88, 89,
545
+ 90, 91, 92, 61, 94, 95, 96, 97,
546
+ 99, 100, 101, 102, 103, 104, 105, 106,
547
+ 107, 108, 109, 110, 112, 113, 114, 115,
548
+ 116, 117, 118, 119, 120, 121, 122, 123,
549
+ 124, 125, 126, 127, 128, 129, 131, 132,
550
+ 133, 134, 62, 136, 137, 138, 139, 140,
551
+ 141, 142, 143, 144, 145, 146, 147, 148,
552
+ 149, 150, 151, 150, 151, 151, 4, 152,
553
+ 166, 167, 173, 176, 178, 184, 189, 202,
554
+ 208, 153, 154, 155, 156, 157, 158, 159,
555
+ 160, 161, 162, 163, 164, 165, 4, 61,
556
+ 168, 169, 170, 171, 172, 166, 174, 175,
557
+ 177, 179, 180, 181, 182, 183, 185, 186,
558
+ 187, 188, 176, 190, 191, 192, 193, 194,
559
+ 195, 196, 197, 198, 199, 200, 201, 202,
560
+ 203, 204, 205, 206, 207, 209, 210, 211,
561
+ 213, 214, 215, 216, 217, 218, 219, 220,
562
+ 221, 222, 223, 224, 225, 226, 227, 228,
563
+ 229, 230, 231, 232, 233, 234, 233, 234,
564
+ 234, 4, 235, 249, 250, 256, 259, 261,
565
+ 267, 272, 278, 236, 237, 238, 239, 240,
566
+ 241, 242, 243, 244, 245, 246, 247, 248,
567
+ 4, 61, 251, 252, 253, 254, 255, 249,
568
+ 257, 258, 260, 262, 263, 264, 265, 266,
569
+ 268, 269, 270, 271, 259, 273, 274, 275,
570
+ 276, 277, 279, 280, 281, 283, 284, 285,
571
+ 286, 287, 288, 289, 290, 291, 290, 291,
572
+ 291, 4, 292, 306, 307, 313, 316, 318,
573
+ 324, 329, 342, 355, 361, 293, 294, 295,
574
+ 296, 297, 298, 299, 300, 301, 302, 303,
575
+ 304, 305, 4, 61, 308, 309, 310, 311,
576
+ 312, 306, 314, 315, 317, 319, 320, 321,
577
+ 322, 323, 325, 326, 327, 328, 316, 330,
578
+ 331, 332, 333, 334, 335, 336, 337, 338,
579
+ 339, 340, 341, 343, 344, 345, 346, 347,
580
+ 348, 349, 350, 351, 352, 353, 354, 355,
581
+ 356, 357, 358, 359, 360, 362, 363, 364,
582
+ 366, 367, 368, 369, 370, 371, 373, 374,
583
+ 372, 370, 371, 372, 370, 373, 374, 5,
584
+ 15, 17, 31, 34, 37, 43, 46, 62,
585
+ 64, 130, 135, 212, 282, 365, 369, 0
586
+ ]
587
+
588
+ class << self
589
+ attr_accessor :_lexer_trans_actions
590
+ private :_lexer_trans_actions, :_lexer_trans_actions=
591
+ end
592
+ self._lexer_trans_actions = [
593
+ 43, 0, 0, 54, 3, 1, 0, 29,
594
+ 1, 29, 29, 29, 29, 29, 29, 29,
595
+ 29, 29, 29, 35, 0, 0, 0, 7,
596
+ 139, 48, 0, 102, 9, 5, 45, 134,
597
+ 45, 0, 33, 122, 33, 33, 0, 11,
598
+ 106, 0, 0, 114, 25, 0, 0, 0,
599
+ 0, 0, 0, 0, 0, 0, 0, 0,
600
+ 0, 0, 0, 0, 57, 149, 126, 0,
601
+ 110, 23, 0, 27, 118, 27, 51, 0,
602
+ 0, 0, 0, 0, 0, 0, 0, 0,
603
+ 0, 0, 0, 0, 0, 0, 57, 144,
604
+ 0, 54, 0, 81, 84, 0, 0, 0,
605
+ 0, 0, 21, 31, 130, 60, 57, 31,
606
+ 63, 57, 63, 63, 63, 63, 63, 63,
607
+ 63, 63, 63, 63, 66, 0, 0, 0,
608
+ 0, 0, 0, 0, 57, 144, 0, 54,
609
+ 0, 69, 33, 84, 84, 84, 84, 84,
610
+ 0, 0, 0, 0, 0, 0, 0, 0,
611
+ 0, 0, 0, 0, 0, 13, 0, 0,
612
+ 0, 0, 0, 13, 0, 0, 0, 0,
613
+ 0, 0, 0, 0, 0, 0, 0, 0,
614
+ 0, 0, 0, 0, 0, 0, 0, 0,
615
+ 0, 0, 0, 0, 0, 0, 0, 0,
616
+ 0, 0, 0, 0, 0, 0, 0, 0,
617
+ 0, 0, 0, 0, 0, 0, 0, 0,
618
+ 0, 0, 0, 0, 0, 0, 0, 0,
619
+ 0, 57, 144, 0, 54, 0, 72, 33,
620
+ 84, 84, 84, 84, 84, 84, 84, 84,
621
+ 84, 0, 0, 0, 0, 0, 0, 0,
622
+ 0, 0, 0, 0, 0, 0, 15, 15,
623
+ 0, 0, 0, 0, 0, 0, 0, 0,
624
+ 0, 0, 0, 0, 0, 0, 0, 0,
625
+ 0, 0, 0, 0, 0, 0, 0, 0,
626
+ 0, 0, 0, 0, 0, 0, 0, 0,
627
+ 0, 0, 0, 0, 0, 0, 0, 0,
628
+ 0, 0, 0, 0, 0, 0, 0, 0,
629
+ 0, 0, 0, 0, 0, 0, 0, 0,
630
+ 0, 0, 0, 0, 57, 144, 0, 54,
631
+ 0, 78, 33, 84, 84, 84, 84, 84,
632
+ 84, 84, 84, 0, 0, 0, 0, 0,
633
+ 0, 0, 0, 0, 0, 0, 0, 0,
634
+ 19, 19, 0, 0, 0, 0, 0, 0,
635
+ 0, 0, 0, 0, 0, 0, 0, 0,
636
+ 0, 0, 0, 0, 0, 0, 0, 0,
637
+ 0, 0, 0, 0, 0, 0, 0, 0,
638
+ 0, 0, 0, 0, 57, 144, 0, 54,
639
+ 0, 75, 33, 84, 84, 84, 84, 84,
640
+ 84, 84, 84, 84, 84, 0, 0, 0,
641
+ 0, 0, 0, 0, 0, 0, 0, 0,
642
+ 0, 0, 17, 17, 0, 0, 0, 0,
643
+ 0, 0, 0, 0, 0, 0, 0, 0,
644
+ 0, 0, 0, 0, 0, 0, 0, 0,
645
+ 0, 0, 0, 0, 0, 0, 0, 0,
646
+ 0, 0, 0, 0, 0, 0, 0, 0,
647
+ 0, 0, 0, 0, 0, 0, 0, 0,
648
+ 0, 0, 0, 0, 0, 0, 0, 0,
649
+ 0, 0, 0, 0, 0, 37, 37, 54,
650
+ 37, 87, 0, 0, 39, 0, 0, 93,
651
+ 90, 41, 96, 90, 96, 96, 96, 96,
652
+ 96, 96, 96, 96, 96, 96, 99, 0
653
+ ]
654
+
655
+ class << self
656
+ attr_accessor :_lexer_eof_actions
657
+ private :_lexer_eof_actions, :_lexer_eof_actions=
658
+ end
659
+ self._lexer_eof_actions = [
660
+ 0, 43, 43, 43, 43, 43, 43, 43,
661
+ 43, 43, 43, 43, 43, 43, 43, 43,
662
+ 43, 43, 43, 43, 43, 43, 43, 43,
663
+ 43, 43, 43, 43, 43, 43, 43, 43,
664
+ 43, 43, 43, 43, 43, 43, 43, 43,
665
+ 43, 43, 43, 43, 43, 43, 43, 43,
666
+ 43, 43, 43, 43, 43, 43, 43, 43,
667
+ 43, 43, 43, 43, 43, 43, 43, 43,
668
+ 43, 43, 43, 43, 43, 43, 43, 43,
669
+ 43, 43, 43, 43, 43, 43, 43, 43,
670
+ 43, 43, 43, 43, 43, 43, 43, 43,
671
+ 43, 43, 43, 43, 43, 43, 43, 43,
672
+ 43, 43, 43, 43, 43, 43, 43, 43,
673
+ 43, 43, 43, 43, 43, 43, 43, 43,
674
+ 43, 43, 43, 43, 43, 43, 43, 43,
675
+ 43, 43, 43, 43, 43, 43, 43, 43,
676
+ 43, 43, 43, 43, 43, 43, 43, 43,
677
+ 43, 43, 43, 43, 43, 43, 43, 43,
678
+ 43, 43, 43, 43, 43, 43, 43, 43,
679
+ 43, 43, 43, 43, 43, 43, 43, 43,
680
+ 43, 43, 43, 43, 43, 43, 43, 43,
681
+ 43, 43, 43, 43, 43, 43, 43, 43,
682
+ 43, 43, 43, 43, 43, 43, 43, 43,
683
+ 43, 43, 43, 43, 43, 43, 43, 43,
684
+ 43, 43, 43, 43, 43, 43, 43, 43,
685
+ 43, 43, 43, 43, 43, 43, 43, 43,
686
+ 43, 43, 43, 43, 43, 43, 43, 43,
687
+ 43, 43, 43, 43, 43, 43, 43, 43,
688
+ 43, 43, 43, 43, 43, 43, 43, 43,
689
+ 43, 43, 43, 43, 43, 43, 43, 43,
690
+ 43, 43, 43, 43, 43, 43, 43, 43,
691
+ 43, 43, 43, 43, 43, 43, 43, 43,
692
+ 43, 43, 43, 43, 43, 43, 43, 43,
693
+ 43, 43, 43, 43, 43, 43, 43, 43,
694
+ 43, 43, 43, 43, 43, 43, 43, 43,
695
+ 43, 43, 43, 43, 43, 43, 43, 43,
696
+ 43, 43, 43, 43, 43, 43, 43, 43,
697
+ 43, 43, 43, 43, 43, 43, 43, 43,
698
+ 43, 43, 43, 43, 43, 43, 43, 43,
699
+ 43, 43, 43, 43, 43, 43, 43, 43,
700
+ 43, 43, 43, 43, 43, 43, 43, 43,
701
+ 43, 43, 43, 43, 43, 43, 43, 43,
702
+ 43, 43, 43, 43, 43, 43, 43, 43,
703
+ 43, 43, 43, 43, 43, 43, 43, 43,
704
+ 43, 43, 43, 43, 43, 43, 43, 43,
705
+ 43, 43, 43, 43, 43, 43, 43, 43,
706
+ 43, 43, 43, 43, 43, 43, 43, 43
707
+ ]
708
+
709
+ class << self
710
+ attr_accessor :lexer_start
711
+ end
712
+ self.lexer_start = 1;
713
+ class << self
714
+ attr_accessor :lexer_first_final
715
+ end
716
+ self.lexer_first_final = 375;
717
+ class << self
718
+ attr_accessor :lexer_error
719
+ end
720
+ self.lexer_error = 0;
721
+
722
+ class << self
723
+ attr_accessor :lexer_en_main
724
+ end
725
+ self.lexer_en_main = 1;
726
+
727
+
728
+ # line 128 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
729
+ end
730
+
731
+ def scan(data)
732
+ data = (data + "\n%_FEATURE_END_%").unpack("c*") # Explicit EOF simplifies things considerably
733
+ eof = pe = data.length
734
+
735
+ @line_number = 1
736
+ @last_newline = 0
737
+
738
+
739
+ # line 740 "lib/gherkin/rb_lexer/bm.rb"
740
+ begin
741
+ p ||= 0
742
+ pe ||= data.length
743
+ cs = lexer_start
744
+ end
745
+
746
+ # line 138 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
747
+
748
+ # line 749 "lib/gherkin/rb_lexer/bm.rb"
749
+ begin
750
+ _klen, _trans, _keys, _acts, _nacts = nil
751
+ _goto_level = 0
752
+ _resume = 10
753
+ _eof_trans = 15
754
+ _again = 20
755
+ _test_eof = 30
756
+ _out = 40
757
+ while true
758
+ _trigger_goto = false
759
+ if _goto_level <= 0
760
+ if p == pe
761
+ _goto_level = _test_eof
762
+ next
763
+ end
764
+ if cs == 0
765
+ _goto_level = _out
766
+ next
767
+ end
768
+ end
769
+ if _goto_level <= _resume
770
+ _keys = _lexer_key_offsets[cs]
771
+ _trans = _lexer_index_offsets[cs]
772
+ _klen = _lexer_single_lengths[cs]
773
+ _break_match = false
774
+
775
+ begin
776
+ if _klen > 0
777
+ _lower = _keys
778
+ _upper = _keys + _klen - 1
779
+
780
+ loop do
781
+ break if _upper < _lower
782
+ _mid = _lower + ( (_upper - _lower) >> 1 )
783
+
784
+ if data[p] < _lexer_trans_keys[_mid]
785
+ _upper = _mid - 1
786
+ elsif data[p] > _lexer_trans_keys[_mid]
787
+ _lower = _mid + 1
788
+ else
789
+ _trans += (_mid - _keys)
790
+ _break_match = true
791
+ break
792
+ end
793
+ end # loop
794
+ break if _break_match
795
+ _keys += _klen
796
+ _trans += _klen
797
+ end
798
+ _klen = _lexer_range_lengths[cs]
799
+ if _klen > 0
800
+ _lower = _keys
801
+ _upper = _keys + (_klen << 1) - 2
802
+ loop do
803
+ break if _upper < _lower
804
+ _mid = _lower + (((_upper-_lower) >> 1) & ~1)
805
+ if data[p] < _lexer_trans_keys[_mid]
806
+ _upper = _mid - 2
807
+ elsif data[p] > _lexer_trans_keys[_mid+1]
808
+ _lower = _mid + 2
809
+ else
810
+ _trans += ((_mid - _keys) >> 1)
811
+ _break_match = true
812
+ break
813
+ end
814
+ end # loop
815
+ break if _break_match
816
+ _trans += _klen
817
+ end
818
+ end while false
819
+ _trans = _lexer_indicies[_trans]
820
+ cs = _lexer_trans_targs[_trans]
821
+ if _lexer_trans_actions[_trans] != 0
822
+ _acts = _lexer_trans_actions[_trans]
823
+ _nacts = _lexer_actions[_acts]
824
+ _acts += 1
825
+ while _nacts > 0
826
+ _nacts -= 1
827
+ _acts += 1
828
+ case _lexer_actions[_acts - 1]
829
+ when 0 then
830
+ # line 9 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
831
+ begin
832
+
833
+ @content_start = p
834
+ @current_line = @line_number
835
+ @start_col = p - @last_newline - "#{@keyword}:".length
836
+ end
837
+ when 1 then
838
+ # line 15 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
839
+ begin
840
+
841
+ @current_line = @line_number
842
+ @start_col = p - @last_newline
843
+ end
844
+ when 2 then
845
+ # line 20 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
846
+ begin
847
+
848
+ @content_start = p
849
+ end
850
+ when 3 then
851
+ # line 24 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
852
+ begin
853
+
854
+ @docstring_content_type_start = p
855
+ end
856
+ when 4 then
857
+ # line 27 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
858
+ begin
859
+
860
+ @docstring_content_type_end = p
861
+ end
862
+ when 5 then
863
+ # line 31 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
864
+ begin
865
+
866
+ con = unindent(@start_col, utf8_pack(data[@content_start...@next_keyword_start-1]).sub(/(\r?\n)?([\t ])*\Z/, '').gsub(/\\"\\"\\"/, '"""'))
867
+ con_type = utf8_pack(data[@docstring_content_type_start...@docstring_content_type_end]).strip
868
+ @listener.doc_string(con_type, con, @current_line)
869
+ end
870
+ when 6 then
871
+ # line 36 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
872
+ begin
873
+
874
+ p = store_keyword_content(:feature, data, p, eof)
875
+ end
876
+ when 7 then
877
+ # line 40 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
878
+ begin
879
+
880
+ p = store_keyword_content(:background, data, p, eof)
881
+ end
882
+ when 8 then
883
+ # line 44 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
884
+ begin
885
+
886
+ p = store_keyword_content(:scenario, data, p, eof)
887
+ end
888
+ when 9 then
889
+ # line 48 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
890
+ begin
891
+
892
+ p = store_keyword_content(:scenario_outline, data, p, eof)
893
+ end
894
+ when 10 then
895
+ # line 52 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
896
+ begin
897
+
898
+ p = store_keyword_content(:examples, data, p, eof)
899
+ end
900
+ when 11 then
901
+ # line 56 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
902
+ begin
903
+
904
+ con = utf8_pack(data[@content_start...p]).strip
905
+ @listener.step(@keyword, con, @current_line)
906
+ end
907
+ when 12 then
908
+ # line 61 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
909
+ begin
910
+
911
+ con = utf8_pack(data[@content_start...p]).strip
912
+ @listener.comment(con, @line_number)
913
+ @keyword_start = nil
914
+ end
915
+ when 13 then
916
+ # line 67 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
917
+ begin
918
+
919
+ con = utf8_pack(data[@content_start...p]).strip
920
+ @listener.tag(con, @current_line)
921
+ @keyword_start = nil
922
+ end
923
+ when 14 then
924
+ # line 73 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
925
+ begin
926
+
927
+ @line_number += 1
928
+ end
929
+ when 15 then
930
+ # line 77 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
931
+ begin
932
+
933
+ @last_newline = p + 1
934
+ end
935
+ when 16 then
936
+ # line 81 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
937
+ begin
938
+
939
+ @keyword_start ||= p
940
+ end
941
+ when 17 then
942
+ # line 85 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
943
+ begin
944
+
945
+ @keyword = utf8_pack(data[@keyword_start...p]).sub(/:$/,'')
946
+ @keyword_start = nil
947
+ end
948
+ when 18 then
949
+ # line 90 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
950
+ begin
951
+
952
+ @next_keyword_start = p
953
+ end
954
+ when 19 then
955
+ # line 94 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
956
+ begin
957
+
958
+ p = p - 1
959
+ current_row = []
960
+ @current_line = @line_number
961
+ end
962
+ when 20 then
963
+ # line 100 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
964
+ begin
965
+
966
+ @content_start = p
967
+ end
968
+ when 21 then
969
+ # line 104 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
970
+ begin
971
+
972
+ con = utf8_pack(data[@content_start...p]).strip
973
+ current_row << con.gsub(/\\\|/, "|").gsub(/\\n/, "\n").gsub(/\\\\/, "\\")
974
+ end
975
+ when 22 then
976
+ # line 109 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
977
+ begin
978
+
979
+ @listener.row(current_row, @current_line)
980
+ end
981
+ when 23 then
982
+ # line 113 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
983
+ begin
984
+
985
+ if cs < lexer_first_final
986
+ content = current_line_content(data, p)
987
+ raise Gherkin::Lexer::LexingError.new("Lexing error on line %d: '%s'. See http://wiki.github.com/cucumber/gherkin/lexingerror for more information." % [@line_number, content])
988
+ else
989
+ @listener.eof
990
+ end
991
+ end
992
+ # line 993 "lib/gherkin/rb_lexer/bm.rb"
993
+ end # action switch
994
+ end
995
+ end
996
+ if _trigger_goto
997
+ next
998
+ end
999
+ end
1000
+ if _goto_level <= _again
1001
+ if cs == 0
1002
+ _goto_level = _out
1003
+ next
1004
+ end
1005
+ p += 1
1006
+ if p != pe
1007
+ _goto_level = _resume
1008
+ next
1009
+ end
1010
+ end
1011
+ if _goto_level <= _test_eof
1012
+ if p == eof
1013
+ __acts = _lexer_eof_actions[cs]
1014
+ __nacts = _lexer_actions[__acts]
1015
+ __acts += 1
1016
+ while __nacts > 0
1017
+ __nacts -= 1
1018
+ __acts += 1
1019
+ case _lexer_actions[__acts - 1]
1020
+ when 23 then
1021
+ # line 113 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
1022
+ begin
1023
+
1024
+ if cs < lexer_first_final
1025
+ content = current_line_content(data, p)
1026
+ raise Gherkin::Lexer::LexingError.new("Lexing error on line %d: '%s'. See http://wiki.github.com/cucumber/gherkin/lexingerror for more information." % [@line_number, content])
1027
+ else
1028
+ @listener.eof
1029
+ end
1030
+ end
1031
+ # line 1032 "lib/gherkin/rb_lexer/bm.rb"
1032
+ end # eof action switch
1033
+ end
1034
+ if _trigger_goto
1035
+ next
1036
+ end
1037
+ end
1038
+ end
1039
+ if _goto_level <= _out
1040
+ break
1041
+ end
1042
+ end
1043
+ end
1044
+
1045
+ # line 139 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bm.rb.rl"
1046
+ end
1047
+
1048
+ def unindent(startcol, text)
1049
+ text.gsub(/^[\t ]{0,#{startcol}}/, "")
1050
+ end
1051
+
1052
+ def store_keyword_content(event, data, p, eof)
1053
+ end_point = (!@next_keyword_start or (p == eof)) ? p : @next_keyword_start
1054
+ content = unindent(@start_col + 2, utf8_pack(data[@content_start...end_point])).rstrip
1055
+ content_lines = content.split("\n")
1056
+ name = content_lines.shift || ""
1057
+ name.strip!
1058
+ description = content_lines.join("\n")
1059
+ @listener.__send__(event, @keyword, name, description, @current_line)
1060
+ @next_keyword_start ? @next_keyword_start - 1 : p
1061
+ ensure
1062
+ @next_keyword_start = nil
1063
+ end
1064
+
1065
+ def current_line_content(data, p)
1066
+ rest = data[@last_newline..-1]
1067
+ utf8_pack(rest[0..rest.index(10)||-1]).strip # 10 is \n
1068
+ end
1069
+
1070
+ if (RUBY_VERSION =~ /^1\.9/)
1071
+ def utf8_pack(array)
1072
+ array.pack("c*").force_encoding("UTF-8")
1073
+ end
1074
+ else
1075
+ def utf8_pack(array)
1076
+ array.pack("c*")
1077
+ end
1078
+ end
1079
+ end
1080
+ end
1081
+ end