gherkin 2.11.5 → 2.11.6

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.
@@ -1,4 +1,4 @@
1
- before_install: gem install bundler -v 1.2.1
1
+ before_install: gem install bundler -v 1.2.3
2
2
  rvm:
3
3
  - 1.9.3
4
4
  - 1.9.2
data/History.md CHANGED
@@ -1,3 +1,16 @@
1
+ ## [2.11.6](https://github.com/cucumber/gherkin/compare/v2.11.5...v2.11.6)
2
+
3
+ * [JavaScript] Add duration value to json formatter ([#204](https://github.com/cucumber/gherkin/pull/204) Rick Beyer)
4
+ * [JavaScript] Fix for JS Lexer ([#215](https://github.com/cucumber/gherkin/pull/215) Alexis Hevia)
5
+ * [JavaScript] Failing JS Features ([#228](https://github.com/cucumber/gherkin/issues/228) Aslak Hellesøy)
6
+ * [Core] Better Slovak ([#208](https://github.com/cucumber/gherkin/pull/208) Michal Kvasnicak)
7
+ * [Core] New: Tatar ([#213](https://github.com/cucumber/gherkin/pull/213) Valeriy Utyaganov)
8
+ * [Core] New: Telugu ([#218](https://github.com/cucumber/gherkin/pull/218) srinivasvedantam)
9
+ * [Core] New: Hindi ([#222](https://github.com/cucumber/gherkin/pull/222) Kumar Harsh)
10
+ * [Java] Fix JSON formatter ([#216](https://github.com/cucumber/gherkin/pull/216), [#195](https://github.com/cucumber/gherkin/pull/195) Joseph Hughes, Rex Hoffman)
11
+ * [Ruby,Java] Gherkin does not seem to parse BOM when feature contains language specification. ([#211](https://github.com/cucumber/gherkin/issues/211), [#212](https://github.com/cucumber/gherkin/pull/212) Rob Westgeest)
12
+ * [Java] Fixed a couple of build problems ([#226](https://github.com/cucumber/gherkin/pull/226), [#227](https://github.com/cucumber/gherkin/pull/227) signed)
13
+
1
14
  ## [2.11.5](https://github.com/cucumber/gherkin/compare/v2.11.4...v2.11.5)
2
15
 
3
16
  * [Core] Czech translation cleaned a little bit up. ([#202](https://github.com/cucumber/gherkin/pull/202) Jakub Linhart)
data/README.md CHANGED
@@ -54,7 +54,7 @@ The jar file is in the central Maven repo.
54
54
  <dependency>
55
55
  <groupId>info.cukes</groupId>
56
56
  <artifactId>gherkin</artifactId>
57
- <version>2.11.5</version>
57
+ <version>2.11.6</version>
58
58
  </dependency>
59
59
 
60
60
  You can get it manually from [Maven Central](http://search.maven.org/#browse%7C-2073395818)
@@ -65,8 +65,8 @@ Get the dll from [NuGet](http://nuget.org/List/Packages/gherkin)
65
65
 
66
66
  ## API Docs
67
67
 
68
- * [Ruby](http://cukes.info/gherkin/api/ruby/latest/)
69
- * [Java](http://cukes.info/gherkin/api/java/latest/apidocs/index.html)
68
+ * [Ruby](http://cukes.info/api/gherkin/yardoc/)
69
+ * [Java](http://cukes.info/api/gherkin/javadoc/)
70
70
 
71
71
  ## Hacking: Installing the toolchain
72
72
 
@@ -174,7 +174,7 @@ You must also download NuGet.exe from [CodePlex](http://nuget.codeplex.com/relea
174
174
 
175
175
  Now you can build the .NET dll with:
176
176
 
177
- mkdir release
177
+ mkdir release
178
178
  rake ikvm
179
179
  rake release/nuspec/lib/gherkin.dll
180
180
 
@@ -184,7 +184,7 @@ This should build `release/nuspec/lib/gherkin.dll`
184
184
 
185
185
  In order to build Windows binaries (so we can release Windows gems from OS X/Linux) we first need to install MinGW:
186
186
 
187
- ./install_mingw_os_x.sh
187
+ ./install_mingw_os_x.sh
188
188
 
189
189
  Now, make sure you have openssl installed - it's needed to build the rubies.
190
190
 
@@ -194,6 +194,9 @@ Next, we're going to install Ruby 1.8.7 and Ruby 1.9.3 for MinGW. We need both v
194
194
  OS X Lion (or later) doesn't ship with an LLVM free gcc, which you will need in order to install ruby 1.8.7. We can install it with:
195
195
 
196
196
  brew install https://raw.github.com/Homebrew/homebrew-dupes/master/apple-gcc42.rb
197
+ export PATH=/usr/local/mingw/bin:$PATH
198
+ # Test that it's on your PATH
199
+ i686-w64-mingw32-gcc -v
197
200
 
198
201
  For more info see:
199
202
 
@@ -205,22 +208,22 @@ Now we're ready to install the Windows rubies:
205
208
  unset GHERKIN_JS
206
209
 
207
210
  # 1.9.3
208
- rvm install 1.9.3-p194
209
- rvm use 1.9.3-p194
211
+ rvm install 1.9.3-p362
212
+ rvm use 1.9.3-p362
210
213
  rvm gemset create cucumber
211
214
  rvm gemset use cucumber
212
215
  gem install bundler
213
216
  bundle install
214
- PATH=/usr/local/mingw/bin:$PATH CC=/usr/local/mingw/bin/i686-w64-mingw32-gcc rake-compiler cross-ruby VERSION=1.9.3-p194
217
+ PATH=/usr/local/mingw/bin:$PATH CC=/usr/local/mingw/bin/i686-w64-mingw32-gcc rake-compiler cross-ruby VERSION=1.9.3-p362
215
218
 
216
219
  # 1.8.7
217
- CC=gcc-4.2 rvm install 1.8.7-p352
218
- rvm use 1.8.7-p352
220
+ CC=gcc-4.2 rvm install 1.8.7-p371
221
+ rvm use 1.8.7-p371
219
222
  rvm gemset create cucumber
220
223
  rvm gemset use cucumber
221
224
  gem install bundler
222
225
  bundle install
223
- PATH=/usr/local/mingw/bin:$PATH CC=/usr/local/mingw/bin/i686-w64-mingw32-gcc rake-compiler cross-ruby VERSION=1.8.7-p352
226
+ PATH=/usr/local/mingw/bin:$PATH CC=/usr/local/mingw/bin/i686-w64-mingw32-gcc rake-compiler cross-ruby VERSION=1.8.7-p371
224
227
 
225
228
  Now you can build Windows gems:
226
229
 
@@ -254,20 +257,18 @@ Now we can release:
254
257
  * History.md
255
258
  * Run `bundle update`, so Gemfile.lock gets updated with the changes.
256
259
  * Commit changes, otherwise you will get an error at the end when a tag is made.
257
- * Run `bundle exec rake gems:prepare && ./build_native_gems.sh && bundle exec rake release:ALL`
260
+ * Run `i686-w64-mingw32-gcc -v && bundle exec rake gems:prepare && ./build_native_gems.sh && bundle exec rake release:ALL`
258
261
 
259
262
  ## Note on Patches/Pull Requests
260
263
 
261
264
  * Fork the project.
262
- * Run rake ragel:rb to generate all the I18n lexers
265
+ * Run `bundle install` to install dependencies.
266
+ * Run `rake` to make sure all the tests are passing.
263
267
  * Make your feature addition or bug fix.
264
- * Add tests for it. This is important so I don't break it in a
265
- future version unintentionally.
266
- * Commit, do not mess with Rakefile, VERSION, or History.txt.
267
- (if you want to have your own version, that is fine but
268
- bump version in a commit by itself I can ignore when I pull)
268
+ * Add tests for it. This is important so I don't break it in a future version unintentionally.
269
+ * Commit, do not mess with History.md.
269
270
  * Send me a pull request. Bonus points for topic branches.
270
271
 
271
272
  ## Copyright
272
273
 
273
- Copyright (c) 2009-2012 Mike Sassak, Gregory Hnatiuk, Aslak Hellesøy. See LICENSE for details.
274
+ Copyright (c) 2009-2013 Mike Sassak, Gregory Hnatiuk, Aslak Hellesøy. See LICENSE for details.
@@ -2,3 +2,4 @@ default: --format pretty --tags ~@pending,~@wip --strict --color --dotcucumber f
2
2
  wip: --format pretty --tags @wip --wip features
3
3
  pending: --format pretty --tags @pending,~@native_lexer
4
4
  travis: --format pretty --tags ~@cucumber-source-available
5
+ javascript: --format pretty --tags ~@no-javascript
@@ -0,0 +1,6 @@
1
+ require 'mkmf'
2
+ CONFIG['warnflags'].gsub!(/-Wshorten-64-to-32/, '') if CONFIG['warnflags']
3
+ $CFLAGS << ' -O0 -Wall' if CONFIG['CC'] =~ /gcc|clang/
4
+ dir_config("gherkin_lexer_hi")
5
+ have_library("c", "main")
6
+ create_makefile("gherkin_lexer_hi")
@@ -0,0 +1,1749 @@
1
+
2
+ #line 1 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
3
+ #include <assert.h>
4
+ #include <ruby.h>
5
+
6
+ #if defined(_WIN32)
7
+ #include <stddef.h>
8
+ #endif
9
+
10
+ #ifdef HAVE_RUBY_RE_H
11
+ #include <ruby/re.h>
12
+ #else
13
+ #include <re.h>
14
+ #endif
15
+
16
+ #ifdef HAVE_RUBY_ENCODING_H
17
+ #include <ruby/encoding.h>
18
+ #define ENCODED_STR_NEW(ptr, len) \
19
+ rb_enc_str_new(ptr, len, rb_utf8_encoding())
20
+ #else
21
+ #define ENCODED_STR_NEW(ptr, len) \
22
+ rb_str_new(ptr, len)
23
+ #endif
24
+
25
+ #ifndef RSTRING_PTR
26
+ #define RSTRING_PTR(s) (RSTRING(s)->ptr)
27
+ #endif
28
+
29
+ #ifndef RSTRING_LEN
30
+ #define RSTRING_LEN(s) (RSTRING(s)->len)
31
+ #endif
32
+
33
+ #define DATA_GET(FROM, TYPE, NAME) \
34
+ Data_Get_Struct(FROM, TYPE, NAME); \
35
+ if (NAME == NULL) { \
36
+ rb_raise(rb_eArgError, "NULL found for " # NAME " when it shouldn't be."); \
37
+ }
38
+
39
+ typedef struct lexer_state {
40
+ int content_len;
41
+ int line_number;
42
+ int current_line;
43
+ int start_col;
44
+ size_t mark;
45
+ size_t keyword_start;
46
+ size_t keyword_end;
47
+ size_t next_keyword_start;
48
+ size_t content_start;
49
+ size_t content_end;
50
+ size_t docstring_content_type_start;
51
+ size_t docstring_content_type_end;
52
+ size_t query_start;
53
+ size_t last_newline;
54
+ size_t final_newline;
55
+ } lexer_state;
56
+
57
+ static VALUE mGherkin;
58
+ static VALUE mGherkinLexer;
59
+ static VALUE mCLexer;
60
+ static VALUE cI18nLexer;
61
+ static VALUE rb_eGherkinLexingError;
62
+
63
+ #define LEN(AT, P) (P - data - lexer->AT)
64
+ #define MARK(M, P) (lexer->M = (P) - data)
65
+ #define PTR_TO(P) (data + lexer->P)
66
+
67
+ #define STORE_KW_END_CON(EVENT) \
68
+ store_multiline_kw_con(listener, # EVENT, \
69
+ PTR_TO(keyword_start), LEN(keyword_start, PTR_TO(keyword_end - 1)), \
70
+ PTR_TO(content_start), LEN(content_start, PTR_TO(content_end)), \
71
+ lexer->current_line, lexer->start_col); \
72
+ if (lexer->content_end != 0) { \
73
+ p = PTR_TO(content_end - 1); \
74
+ } \
75
+ lexer->content_end = 0
76
+
77
+ #define STORE_ATTR(ATTR) \
78
+ store_attr(listener, # ATTR, \
79
+ PTR_TO(content_start), LEN(content_start, p), \
80
+ lexer->line_number)
81
+
82
+
83
+ #line 254 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
84
+
85
+
86
+ /** Data **/
87
+
88
+ #line 89 "ext/gherkin_lexer_hi/gherkin_lexer_hi.c"
89
+ static const char _lexer_actions[] = {
90
+ 0, 1, 0, 1, 1, 1, 2, 1,
91
+ 3, 1, 4, 1, 5, 1, 6, 1,
92
+ 7, 1, 8, 1, 9, 1, 10, 1,
93
+ 11, 1, 12, 1, 13, 1, 16, 1,
94
+ 17, 1, 18, 1, 19, 1, 20, 1,
95
+ 21, 1, 22, 1, 23, 2, 1, 18,
96
+ 2, 4, 5, 2, 13, 0, 2, 14,
97
+ 15, 2, 17, 0, 2, 17, 2, 2,
98
+ 17, 16, 2, 17, 19, 2, 18, 6,
99
+ 2, 18, 7, 2, 18, 8, 2, 18,
100
+ 9, 2, 18, 10, 2, 18, 16, 2,
101
+ 20, 21, 2, 22, 0, 2, 22, 2,
102
+ 2, 22, 16, 2, 22, 19, 3, 3,
103
+ 14, 15, 3, 5, 14, 15, 3, 11,
104
+ 14, 15, 3, 12, 14, 15, 3, 13,
105
+ 14, 15, 3, 14, 15, 18, 3, 17,
106
+ 0, 11, 3, 17, 14, 15, 4, 1,
107
+ 14, 15, 18, 4, 4, 5, 14, 15,
108
+ 4, 17, 0, 14, 15, 5, 17, 0,
109
+ 11, 14, 15
110
+ };
111
+
112
+ static const short _lexer_key_offsets[] = {
113
+ 0, 0, 12, 13, 22, 23, 24, 25,
114
+ 26, 27, 28, 29, 31, 33, 44, 45,
115
+ 46, 48, 50, 55, 60, 65, 70, 74,
116
+ 78, 80, 81, 82, 83, 84, 85, 86,
117
+ 87, 88, 89, 90, 91, 92, 93, 94,
118
+ 95, 100, 107, 112, 116, 122, 125, 127,
119
+ 133, 144, 145, 146, 147, 148, 149, 150,
120
+ 151, 152, 153, 154, 155, 156, 157, 158,
121
+ 159, 160, 161, 162, 169, 171, 173, 175,
122
+ 177, 179, 181, 183, 185, 187, 189, 191,
123
+ 193, 195, 197, 199, 201, 203, 205, 207,
124
+ 218, 219, 220, 221, 222, 223, 224, 225,
125
+ 226, 227, 228, 229, 230, 231, 232, 233,
126
+ 234, 235, 237, 238, 239, 240, 241, 243,
127
+ 244, 246, 247, 248, 249, 250, 251, 252,
128
+ 253, 254, 255, 256, 257, 258, 259, 260,
129
+ 261, 262, 263, 265, 266, 267, 268, 269,
130
+ 270, 271, 272, 273, 274, 275, 276, 277,
131
+ 278, 279, 280, 281, 282, 283, 284, 285,
132
+ 286, 287, 288, 289, 298, 300, 309, 311,
133
+ 313, 315, 317, 319, 321, 323, 325, 327,
134
+ 329, 331, 333, 335, 337, 339, 341, 343,
135
+ 345, 347, 349, 351, 353, 355, 357, 360,
136
+ 362, 364, 366, 368, 370, 372, 375, 377,
137
+ 379, 381, 383, 385, 387, 389, 391, 393,
138
+ 395, 397, 399, 401, 403, 405, 407, 409,
139
+ 411, 413, 415, 417, 419, 421, 423, 425,
140
+ 427, 429, 431, 433, 435, 437, 439, 441,
141
+ 443, 445, 447, 449, 451, 453, 455, 457,
142
+ 459, 461, 463, 465, 467, 469, 471, 473,
143
+ 475, 477, 478, 479, 488, 490, 499, 501,
144
+ 503, 505, 507, 509, 511, 513, 515, 517,
145
+ 519, 521, 523, 525, 527, 529, 531, 533,
146
+ 535, 537, 539, 541, 543, 545, 547, 550,
147
+ 552, 554, 556, 558, 561, 563, 566, 568,
148
+ 570, 572, 574, 576, 578, 580, 582, 584,
149
+ 586, 588, 590, 592, 594, 596, 598, 600,
150
+ 603, 605, 607, 609, 611, 613, 615, 617,
151
+ 619, 621, 623, 625, 627, 629, 631, 633,
152
+ 635, 637, 639, 641, 643, 645, 647, 649,
153
+ 651, 653, 655, 657, 659, 661, 663, 665,
154
+ 667, 669, 671, 673, 675, 677, 679, 681,
155
+ 683, 685, 687, 689, 691, 693, 695, 697,
156
+ 699, 701, 703, 705, 707, 709, 711, 713,
157
+ 715, 717, 719, 721, 723, 725, 727, 729,
158
+ 731, 733, 735, 737, 739, 741, 743, 745,
159
+ 747, 749, 751, 753, 755, 757, 758, 759,
160
+ 760, 761, 762, 763, 764, 765, 766, 767,
161
+ 768, 769, 770, 771, 772, 773, 774, 775,
162
+ 776, 777, 778, 779, 780, 781, 782, 791,
163
+ 793, 802, 804, 806, 808, 810, 812, 814,
164
+ 816, 818, 820, 822, 824, 826, 828, 830,
165
+ 832, 834, 836, 838, 840, 842, 844, 846,
166
+ 848, 850, 853, 855, 857, 859, 861, 863,
167
+ 865, 868, 870, 872, 874, 876, 878, 880,
168
+ 882, 884, 886, 888, 890, 892, 894, 896,
169
+ 898, 900, 902, 905, 907, 909, 911, 913,
170
+ 915, 917, 919, 921, 923, 925, 927, 929,
171
+ 931, 933, 935, 937, 939, 941, 943, 945,
172
+ 947, 949, 951, 953, 955, 957, 959, 961,
173
+ 963, 965, 967, 969, 971, 973, 975, 977,
174
+ 979, 981, 983, 985, 987, 989, 991, 993,
175
+ 995, 997, 999, 1001, 1003, 1005, 1007, 1009,
176
+ 1011, 1013, 1015, 1016, 1017, 1018, 1019, 1020,
177
+ 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028,
178
+ 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036,
179
+ 1037, 1045, 1047, 1051, 1053, 1055, 1057, 1059,
180
+ 1061, 1063, 1065, 1067, 1069, 1071, 1073, 1075,
181
+ 1077, 1079, 1081, 1083, 1085, 1088, 1090, 1092,
182
+ 1094, 1096, 1098, 1100, 1102, 1104, 1106, 1108,
183
+ 1110, 1112, 1114, 1116, 1118, 1120, 1122, 1124,
184
+ 1126, 1129, 1131, 1133, 1135, 1137, 1139, 1141,
185
+ 1143, 1145, 1147, 1149, 1151, 1153, 1155, 1157,
186
+ 1159, 1161, 1163, 1165, 1167, 1169, 1171, 1173,
187
+ 1175, 1177, 1179, 1181, 1183, 1185, 1187, 1189,
188
+ 1191, 1193, 1195, 1197, 1199, 1201, 1203, 1205,
189
+ 1207, 1209, 1211, 1213, 1215, 1217, 1219, 1221,
190
+ 1223, 1225, 1227, 1229, 1231, 1233, 1235, 1237,
191
+ 1239, 1241, 1243, 1245, 1247, 1249, 1251, 1253,
192
+ 1255, 1257, 1259, 1261, 1263, 1265, 1267, 1269,
193
+ 1271, 1273, 1275, 1276, 1277
194
+ };
195
+
196
+ static const char _lexer_trans_keys[] = {
197
+ -32, -17, 10, 32, 34, 35, 37, 42,
198
+ 64, 124, 9, 13, -92, -123, -119, -108,
199
+ -102, -100, -92, -86, -81, -80, -32, -92,
200
+ -105, -32, -92, -80, 32, 10, 13, 10,
201
+ 13, -32, 10, 32, 34, 35, 37, 42,
202
+ 64, 124, 9, 13, 34, 34, 10, 13,
203
+ 10, 13, 10, 32, 34, 9, 13, 10,
204
+ 32, 34, 9, 13, 10, 32, 34, 9,
205
+ 13, 10, 32, 34, 9, 13, 10, 32,
206
+ 9, 13, 10, 32, 9, 13, 10, 13,
207
+ 10, 95, 70, 69, 65, 84, 85, 82,
208
+ 69, 95, 69, 78, 68, 95, 37, 13,
209
+ 32, 64, 9, 10, 9, 10, 13, 32,
210
+ 64, 11, 12, 10, 32, 64, 9, 13,
211
+ 32, 124, 9, 13, 10, 32, 92, 124,
212
+ 9, 13, 10, 92, 124, 10, 92, 10,
213
+ 32, 92, 124, 9, 13, -32, 10, 32,
214
+ 34, 35, 37, 42, 64, 124, 9, 13,
215
+ -32, -92, -90, -32, -92, -66, -32, -92,
216
+ -71, -32, -92, -80, -32, -92, -93, 58,
217
+ 10, 10, -32, 10, 32, 35, 124, 9,
218
+ 13, -92, 10, -80, 10, -32, 10, -91,
219
+ 10, -126, 10, -32, 10, -92, 10, -86,
220
+ 10, 10, 32, -32, 10, -92, 10, -78,
221
+ 10, -32, 10, -91, 10, -121, 10, -32,
222
+ 10, -92, 10, -106, 10, 10, 58, -32,
223
+ 10, 32, 34, 35, 37, 42, 64, 124,
224
+ 9, 13, -32, -91, -126, -32, -92, -126,
225
+ -32, -92, -107, -32, -92, -65, -32, -92,
226
+ -84, -32, -92, -91, -84, -32, -92, -66,
227
+ -32, -92, -91, -80, -32, 32, -92, -65,
228
+ -32, -92, -90, -32, -91, -125, -32, -92,
229
+ -74, -32, -91, -115, -32, -92, -81, 32,
230
+ 58, -32, -92, -80, -32, -91, -126, -32,
231
+ -92, -86, -32, -92, -80, -32, -91, -121,
232
+ -32, -92, -106, -32, -92, -66, 58, 10,
233
+ 10, -32, 10, 32, 35, 37, 42, 64,
234
+ 9, 13, -92, 10, -123, -108, -102, -100,
235
+ -92, -86, -81, -80, 10, -32, 10, -92,
236
+ 10, -105, 10, -32, 10, -92, 10, -80,
237
+ 10, 10, 32, -32, 10, -91, 10, -126,
238
+ 10, -32, 10, -92, 10, -126, 10, -32,
239
+ 10, -92, 10, -107, 10, -32, 10, -92,
240
+ 10, -65, 10, -32, 10, -92, 10, -84,
241
+ 10, -32, 10, -92, 10, -91, -84, 10,
242
+ -32, 10, -92, 10, -66, 10, -32, 10,
243
+ -92, 10, -80, 10, -32, 10, 32, -92,
244
+ 10, -65, 10, -32, 10, -92, 10, -90,
245
+ 10, -32, 10, -91, 10, -125, 10, -32,
246
+ 10, -92, 10, -74, 10, -32, 10, -91,
247
+ 10, -115, 10, -32, 10, -92, 10, -81,
248
+ 10, 10, 58, -32, 10, -92, 10, -90,
249
+ 10, -32, 10, -91, 10, -126, 10, -32,
250
+ 10, -92, 10, -86, 10, 10, 32, -32,
251
+ 10, -92, 10, -78, 10, -32, 10, -91,
252
+ 10, -121, 10, -32, 10, -92, 10, -106,
253
+ 10, 10, 95, 10, 70, 10, 69, 10,
254
+ 65, 10, 84, 10, 85, 10, 82, 10,
255
+ 69, 10, 95, 10, 69, 10, 78, 10,
256
+ 68, 10, 95, 10, 37, 10, 10, -32,
257
+ 10, 32, 35, 37, 42, 64, 9, 13,
258
+ -92, 10, -123, -108, -102, -100, -92, -86,
259
+ -81, -80, 10, -32, 10, -92, 10, -105,
260
+ 10, -32, 10, -92, 10, -80, 10, 10,
261
+ 32, -32, 10, -91, 10, -126, 10, -32,
262
+ 10, -92, 10, -126, 10, -32, 10, -92,
263
+ 10, -107, 10, -32, 10, -92, 10, -65,
264
+ 10, -32, 10, -92, 10, -84, 10, -32,
265
+ 10, -92, 10, -91, -84, 10, -32, 10,
266
+ -92, 10, -66, 10, -32, 10, -92, -91,
267
+ 10, -80, 10, -32, 10, 32, -92, 10,
268
+ -65, 10, -32, 10, -92, 10, -90, 10,
269
+ -32, 10, -91, 10, -125, 10, -32, 10,
270
+ -92, 10, -74, 10, -32, 10, -91, 10,
271
+ -115, 10, -32, 10, -92, 10, -81, 10,
272
+ 10, 32, 58, -32, 10, -92, 10, -80,
273
+ 10, -32, 10, -91, 10, -126, 10, -32,
274
+ 10, -92, 10, -86, 10, -32, 10, -92,
275
+ 10, -80, 10, -32, 10, -91, 10, -121,
276
+ 10, -32, 10, -92, 10, -106, 10, -32,
277
+ 10, -92, 10, -66, 10, 10, 58, -125,
278
+ 10, -32, 10, -92, 10, -73, 10, -32,
279
+ 10, -91, 10, -115, 10, -32, 10, -92,
280
+ 10, -96, 10, -32, 10, -92, 10, -83,
281
+ 10, -32, 10, -91, 10, -126, 10, -32,
282
+ 10, -92, 10, -82, 10, -32, 10, -92,
283
+ 10, -65, 10, -32, 10, -92, 10, -90,
284
+ 10, -32, 10, -91, 10, -126, 10, -32,
285
+ 10, -92, 10, -86, 10, 10, 32, -32,
286
+ 10, -92, 10, -78, 10, -32, 10, -91,
287
+ 10, -121, 10, -32, 10, -92, 10, -106,
288
+ 10, 10, 95, 10, 70, 10, 69, 10,
289
+ 65, 10, 84, 10, 85, 10, 82, 10,
290
+ 69, 10, 95, 10, 69, 10, 78, 10,
291
+ 68, 10, 95, 10, 37, -125, -32, -92,
292
+ -73, -32, -91, -115, -32, -92, -96, -32,
293
+ -92, -83, -32, -91, -126, -32, -92, -82,
294
+ -32, -92, -65, 58, 10, 10, -32, 10,
295
+ 32, 35, 37, 42, 64, 9, 13, -92,
296
+ 10, -123, -108, -102, -100, -92, -86, -81,
297
+ -80, 10, -32, 10, -92, 10, -105, 10,
298
+ -32, 10, -92, 10, -80, 10, 10, 32,
299
+ -32, 10, -91, 10, -126, 10, -32, 10,
300
+ -92, 10, -126, 10, -32, 10, -92, 10,
301
+ -107, 10, -32, 10, -92, 10, -65, 10,
302
+ -32, 10, -92, 10, -84, 10, -32, 10,
303
+ -92, 10, -91, -84, 10, -32, 10, -92,
304
+ 10, -66, 10, -32, 10, -92, 10, -80,
305
+ 10, -32, 10, 32, -92, 10, -65, 10,
306
+ -32, 10, -92, 10, -90, 10, -32, 10,
307
+ -91, 10, -125, 10, -32, 10, -92, 10,
308
+ -74, 10, -32, 10, -91, 10, -115, 10,
309
+ -32, 10, -92, 10, -81, 10, 10, 32,
310
+ 58, -32, 10, -92, 10, -80, 10, -32,
311
+ 10, -91, 10, -126, 10, -32, 10, -92,
312
+ 10, -86, 10, -32, 10, -92, 10, -80,
313
+ 10, -32, 10, -91, 10, -121, 10, -32,
314
+ 10, -92, 10, -106, 10, -32, 10, -92,
315
+ 10, -66, 10, 10, 58, -32, 10, -92,
316
+ 10, -90, 10, -32, 10, -91, 10, -126,
317
+ 10, -32, 10, -92, 10, -86, 10, 10,
318
+ 32, -32, 10, -92, 10, -78, 10, -32,
319
+ 10, -91, 10, -121, 10, -32, 10, -92,
320
+ 10, -106, 10, 10, 95, 10, 70, 10,
321
+ 69, 10, 65, 10, 84, 10, 85, 10,
322
+ 82, 10, 69, 10, 95, 10, 69, 10,
323
+ 78, 10, 68, 10, 95, 10, 37, -32,
324
+ -92, -90, -32, -91, -126, -32, -92, -86,
325
+ 32, -32, -92, -78, -32, -91, -121, -32,
326
+ -92, -106, 58, 10, 10, -32, 10, 32,
327
+ 35, 37, 64, 9, 13, -92, 10, -119,
328
+ -86, -80, 10, -32, 10, -92, 10, -90,
329
+ 10, -32, 10, -92, 10, -66, 10, -32,
330
+ 10, -92, 10, -71, 10, -32, 10, -92,
331
+ 10, -80, 10, -32, 10, -92, 10, -93,
332
+ 10, 10, 58, -32, 10, -92, -91, 10,
333
+ -80, 10, -32, 10, -92, 10, -65, 10,
334
+ -32, 10, -92, 10, -90, 10, -32, 10,
335
+ -91, 10, -125, 10, -32, 10, -92, 10,
336
+ -74, 10, -32, 10, -91, 10, -115, 10,
337
+ -32, 10, -92, 10, -81, 10, 10, 32,
338
+ 58, -32, 10, -92, 10, -80, 10, -32,
339
+ 10, -91, 10, -126, 10, -32, 10, -92,
340
+ 10, -86, 10, -32, 10, -92, 10, -80,
341
+ 10, -32, 10, -91, 10, -121, 10, -32,
342
+ 10, -92, 10, -106, 10, -32, 10, -92,
343
+ 10, -66, 10, -125, 10, -32, 10, -92,
344
+ 10, -73, 10, -32, 10, -91, 10, -115,
345
+ 10, -32, 10, -92, 10, -96, 10, -32,
346
+ 10, -92, 10, -83, 10, -32, 10, -91,
347
+ 10, -126, 10, -32, 10, -92, 10, -82,
348
+ 10, -32, 10, -92, 10, -65, 10, -32,
349
+ 10, -91, 10, -126, 10, -32, 10, -92,
350
+ 10, -86, 10, 10, 32, -32, 10, -92,
351
+ 10, -78, 10, -32, 10, -91, 10, -121,
352
+ 10, -32, 10, -92, 10, -106, 10, 10,
353
+ 95, 10, 70, 10, 69, 10, 65, 10,
354
+ 84, 10, 85, 10, 82, 10, 69, 10,
355
+ 95, 10, 69, 10, 78, 10, 68, 10,
356
+ 95, 10, 37, -69, -65, 0
357
+ };
358
+
359
+ static const char _lexer_single_lengths[] = {
360
+ 0, 10, 1, 9, 1, 1, 1, 1,
361
+ 1, 1, 1, 2, 2, 9, 1, 1,
362
+ 2, 2, 3, 3, 3, 3, 2, 2,
363
+ 2, 1, 1, 1, 1, 1, 1, 1,
364
+ 1, 1, 1, 1, 1, 1, 1, 1,
365
+ 3, 5, 3, 2, 4, 3, 2, 4,
366
+ 9, 1, 1, 1, 1, 1, 1, 1,
367
+ 1, 1, 1, 1, 1, 1, 1, 1,
368
+ 1, 1, 1, 5, 2, 2, 2, 2,
369
+ 2, 2, 2, 2, 2, 2, 2, 2,
370
+ 2, 2, 2, 2, 2, 2, 2, 9,
371
+ 1, 1, 1, 1, 1, 1, 1, 1,
372
+ 1, 1, 1, 1, 1, 1, 1, 1,
373
+ 1, 2, 1, 1, 1, 1, 2, 1,
374
+ 2, 1, 1, 1, 1, 1, 1, 1,
375
+ 1, 1, 1, 1, 1, 1, 1, 1,
376
+ 1, 1, 2, 1, 1, 1, 1, 1,
377
+ 1, 1, 1, 1, 1, 1, 1, 1,
378
+ 1, 1, 1, 1, 1, 1, 1, 1,
379
+ 1, 1, 1, 7, 2, 9, 2, 2,
380
+ 2, 2, 2, 2, 2, 2, 2, 2,
381
+ 2, 2, 2, 2, 2, 2, 2, 2,
382
+ 2, 2, 2, 2, 2, 2, 3, 2,
383
+ 2, 2, 2, 2, 2, 3, 2, 2,
384
+ 2, 2, 2, 2, 2, 2, 2, 2,
385
+ 2, 2, 2, 2, 2, 2, 2, 2,
386
+ 2, 2, 2, 2, 2, 2, 2, 2,
387
+ 2, 2, 2, 2, 2, 2, 2, 2,
388
+ 2, 2, 2, 2, 2, 2, 2, 2,
389
+ 2, 2, 2, 2, 2, 2, 2, 2,
390
+ 2, 1, 1, 7, 2, 9, 2, 2,
391
+ 2, 2, 2, 2, 2, 2, 2, 2,
392
+ 2, 2, 2, 2, 2, 2, 2, 2,
393
+ 2, 2, 2, 2, 2, 2, 3, 2,
394
+ 2, 2, 2, 3, 2, 3, 2, 2,
395
+ 2, 2, 2, 2, 2, 2, 2, 2,
396
+ 2, 2, 2, 2, 2, 2, 2, 3,
397
+ 2, 2, 2, 2, 2, 2, 2, 2,
398
+ 2, 2, 2, 2, 2, 2, 2, 2,
399
+ 2, 2, 2, 2, 2, 2, 2, 2,
400
+ 2, 2, 2, 2, 2, 2, 2, 2,
401
+ 2, 2, 2, 2, 2, 2, 2, 2,
402
+ 2, 2, 2, 2, 2, 2, 2, 2,
403
+ 2, 2, 2, 2, 2, 2, 2, 2,
404
+ 2, 2, 2, 2, 2, 2, 2, 2,
405
+ 2, 2, 2, 2, 2, 2, 2, 2,
406
+ 2, 2, 2, 2, 2, 1, 1, 1,
407
+ 1, 1, 1, 1, 1, 1, 1, 1,
408
+ 1, 1, 1, 1, 1, 1, 1, 1,
409
+ 1, 1, 1, 1, 1, 1, 7, 2,
410
+ 9, 2, 2, 2, 2, 2, 2, 2,
411
+ 2, 2, 2, 2, 2, 2, 2, 2,
412
+ 2, 2, 2, 2, 2, 2, 2, 2,
413
+ 2, 3, 2, 2, 2, 2, 2, 2,
414
+ 3, 2, 2, 2, 2, 2, 2, 2,
415
+ 2, 2, 2, 2, 2, 2, 2, 2,
416
+ 2, 2, 3, 2, 2, 2, 2, 2,
417
+ 2, 2, 2, 2, 2, 2, 2, 2,
418
+ 2, 2, 2, 2, 2, 2, 2, 2,
419
+ 2, 2, 2, 2, 2, 2, 2, 2,
420
+ 2, 2, 2, 2, 2, 2, 2, 2,
421
+ 2, 2, 2, 2, 2, 2, 2, 2,
422
+ 2, 2, 2, 2, 2, 2, 2, 2,
423
+ 2, 2, 1, 1, 1, 1, 1, 1,
424
+ 1, 1, 1, 1, 1, 1, 1, 1,
425
+ 1, 1, 1, 1, 1, 1, 1, 1,
426
+ 6, 2, 4, 2, 2, 2, 2, 2,
427
+ 2, 2, 2, 2, 2, 2, 2, 2,
428
+ 2, 2, 2, 2, 3, 2, 2, 2,
429
+ 2, 2, 2, 2, 2, 2, 2, 2,
430
+ 2, 2, 2, 2, 2, 2, 2, 2,
431
+ 3, 2, 2, 2, 2, 2, 2, 2,
432
+ 2, 2, 2, 2, 2, 2, 2, 2,
433
+ 2, 2, 2, 2, 2, 2, 2, 2,
434
+ 2, 2, 2, 2, 2, 2, 2, 2,
435
+ 2, 2, 2, 2, 2, 2, 2, 2,
436
+ 2, 2, 2, 2, 2, 2, 2, 2,
437
+ 2, 2, 2, 2, 2, 2, 2, 2,
438
+ 2, 2, 2, 2, 2, 2, 2, 2,
439
+ 2, 2, 2, 2, 2, 2, 2, 2,
440
+ 2, 2, 1, 1, 0
441
+ };
442
+
443
+ static const char _lexer_range_lengths[] = {
444
+ 0, 1, 0, 0, 0, 0, 0, 0,
445
+ 0, 0, 0, 0, 0, 1, 0, 0,
446
+ 0, 0, 1, 1, 1, 1, 1, 1,
447
+ 0, 0, 0, 0, 0, 0, 0, 0,
448
+ 0, 0, 0, 0, 0, 0, 0, 0,
449
+ 1, 1, 1, 1, 1, 0, 0, 1,
450
+ 1, 0, 0, 0, 0, 0, 0, 0,
451
+ 0, 0, 0, 0, 0, 0, 0, 0,
452
+ 0, 0, 0, 1, 0, 0, 0, 0,
453
+ 0, 0, 0, 0, 0, 0, 0, 0,
454
+ 0, 0, 0, 0, 0, 0, 0, 1,
455
+ 0, 0, 0, 0, 0, 0, 0, 0,
456
+ 0, 0, 0, 0, 0, 0, 0, 0,
457
+ 0, 0, 0, 0, 0, 0, 0, 0,
458
+ 0, 0, 0, 0, 0, 0, 0, 0,
459
+ 0, 0, 0, 0, 0, 0, 0, 0,
460
+ 0, 0, 0, 0, 0, 0, 0, 0,
461
+ 0, 0, 0, 0, 0, 0, 0, 0,
462
+ 0, 0, 0, 0, 0, 0, 0, 0,
463
+ 0, 0, 0, 1, 0, 0, 0, 0,
464
+ 0, 0, 0, 0, 0, 0, 0, 0,
465
+ 0, 0, 0, 0, 0, 0, 0, 0,
466
+ 0, 0, 0, 0, 0, 0, 0, 0,
467
+ 0, 0, 0, 0, 0, 0, 0, 0,
468
+ 0, 0, 0, 0, 0, 0, 0, 0,
469
+ 0, 0, 0, 0, 0, 0, 0, 0,
470
+ 0, 0, 0, 0, 0, 0, 0, 0,
471
+ 0, 0, 0, 0, 0, 0, 0, 0,
472
+ 0, 0, 0, 0, 0, 0, 0, 0,
473
+ 0, 0, 0, 0, 0, 0, 0, 0,
474
+ 0, 0, 0, 1, 0, 0, 0, 0,
475
+ 0, 0, 0, 0, 0, 0, 0, 0,
476
+ 0, 0, 0, 0, 0, 0, 0, 0,
477
+ 0, 0, 0, 0, 0, 0, 0, 0,
478
+ 0, 0, 0, 0, 0, 0, 0, 0,
479
+ 0, 0, 0, 0, 0, 0, 0, 0,
480
+ 0, 0, 0, 0, 0, 0, 0, 0,
481
+ 0, 0, 0, 0, 0, 0, 0, 0,
482
+ 0, 0, 0, 0, 0, 0, 0, 0,
483
+ 0, 0, 0, 0, 0, 0, 0, 0,
484
+ 0, 0, 0, 0, 0, 0, 0, 0,
485
+ 0, 0, 0, 0, 0, 0, 0, 0,
486
+ 0, 0, 0, 0, 0, 0, 0, 0,
487
+ 0, 0, 0, 0, 0, 0, 0, 0,
488
+ 0, 0, 0, 0, 0, 0, 0, 0,
489
+ 0, 0, 0, 0, 0, 0, 0, 0,
490
+ 0, 0, 0, 0, 0, 0, 0, 0,
491
+ 0, 0, 0, 0, 0, 0, 0, 0,
492
+ 0, 0, 0, 0, 0, 0, 0, 0,
493
+ 0, 0, 0, 0, 0, 0, 1, 0,
494
+ 0, 0, 0, 0, 0, 0, 0, 0,
495
+ 0, 0, 0, 0, 0, 0, 0, 0,
496
+ 0, 0, 0, 0, 0, 0, 0, 0,
497
+ 0, 0, 0, 0, 0, 0, 0, 0,
498
+ 0, 0, 0, 0, 0, 0, 0, 0,
499
+ 0, 0, 0, 0, 0, 0, 0, 0,
500
+ 0, 0, 0, 0, 0, 0, 0, 0,
501
+ 0, 0, 0, 0, 0, 0, 0, 0,
502
+ 0, 0, 0, 0, 0, 0, 0, 0,
503
+ 0, 0, 0, 0, 0, 0, 0, 0,
504
+ 0, 0, 0, 0, 0, 0, 0, 0,
505
+ 0, 0, 0, 0, 0, 0, 0, 0,
506
+ 0, 0, 0, 0, 0, 0, 0, 0,
507
+ 0, 0, 0, 0, 0, 0, 0, 0,
508
+ 0, 0, 0, 0, 0, 0, 0, 0,
509
+ 0, 0, 0, 0, 0, 0, 0, 0,
510
+ 1, 0, 0, 0, 0, 0, 0, 0,
511
+ 0, 0, 0, 0, 0, 0, 0, 0,
512
+ 0, 0, 0, 0, 0, 0, 0, 0,
513
+ 0, 0, 0, 0, 0, 0, 0, 0,
514
+ 0, 0, 0, 0, 0, 0, 0, 0,
515
+ 0, 0, 0, 0, 0, 0, 0, 0,
516
+ 0, 0, 0, 0, 0, 0, 0, 0,
517
+ 0, 0, 0, 0, 0, 0, 0, 0,
518
+ 0, 0, 0, 0, 0, 0, 0, 0,
519
+ 0, 0, 0, 0, 0, 0, 0, 0,
520
+ 0, 0, 0, 0, 0, 0, 0, 0,
521
+ 0, 0, 0, 0, 0, 0, 0, 0,
522
+ 0, 0, 0, 0, 0, 0, 0, 0,
523
+ 0, 0, 0, 0, 0, 0, 0, 0,
524
+ 0, 0, 0, 0, 0
525
+ };
526
+
527
+ static const short _lexer_index_offsets[] = {
528
+ 0, 0, 12, 14, 24, 26, 28, 30,
529
+ 32, 34, 36, 38, 41, 44, 55, 57,
530
+ 59, 62, 65, 70, 75, 80, 85, 89,
531
+ 93, 96, 98, 100, 102, 104, 106, 108,
532
+ 110, 112, 114, 116, 118, 120, 122, 124,
533
+ 126, 131, 138, 143, 147, 153, 157, 160,
534
+ 166, 177, 179, 181, 183, 185, 187, 189,
535
+ 191, 193, 195, 197, 199, 201, 203, 205,
536
+ 207, 209, 211, 213, 220, 223, 226, 229,
537
+ 232, 235, 238, 241, 244, 247, 250, 253,
538
+ 256, 259, 262, 265, 268, 271, 274, 277,
539
+ 288, 290, 292, 294, 296, 298, 300, 302,
540
+ 304, 306, 308, 310, 312, 314, 316, 318,
541
+ 320, 322, 325, 327, 329, 331, 333, 336,
542
+ 338, 341, 343, 345, 347, 349, 351, 353,
543
+ 355, 357, 359, 361, 363, 365, 367, 369,
544
+ 371, 373, 375, 378, 380, 382, 384, 386,
545
+ 388, 390, 392, 394, 396, 398, 400, 402,
546
+ 404, 406, 408, 410, 412, 414, 416, 418,
547
+ 420, 422, 424, 426, 435, 438, 448, 451,
548
+ 454, 457, 460, 463, 466, 469, 472, 475,
549
+ 478, 481, 484, 487, 490, 493, 496, 499,
550
+ 502, 505, 508, 511, 514, 517, 520, 524,
551
+ 527, 530, 533, 536, 539, 542, 546, 549,
552
+ 552, 555, 558, 561, 564, 567, 570, 573,
553
+ 576, 579, 582, 585, 588, 591, 594, 597,
554
+ 600, 603, 606, 609, 612, 615, 618, 621,
555
+ 624, 627, 630, 633, 636, 639, 642, 645,
556
+ 648, 651, 654, 657, 660, 663, 666, 669,
557
+ 672, 675, 678, 681, 684, 687, 690, 693,
558
+ 696, 699, 701, 703, 712, 715, 725, 728,
559
+ 731, 734, 737, 740, 743, 746, 749, 752,
560
+ 755, 758, 761, 764, 767, 770, 773, 776,
561
+ 779, 782, 785, 788, 791, 794, 797, 801,
562
+ 804, 807, 810, 813, 817, 820, 824, 827,
563
+ 830, 833, 836, 839, 842, 845, 848, 851,
564
+ 854, 857, 860, 863, 866, 869, 872, 875,
565
+ 879, 882, 885, 888, 891, 894, 897, 900,
566
+ 903, 906, 909, 912, 915, 918, 921, 924,
567
+ 927, 930, 933, 936, 939, 942, 945, 948,
568
+ 951, 954, 957, 960, 963, 966, 969, 972,
569
+ 975, 978, 981, 984, 987, 990, 993, 996,
570
+ 999, 1002, 1005, 1008, 1011, 1014, 1017, 1020,
571
+ 1023, 1026, 1029, 1032, 1035, 1038, 1041, 1044,
572
+ 1047, 1050, 1053, 1056, 1059, 1062, 1065, 1068,
573
+ 1071, 1074, 1077, 1080, 1083, 1086, 1089, 1092,
574
+ 1095, 1098, 1101, 1104, 1107, 1110, 1112, 1114,
575
+ 1116, 1118, 1120, 1122, 1124, 1126, 1128, 1130,
576
+ 1132, 1134, 1136, 1138, 1140, 1142, 1144, 1146,
577
+ 1148, 1150, 1152, 1154, 1156, 1158, 1160, 1169,
578
+ 1172, 1182, 1185, 1188, 1191, 1194, 1197, 1200,
579
+ 1203, 1206, 1209, 1212, 1215, 1218, 1221, 1224,
580
+ 1227, 1230, 1233, 1236, 1239, 1242, 1245, 1248,
581
+ 1251, 1254, 1258, 1261, 1264, 1267, 1270, 1273,
582
+ 1276, 1280, 1283, 1286, 1289, 1292, 1295, 1298,
583
+ 1301, 1304, 1307, 1310, 1313, 1316, 1319, 1322,
584
+ 1325, 1328, 1331, 1335, 1338, 1341, 1344, 1347,
585
+ 1350, 1353, 1356, 1359, 1362, 1365, 1368, 1371,
586
+ 1374, 1377, 1380, 1383, 1386, 1389, 1392, 1395,
587
+ 1398, 1401, 1404, 1407, 1410, 1413, 1416, 1419,
588
+ 1422, 1425, 1428, 1431, 1434, 1437, 1440, 1443,
589
+ 1446, 1449, 1452, 1455, 1458, 1461, 1464, 1467,
590
+ 1470, 1473, 1476, 1479, 1482, 1485, 1488, 1491,
591
+ 1494, 1497, 1500, 1502, 1504, 1506, 1508, 1510,
592
+ 1512, 1514, 1516, 1518, 1520, 1522, 1524, 1526,
593
+ 1528, 1530, 1532, 1534, 1536, 1538, 1540, 1542,
594
+ 1544, 1552, 1555, 1560, 1563, 1566, 1569, 1572,
595
+ 1575, 1578, 1581, 1584, 1587, 1590, 1593, 1596,
596
+ 1599, 1602, 1605, 1608, 1611, 1615, 1618, 1621,
597
+ 1624, 1627, 1630, 1633, 1636, 1639, 1642, 1645,
598
+ 1648, 1651, 1654, 1657, 1660, 1663, 1666, 1669,
599
+ 1672, 1676, 1679, 1682, 1685, 1688, 1691, 1694,
600
+ 1697, 1700, 1703, 1706, 1709, 1712, 1715, 1718,
601
+ 1721, 1724, 1727, 1730, 1733, 1736, 1739, 1742,
602
+ 1745, 1748, 1751, 1754, 1757, 1760, 1763, 1766,
603
+ 1769, 1772, 1775, 1778, 1781, 1784, 1787, 1790,
604
+ 1793, 1796, 1799, 1802, 1805, 1808, 1811, 1814,
605
+ 1817, 1820, 1823, 1826, 1829, 1832, 1835, 1838,
606
+ 1841, 1844, 1847, 1850, 1853, 1856, 1859, 1862,
607
+ 1865, 1868, 1871, 1874, 1877, 1880, 1883, 1886,
608
+ 1889, 1892, 1895, 1897, 1899
609
+ };
610
+
611
+ static const short _lexer_trans_targs[] = {
612
+ 2, 642, 13, 13, 14, 24, 26, 10,
613
+ 40, 43, 13, 0, 3, 0, 4, 49,
614
+ 7, 88, 100, 103, 109, 506, 509, 0,
615
+ 5, 0, 6, 0, 7, 0, 8, 0,
616
+ 9, 0, 10, 0, 11, 0, 13, 25,
617
+ 12, 13, 25, 12, 2, 13, 13, 14,
618
+ 24, 26, 10, 40, 43, 13, 0, 15,
619
+ 0, 16, 0, 18, 17, 17, 18, 17,
620
+ 17, 19, 19, 20, 19, 19, 19, 19,
621
+ 20, 19, 19, 19, 19, 21, 19, 19,
622
+ 19, 19, 22, 19, 19, 13, 23, 23,
623
+ 0, 13, 23, 23, 0, 13, 25, 24,
624
+ 13, 0, 27, 0, 28, 0, 29, 0,
625
+ 30, 0, 31, 0, 32, 0, 33, 0,
626
+ 34, 0, 35, 0, 36, 0, 37, 0,
627
+ 38, 0, 39, 0, 644, 0, 0, 0,
628
+ 0, 0, 41, 42, 13, 42, 42, 40,
629
+ 41, 41, 13, 42, 40, 42, 0, 43,
630
+ 44, 43, 0, 48, 47, 46, 44, 47,
631
+ 45, 0, 46, 44, 45, 0, 46, 45,
632
+ 48, 47, 46, 44, 47, 45, 2, 48,
633
+ 48, 14, 24, 26, 10, 40, 43, 48,
634
+ 0, 50, 0, 51, 0, 52, 0, 53,
635
+ 0, 54, 0, 55, 0, 56, 0, 57,
636
+ 0, 58, 0, 59, 0, 60, 0, 61,
637
+ 0, 62, 0, 63, 0, 64, 0, 65,
638
+ 0, 67, 66, 67, 66, 68, 67, 67,
639
+ 13, 13, 67, 66, 69, 67, 66, 70,
640
+ 67, 66, 71, 67, 66, 72, 67, 66,
641
+ 73, 67, 66, 74, 67, 66, 75, 67,
642
+ 66, 76, 67, 66, 67, 77, 66, 78,
643
+ 67, 66, 79, 67, 66, 80, 67, 66,
644
+ 81, 67, 66, 82, 67, 66, 83, 67,
645
+ 66, 84, 67, 66, 85, 67, 66, 86,
646
+ 67, 66, 67, 87, 66, 2, 13, 13,
647
+ 14, 24, 26, 10, 40, 43, 13, 0,
648
+ 89, 0, 90, 0, 91, 0, 92, 0,
649
+ 93, 0, 94, 0, 95, 0, 96, 0,
650
+ 97, 0, 98, 0, 99, 0, 10, 0,
651
+ 101, 0, 102, 0, 10, 0, 104, 0,
652
+ 105, 0, 106, 10, 0, 107, 0, 108,
653
+ 0, 10, 0, 110, 0, 111, 373, 0,
654
+ 112, 0, 113, 11, 0, 114, 0, 115,
655
+ 0, 116, 0, 117, 0, 118, 0, 119,
656
+ 0, 120, 0, 121, 0, 122, 0, 123,
657
+ 0, 124, 0, 125, 0, 126, 0, 127,
658
+ 0, 128, 0, 129, 0, 130, 0, 131,
659
+ 241, 0, 132, 0, 133, 0, 134, 0,
660
+ 135, 0, 136, 0, 137, 0, 138, 0,
661
+ 139, 0, 140, 0, 141, 0, 142, 0,
662
+ 143, 0, 144, 0, 145, 0, 146, 0,
663
+ 147, 0, 148, 0, 149, 0, 150, 0,
664
+ 151, 0, 152, 0, 153, 0, 155, 154,
665
+ 155, 154, 156, 155, 155, 13, 227, 164,
666
+ 13, 155, 154, 157, 155, 154, 158, 161,
667
+ 165, 177, 180, 186, 208, 211, 155, 154,
668
+ 159, 155, 154, 160, 155, 154, 161, 155,
669
+ 154, 162, 155, 154, 163, 155, 154, 164,
670
+ 155, 154, 155, 87, 154, 166, 155, 154,
671
+ 167, 155, 154, 168, 155, 154, 169, 155,
672
+ 154, 170, 155, 154, 171, 155, 154, 172,
673
+ 155, 154, 173, 155, 154, 174, 155, 154,
674
+ 175, 155, 154, 176, 155, 154, 164, 155,
675
+ 154, 178, 155, 154, 179, 155, 154, 164,
676
+ 155, 154, 181, 155, 154, 182, 155, 154,
677
+ 183, 164, 155, 154, 184, 155, 154, 185,
678
+ 155, 154, 164, 155, 154, 187, 155, 154,
679
+ 188, 155, 154, 189, 155, 154, 190, 155,
680
+ 87, 154, 191, 155, 154, 192, 155, 154,
681
+ 193, 155, 154, 194, 155, 154, 195, 155,
682
+ 154, 196, 155, 154, 197, 155, 154, 198,
683
+ 155, 154, 199, 155, 154, 200, 155, 154,
684
+ 201, 155, 154, 202, 155, 154, 203, 155,
685
+ 154, 204, 155, 154, 205, 155, 154, 206,
686
+ 155, 154, 207, 155, 154, 155, 87, 154,
687
+ 209, 155, 154, 210, 155, 154, 174, 155,
688
+ 154, 212, 155, 154, 213, 155, 154, 214,
689
+ 155, 154, 215, 155, 154, 216, 155, 154,
690
+ 217, 155, 154, 155, 218, 154, 219, 155,
691
+ 154, 220, 155, 154, 221, 155, 154, 222,
692
+ 155, 154, 223, 155, 154, 224, 155, 154,
693
+ 225, 155, 154, 226, 155, 154, 207, 155,
694
+ 154, 155, 228, 154, 155, 229, 154, 155,
695
+ 230, 154, 155, 231, 154, 155, 232, 154,
696
+ 155, 233, 154, 155, 234, 154, 155, 235,
697
+ 154, 155, 236, 154, 155, 237, 154, 155,
698
+ 238, 154, 155, 239, 154, 155, 240, 154,
699
+ 155, 13, 154, 243, 242, 243, 242, 244,
700
+ 243, 243, 13, 359, 252, 13, 243, 242,
701
+ 245, 243, 242, 246, 249, 253, 265, 268,
702
+ 274, 340, 343, 243, 242, 247, 243, 242,
703
+ 248, 243, 242, 249, 243, 242, 250, 243,
704
+ 242, 251, 243, 242, 252, 243, 242, 243,
705
+ 87, 242, 254, 243, 242, 255, 243, 242,
706
+ 256, 243, 242, 257, 243, 242, 258, 243,
707
+ 242, 259, 243, 242, 260, 243, 242, 261,
708
+ 243, 242, 262, 243, 242, 263, 243, 242,
709
+ 264, 243, 242, 252, 243, 242, 266, 243,
710
+ 242, 267, 243, 242, 252, 243, 242, 269,
711
+ 243, 242, 270, 243, 242, 271, 252, 243,
712
+ 242, 272, 243, 242, 273, 243, 242, 252,
713
+ 243, 242, 275, 243, 242, 276, 318, 243,
714
+ 242, 277, 243, 242, 278, 243, 87, 242,
715
+ 279, 243, 242, 280, 243, 242, 281, 243,
716
+ 242, 282, 243, 242, 283, 243, 242, 284,
717
+ 243, 242, 285, 243, 242, 286, 243, 242,
718
+ 287, 243, 242, 288, 243, 242, 289, 243,
719
+ 242, 290, 243, 242, 291, 243, 242, 292,
720
+ 243, 242, 293, 243, 242, 294, 243, 242,
721
+ 295, 243, 242, 243, 296, 87, 242, 297,
722
+ 243, 242, 298, 243, 242, 299, 243, 242,
723
+ 300, 243, 242, 301, 243, 242, 302, 243,
724
+ 242, 303, 243, 242, 304, 243, 242, 305,
725
+ 243, 242, 306, 243, 242, 307, 243, 242,
726
+ 308, 243, 242, 309, 243, 242, 310, 243,
727
+ 242, 311, 243, 242, 312, 243, 242, 313,
728
+ 243, 242, 314, 243, 242, 315, 243, 242,
729
+ 316, 243, 242, 317, 243, 242, 243, 87,
730
+ 242, 319, 243, 242, 320, 243, 242, 321,
731
+ 243, 242, 322, 243, 242, 323, 243, 242,
732
+ 324, 243, 242, 325, 243, 242, 326, 243,
733
+ 242, 327, 243, 242, 328, 243, 242, 329,
734
+ 243, 242, 330, 243, 242, 331, 243, 242,
735
+ 332, 243, 242, 333, 243, 242, 334, 243,
736
+ 242, 335, 243, 242, 336, 243, 242, 337,
737
+ 243, 242, 338, 243, 242, 339, 243, 242,
738
+ 317, 243, 242, 341, 243, 242, 342, 243,
739
+ 242, 262, 243, 242, 344, 243, 242, 345,
740
+ 243, 242, 346, 243, 242, 347, 243, 242,
741
+ 348, 243, 242, 349, 243, 242, 243, 350,
742
+ 242, 351, 243, 242, 352, 243, 242, 353,
743
+ 243, 242, 354, 243, 242, 355, 243, 242,
744
+ 356, 243, 242, 357, 243, 242, 358, 243,
745
+ 242, 317, 243, 242, 243, 360, 242, 243,
746
+ 361, 242, 243, 362, 242, 243, 363, 242,
747
+ 243, 364, 242, 243, 365, 242, 243, 366,
748
+ 242, 243, 367, 242, 243, 368, 242, 243,
749
+ 369, 242, 243, 370, 242, 243, 371, 242,
750
+ 243, 372, 242, 243, 13, 242, 374, 0,
751
+ 375, 0, 376, 0, 377, 0, 378, 0,
752
+ 379, 0, 380, 0, 381, 0, 382, 0,
753
+ 383, 0, 384, 0, 385, 0, 386, 0,
754
+ 387, 0, 388, 0, 389, 0, 390, 0,
755
+ 391, 0, 392, 0, 393, 0, 394, 0,
756
+ 395, 0, 396, 0, 398, 397, 398, 397,
757
+ 399, 398, 398, 13, 492, 407, 13, 398,
758
+ 397, 400, 398, 397, 401, 404, 408, 420,
759
+ 423, 429, 473, 476, 398, 397, 402, 398,
760
+ 397, 403, 398, 397, 404, 398, 397, 405,
761
+ 398, 397, 406, 398, 397, 407, 398, 397,
762
+ 398, 87, 397, 409, 398, 397, 410, 398,
763
+ 397, 411, 398, 397, 412, 398, 397, 413,
764
+ 398, 397, 414, 398, 397, 415, 398, 397,
765
+ 416, 398, 397, 417, 398, 397, 418, 398,
766
+ 397, 419, 398, 397, 407, 398, 397, 421,
767
+ 398, 397, 422, 398, 397, 407, 398, 397,
768
+ 424, 398, 397, 425, 398, 397, 426, 407,
769
+ 398, 397, 427, 398, 397, 428, 398, 397,
770
+ 407, 398, 397, 430, 398, 397, 431, 398,
771
+ 397, 432, 398, 397, 433, 398, 87, 397,
772
+ 434, 398, 397, 435, 398, 397, 436, 398,
773
+ 397, 437, 398, 397, 438, 398, 397, 439,
774
+ 398, 397, 440, 398, 397, 441, 398, 397,
775
+ 442, 398, 397, 443, 398, 397, 444, 398,
776
+ 397, 445, 398, 397, 446, 398, 397, 447,
777
+ 398, 397, 448, 398, 397, 449, 398, 397,
778
+ 450, 398, 397, 398, 451, 87, 397, 452,
779
+ 398, 397, 453, 398, 397, 454, 398, 397,
780
+ 455, 398, 397, 456, 398, 397, 457, 398,
781
+ 397, 458, 398, 397, 459, 398, 397, 460,
782
+ 398, 397, 461, 398, 397, 462, 398, 397,
783
+ 463, 398, 397, 464, 398, 397, 465, 398,
784
+ 397, 466, 398, 397, 467, 398, 397, 468,
785
+ 398, 397, 469, 398, 397, 470, 398, 397,
786
+ 471, 398, 397, 472, 398, 397, 398, 87,
787
+ 397, 474, 398, 397, 475, 398, 397, 417,
788
+ 398, 397, 477, 398, 397, 478, 398, 397,
789
+ 479, 398, 397, 480, 398, 397, 481, 398,
790
+ 397, 482, 398, 397, 398, 483, 397, 484,
791
+ 398, 397, 485, 398, 397, 486, 398, 397,
792
+ 487, 398, 397, 488, 398, 397, 489, 398,
793
+ 397, 490, 398, 397, 491, 398, 397, 472,
794
+ 398, 397, 398, 493, 397, 398, 494, 397,
795
+ 398, 495, 397, 398, 496, 397, 398, 497,
796
+ 397, 398, 498, 397, 398, 499, 397, 398,
797
+ 500, 397, 398, 501, 397, 398, 502, 397,
798
+ 398, 503, 397, 398, 504, 397, 398, 505,
799
+ 397, 398, 13, 397, 507, 0, 508, 0,
800
+ 97, 0, 510, 0, 511, 0, 512, 0,
801
+ 513, 0, 514, 0, 515, 0, 516, 0,
802
+ 517, 0, 518, 0, 519, 0, 520, 0,
803
+ 521, 0, 522, 0, 523, 0, 524, 0,
804
+ 525, 0, 526, 0, 528, 527, 528, 527,
805
+ 529, 528, 528, 13, 628, 13, 528, 527,
806
+ 530, 528, 527, 531, 547, 612, 528, 527,
807
+ 532, 528, 527, 533, 528, 527, 534, 528,
808
+ 527, 535, 528, 527, 536, 528, 527, 537,
809
+ 528, 527, 538, 528, 527, 539, 528, 527,
810
+ 540, 528, 527, 541, 528, 527, 542, 528,
811
+ 527, 543, 528, 527, 544, 528, 527, 545,
812
+ 528, 527, 546, 528, 527, 528, 87, 527,
813
+ 548, 528, 527, 549, 590, 528, 527, 550,
814
+ 528, 527, 551, 528, 527, 552, 528, 527,
815
+ 553, 528, 527, 554, 528, 527, 555, 528,
816
+ 527, 556, 528, 527, 557, 528, 527, 558,
817
+ 528, 527, 559, 528, 527, 560, 528, 527,
818
+ 561, 528, 527, 562, 528, 527, 563, 528,
819
+ 527, 564, 528, 527, 565, 528, 527, 566,
820
+ 528, 527, 567, 528, 527, 568, 528, 527,
821
+ 528, 569, 87, 527, 570, 528, 527, 571,
822
+ 528, 527, 572, 528, 527, 573, 528, 527,
823
+ 574, 528, 527, 575, 528, 527, 576, 528,
824
+ 527, 577, 528, 527, 578, 528, 527, 579,
825
+ 528, 527, 580, 528, 527, 581, 528, 527,
826
+ 582, 528, 527, 583, 528, 527, 584, 528,
827
+ 527, 585, 528, 527, 586, 528, 527, 587,
828
+ 528, 527, 588, 528, 527, 589, 528, 527,
829
+ 546, 528, 527, 591, 528, 527, 592, 528,
830
+ 527, 593, 528, 527, 594, 528, 527, 595,
831
+ 528, 527, 596, 528, 527, 597, 528, 527,
832
+ 598, 528, 527, 599, 528, 527, 600, 528,
833
+ 527, 601, 528, 527, 602, 528, 527, 603,
834
+ 528, 527, 604, 528, 527, 605, 528, 527,
835
+ 606, 528, 527, 607, 528, 527, 608, 528,
836
+ 527, 609, 528, 527, 610, 528, 527, 611,
837
+ 528, 527, 546, 528, 527, 613, 528, 527,
838
+ 614, 528, 527, 615, 528, 527, 616, 528,
839
+ 527, 617, 528, 527, 618, 528, 527, 528,
840
+ 619, 527, 620, 528, 527, 621, 528, 527,
841
+ 622, 528, 527, 623, 528, 527, 624, 528,
842
+ 527, 625, 528, 527, 626, 528, 527, 627,
843
+ 528, 527, 546, 528, 527, 528, 629, 527,
844
+ 528, 630, 527, 528, 631, 527, 528, 632,
845
+ 527, 528, 633, 527, 528, 634, 527, 528,
846
+ 635, 527, 528, 636, 527, 528, 637, 527,
847
+ 528, 638, 527, 528, 639, 527, 528, 640,
848
+ 527, 528, 641, 527, 528, 13, 527, 643,
849
+ 0, 13, 0, 0, 0
850
+ };
851
+
852
+ static const unsigned char _lexer_trans_actions[] = {
853
+ 29, 0, 54, 0, 5, 1, 0, 29,
854
+ 1, 35, 0, 43, 0, 43, 0, 0,
855
+ 0, 0, 0, 0, 0, 0, 0, 43,
856
+ 0, 43, 0, 43, 0, 43, 0, 43,
857
+ 0, 43, 0, 43, 0, 43, 149, 126,
858
+ 57, 110, 23, 0, 29, 54, 0, 5,
859
+ 1, 0, 29, 1, 35, 0, 43, 0,
860
+ 43, 0, 43, 139, 48, 9, 106, 11,
861
+ 0, 134, 45, 45, 45, 3, 122, 33,
862
+ 33, 33, 0, 122, 33, 33, 33, 0,
863
+ 122, 33, 0, 33, 0, 102, 7, 7,
864
+ 43, 54, 0, 0, 43, 114, 25, 0,
865
+ 54, 43, 0, 43, 0, 43, 0, 43,
866
+ 0, 43, 0, 43, 0, 43, 0, 43,
867
+ 0, 43, 0, 43, 0, 43, 0, 43,
868
+ 0, 43, 0, 43, 0, 43, 43, 43,
869
+ 43, 43, 0, 27, 118, 27, 27, 51,
870
+ 27, 0, 54, 0, 1, 0, 43, 0,
871
+ 0, 0, 43, 54, 37, 37, 87, 37,
872
+ 37, 43, 0, 39, 0, 43, 0, 0,
873
+ 54, 0, 0, 39, 0, 0, 96, 54,
874
+ 0, 93, 90, 41, 96, 90, 99, 0,
875
+ 43, 0, 43, 0, 43, 0, 43, 0,
876
+ 43, 0, 43, 0, 43, 0, 43, 0,
877
+ 43, 0, 43, 0, 43, 0, 43, 0,
878
+ 43, 0, 43, 0, 43, 0, 43, 0,
879
+ 43, 144, 57, 54, 0, 84, 54, 0,
880
+ 81, 81, 0, 0, 0, 54, 0, 0,
881
+ 54, 0, 0, 54, 0, 0, 54, 0,
882
+ 0, 54, 0, 0, 54, 0, 0, 54,
883
+ 0, 0, 54, 0, 54, 0, 0, 0,
884
+ 54, 0, 0, 54, 0, 0, 54, 0,
885
+ 0, 54, 0, 0, 54, 0, 0, 54,
886
+ 0, 0, 54, 0, 0, 54, 0, 0,
887
+ 54, 0, 54, 21, 0, 63, 130, 31,
888
+ 60, 57, 31, 63, 57, 66, 31, 43,
889
+ 0, 43, 0, 43, 0, 43, 0, 43,
890
+ 0, 43, 0, 43, 0, 43, 0, 43,
891
+ 0, 43, 0, 43, 0, 43, 0, 43,
892
+ 0, 43, 0, 43, 0, 43, 0, 43,
893
+ 0, 43, 0, 0, 43, 0, 43, 0,
894
+ 43, 0, 43, 0, 43, 0, 0, 43,
895
+ 0, 43, 0, 0, 43, 0, 43, 0,
896
+ 43, 0, 43, 0, 43, 0, 43, 0,
897
+ 43, 0, 43, 0, 43, 0, 43, 0,
898
+ 43, 0, 43, 0, 43, 0, 43, 0,
899
+ 43, 0, 43, 0, 43, 0, 43, 0,
900
+ 0, 43, 0, 43, 0, 43, 0, 43,
901
+ 0, 43, 0, 43, 0, 43, 0, 43,
902
+ 0, 43, 0, 43, 0, 43, 0, 43,
903
+ 0, 43, 0, 43, 0, 43, 0, 43,
904
+ 0, 43, 0, 43, 0, 43, 0, 43,
905
+ 0, 43, 0, 43, 0, 43, 144, 57,
906
+ 54, 0, 84, 54, 0, 78, 33, 84,
907
+ 78, 0, 0, 0, 54, 0, 0, 0,
908
+ 0, 0, 0, 0, 0, 0, 54, 0,
909
+ 0, 54, 0, 0, 54, 0, 0, 54,
910
+ 0, 0, 54, 0, 0, 54, 0, 0,
911
+ 54, 0, 54, 19, 0, 0, 54, 0,
912
+ 0, 54, 0, 0, 54, 0, 0, 54,
913
+ 0, 0, 54, 0, 0, 54, 0, 0,
914
+ 54, 0, 0, 54, 0, 0, 54, 0,
915
+ 0, 54, 0, 0, 54, 0, 0, 54,
916
+ 0, 0, 54, 0, 0, 54, 0, 0,
917
+ 54, 0, 0, 54, 0, 0, 54, 0,
918
+ 0, 0, 54, 0, 0, 54, 0, 0,
919
+ 54, 0, 0, 54, 0, 0, 54, 0,
920
+ 0, 54, 0, 0, 54, 0, 0, 54,
921
+ 19, 0, 0, 54, 0, 0, 54, 0,
922
+ 0, 54, 0, 0, 54, 0, 0, 54,
923
+ 0, 0, 54, 0, 0, 54, 0, 0,
924
+ 54, 0, 0, 54, 0, 0, 54, 0,
925
+ 0, 54, 0, 0, 54, 0, 0, 54,
926
+ 0, 0, 54, 0, 0, 54, 0, 0,
927
+ 54, 0, 0, 54, 0, 54, 19, 0,
928
+ 0, 54, 0, 0, 54, 0, 0, 54,
929
+ 0, 0, 54, 0, 0, 54, 0, 0,
930
+ 54, 0, 0, 54, 0, 0, 54, 0,
931
+ 0, 54, 0, 54, 0, 0, 0, 54,
932
+ 0, 0, 54, 0, 0, 54, 0, 0,
933
+ 54, 0, 0, 54, 0, 0, 54, 0,
934
+ 0, 54, 0, 0, 54, 0, 0, 54,
935
+ 0, 54, 0, 0, 54, 0, 0, 54,
936
+ 0, 0, 54, 0, 0, 54, 0, 0,
937
+ 54, 0, 0, 54, 0, 0, 54, 0,
938
+ 0, 54, 0, 0, 54, 0, 0, 54,
939
+ 0, 0, 54, 0, 0, 54, 0, 0,
940
+ 54, 19, 0, 144, 57, 54, 0, 84,
941
+ 54, 0, 75, 33, 84, 75, 0, 0,
942
+ 0, 54, 0, 0, 0, 0, 0, 0,
943
+ 0, 0, 0, 54, 0, 0, 54, 0,
944
+ 0, 54, 0, 0, 54, 0, 0, 54,
945
+ 0, 0, 54, 0, 0, 54, 0, 54,
946
+ 17, 0, 0, 54, 0, 0, 54, 0,
947
+ 0, 54, 0, 0, 54, 0, 0, 54,
948
+ 0, 0, 54, 0, 0, 54, 0, 0,
949
+ 54, 0, 0, 54, 0, 0, 54, 0,
950
+ 0, 54, 0, 0, 54, 0, 0, 54,
951
+ 0, 0, 54, 0, 0, 54, 0, 0,
952
+ 54, 0, 0, 54, 0, 0, 0, 54,
953
+ 0, 0, 54, 0, 0, 54, 0, 0,
954
+ 54, 0, 0, 54, 0, 0, 0, 54,
955
+ 0, 0, 54, 0, 0, 54, 17, 0,
956
+ 0, 54, 0, 0, 54, 0, 0, 54,
957
+ 0, 0, 54, 0, 0, 54, 0, 0,
958
+ 54, 0, 0, 54, 0, 0, 54, 0,
959
+ 0, 54, 0, 0, 54, 0, 0, 54,
960
+ 0, 0, 54, 0, 0, 54, 0, 0,
961
+ 54, 0, 0, 54, 0, 0, 54, 0,
962
+ 0, 54, 0, 54, 0, 17, 0, 0,
963
+ 54, 0, 0, 54, 0, 0, 54, 0,
964
+ 0, 54, 0, 0, 54, 0, 0, 54,
965
+ 0, 0, 54, 0, 0, 54, 0, 0,
966
+ 54, 0, 0, 54, 0, 0, 54, 0,
967
+ 0, 54, 0, 0, 54, 0, 0, 54,
968
+ 0, 0, 54, 0, 0, 54, 0, 0,
969
+ 54, 0, 0, 54, 0, 0, 54, 0,
970
+ 0, 54, 0, 0, 54, 0, 54, 17,
971
+ 0, 0, 54, 0, 0, 54, 0, 0,
972
+ 54, 0, 0, 54, 0, 0, 54, 0,
973
+ 0, 54, 0, 0, 54, 0, 0, 54,
974
+ 0, 0, 54, 0, 0, 54, 0, 0,
975
+ 54, 0, 0, 54, 0, 0, 54, 0,
976
+ 0, 54, 0, 0, 54, 0, 0, 54,
977
+ 0, 0, 54, 0, 0, 54, 0, 0,
978
+ 54, 0, 0, 54, 0, 0, 54, 0,
979
+ 0, 54, 0, 0, 54, 0, 0, 54,
980
+ 0, 0, 54, 0, 0, 54, 0, 0,
981
+ 54, 0, 0, 54, 0, 0, 54, 0,
982
+ 0, 54, 0, 0, 54, 0, 54, 0,
983
+ 0, 0, 54, 0, 0, 54, 0, 0,
984
+ 54, 0, 0, 54, 0, 0, 54, 0,
985
+ 0, 54, 0, 0, 54, 0, 0, 54,
986
+ 0, 0, 54, 0, 54, 0, 0, 54,
987
+ 0, 0, 54, 0, 0, 54, 0, 0,
988
+ 54, 0, 0, 54, 0, 0, 54, 0,
989
+ 0, 54, 0, 0, 54, 0, 0, 54,
990
+ 0, 0, 54, 0, 0, 54, 0, 0,
991
+ 54, 0, 0, 54, 17, 0, 0, 43,
992
+ 0, 43, 0, 43, 0, 43, 0, 43,
993
+ 0, 43, 0, 43, 0, 43, 0, 43,
994
+ 0, 43, 0, 43, 0, 43, 0, 43,
995
+ 0, 43, 0, 43, 0, 43, 0, 43,
996
+ 0, 43, 0, 43, 0, 43, 0, 43,
997
+ 0, 43, 0, 43, 144, 57, 54, 0,
998
+ 84, 54, 0, 72, 33, 84, 72, 0,
999
+ 0, 0, 54, 0, 0, 0, 0, 0,
1000
+ 0, 0, 0, 0, 54, 0, 0, 54,
1001
+ 0, 0, 54, 0, 0, 54, 0, 0,
1002
+ 54, 0, 0, 54, 0, 0, 54, 0,
1003
+ 54, 15, 0, 0, 54, 0, 0, 54,
1004
+ 0, 0, 54, 0, 0, 54, 0, 0,
1005
+ 54, 0, 0, 54, 0, 0, 54, 0,
1006
+ 0, 54, 0, 0, 54, 0, 0, 54,
1007
+ 0, 0, 54, 0, 0, 54, 0, 0,
1008
+ 54, 0, 0, 54, 0, 0, 54, 0,
1009
+ 0, 54, 0, 0, 54, 0, 0, 0,
1010
+ 54, 0, 0, 54, 0, 0, 54, 0,
1011
+ 0, 54, 0, 0, 54, 0, 0, 54,
1012
+ 0, 0, 54, 0, 0, 54, 15, 0,
1013
+ 0, 54, 0, 0, 54, 0, 0, 54,
1014
+ 0, 0, 54, 0, 0, 54, 0, 0,
1015
+ 54, 0, 0, 54, 0, 0, 54, 0,
1016
+ 0, 54, 0, 0, 54, 0, 0, 54,
1017
+ 0, 0, 54, 0, 0, 54, 0, 0,
1018
+ 54, 0, 0, 54, 0, 0, 54, 0,
1019
+ 0, 54, 0, 54, 0, 15, 0, 0,
1020
+ 54, 0, 0, 54, 0, 0, 54, 0,
1021
+ 0, 54, 0, 0, 54, 0, 0, 54,
1022
+ 0, 0, 54, 0, 0, 54, 0, 0,
1023
+ 54, 0, 0, 54, 0, 0, 54, 0,
1024
+ 0, 54, 0, 0, 54, 0, 0, 54,
1025
+ 0, 0, 54, 0, 0, 54, 0, 0,
1026
+ 54, 0, 0, 54, 0, 0, 54, 0,
1027
+ 0, 54, 0, 0, 54, 0, 54, 15,
1028
+ 0, 0, 54, 0, 0, 54, 0, 0,
1029
+ 54, 0, 0, 54, 0, 0, 54, 0,
1030
+ 0, 54, 0, 0, 54, 0, 0, 54,
1031
+ 0, 0, 54, 0, 54, 0, 0, 0,
1032
+ 54, 0, 0, 54, 0, 0, 54, 0,
1033
+ 0, 54, 0, 0, 54, 0, 0, 54,
1034
+ 0, 0, 54, 0, 0, 54, 0, 0,
1035
+ 54, 0, 54, 0, 0, 54, 0, 0,
1036
+ 54, 0, 0, 54, 0, 0, 54, 0,
1037
+ 0, 54, 0, 0, 54, 0, 0, 54,
1038
+ 0, 0, 54, 0, 0, 54, 0, 0,
1039
+ 54, 0, 0, 54, 0, 0, 54, 0,
1040
+ 0, 54, 15, 0, 0, 43, 0, 43,
1041
+ 0, 43, 0, 43, 0, 43, 0, 43,
1042
+ 0, 43, 0, 43, 0, 43, 0, 43,
1043
+ 0, 43, 0, 43, 0, 43, 0, 43,
1044
+ 0, 43, 0, 43, 0, 43, 0, 43,
1045
+ 0, 43, 0, 43, 144, 57, 54, 0,
1046
+ 84, 54, 0, 69, 33, 69, 0, 0,
1047
+ 0, 54, 0, 0, 0, 0, 54, 0,
1048
+ 0, 54, 0, 0, 54, 0, 0, 54,
1049
+ 0, 0, 54, 0, 0, 54, 0, 0,
1050
+ 54, 0, 0, 54, 0, 0, 54, 0,
1051
+ 0, 54, 0, 0, 54, 0, 0, 54,
1052
+ 0, 0, 54, 0, 0, 54, 0, 0,
1053
+ 54, 0, 0, 54, 0, 54, 13, 0,
1054
+ 0, 54, 0, 0, 0, 54, 0, 0,
1055
+ 54, 0, 0, 54, 0, 0, 54, 0,
1056
+ 0, 54, 0, 0, 54, 0, 0, 54,
1057
+ 0, 0, 54, 0, 0, 54, 0, 0,
1058
+ 54, 0, 0, 54, 0, 0, 54, 0,
1059
+ 0, 54, 0, 0, 54, 0, 0, 54,
1060
+ 0, 0, 54, 0, 0, 54, 0, 0,
1061
+ 54, 0, 0, 54, 0, 0, 54, 0,
1062
+ 54, 0, 13, 0, 0, 54, 0, 0,
1063
+ 54, 0, 0, 54, 0, 0, 54, 0,
1064
+ 0, 54, 0, 0, 54, 0, 0, 54,
1065
+ 0, 0, 54, 0, 0, 54, 0, 0,
1066
+ 54, 0, 0, 54, 0, 0, 54, 0,
1067
+ 0, 54, 0, 0, 54, 0, 0, 54,
1068
+ 0, 0, 54, 0, 0, 54, 0, 0,
1069
+ 54, 0, 0, 54, 0, 0, 54, 0,
1070
+ 0, 54, 0, 0, 54, 0, 0, 54,
1071
+ 0, 0, 54, 0, 0, 54, 0, 0,
1072
+ 54, 0, 0, 54, 0, 0, 54, 0,
1073
+ 0, 54, 0, 0, 54, 0, 0, 54,
1074
+ 0, 0, 54, 0, 0, 54, 0, 0,
1075
+ 54, 0, 0, 54, 0, 0, 54, 0,
1076
+ 0, 54, 0, 0, 54, 0, 0, 54,
1077
+ 0, 0, 54, 0, 0, 54, 0, 0,
1078
+ 54, 0, 0, 54, 0, 0, 54, 0,
1079
+ 0, 54, 0, 0, 54, 0, 0, 54,
1080
+ 0, 0, 54, 0, 0, 54, 0, 54,
1081
+ 0, 0, 0, 54, 0, 0, 54, 0,
1082
+ 0, 54, 0, 0, 54, 0, 0, 54,
1083
+ 0, 0, 54, 0, 0, 54, 0, 0,
1084
+ 54, 0, 0, 54, 0, 54, 0, 0,
1085
+ 54, 0, 0, 54, 0, 0, 54, 0,
1086
+ 0, 54, 0, 0, 54, 0, 0, 54,
1087
+ 0, 0, 54, 0, 0, 54, 0, 0,
1088
+ 54, 0, 0, 54, 0, 0, 54, 0,
1089
+ 0, 54, 0, 0, 54, 13, 0, 0,
1090
+ 43, 0, 43, 0, 0
1091
+ };
1092
+
1093
+ static const unsigned char _lexer_eof_actions[] = {
1094
+ 0, 43, 43, 43, 43, 43, 43, 43,
1095
+ 43, 43, 43, 43, 43, 43, 43, 43,
1096
+ 43, 43, 43, 43, 43, 43, 43, 43,
1097
+ 43, 43, 43, 43, 43, 43, 43, 43,
1098
+ 43, 43, 43, 43, 43, 43, 43, 43,
1099
+ 43, 43, 43, 43, 43, 43, 43, 43,
1100
+ 43, 43, 43, 43, 43, 43, 43, 43,
1101
+ 43, 43, 43, 43, 43, 43, 43, 43,
1102
+ 43, 43, 43, 43, 43, 43, 43, 43,
1103
+ 43, 43, 43, 43, 43, 43, 43, 43,
1104
+ 43, 43, 43, 43, 43, 43, 43, 43,
1105
+ 43, 43, 43, 43, 43, 43, 43, 43,
1106
+ 43, 43, 43, 43, 43, 43, 43, 43,
1107
+ 43, 43, 43, 43, 43, 43, 43, 43,
1108
+ 43, 43, 43, 43, 43, 43, 43, 43,
1109
+ 43, 43, 43, 43, 43, 43, 43, 43,
1110
+ 43, 43, 43, 43, 43, 43, 43, 43,
1111
+ 43, 43, 43, 43, 43, 43, 43, 43,
1112
+ 43, 43, 43, 43, 43, 43, 43, 43,
1113
+ 43, 43, 43, 43, 43, 43, 43, 43,
1114
+ 43, 43, 43, 43, 43, 43, 43, 43,
1115
+ 43, 43, 43, 43, 43, 43, 43, 43,
1116
+ 43, 43, 43, 43, 43, 43, 43, 43,
1117
+ 43, 43, 43, 43, 43, 43, 43, 43,
1118
+ 43, 43, 43, 43, 43, 43, 43, 43,
1119
+ 43, 43, 43, 43, 43, 43, 43, 43,
1120
+ 43, 43, 43, 43, 43, 43, 43, 43,
1121
+ 43, 43, 43, 43, 43, 43, 43, 43,
1122
+ 43, 43, 43, 43, 43, 43, 43, 43,
1123
+ 43, 43, 43, 43, 43, 43, 43, 43,
1124
+ 43, 43, 43, 43, 43, 43, 43, 43,
1125
+ 43, 43, 43, 43, 43, 43, 43, 43,
1126
+ 43, 43, 43, 43, 43, 43, 43, 43,
1127
+ 43, 43, 43, 43, 43, 43, 43, 43,
1128
+ 43, 43, 43, 43, 43, 43, 43, 43,
1129
+ 43, 43, 43, 43, 43, 43, 43, 43,
1130
+ 43, 43, 43, 43, 43, 43, 43, 43,
1131
+ 43, 43, 43, 43, 43, 43, 43, 43,
1132
+ 43, 43, 43, 43, 43, 43, 43, 43,
1133
+ 43, 43, 43, 43, 43, 43, 43, 43,
1134
+ 43, 43, 43, 43, 43, 43, 43, 43,
1135
+ 43, 43, 43, 43, 43, 43, 43, 43,
1136
+ 43, 43, 43, 43, 43, 43, 43, 43,
1137
+ 43, 43, 43, 43, 43, 43, 43, 43,
1138
+ 43, 43, 43, 43, 43, 43, 43, 43,
1139
+ 43, 43, 43, 43, 43, 43, 43, 43,
1140
+ 43, 43, 43, 43, 43, 43, 43, 43,
1141
+ 43, 43, 43, 43, 43, 43, 43, 43,
1142
+ 43, 43, 43, 43, 43, 43, 43, 43,
1143
+ 43, 43, 43, 43, 43, 43, 43, 43,
1144
+ 43, 43, 43, 43, 43, 43, 43, 43,
1145
+ 43, 43, 43, 43, 43, 43, 43, 43,
1146
+ 43, 43, 43, 43, 43, 43, 43, 43,
1147
+ 43, 43, 43, 43, 43, 43, 43, 43,
1148
+ 43, 43, 43, 43, 43, 43, 43, 43,
1149
+ 43, 43, 43, 43, 43, 43, 43, 43,
1150
+ 43, 43, 43, 43, 43, 43, 43, 43,
1151
+ 43, 43, 43, 43, 43, 43, 43, 43,
1152
+ 43, 43, 43, 43, 43, 43, 43, 43,
1153
+ 43, 43, 43, 43, 43, 43, 43, 43,
1154
+ 43, 43, 43, 43, 43, 43, 43, 43,
1155
+ 43, 43, 43, 43, 43, 43, 43, 43,
1156
+ 43, 43, 43, 43, 43, 43, 43, 43,
1157
+ 43, 43, 43, 43, 43, 43, 43, 43,
1158
+ 43, 43, 43, 43, 43, 43, 43, 43,
1159
+ 43, 43, 43, 43, 43, 43, 43, 43,
1160
+ 43, 43, 43, 43, 43, 43, 43, 43,
1161
+ 43, 43, 43, 43, 43, 43, 43, 43,
1162
+ 43, 43, 43, 43, 43, 43, 43, 43,
1163
+ 43, 43, 43, 43, 43, 43, 43, 43,
1164
+ 43, 43, 43, 43, 43, 43, 43, 43,
1165
+ 43, 43, 43, 43, 43, 43, 43, 43,
1166
+ 43, 43, 43, 43, 43, 43, 43, 43,
1167
+ 43, 43, 43, 43, 43, 43, 43, 43,
1168
+ 43, 43, 43, 43, 43, 43, 43, 43,
1169
+ 43, 43, 43, 43, 43, 43, 43, 43,
1170
+ 43, 43, 43, 43, 43, 43, 43, 43,
1171
+ 43, 43, 43, 43, 43, 43, 43, 43,
1172
+ 43, 43, 43, 43, 43, 43, 43, 43,
1173
+ 43, 43, 43, 43, 43, 43, 43, 43,
1174
+ 43, 43, 43, 43, 43
1175
+ };
1176
+
1177
+ static const int lexer_start = 1;
1178
+ static const int lexer_first_final = 644;
1179
+ static const int lexer_error = 0;
1180
+
1181
+ static const int lexer_en_main = 1;
1182
+
1183
+
1184
+ #line 258 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1185
+
1186
+ static VALUE
1187
+ unindent(VALUE con, int start_col)
1188
+ {
1189
+ VALUE re;
1190
+ /* Gherkin will crash gracefully if the string representation of start_col pushes the pattern past 32 characters */
1191
+ char pat[32];
1192
+ snprintf(pat, 32, "^[\t ]{0,%d}", start_col);
1193
+ re = rb_reg_regcomp(rb_str_new2(pat));
1194
+ rb_funcall(con, rb_intern("gsub!"), 2, re, rb_str_new2(""));
1195
+
1196
+ return Qnil;
1197
+
1198
+ }
1199
+
1200
+ static void
1201
+ store_kw_con(VALUE listener, const char * event_name,
1202
+ const char * keyword_at, size_t keyword_length,
1203
+ const char * at, size_t length,
1204
+ int current_line)
1205
+ {
1206
+ VALUE con = Qnil, kw = Qnil;
1207
+ kw = ENCODED_STR_NEW(keyword_at, keyword_length);
1208
+ con = ENCODED_STR_NEW(at, length);
1209
+ rb_funcall(con, rb_intern("strip!"), 0);
1210
+ rb_funcall(listener, rb_intern(event_name), 3, kw, con, INT2FIX(current_line));
1211
+ }
1212
+
1213
+ static void
1214
+ store_multiline_kw_con(VALUE listener, const char * event_name,
1215
+ const char * keyword_at, size_t keyword_length,
1216
+ const char * at, size_t length,
1217
+ int current_line, int start_col)
1218
+ {
1219
+ VALUE split;
1220
+ VALUE con = Qnil, kw = Qnil, name = Qnil, desc = Qnil;
1221
+
1222
+ kw = ENCODED_STR_NEW(keyword_at, keyword_length);
1223
+ con = ENCODED_STR_NEW(at, length);
1224
+
1225
+ unindent(con, start_col);
1226
+
1227
+ split = rb_str_split(con, "\n");
1228
+
1229
+ name = rb_funcall(split, rb_intern("shift"), 0);
1230
+ desc = rb_ary_join(split, rb_str_new2( "\n" ));
1231
+
1232
+ if( name == Qnil )
1233
+ {
1234
+ name = rb_str_new2("");
1235
+ }
1236
+ if( rb_funcall(desc, rb_intern("size"), 0) == 0)
1237
+ {
1238
+ desc = rb_str_new2("");
1239
+ }
1240
+ rb_funcall(name, rb_intern("strip!"), 0);
1241
+ rb_funcall(desc, rb_intern("rstrip!"), 0);
1242
+ rb_funcall(listener, rb_intern(event_name), 4, kw, name, desc, INT2FIX(current_line));
1243
+ }
1244
+
1245
+ static void
1246
+ store_attr(VALUE listener, const char * attr_type,
1247
+ const char * at, size_t length,
1248
+ int line)
1249
+ {
1250
+ VALUE val = ENCODED_STR_NEW(at, length);
1251
+ rb_funcall(listener, rb_intern(attr_type), 2, val, INT2FIX(line));
1252
+ }
1253
+ static void
1254
+ store_docstring_content(VALUE listener,
1255
+ int start_col,
1256
+ const char *type_at, size_t type_length,
1257
+ const char *at, size_t length,
1258
+ int current_line)
1259
+ {
1260
+ VALUE re2;
1261
+ VALUE unescape_escaped_quotes;
1262
+ VALUE con = ENCODED_STR_NEW(at, length);
1263
+ VALUE con_type = ENCODED_STR_NEW(type_at, type_length);
1264
+
1265
+ unindent(con, start_col);
1266
+
1267
+ re2 = rb_reg_regcomp(rb_str_new2("\r\\Z"));
1268
+ unescape_escaped_quotes = rb_reg_regcomp(rb_str_new2("\\\\\"\\\\\"\\\\\""));
1269
+ rb_funcall(con, rb_intern("sub!"), 2, re2, rb_str_new2(""));
1270
+ rb_funcall(con_type, rb_intern("strip!"), 0);
1271
+ rb_funcall(con, rb_intern("gsub!"), 2, unescape_escaped_quotes, rb_str_new2("\"\"\""));
1272
+ rb_funcall(listener, rb_intern("doc_string"), 3, con_type, con, INT2FIX(current_line));
1273
+ }
1274
+ static void
1275
+ raise_lexer_error(const char * at, int line)
1276
+ {
1277
+ rb_raise(rb_eGherkinLexingError, "Lexing error on line %d: '%s'. See http://wiki.github.com/cucumber/gherkin/lexingerror for more information.", line, at);
1278
+ }
1279
+
1280
+ static void lexer_init(lexer_state *lexer) {
1281
+ lexer->content_start = 0;
1282
+ lexer->content_end = 0;
1283
+ lexer->content_len = 0;
1284
+ lexer->docstring_content_type_start = 0;
1285
+ lexer->docstring_content_type_end = 0;
1286
+ lexer->mark = 0;
1287
+ lexer->keyword_start = 0;
1288
+ lexer->keyword_end = 0;
1289
+ lexer->next_keyword_start = 0;
1290
+ lexer->line_number = 1;
1291
+ lexer->last_newline = 0;
1292
+ lexer->final_newline = 0;
1293
+ lexer->start_col = 0;
1294
+ }
1295
+
1296
+ static VALUE CLexer_alloc(VALUE klass)
1297
+ {
1298
+ VALUE obj;
1299
+ lexer_state *lxr = ALLOC(lexer_state);
1300
+ lexer_init(lxr);
1301
+
1302
+ obj = Data_Wrap_Struct(klass, NULL, -1, lxr);
1303
+
1304
+ return obj;
1305
+ }
1306
+
1307
+ static VALUE CLexer_init(VALUE self, VALUE listener)
1308
+ {
1309
+ lexer_state *lxr;
1310
+ rb_iv_set(self, "@listener", listener);
1311
+
1312
+ lxr = NULL;
1313
+ DATA_GET(self, lexer_state, lxr);
1314
+ lexer_init(lxr);
1315
+
1316
+ return self;
1317
+ }
1318
+
1319
+ static VALUE CLexer_scan(VALUE self, VALUE input)
1320
+ {
1321
+ VALUE input_copy;
1322
+ char *data;
1323
+ size_t len;
1324
+ VALUE listener = rb_iv_get(self, "@listener");
1325
+
1326
+ lexer_state *lexer;
1327
+ lexer = NULL;
1328
+ DATA_GET(self, lexer_state, lexer);
1329
+
1330
+ input_copy = rb_str_dup(input);
1331
+
1332
+ rb_str_append(input_copy, rb_str_new2("\n%_FEATURE_END_%"));
1333
+ data = RSTRING_PTR(input_copy);
1334
+ len = RSTRING_LEN(input_copy);
1335
+
1336
+ if (len == 0) {
1337
+ rb_raise(rb_eGherkinLexingError, "No content to lex.");
1338
+ } else {
1339
+
1340
+ const char *p, *pe, *eof;
1341
+ int cs = 0;
1342
+
1343
+ VALUE current_row = Qnil;
1344
+
1345
+ p = data;
1346
+ pe = data + len;
1347
+ eof = pe;
1348
+
1349
+ assert(*pe == '\0' && "pointer does not end on NULL");
1350
+
1351
+
1352
+ #line 1353 "ext/gherkin_lexer_hi/gherkin_lexer_hi.c"
1353
+ {
1354
+ cs = lexer_start;
1355
+ }
1356
+
1357
+ #line 425 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1358
+
1359
+ #line 1360 "ext/gherkin_lexer_hi/gherkin_lexer_hi.c"
1360
+ {
1361
+ int _klen;
1362
+ unsigned int _trans;
1363
+ const char *_acts;
1364
+ unsigned int _nacts;
1365
+ const char *_keys;
1366
+
1367
+ if ( p == pe )
1368
+ goto _test_eof;
1369
+ if ( cs == 0 )
1370
+ goto _out;
1371
+ _resume:
1372
+ _keys = _lexer_trans_keys + _lexer_key_offsets[cs];
1373
+ _trans = _lexer_index_offsets[cs];
1374
+
1375
+ _klen = _lexer_single_lengths[cs];
1376
+ if ( _klen > 0 ) {
1377
+ const char *_lower = _keys;
1378
+ const char *_mid;
1379
+ const char *_upper = _keys + _klen - 1;
1380
+ while (1) {
1381
+ if ( _upper < _lower )
1382
+ break;
1383
+
1384
+ _mid = _lower + ((_upper-_lower) >> 1);
1385
+ if ( (*p) < *_mid )
1386
+ _upper = _mid - 1;
1387
+ else if ( (*p) > *_mid )
1388
+ _lower = _mid + 1;
1389
+ else {
1390
+ _trans += (_mid - _keys);
1391
+ goto _match;
1392
+ }
1393
+ }
1394
+ _keys += _klen;
1395
+ _trans += _klen;
1396
+ }
1397
+
1398
+ _klen = _lexer_range_lengths[cs];
1399
+ if ( _klen > 0 ) {
1400
+ const char *_lower = _keys;
1401
+ const char *_mid;
1402
+ const char *_upper = _keys + (_klen<<1) - 2;
1403
+ while (1) {
1404
+ if ( _upper < _lower )
1405
+ break;
1406
+
1407
+ _mid = _lower + (((_upper-_lower) >> 1) & ~1);
1408
+ if ( (*p) < _mid[0] )
1409
+ _upper = _mid - 2;
1410
+ else if ( (*p) > _mid[1] )
1411
+ _lower = _mid + 2;
1412
+ else {
1413
+ _trans += ((_mid - _keys)>>1);
1414
+ goto _match;
1415
+ }
1416
+ }
1417
+ _trans += _klen;
1418
+ }
1419
+
1420
+ _match:
1421
+ cs = _lexer_trans_targs[_trans];
1422
+
1423
+ if ( _lexer_trans_actions[_trans] == 0 )
1424
+ goto _again;
1425
+
1426
+ _acts = _lexer_actions + _lexer_trans_actions[_trans];
1427
+ _nacts = (unsigned int) *_acts++;
1428
+ while ( _nacts-- > 0 )
1429
+ {
1430
+ switch ( *_acts++ )
1431
+ {
1432
+ case 0:
1433
+ #line 83 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1434
+ {
1435
+ MARK(content_start, p);
1436
+ lexer->current_line = lexer->line_number;
1437
+ lexer->start_col = lexer->content_start - lexer->last_newline - (lexer->keyword_end - lexer->keyword_start) + 2;
1438
+ }
1439
+ break;
1440
+ case 1:
1441
+ #line 89 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1442
+ {
1443
+ MARK(content_start, p);
1444
+ }
1445
+ break;
1446
+ case 2:
1447
+ #line 93 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1448
+ {
1449
+ lexer->current_line = lexer->line_number;
1450
+ lexer->start_col = p - data - lexer->last_newline;
1451
+ }
1452
+ break;
1453
+ case 3:
1454
+ #line 98 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1455
+ {
1456
+ int len = LEN(content_start, PTR_TO(final_newline));
1457
+ int type_len = LEN(docstring_content_type_start, PTR_TO(docstring_content_type_end));
1458
+
1459
+ if (len < 0) len = 0;
1460
+ if (type_len < 0) len = 0;
1461
+
1462
+ store_docstring_content(listener, lexer->start_col, PTR_TO(docstring_content_type_start), type_len, PTR_TO(content_start), len, lexer->current_line);
1463
+ }
1464
+ break;
1465
+ case 4:
1466
+ #line 108 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1467
+ {
1468
+ MARK(docstring_content_type_start, p);
1469
+ }
1470
+ break;
1471
+ case 5:
1472
+ #line 112 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1473
+ {
1474
+ MARK(docstring_content_type_end, p);
1475
+ }
1476
+ break;
1477
+ case 6:
1478
+ #line 116 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1479
+ {
1480
+ STORE_KW_END_CON(feature);
1481
+ }
1482
+ break;
1483
+ case 7:
1484
+ #line 120 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1485
+ {
1486
+ STORE_KW_END_CON(background);
1487
+ }
1488
+ break;
1489
+ case 8:
1490
+ #line 124 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1491
+ {
1492
+ STORE_KW_END_CON(scenario);
1493
+ }
1494
+ break;
1495
+ case 9:
1496
+ #line 128 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1497
+ {
1498
+ STORE_KW_END_CON(scenario_outline);
1499
+ }
1500
+ break;
1501
+ case 10:
1502
+ #line 132 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1503
+ {
1504
+ STORE_KW_END_CON(examples);
1505
+ }
1506
+ break;
1507
+ case 11:
1508
+ #line 136 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1509
+ {
1510
+ store_kw_con(listener, "step",
1511
+ PTR_TO(keyword_start), LEN(keyword_start, PTR_TO(keyword_end)),
1512
+ PTR_TO(content_start), LEN(content_start, p),
1513
+ lexer->current_line);
1514
+ }
1515
+ break;
1516
+ case 12:
1517
+ #line 143 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1518
+ {
1519
+ STORE_ATTR(comment);
1520
+ lexer->mark = 0;
1521
+ }
1522
+ break;
1523
+ case 13:
1524
+ #line 148 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1525
+ {
1526
+ STORE_ATTR(tag);
1527
+ lexer->mark = 0;
1528
+ }
1529
+ break;
1530
+ case 14:
1531
+ #line 153 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1532
+ {
1533
+ lexer->line_number += 1;
1534
+ MARK(final_newline, p);
1535
+ }
1536
+ break;
1537
+ case 15:
1538
+ #line 158 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1539
+ {
1540
+ MARK(last_newline, p + 1);
1541
+ }
1542
+ break;
1543
+ case 16:
1544
+ #line 162 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1545
+ {
1546
+ if (lexer->mark == 0) {
1547
+ MARK(mark, p);
1548
+ }
1549
+ }
1550
+ break;
1551
+ case 17:
1552
+ #line 168 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1553
+ {
1554
+ MARK(keyword_end, p);
1555
+ MARK(keyword_start, PTR_TO(mark));
1556
+ MARK(content_start, p + 1);
1557
+ lexer->mark = 0;
1558
+ }
1559
+ break;
1560
+ case 18:
1561
+ #line 175 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1562
+ {
1563
+ MARK(content_end, p);
1564
+ }
1565
+ break;
1566
+ case 19:
1567
+ #line 179 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1568
+ {
1569
+ p = p - 1;
1570
+ lexer->current_line = lexer->line_number;
1571
+ current_row = rb_ary_new();
1572
+ }
1573
+ break;
1574
+ case 20:
1575
+ #line 185 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1576
+ {
1577
+ MARK(content_start, p);
1578
+ }
1579
+ break;
1580
+ case 21:
1581
+ #line 189 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1582
+ {
1583
+ VALUE re_pipe, re_newline, re_backslash;
1584
+ VALUE con = ENCODED_STR_NEW(PTR_TO(content_start), LEN(content_start, p));
1585
+ rb_funcall(con, rb_intern("strip!"), 0);
1586
+ re_pipe = rb_reg_regcomp(rb_str_new2("\\\\\\|"));
1587
+ re_newline = rb_reg_regcomp(rb_str_new2("\\\\n"));
1588
+ re_backslash = rb_reg_regcomp(rb_str_new2("\\\\\\\\"));
1589
+ rb_funcall(con, rb_intern("gsub!"), 2, re_pipe, rb_str_new2("|"));
1590
+ rb_funcall(con, rb_intern("gsub!"), 2, re_newline, rb_str_new2("\n"));
1591
+ rb_funcall(con, rb_intern("gsub!"), 2, re_backslash, rb_str_new2("\\"));
1592
+
1593
+ rb_ary_push(current_row, con);
1594
+ }
1595
+ break;
1596
+ case 22:
1597
+ #line 203 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1598
+ {
1599
+ rb_funcall(listener, rb_intern("row"), 2, current_row, INT2FIX(lexer->current_line));
1600
+ }
1601
+ break;
1602
+ case 23:
1603
+ #line 207 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1604
+ {
1605
+ int line;
1606
+ if (cs < lexer_first_final) {
1607
+ size_t count = 0;
1608
+ VALUE newstr_val;
1609
+ char *newstr;
1610
+ int newstr_count = 0;
1611
+ size_t len;
1612
+ const char *buff;
1613
+ if (lexer->last_newline != 0) {
1614
+ len = LEN(last_newline, eof);
1615
+ buff = PTR_TO(last_newline);
1616
+ } else {
1617
+ len = strlen(data);
1618
+ buff = data;
1619
+ }
1620
+
1621
+ /* Allocate as a ruby string so that it gets cleaned up by GC */
1622
+ newstr_val = rb_str_new(buff, len);
1623
+ newstr = RSTRING_PTR(newstr_val);
1624
+
1625
+
1626
+ for (count = 0; count < len; count++) {
1627
+ if(buff[count] == 10) {
1628
+ newstr[newstr_count] = '\0'; /* terminate new string at first newline found */
1629
+ break;
1630
+ } else {
1631
+ if (buff[count] == '%') {
1632
+ newstr[newstr_count++] = buff[count];
1633
+ newstr[newstr_count] = buff[count];
1634
+ } else {
1635
+ newstr[newstr_count] = buff[count];
1636
+ }
1637
+ }
1638
+ newstr_count++;
1639
+ }
1640
+
1641
+ line = lexer->line_number;
1642
+ lexer_init(lexer); /* Re-initialize so we can scan again with the same lexer */
1643
+ raise_lexer_error(newstr, line);
1644
+ } else {
1645
+ rb_funcall(listener, rb_intern("eof"), 0);
1646
+ }
1647
+ }
1648
+ break;
1649
+ #line 1650 "ext/gherkin_lexer_hi/gherkin_lexer_hi.c"
1650
+ }
1651
+ }
1652
+
1653
+ _again:
1654
+ if ( cs == 0 )
1655
+ goto _out;
1656
+ if ( ++p != pe )
1657
+ goto _resume;
1658
+ _test_eof: {}
1659
+ if ( p == eof )
1660
+ {
1661
+ const char *__acts = _lexer_actions + _lexer_eof_actions[cs];
1662
+ unsigned int __nacts = (unsigned int) *__acts++;
1663
+ while ( __nacts-- > 0 ) {
1664
+ switch ( *__acts++ ) {
1665
+ case 23:
1666
+ #line 207 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1667
+ {
1668
+ int line;
1669
+ if (cs < lexer_first_final) {
1670
+ size_t count = 0;
1671
+ VALUE newstr_val;
1672
+ char *newstr;
1673
+ int newstr_count = 0;
1674
+ size_t len;
1675
+ const char *buff;
1676
+ if (lexer->last_newline != 0) {
1677
+ len = LEN(last_newline, eof);
1678
+ buff = PTR_TO(last_newline);
1679
+ } else {
1680
+ len = strlen(data);
1681
+ buff = data;
1682
+ }
1683
+
1684
+ /* Allocate as a ruby string so that it gets cleaned up by GC */
1685
+ newstr_val = rb_str_new(buff, len);
1686
+ newstr = RSTRING_PTR(newstr_val);
1687
+
1688
+
1689
+ for (count = 0; count < len; count++) {
1690
+ if(buff[count] == 10) {
1691
+ newstr[newstr_count] = '\0'; /* terminate new string at first newline found */
1692
+ break;
1693
+ } else {
1694
+ if (buff[count] == '%') {
1695
+ newstr[newstr_count++] = buff[count];
1696
+ newstr[newstr_count] = buff[count];
1697
+ } else {
1698
+ newstr[newstr_count] = buff[count];
1699
+ }
1700
+ }
1701
+ newstr_count++;
1702
+ }
1703
+
1704
+ line = lexer->line_number;
1705
+ lexer_init(lexer); /* Re-initialize so we can scan again with the same lexer */
1706
+ raise_lexer_error(newstr, line);
1707
+ } else {
1708
+ rb_funcall(listener, rb_intern("eof"), 0);
1709
+ }
1710
+ }
1711
+ break;
1712
+ #line 1713 "ext/gherkin_lexer_hi/gherkin_lexer_hi.c"
1713
+ }
1714
+ }
1715
+ }
1716
+
1717
+ _out: {}
1718
+ }
1719
+
1720
+ #line 426 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/hi.c.rl"
1721
+
1722
+ assert(p <= pe && "data overflow after parsing execute");
1723
+ assert(lexer->content_start <= len && "content starts after data end");
1724
+ assert(lexer->mark < len && "mark is after data end");
1725
+
1726
+ /* Reset lexer by re-initializing the whole thing */
1727
+ lexer_init(lexer);
1728
+
1729
+ if (cs == lexer_error) {
1730
+ rb_raise(rb_eGherkinLexingError, "Invalid format, lexing fails.");
1731
+ } else {
1732
+ return Qtrue;
1733
+ }
1734
+ }
1735
+ }
1736
+
1737
+ void Init_gherkin_lexer_hi()
1738
+ {
1739
+ mGherkin = rb_define_module("Gherkin");
1740
+ mGherkinLexer = rb_define_module_under(mGherkin, "Lexer");
1741
+ rb_eGherkinLexingError = rb_const_get(mGherkinLexer, rb_intern("LexingError"));
1742
+
1743
+ mCLexer = rb_define_module_under(mGherkin, "CLexer");
1744
+ cI18nLexer = rb_define_class_under(mCLexer, "Hi", rb_cObject);
1745
+ rb_define_alloc_func(cI18nLexer, CLexer_alloc);
1746
+ rb_define_method(cI18nLexer, "initialize", CLexer_init, 1);
1747
+ rb_define_method(cI18nLexer, "scan", CLexer_scan, 1);
1748
+ }
1749
+