gherkin
Version:
A fast Gherkin lexer/parser based on the Ragel State Machine Compiler.
1,332 lines (1,267 loc) • 44 kB
JavaScript
/* line 1 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
;(function() {
/* line 117 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
/* line 11 "js/lib/gherkin/lexer/bg.js" */
const _lexer_actions = [
0, 1, 0, 1, 1, 1, 2, 1,
3, 1, 4, 1, 5, 1, 6, 1,
7, 1, 8, 1, 9, 1, 10, 1,
11, 1, 14, 1, 15, 1, 16, 1,
17, 1, 18, 1, 19, 1, 20, 1,
21, 2, 2, 16, 2, 11, 0, 2,
12, 13, 2, 15, 0, 2, 15, 1,
2, 15, 14, 2, 15, 17, 2, 16,
4, 2, 16, 5, 2, 16, 6, 2,
16, 7, 2, 16, 8, 2, 16, 14,
2, 18, 19, 2, 20, 0, 2, 20,
1, 2, 20, 14, 2, 20, 17, 3,
3, 12, 13, 3, 9, 12, 13, 3,
10, 12, 13, 3, 11, 12, 13, 3,
12, 13, 16, 3, 15, 12, 13, 4,
2, 12, 13, 16, 4, 15, 0, 12,
13
];
const _lexer_key_offsets = [
0, 0, 12, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33,
35, 46, 47, 48, 52, 57, 62, 67,
72, 76, 80, 82, 83, 84, 85, 86,
87, 88, 89, 90, 91, 92, 93, 94,
95, 96, 97, 102, 109, 114, 118, 124,
127, 129, 135, 146, 147, 148, 149, 150,
151, 152, 153, 154, 155, 156, 157, 159,
160, 161, 162, 163, 164, 165, 166, 167,
168, 169, 170, 171, 172, 173, 174, 175,
176, 177, 178, 187, 196, 198, 200, 202,
204, 206, 208, 210, 212, 214, 216, 218,
229, 231, 233, 235, 237, 239, 241, 243,
245, 247, 249, 251, 253, 255, 257, 259,
261, 263, 265, 267, 269, 271, 273, 275,
277, 279, 281, 283, 285, 287, 289, 291,
293, 295, 297, 299, 301, 303, 305, 307,
309, 311, 313, 315, 317, 319, 321, 323,
325, 327, 329, 331, 333, 335, 337, 339,
341, 343, 345, 347, 349, 351, 353, 355,
357, 359, 361, 363, 365, 367, 369, 371,
373, 375, 377, 379, 381, 383, 385, 387,
388, 389, 390, 391, 392, 393, 394, 395,
396, 397, 398, 405, 407, 409, 411, 413,
415, 417, 419, 421, 423, 425, 427, 429,
431, 433, 435, 437, 439, 441, 443, 445,
447, 449, 451, 453, 455, 457, 459, 461,
462, 463, 464, 465, 466, 467, 468, 469,
470, 471, 472, 473, 474, 475, 476, 477,
478, 479, 480, 481, 482, 483, 484, 485,
486, 487, 488, 489, 490, 491, 492, 493,
494, 503, 511, 513, 515, 517, 519, 521,
523, 525, 527, 529, 531, 533, 535, 537,
539, 541, 543, 545, 547, 549, 551, 553,
555, 557, 559, 561, 563, 565, 567, 569,
571, 573, 575, 577, 579, 581, 583, 585,
587, 589, 591, 593, 595, 597, 599, 601,
603, 605, 607, 609, 611, 613, 615, 617,
619, 621, 623, 625, 627, 629, 631, 633,
635, 637, 639, 641, 643, 645, 647, 649,
651, 653, 655, 657, 659, 660, 661, 662,
663, 664, 665, 666, 667, 668, 669, 670,
671, 672, 673, 674, 675, 676, 685, 695,
697, 699, 701, 703, 705, 707, 709, 711,
713, 715, 717, 719, 721, 723, 725, 727,
729, 731, 733, 735, 737, 739, 741, 743,
745, 747, 749, 751, 753, 755, 757, 759,
761, 763, 765, 767, 769, 771, 773, 775,
777, 779, 781, 783, 785, 787, 789, 791,
793, 795, 797, 799, 801, 803, 805, 807,
809, 811, 813, 815, 817, 819, 821, 823,
825, 827, 829, 831, 833, 835, 837, 839,
841, 843, 845, 847, 849, 851, 853, 855,
857, 859, 861, 863, 865, 867, 869, 871,
873, 875, 877, 879, 881, 883, 885, 887,
889, 891, 893, 895, 897, 899, 901, 903,
905, 907, 909, 911, 913, 915, 916, 917,
918, 919, 920, 921, 922, 923, 924, 925,
926, 927, 928, 929, 930, 931, 932, 933,
934, 935, 936, 937, 938, 939, 940, 941,
942, 943, 944, 952, 957, 959, 961, 963,
966, 968, 970, 972, 974, 976, 978, 980,
982, 984, 986, 988, 990, 992, 994, 996,
998, 1000, 1002, 1004, 1006, 1008, 1010, 1012,
1014, 1016, 1018, 1020, 1022, 1024, 1026, 1028,
1030, 1032, 1034, 1036, 1038, 1040, 1042, 1044,
1046, 1048, 1050, 1052, 1054, 1056, 1058, 1060,
1062, 1064, 1066, 1068, 1070, 1072, 1074, 1076,
1078, 1080, 1082, 1084, 1086, 1088, 1090, 1092,
1094, 1096, 1098, 1100, 1102, 1104, 1106, 1108,
1110, 1112, 1114, 1116, 1118, 1120, 1122, 1124,
1126, 1128, 1130, 1132, 1134, 1136, 1138, 1140,
1142, 1144, 1146, 1148, 1150, 1152, 1154, 1156,
1157, 1158
];
const _lexer_trans_keys = [
-48, 10, 32, 34, 35, 37, 42, 64,
124, 239, 9, 13, -108, -104, -102, -99,
-97, -96, -95, -94, -92, -48, -80, -48,
-76, -48, -75, -48, -67, -48, -66, 32,
10, 10, 13, -48, 10, 32, 34, 35,
37, 42, 64, 124, 9, 13, 34, 34,
10, 32, 9, 13, 10, 32, 34, 9,
13, 10, 32, 34, 9, 13, 10, 32,
34, 9, 13, 10, 32, 34, 9, 13,
10, 32, 9, 13, 10, 32, 9, 13,
10, 13, 10, 95, 70, 69, 65, 84,
85, 82, 69, 95, 69, 78, 68, 95,
37, 13, 32, 64, 9, 10, 9, 10,
13, 32, 64, 11, 12, 10, 32, 64,
9, 13, 32, 124, 9, 13, 10, 32,
92, 124, 9, 13, 10, 92, 124, 10,
92, 10, 32, 92, 124, 9, 13, -48,
10, 32, 34, 35, 37, 42, 64, 124,
9, 13, -48, -66, -48, -77, -48, -80,
-47, -126, -47, -128, -48, -75, -72, -48,
-76, -48, -72, -47, -127, -47, -126, -48,
-66, -47, -128, -48, -72, -47, -113, 58,
10, 10, -48, 10, 32, 35, 37, 42,
64, 9, 13, -108, -104, -102, -99, -96,
-95, -94, -92, 10, -48, 10, -80, 10,
-48, 10, -76, 10, -48, 10, -75, 10,
-48, 10, -67, 10, -48, 10, -66, 10,
10, 32, -48, 10, 32, 34, 35, 37,
42, 64, 124, 9, 13, -48, 10, -66,
10, -48, 10, -77, 10, -48, 10, -80,
10, -47, 10, -126, 10, -48, 10, -80,
10, -48, 10, -68, 10, -48, 10, -70,
10, -48, 10, -80, 10, 10, 32, -48,
10, -67, 10, -48, 10, -80, 10, 10,
32, -47, 10, -127, 10, -47, 10, -122,
10, -48, 10, -75, 10, -48, 10, -67,
10, -48, 10, -80, 10, -47, 10, -128,
10, -48, 10, -72, 10, -48, 10, -71,
10, 10, 58, -47, 10, -125, 10, -48,
10, -67, 10, -48, 10, -70, 10, -47,
10, -122, 10, -48, 10, -72, 10, -48,
10, -66, 10, -48, 10, -67, 10, -48,
10, -80, 10, -48, 10, -69, 10, -48,
10, -67, 10, -48, 10, -66, 10, -47,
10, -127, 10, -47, 10, -126, 10, 10,
95, 10, 70, 10, 69, 10, 65, 10,
84, 10, 85, 10, 82, 10, 69, 10,
95, 10, 69, 10, 78, 10, 68, 10,
95, 10, 37, -48, -68, -48, -75, -47,
-128, -48, -72, 58, 10, 10, -48, 10,
32, 35, 124, 9, 13, -92, 10, -47,
10, -125, 10, -48, 10, -67, 10, -48,
10, -70, 10, -47, 10, -122, 10, -48,
10, -72, 10, -48, 10, -66, 10, -48,
10, -67, 10, -48, 10, -80, 10, -48,
10, -69, 10, -48, 10, -67, 10, -48,
10, -66, 10, -47, 10, -127, 10, -47,
10, -126, 10, 10, 58, -48, -80, -48,
-68, -48, -70, -48, -80, 32, -48, -67,
-48, -80, 32, -47, -127, -47, -122, -48,
-75, -48, -67, -48, -80, -47, -128, -48,
-72, -48, -71, 58, 10, 10, -48, 10,
32, 35, 37, 42, 64, 9, 13, -108,
-104, -102, -99, -95, -94, -92, 10, -48,
10, -80, 10, -48, 10, -76, 10, -48,
10, -75, 10, -48, 10, -67, 10, -48,
10, -66, 10, 10, 32, -48, 10, -66,
10, -48, 10, -77, 10, -48, 10, -80,
10, -47, 10, -126, 10, -47, 10, -122,
10, -48, 10, -75, 10, -48, 10, -67,
10, -48, 10, -80, 10, -47, 10, -128,
10, -48, 10, -72, 10, -48, 10, -71,
10, 10, 58, -47, 10, -125, 10, -48,
10, -67, 10, -48, 10, -70, 10, -47,
10, -122, 10, -48, 10, -72, 10, -48,
10, -66, 10, -48, 10, -67, 10, -48,
10, -80, 10, -48, 10, -69, 10, -48,
10, -67, 10, -48, 10, -66, 10, -47,
10, -127, 10, -47, 10, -126, 10, 10,
95, 10, 70, 10, 69, 10, 65, 10,
84, 10, 85, 10, 82, 10, 69, 10,
95, 10, 69, 10, 78, 10, 68, 10,
95, 10, 37, -47, -122, -48, -75, -48,
-67, -48, -80, -47, -128, -48, -72, -48,
-71, 58, 10, 10, -48, 10, 32, 35,
37, 42, 64, 9, 13, -108, -104, -102,
-99, -97, -96, -95, -94, -92, 10, -48,
10, -80, 10, -48, 10, -76, 10, -48,
10, -75, 10, -48, 10, -67, 10, -48,
10, -66, 10, 10, 32, -48, 10, -66,
10, -48, 10, -77, 10, -48, 10, -80,
10, -47, 10, -126, 10, -47, 10, -128,
10, -48, 10, -75, 10, -48, 10, -76,
10, -48, 10, -72, 10, -47, 10, -127,
10, -47, 10, -126, 10, -48, 10, -66,
10, -47, 10, -128, 10, -48, 10, -72,
10, -47, 10, -113, 10, 10, 58, -48,
10, -80, 10, -48, 10, -68, 10, -48,
10, -70, 10, -48, 10, -80, 10, 10,
32, -48, 10, -67, 10, -48, 10, -80,
10, 10, 32, -47, 10, -127, 10, -47,
10, -122, 10, -48, 10, -75, 10, -48,
10, -67, 10, -48, 10, -80, 10, -47,
10, -128, 10, -48, 10, -72, 10, -48,
10, -71, 10, -47, 10, -125, 10, -48,
10, -67, 10, -48, 10, -70, 10, -47,
10, -122, 10, -48, 10, -72, 10, -48,
10, -66, 10, -48, 10, -67, 10, -48,
10, -80, 10, -48, 10, -69, 10, -48,
10, -67, 10, -48, 10, -66, 10, -47,
10, -127, 10, -47, 10, -126, 10, 10,
95, 10, 70, 10, 69, 10, 65, 10,
84, 10, 85, 10, 82, 10, 69, 10,
95, 10, 69, 10, 78, 10, 68, 10,
95, 10, 37, -47, -125, -48, -67, -48,
-70, -47, -122, -48, -72, -48, -66, -48,
-67, -48, -80, -48, -69, -48, -67, -48,
-66, -47, -127, -47, -126, 58, 10, 10,
-48, 10, 32, 35, 37, 64, 9, 13,
-97, -96, -95, -92, 10, -47, 10, -128,
10, -48, 10, -75, -72, 10, -48, 10,
-76, 10, -48, 10, -72, 10, -47, 10,
-127, 10, -47, 10, -126, 10, -48, 10,
-66, 10, -47, 10, -128, 10, -48, 10,
-72, 10, -47, 10, -113, 10, 10, 58,
-48, 10, -68, 10, -48, 10, -75, 10,
-47, 10, -128, 10, -48, 10, -72, 10,
-48, 10, -80, 10, -48, 10, -68, 10,
-48, 10, -70, 10, -48, 10, -80, 10,
10, 32, -48, 10, -67, 10, -48, 10,
-80, 10, 10, 32, -47, 10, -127, 10,
-47, 10, -122, 10, -48, 10, -75, 10,
-48, 10, -67, 10, -48, 10, -80, 10,
-47, 10, -128, 10, -48, 10, -72, 10,
-48, 10, -71, 10, -47, 10, -125, 10,
-48, 10, -67, 10, -48, 10, -70, 10,
-47, 10, -122, 10, -48, 10, -72, 10,
-48, 10, -66, 10, -48, 10, -67, 10,
-48, 10, -80, 10, -48, 10, -69, 10,
-48, 10, -67, 10, -48, 10, -66, 10,
-47, 10, -127, 10, -47, 10, -126, 10,
10, 95, 10, 70, 10, 69, 10, 65,
10, 84, 10, 85, 10, 82, 10, 69,
10, 95, 10, 69, 10, 78, 10, 68,
10, 95, 10, 37, 187, 191, 0
];
const _lexer_single_lengths = [
0, 10, 9, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 2,
9, 1, 1, 2, 3, 3, 3, 3,
2, 2, 2, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 3, 5, 3, 2, 4, 3,
2, 4, 9, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 2, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 7, 9, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 9,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 5, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
7, 8, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 7, 10, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 6, 5, 2, 2, 2, 3,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 1,
1, 0
];
const _lexer_range_lengths = [
0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 1, 1, 1, 1, 1,
1, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 1, 1, 1, 1, 0,
0, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0
];
const _lexer_index_offsets = [
0, 0, 12, 22, 24, 26, 28, 30,
32, 34, 36, 38, 40, 42, 44, 46,
49, 60, 62, 64, 68, 73, 78, 83,
88, 92, 96, 99, 101, 103, 105, 107,
109, 111, 113, 115, 117, 119, 121, 123,
125, 127, 129, 134, 141, 146, 150, 156,
160, 163, 169, 180, 182, 184, 186, 188,
190, 192, 194, 196, 198, 200, 202, 205,
207, 209, 211, 213, 215, 217, 219, 221,
223, 225, 227, 229, 231, 233, 235, 237,
239, 241, 243, 252, 262, 265, 268, 271,
274, 277, 280, 283, 286, 289, 292, 295,
306, 309, 312, 315, 318, 321, 324, 327,
330, 333, 336, 339, 342, 345, 348, 351,
354, 357, 360, 363, 366, 369, 372, 375,
378, 381, 384, 387, 390, 393, 396, 399,
402, 405, 408, 411, 414, 417, 420, 423,
426, 429, 432, 435, 438, 441, 444, 447,
450, 453, 456, 459, 462, 465, 468, 471,
474, 477, 480, 483, 486, 489, 492, 495,
498, 501, 504, 507, 510, 513, 516, 519,
522, 525, 528, 531, 534, 537, 540, 543,
545, 547, 549, 551, 553, 555, 557, 559,
561, 563, 565, 572, 575, 578, 581, 584,
587, 590, 593, 596, 599, 602, 605, 608,
611, 614, 617, 620, 623, 626, 629, 632,
635, 638, 641, 644, 647, 650, 653, 656,
658, 660, 662, 664, 666, 668, 670, 672,
674, 676, 678, 680, 682, 684, 686, 688,
690, 692, 694, 696, 698, 700, 702, 704,
706, 708, 710, 712, 714, 716, 718, 720,
722, 731, 740, 743, 746, 749, 752, 755,
758, 761, 764, 767, 770, 773, 776, 779,
782, 785, 788, 791, 794, 797, 800, 803,
806, 809, 812, 815, 818, 821, 824, 827,
830, 833, 836, 839, 842, 845, 848, 851,
854, 857, 860, 863, 866, 869, 872, 875,
878, 881, 884, 887, 890, 893, 896, 899,
902, 905, 908, 911, 914, 917, 920, 923,
926, 929, 932, 935, 938, 941, 944, 947,
950, 953, 956, 959, 962, 964, 966, 968,
970, 972, 974, 976, 978, 980, 982, 984,
986, 988, 990, 992, 994, 996, 1005, 1016,
1019, 1022, 1025, 1028, 1031, 1034, 1037, 1040,
1043, 1046, 1049, 1052, 1055, 1058, 1061, 1064,
1067, 1070, 1073, 1076, 1079, 1082, 1085, 1088,
1091, 1094, 1097, 1100, 1103, 1106, 1109, 1112,
1115, 1118, 1121, 1124, 1127, 1130, 1133, 1136,
1139, 1142, 1145, 1148, 1151, 1154, 1157, 1160,
1163, 1166, 1169, 1172, 1175, 1178, 1181, 1184,
1187, 1190, 1193, 1196, 1199, 1202, 1205, 1208,
1211, 1214, 1217, 1220, 1223, 1226, 1229, 1232,
1235, 1238, 1241, 1244, 1247, 1250, 1253, 1256,
1259, 1262, 1265, 1268, 1271, 1274, 1277, 1280,
1283, 1286, 1289, 1292, 1295, 1298, 1301, 1304,
1307, 1310, 1313, 1316, 1319, 1322, 1325, 1328,
1331, 1334, 1337, 1340, 1343, 1346, 1348, 1350,
1352, 1354, 1356, 1358, 1360, 1362, 1364, 1366,
1368, 1370, 1372, 1374, 1376, 1378, 1380, 1382,
1384, 1386, 1388, 1390, 1392, 1394, 1396, 1398,
1400, 1402, 1404, 1412, 1418, 1421, 1424, 1427,
1431, 1434, 1437, 1440, 1443, 1446, 1449, 1452,
1455, 1458, 1461, 1464, 1467, 1470, 1473, 1476,
1479, 1482, 1485, 1488, 1491, 1494, 1497, 1500,
1503, 1506, 1509, 1512, 1515, 1518, 1521, 1524,
1527, 1530, 1533, 1536, 1539, 1542, 1545, 1548,
1551, 1554, 1557, 1560, 1563, 1566, 1569, 1572,
1575, 1578, 1581, 1584, 1587, 1590, 1593, 1596,
1599, 1602, 1605, 1608, 1611, 1614, 1617, 1620,
1623, 1626, 1629, 1632, 1635, 1638, 1641, 1644,
1647, 1650, 1653, 1656, 1659, 1662, 1665, 1668,
1671, 1674, 1677, 1680, 1683, 1686, 1689, 1692,
1695, 1698, 1701, 1704, 1707, 1710, 1713, 1716,
1718, 1720
];
const _lexer_indicies = [
1, 3, 2, 4, 5, 6, 7, 8,
9, 10, 2, 0, 11, 12, 13, 14,
15, 16, 17, 14, 18, 0, 19, 0,
20, 0, 21, 0, 22, 0, 23, 0,
24, 0, 25, 0, 14, 0, 26, 0,
12, 0, 27, 0, 0, 28, 30, 31,
29, 1, 3, 2, 4, 5, 6, 7,
8, 9, 2, 0, 32, 0, 33, 0,
34, 33, 33, 0, 37, 36, 38, 36,
35, 41, 40, 42, 40, 39, 41, 40,
43, 40, 39, 41, 40, 44, 40, 39,
46, 45, 45, 0, 3, 47, 47, 0,
49, 50, 48, 3, 0, 51, 0, 52,
0, 53, 0, 54, 0, 55, 0, 56,
0, 57, 0, 58, 0, 59, 0, 60,
0, 61, 0, 62, 0, 63, 0, 64,
0, 0, 0, 0, 0, 65, 66, 67,
66, 66, 69, 68, 65, 3, 70, 8,
70, 0, 71, 72, 71, 0, 75, 74,
76, 77, 74, 73, 0, 79, 80, 78,
0, 79, 78, 75, 81, 79, 80, 81,
78, 82, 75, 83, 84, 85, 86, 87,
88, 89, 83, 0, 90, 0, 91, 0,
92, 0, 93, 0, 94, 0, 95, 0,
96, 0, 14, 0, 97, 0, 98, 0,
99, 0, 100, 101, 0, 102, 0, 103,
0, 104, 0, 105, 0, 106, 0, 107,
0, 108, 0, 109, 0, 110, 0, 111,
0, 112, 0, 113, 0, 114, 0, 115,
0, 116, 0, 117, 0, 118, 0, 120,
119, 122, 121, 123, 122, 124, 125, 126,
127, 125, 124, 121, 128, 129, 130, 131,
132, 133, 131, 134, 122, 121, 135, 122,
121, 136, 122, 121, 137, 122, 121, 138,
122, 121, 139, 122, 121, 140, 122, 121,
141, 122, 121, 131, 122, 121, 142, 122,
121, 129, 122, 121, 122, 143, 121, 144,
146, 145, 147, 148, 149, 150, 151, 152,
145, 0, 153, 122, 121, 154, 122, 121,
155, 122, 121, 156, 122, 121, 157, 122,
121, 158, 122, 121, 159, 122, 121, 131,
122, 121, 160, 122, 121, 161, 122, 121,
162, 122, 121, 163, 122, 121, 164, 122,
121, 165, 122, 121, 166, 122, 121, 167,
122, 121, 122, 168, 121, 169, 122, 121,
170, 122, 121, 171, 122, 121, 172, 122,
121, 122, 173, 121, 174, 122, 121, 133,
122, 121, 175, 122, 121, 176, 122, 121,
177, 122, 121, 178, 122, 121, 179, 122,
121, 180, 122, 121, 181, 122, 121, 182,
122, 121, 183, 122, 121, 184, 122, 121,
185, 122, 121, 186, 122, 121, 187, 122,
121, 188, 122, 121, 122, 143, 121, 189,
122, 121, 190, 122, 121, 191, 122, 121,
192, 122, 121, 193, 122, 121, 194, 122,
121, 195, 122, 121, 196, 122, 121, 197,
122, 121, 198, 122, 121, 199, 122, 121,
200, 122, 121, 201, 122, 121, 202, 122,
121, 203, 122, 121, 204, 122, 121, 205,
122, 121, 206, 122, 121, 207, 122, 121,
208, 122, 121, 209, 122, 121, 210, 122,
121, 211, 122, 121, 212, 122, 121, 213,
122, 121, 188, 122, 121, 122, 214, 121,
122, 215, 121, 122, 216, 121, 122, 217,
121, 122, 218, 121, 122, 219, 121, 122,
220, 121, 122, 221, 121, 122, 222, 121,
122, 223, 121, 122, 224, 121, 122, 225,
121, 122, 226, 121, 122, 227, 121, 228,
0, 229, 0, 230, 0, 231, 0, 232,
0, 233, 0, 234, 0, 235, 0, 236,
0, 238, 237, 240, 239, 241, 240, 242,
243, 243, 242, 239, 244, 240, 239, 245,
240, 239, 246, 240, 239, 247, 240, 239,
248, 240, 239, 249, 240, 239, 250, 240,
239, 251, 240, 239, 252, 240, 239, 253,
240, 239, 254, 240, 239, 255, 240, 239,
256, 240, 239, 257, 240, 239, 258, 240,
239, 259, 240, 239, 260, 240, 239, 261,
240, 239, 262, 240, 239, 263, 240, 239,
264, 240, 239, 265, 240, 239, 266, 240,
239, 267, 240, 239, 268, 240, 239, 269,
240, 239, 270, 240, 239, 240, 271, 239,
272, 0, 273, 0, 274, 0, 275, 0,
276, 0, 277, 0, 278, 0, 279, 0,
280, 0, 281, 0, 282, 0, 283, 0,
284, 0, 285, 0, 286, 0, 287, 0,
288, 0, 289, 0, 290, 0, 291, 0,
292, 0, 293, 0, 294, 0, 295, 0,
296, 0, 297, 0, 298, 0, 299, 0,
300, 0, 301, 0, 302, 0, 304, 303,
306, 305, 307, 306, 308, 309, 310, 311,
309, 308, 305, 312, 313, 314, 315, 316,
315, 317, 306, 305, 318, 306, 305, 319,
306, 305, 320, 306, 305, 321, 306, 305,
322, 306, 305, 323, 306, 305, 324, 306,
305, 315, 306, 305, 325, 306, 305, 313,
306, 305, 306, 326, 305, 327, 306, 305,
328, 306, 305, 329, 306, 305, 330, 306,
305, 331, 306, 305, 332, 306, 305, 333,
306, 305, 315, 306, 305, 334, 306, 305,
335, 306, 305, 336, 306, 305, 337, 306,
305, 338, 306, 305, 339, 306, 305, 340,
306, 305, 341, 306, 305, 342, 306, 305,
343, 306, 305, 344, 306, 305, 345, 306,
305, 346, 306, 305, 347, 306, 305, 306,
326, 305, 348, 306, 305, 349, 306, 305,
350, 306, 305, 351, 306, 305, 352, 306,
305, 353, 306, 305, 354, 306, 305, 355,
306, 305, 356, 306, 305, 357, 306, 305,
358, 306, 305, 359, 306, 305, 360, 306,
305, 361, 306, 305, 362, 306, 305, 363,
306, 305, 364, 306, 305, 365, 306, 305,
366, 306, 305, 367, 306, 305, 368, 306,
305, 369, 306, 305, 370, 306, 305, 371,
306, 305, 372, 306, 305, 347, 306, 305,
306, 373, 305, 306, 374, 305, 306, 375,
305, 306, 376, 305, 306, 377, 305, 306,
378, 305, 306, 379, 305, 306, 380, 305,
306, 381, 305, 306, 382, 305, 306, 383,
305, 306, 384, 305, 306, 385, 305, 306,
386, 305, 387, 0, 388, 0, 389, 0,
390, 0, 391, 0, 392, 0, 393, 0,
394, 0, 395, 0, 396, 0, 397, 0,
398, 0, 399, 0, 400, 0, 401, 0,
403, 402, 405, 404, 406, 405, 407, 408,
409, 410, 408, 407, 404, 411, 412, 413,
414, 415, 416, 417, 414, 418, 405, 404,
419, 405, 404, 420, 405, 404, 421, 405,
404, 422, 405, 404, 423, 405, 404, 424,
405, 404, 425, 405, 404, 414, 405, 404,
426, 405, 404, 412, 405, 404, 405, 427,
404, 428, 405, 404, 429, 405, 404, 430,
405, 404, 431, 405, 404, 432, 405, 404,
433, 405, 404, 434, 405, 404, 414, 405,
404, 435, 405, 404, 436, 405, 404, 437,
405, 404, 438, 405, 404, 439, 405, 404,
440, 405, 404, 441, 405, 404, 442, 405,
404, 443, 405, 404, 444, 405, 404, 445,
405, 404, 446, 405, 404, 447, 405, 404,
448, 405, 404, 449, 405, 404, 450, 405,
404, 451, 405, 404, 452, 405, 404, 453,
405, 404, 454, 405, 404, 405, 427, 404,
455, 405, 404, 456, 405, 404, 457, 405,
404, 458, 405, 404, 459, 405, 404, 460,
405, 404, 461, 405, 404, 462, 405, 404,
405, 463, 404, 464, 405, 404, 465, 405,
404, 466, 405, 404, 467, 405, 404, 405,
468, 404, 469, 405, 404, 417, 405, 404,
470, 405, 404, 471, 405, 404, 472, 405,
404, 473, 405, 404, 474, 405, 404, 475,
405, 404, 476, 405, 404, 477, 405, 404,
478, 405, 404, 479, 405, 404, 480, 405,
404, 481, 405, 404, 482, 405, 404, 454,
405, 404, 483, 405, 404, 484, 405, 404,
485, 405, 404, 486, 405, 404, 487, 405,
404, 488, 405, 404, 489, 405, 404, 490,
405, 404, 491, 405, 404, 492, 405, 404,
493, 405, 404, 494, 405, 404, 495, 405,
404, 496, 405, 404, 497, 405, 404, 498,
405, 404, 499, 405, 404, 500, 405, 404,
501, 405, 404, 502, 405, 404, 503, 405,
404, 504, 405, 404, 505, 405, 404, 506,
405, 404, 507, 405, 404, 454, 405, 404,
405, 508, 404, 405, 509, 404, 405, 510,
404, 405, 511, 404, 405, 512, 404, 405,
513, 404, 405, 514, 404, 405, 515, 404,
405, 516, 404, 405, 517, 404, 405, 518,
404, 405, 519, 404, 405, 520, 404, 405,
521, 404, 522, 0, 523, 0, 524, 0,
525, 0, 526, 0, 527, 0, 528, 0,
529, 0, 530, 0, 531, 0, 532, 0,
533, 0, 534, 0, 535, 0, 536, 0,
537, 0, 538, 0, 539, 0, 540, 0,
541, 0, 542, 0, 543, 0, 544, 0,
545, 0, 546, 0, 547, 0, 548, 0,
550, 549, 552, 551, 553, 552, 554, 555,
556, 555, 554, 551, 557, 558, 559, 560,
552, 551, 561, 552, 551, 562, 552, 551,
563, 552, 551, 564, 565, 552, 551, 566,
552, 551, 567, 552, 551, 568, 552, 551,
569, 552, 551, 570, 552, 551, 571, 552,
551, 572, 552, 551, 573, 552, 551, 574,
552, 551, 575, 552, 551, 576, 552, 551,
577, 552, 551, 578, 552, 551, 579, 552,
551, 580, 552, 551, 581, 552, 551, 552,
582, 551, 583, 552, 551, 584, 552, 551,
585, 552, 551, 586, 552, 551, 587, 552,
551, 588, 552, 551, 589, 552, 551, 581,
552, 551, 590, 552, 551, 591, 552, 551,
592, 552, 551, 593, 552, 551, 594, 552,
551, 595, 552, 551, 596, 552, 551, 597,
552, 551, 552, 598, 551, 599, 552, 551,
600, 552, 551, 601, 552, 551, 602, 552,
551, 552, 603, 551, 604, 552, 551, 559,
552, 551, 605, 552, 551, 606, 552, 551,
607, 552, 551, 608, 552, 551, 609, 552,
551, 610, 552, 551, 611, 552, 551, 612,
552, 551, 613, 552, 551, 614, 552, 551,
615, 552, 551, 616, 552, 551, 617, 552,
551, 581, 552, 551, 618, 552, 551, 619,
552, 551, 620, 552, 551, 621, 552, 551,
622, 552, 551, 623, 552, 551, 624, 552,
551, 625, 552, 551, 626, 552, 551, 627,
552, 551, 628, 552, 551, 629, 552, 551,
630, 552, 551, 631, 552, 551, 632, 552,
551, 633, 552, 551, 634, 552, 551, 635,
552, 551, 636, 552, 551, 637, 552, 551,
638, 552, 551, 639, 552, 551, 640, 552,
551, 641, 552, 551, 642, 552, 551, 581,
552, 551, 552, 643, 551, 552, 644, 551,
552, 645, 551, 552, 646, 551, 552, 647,
551, 552, 648, 551, 552, 649, 551, 552,
650, 551, 552, 651, 551, 552, 652, 551,
552, 653, 551, 552, 654, 551, 552, 655,
551, 552, 656, 551, 657, 0, 2, 0,
658, 0
];
const _lexer_trans_targs = [
0, 2, 16, 16, 17, 26, 28, 13,
42, 45, 583, 3, 13, 51, 11, 59,
215, 324, 453, 4, 5, 6, 7, 8,
9, 10, 12, 14, 15, 15, 16, 27,
18, 19, 20, 21, 21, 21, 22, 21,
21, 21, 22, 23, 24, 25, 16, 25,
26, 16, 27, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 39, 40, 41,
585, 43, 44, 16, 43, 42, 44, 45,
46, 47, 49, 50, 48, 46, 47, 48,
46, 49, 2, 50, 17, 26, 28, 13,
42, 45, 52, 53, 54, 55, 56, 57,
58, 60, 61, 62, 63, 175, 64, 65,
66, 67, 68, 69, 70, 71, 72, 73,
74, 75, 76, 77, 78, 79, 80, 81,
82, 81, 82, 83, 82, 16, 161, 94,
84, 94, 96, 92, 104, 120, 135, 85,
86, 87, 88, 89, 90, 91, 93, 95,
2, 16, 16, 17, 26, 28, 13, 42,
45, 97, 98, 99, 100, 101, 102, 103,
105, 106, 107, 108, 109, 110, 111, 112,
113, 114, 115, 116, 117, 118, 119, 121,
122, 123, 124, 125, 126, 127, 128, 129,
130, 131, 132, 133, 134, 136, 137, 138,
139, 140, 141, 142, 143, 144, 145, 146,
147, 148, 149, 150, 151, 152, 153, 154,
155, 156, 157, 158, 159, 160, 162, 163,
164, 165, 166, 167, 168, 169, 170, 171,
172, 173, 174, 16, 176, 177, 178, 179,
180, 181, 182, 183, 184, 185, 186, 185,
186, 187, 186, 16, 188, 189, 190, 191,
192, 193, 194, 195, 196, 197, 198, 199,
200, 201, 202, 203, 204, 205, 206, 207,
208, 209, 210, 211, 212, 213, 214, 95,
216, 217, 218, 219, 220, 221, 222, 223,
224, 225, 226, 227, 228, 229, 230, 231,
232, 233, 234, 235, 236, 237, 238, 239,
240, 241, 242, 243, 244, 245, 246, 247,
248, 247, 248, 249, 248, 16, 310, 260,
250, 260, 261, 258, 269, 284, 251, 252,
253, 254, 255, 256, 257, 259, 95, 262,
263, 264, 265, 266, 267, 268, 270, 271,
272, 273, 274, 275, 276, 277, 278, 279,
280, 281, 282, 283, 285, 286, 287, 288,
289, 290, 291, 292, 293, 294, 295, 296,
297, 298, 299, 300, 301, 302, 303, 304,
305, 306, 307, 308, 309, 311, 312, 313,
314, 315, 316, 317, 318, 319, 320, 321,
322, 323, 16, 325, 326, 327, 328, 329,
330, 331, 332, 333, 334, 335, 336, 337,
338, 339, 340, 341, 340, 341, 342, 341,
16, 439, 353, 343, 353, 354, 351, 362,
383, 399, 413, 344, 345, 346, 347, 348,
349, 350, 352, 95, 355, 356, 357, 358,
359, 360, 361, 363, 364, 365, 366, 367,
368, 369, 370, 371, 372, 373, 374, 375,
376, 377, 378, 379, 380, 381, 382, 384,
385, 386, 387, 388, 389, 390, 391, 392,
393, 394, 395, 396, 397, 398, 400, 401,
402, 403, 404, 405, 406, 407, 408, 409,
410, 411, 412, 414, 415, 416, 417, 418,
419, 420, 421, 422, 423, 424, 425, 426,
427, 428, 429, 430, 431, 432, 433, 434,
435, 436, 437, 438, 440, 441, 442, 443,
444, 445, 446, 447, 448, 449, 450, 451,
452, 16, 454, 455, 456, 457, 458, 459,
460, 461, 462, 463, 464, 465, 466, 467,
468, 469, 470, 471, 472, 473, 474, 475,
476, 477, 478, 479, 480, 481, 482, 481,
482, 483, 482, 16, 569, 484, 513, 529,
543, 485, 486, 487, 488, 505, 489, 490,
491, 492, 493, 494, 495, 496, 497, 498,
499, 500, 501, 502, 503, 504, 95, 506,
507, 508, 509, 510, 511, 512, 514, 515,
516, 517, 518, 519, 520, 521, 522, 523,
524, 525, 526, 527, 528, 530, 531, 532,
533, 534, 535, 536, 537, 538, 539, 540,
541, 542, 544, 545, 546, 547, 548, 549,
550, 551, 552, 553, 554, 555, 556, 557,
558, 559, 560, 561, 562, 563, 564, 565,
566, 567, 568, 570, 571, 572, 573, 574,
575, 576, 577, 578, 579, 580, 581, 582,
16, 584, 0
];
const _lexer_trans_actions = [
39, 25, 0, 47, 3, 1, 0, 25,
1, 31, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 50, 0, 99, 19,
0, 0, 47, 5, 41, 119, 41, 0,
29, 111, 29, 29, 0, 7, 95, 0,
0, 103, 21, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 23, 107, 23, 44, 0, 0,
0, 33, 33, 47, 33, 80, 0, 0,
35, 0, 89, 0, 86, 83, 37, 89,
83, 92, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 50,
124, 0, 47, 77, 0, 65, 29, 77,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 11,
56, 27, 115, 53, 50, 27, 56, 50,
59, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 11, 0, 0, 0, 0,
0, 0, 0, 0, 0, 50, 124, 0,
47, 77, 0, 74, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 17,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 50,
124, 0, 47, 77, 0, 71, 29, 77,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 15, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 15, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 50, 124, 0, 47, 77, 0,
68, 29, 77, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 13, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 13, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 50, 124, 0,
47, 77, 0, 62, 29, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 9, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
9, 0, 0
];
const _lexer_eof_actions = [
0, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39
];
const lexer_start = 1;
const lexer_first_final = 585;
const lexer_error = 0;
const lexer_en_main = 1;
/* line 120 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
/* line 121 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
/* line 122 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
var Lexer = function(listener) {
// Check that listener has the required functions
var events = ['comment', 'tag', 'feature', 'background', 'scenario', 'scenario_outline', 'examples', 'step', 'doc_string', 'row', 'eof'];
for(e in events) {
var event = events[e];
if(typeof listener[event] != 'function') {
"Error. No " + event + " function exists on " + JSON.stringify(listener);
}
}
this.listener = listener;
};
Lexer.prototype.scan = function(data) {
var ending = "\n%_FEATURE_END_%";
if(typeof data == 'string') {
data = this.stringToBytes(data + ending);
} else if(typeof Buffer != 'undefined' && Buffer.isBuffer(data)) {
// Node.js
var buf = new Buffer(data.length + ending.length);
data.copy(buf, 0, 0);
new Buffer(ending).copy(buf, data.length, 0);
data = buf;
}
var eof = pe = data.length;
var p = 0;
this.line_number = 1;
this.last_newline = 0;
/* line 999 "js/lib/gherkin/lexer/bg.js" */
{
this.cs = lexer_start;
} /* JSCodeGen::writeInit */
/* line 153 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
/* line 1006 "js/lib/gherkin/lexer/bg.js" */
{
var _klen, _trans, _keys, _ps, _widec, _acts, _nacts;
var _goto_level, _resume, _eof_trans, _again, _test_eof;
var _out;
_klen = _trans = _keys = _acts = _nacts = null;
_goto_level = 0;
_resume = 10;
_eof_trans = 15;
_again = 20;
_test_eof = 30;
_out = 40;
while (true) {
_trigger_goto = false;
if (_goto_level <= 0) {
if (p == pe) {
_goto_level = _test_eof;
continue;
}
if ( this.cs == 0) {
_goto_level = _out;
continue;
}
}
if (_goto_level <= _resume) {
_keys = _lexer_key_offsets[ this.cs];
_trans = _lexer_index_offsets[ this.cs];
_klen = _lexer_single_lengths[ this.cs];
_break_match = false;
do {
if (_klen > 0) {
_lower = _keys;
_upper = _keys + _klen - 1;
while (true) {
if (_upper < _lower) { break; }
_mid = _lower + ( (_upper - _lower) >> 1 );
if ( data[p] < _lexer_trans_keys[_mid]) {
_upper = _mid - 1;
} else if ( data[p] > _lexer_trans_keys[_mid]) {
_lower = _mid + 1;
} else {
_trans += (_mid - _keys);
_break_match = true;
break;
};
} /* while */
if (_break_match) { break; }
_keys += _klen;
_trans += _klen;
}
_klen = _lexer_range_lengths[ this.cs];
if (_klen > 0) {
_lower = _keys;
_upper = _keys + (_klen << 1) - 2;
while (true) {
if (_upper < _lower) { break; }
_mid = _lower + (((_upper-_lower) >> 1) & ~1);
if ( data[p] < _lexer_trans_keys[_mid]) {
_upper = _mid - 2;
} else if ( data[p] > _lexer_trans_keys[_mid+1]) {
_lower = _mid + 2;
} else {
_trans += ((_mid - _keys) >> 1);
_break_match = true;
break;
}
} /* while */
if (_break_match) { break; }
_trans += _klen
}
} while (false);
_trans = _lexer_indicies[_trans];
this.cs = _lexer_trans_targs[_trans];
if (_lexer_trans_actions[_trans] != 0) {
_acts = _lexer_trans_actions[_trans];
_nacts = _lexer_actions[_acts];
_acts += 1;
while (_nacts > 0) {
_nacts -= 1;
_acts += 1;
switch (_lexer_actions[_acts - 1]) {
case 0:
/* line 6 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
this.content_start = p;
this.current_line = this.line_number;
this.start_col = p - this.last_newline - (this.keyword+':').length;
break;
case 1:
/* line 12 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
this.current_line = this.line_number;
this.start_col = p - this.last_newline;
break;
case 2:
/* line 17 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
this.content_start = p;
break;
case 3:
/* line 21 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
var con = this.unindent(
this.start_col,
this.bytesToString(data.slice(this.content_start, this.next_keyword_start-1)).replace(/(\r?\n)?([\t ])*$/, '').replace(/\\\"\\\"\\\"/mg, '"""')
);
this.listener.doc_string(con, this.current_line);
break;
case 4:
/* line 29 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
p = this.store_keyword_content('feature', data, p, eof);
break;
case 5:
/* line 33 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
p = this.store_keyword_content('background', data, p, eof);
break;
case 6:
/* line 37 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
p = this.store_keyword_content('scenario', data, p, eof);
break;
case 7:
/* line 41 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
p = this.store_keyword_content('scenario_outline', data, p, eof);
break;
case 8:
/* line 45 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
p = this.store_keyword_content('examples', data, p, eof);
break;
case 9:
/* line 49 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
var con = this.bytesToString(data.slice(this.content_start, p)).trim();
this.listener.step(this.keyword, con, this.current_line);
break;
case 10:
/* line 54 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
var con = this.bytesToString(data.slice(this.content_start, p)).trim();
this.listener.comment(con, this.line_number);
this.keyword_start = null;
break;
case 11:
/* line 60 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
var con = this.bytesToString(data.slice(this.content_start, p)).trim();
this.listener.tag(con, this.line_number);
this.keyword_start = null;
break;
case 12:
/* line 66 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
this.line_number++;
break;
case 13:
/* line 70 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
this.last_newline = p + 1;
break;
case 14:
/* line 74 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
this.keyword_start = this.keyword_start || p;
break;
case 15:
/* line 78 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
this.keyword = this.bytesToString(data.slice(this.keyword_start, p)).replace(/:$/, '');
this.keyword_start = null;
break;
case 16:
/* line 83 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
this.next_keyword_start = p;
break;
case 17:
/* line 87 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
p = p - 1;
current_row = [];
this.current_line = this.line_number;
break;
case 18:
/* line 93 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
this.content_start = p;
break;
case 19:
/* line 97 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
var con = this.bytesToString(data.slice(this.content_start, p)).trim();
current_row.push(con.replace(/\\\|/, "|").replace(/\\n/, "\n").replace(/\\\\/, "\\"));
break;
case 20:
/* line 102 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
this.listener.row(current_row, this.current_line);
break;
case 21:
/* line 106 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
if(this.cs < lexer_first_final) {
var content = this.current_line_content(data, p);
throw "Lexing error on line " + this.line_number + ": '" + content + "'. See http://wiki.github.com/cucumber/gherkin/lexingerror for more information.";
} else {
this.listener.eof();
}
break;
/* line 1222 "js/lib/gherkin/lexer/bg.js" */
} /* action switch */
}
}
if (_trigger_goto) {
continue;
}
}
if (_goto_level <= _again) {
if ( this.cs == 0) {
_goto_level = _out;
continue;
}
p += 1;
if (p != pe) {
_goto_level = _resume;
continue;
}
}
if (_goto_level <= _test_eof) {
if (p == eof) {
__acts = _lexer_eof_actions[ this.cs];
__nacts = _lexer_actions[__acts];
__acts += 1;
while (__nacts > 0) {
__nacts -= 1;
__acts += 1;
switch (_lexer_actions[__acts - 1]) {
case 21:
/* line 106 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
if(this.cs < lexer_first_final) {
var content = this.current_line_content(data, p);
throw "Lexing error on line " + this.line_number + ": '" + content + "'. See http://wiki.github.com/cucumber/gherkin/lexingerror for more information.";
} else {
this.listener.eof();
}
break;
/* line 1261 "js/lib/gherkin/lexer/bg.js" */
} /* eof action switch */
}
if (_trigger_goto) {
continue;
}
}
}
if (_goto_level <= _out) {
break;
}
}
}
/* line 154 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/bg.js.rl" */
};
Lexer.prototype.bytesToString = function(bytes) {
if(typeof bytes.write == 'function') {
// Node.js
return bytes.toString('utf-8');
} else {
var result = "";
for(var b in bytes) {
result += String.fromCharCode(bytes[b]);
}
return result;
}
};
Lexer.prototype.stringToBytes = function(string) {
var bytes = [];
for(var i = 0; i < string.length; i++) {
bytes[i] = string.charCodeAt(i);
}
return bytes;
};
Lexer.prototype.unindent = function(startcol, text) {
startcol = startcol || 0;
return text.replace(new RegExp('^[\t ]{0,' + startcol + '}', 'gm'), '');
};
Lexer.prototype.store_keyword_content = function(event, data, p, eof) {
var end_point = (!this.next_keyword_start || (p == eof)) ? p : this.next_keyword_start;
var content = this.unindent(this.start_col + 2, this.bytesToString(data.slice(this.content_start, end_point))).replace(/\s+$/,"");
var content_lines = content.split("\n")
var name = content_lines.shift() || "";
name = name.trim();
var description = content_lines.join("\n");
this.listener[event](this.keyword, name, description, this.current_line);
var nks = this.next_keyword_start;
this.next_keyword_start = null;
return nks ? nks - 1 : p;
};
Lexer.prototype.current_line_content = function(data, p) {
var rest = data.slice(this.last_newline, -1);
var end = rest.indexOf(10) || -1;
return this.bytesToString(rest.slice(0, end)).trim();
};
// Node.js export
if(typeof exports !== 'undefined') {
exports.Lexer = Lexer;
}
// Require.js export
if (typeof define !== 'undefined' && define.amd) {
define('gherkin/lexer/bg', [], function() {return Lexer});
}
})();