All Downloads are FREE. Search and download functionalities are using the official Maven repository.

gherkin.lexer.i18n.SR_CYRL Maven / Gradle / Ivy

There is a newer version: 2.12.2
Show newest version

// line 1 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
package gherkin.lexer.i18n;

import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.ArrayList;
import java.util.regex.Pattern;
import gherkin.lexer.Lexer;
import gherkin.lexer.Listener;
import gherkin.lexer.LexingError;

public class SR_CYRL implements Lexer {
  
// line 150 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"


  private final Listener listener;

  public SR_CYRL(Listener listener) {
    this.listener = listener;
  }

  
// line 26 "java/src/main/java/gherkin/lexer/i18n/SR_CYRL.java"
private static byte[] init__lexer_actions_0()
{
	return new byte [] {
	    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,   12,    1,   13,    1,   16,    1,   17,    1,   18,    1,
	   19,    1,   20,    1,   21,    1,   22,    1,   23,    2,    2,   18,
	    2,    3,    4,    2,   13,    0,    2,   14,   15,    2,   17,    0,
	    2,   17,    1,    2,   17,   16,    2,   17,   19,    2,   18,    6,
	    2,   18,    7,    2,   18,    8,    2,   18,    9,    2,   18,   10,
	    2,   18,   16,    2,   20,   21,    2,   22,    0,    2,   22,    1,
	    2,   22,   16,    2,   22,   19,    3,    4,   14,   15,    3,    5,
	   14,   15,    3,   11,   14,   15,    3,   12,   14,   15,    3,   13,
	   14,   15,    3,   14,   15,   18,    3,   17,    0,   11,    3,   17,
	   14,   15,    4,    2,   14,   15,   18,    4,    3,    4,   14,   15,
	    4,   17,    0,   14,   15,    5,   17,    0,   11,   14,   15
	};
}

private static final byte _lexer_actions[] = init__lexer_actions_0();


private static short[] init__lexer_key_offsets_0()
{
	return new short [] {
	    0,    0,   12,   21,   22,   23,   24,   25,   26,   28,   30,   41,
	   42,   43,   45,   47,   52,   57,   62,   67,   71,   75,   77,   78,
	   79,   80,   81,   82,   83,   84,   85,   86,   87,   88,   89,   90,
	   91,   92,   97,  104,  109,  113,  119,  122,  124,  130,  141,  142,
	  143,  144,  145,  146,  147,  148,  149,  150,  153,  154,  156,  157,
	  158,  160,  161,  162,  163,  164,  166,  167,  168,  169,  170,  171,
	  172,  173,  174,  175,  176,  177,  186,  196,  198,  200,  202,  204,
	  206,  217,  219,  221,  223,  225,  227,  229,  231,  233,  235,  239,
	  241,  244,  246,  248,  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,  306,  308,  310,  312,  314,
	  316,  318,  320,  322,  324,  326,  328,  330,  332,  334,  336,  338,
	  340,  342,  344,  346,  348,  350,  352,  354,  356,  359,  361,  363,
	  365,  367,  369,  372,  374,  376,  378,  380,  382,  384,  386,  388,
	  390,  392,  394,  396,  398,  400,  402,  404,  406,  408,  410,  412,
	  414,  416,  418,  420,  422,  424,  426,  428,  430,  432,  434,  436,
	  438,  440,  442,  444,  446,  448,  450,  452,  454,  456,  458,  460,
	  462,  464,  466,  468,  470,  472,  474,  476,  478,  480,  482,  484,
	  486,  488,  490,  492,  494,  496,  498,  500,  502,  504,  506,  508,
	  510,  512,  514,  516,  518,  520,  522,  523,  524,  525,  526,  527,
	  528,  529,  530,  531,  540,  550,  552,  554,  556,  558,  560,  562,
	  564,  566,  568,  570,  572,  574,  576,  578,  582,  584,  586,  588,
	  590,  593,  595,  597,  599,  601,  603,  605,  607,  609,  611,  613,
	  615,  617,  619,  621,  623,  625,  627,  629,  632,  634,  636,  638,
	  640,  642,  644,  646,  648,  650,  652,  654,  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,  724,  726,  728,  730,  732,  734,
	  736,  738,  740,  742,  744,  746,  748,  750,  752,  754,  756,  758,
	  760,  762,  764,  766,  768,  770,  772,  774,  775,  776,  777,  778,
	  779,  780,  781,  782,  783,  784,  785,  786,  787,  788,  789,  790,
	  791,  792,  793,  801,  808,  810,  812,  814,  816,  818,  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,  880,  882,  884,  886,  888,  890,  892,  894,  896,
	  898,  900,  902,  904,  907,  909,  911,  913,  915,  917,  919,  921,
	  923,  925,  927,  929,  931,  933,  935,  937,  939,  942,  944,  947,
	  949,  951,  953,  955,  957,  960,  962,  964,  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, 1045,
	 1047, 1049, 1051, 1053, 1055, 1057, 1059, 1061, 1063, 1065, 1067, 1069,
	 1071, 1073, 1075, 1077, 1079, 1081, 1083, 1085, 1087, 1089, 1091, 1093,
	 1095, 1097, 1099, 1101, 1103, 1105, 1107, 1109, 1111, 1113, 1115, 1117,
	 1118, 1119, 1120, 1121, 1122, 1123, 1125, 1126, 1127, 1128, 1129, 1130,
	 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1141, 1142, 1143,
	 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155,
	 1156, 1157, 1158, 1159, 1160, 1161, 1163, 1164, 1165, 1166, 1167, 1174,
	 1178, 1180, 1182, 1184, 1186, 1188, 1190, 1192, 1194, 1196, 1198, 1200,
	 1202, 1204, 1206, 1208, 1210, 1212, 1214, 1216, 1218, 1220, 1222, 1224,
	 1226, 1228, 1230, 1232, 1234, 1236, 1238, 1240, 1242, 1244, 1246, 1248,
	 1250, 1252, 1254, 1256, 1258, 1260, 1262, 1264, 1266, 1268, 1270, 1272,
	 1273, 1274, 1283, 1293, 1295, 1297, 1299, 1301, 1303, 1305, 1307, 1309,
	 1311, 1313, 1315, 1317, 1319, 1321, 1325, 1327, 1330, 1332, 1334, 1337,
	 1339, 1341, 1343, 1345, 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, 1401, 1403, 1405, 1407, 1409, 1411,
	 1413, 1416, 1418, 1420, 1422, 1424, 1426, 1428, 1430, 1432, 1434, 1436,
	 1438, 1440, 1443, 1445, 1447, 1449, 1451, 1453, 1455, 1457, 1459, 1461,
	 1463, 1465, 1467, 1469, 1471, 1473, 1475, 1478, 1480, 1482, 1484, 1486,
	 1488, 1491, 1493, 1495, 1497, 1499, 1501, 1503, 1505, 1507, 1509, 1511,
	 1513, 1515, 1517, 1519, 1521, 1523, 1525, 1527, 1529, 1531, 1533, 1535,
	 1537, 1539, 1541, 1543, 1545, 1547, 1549, 1551, 1553, 1555, 1557, 1559,
	 1561, 1563, 1565, 1567, 1569, 1571, 1573, 1575, 1577, 1579, 1581, 1583,
	 1585, 1587, 1589, 1591, 1593, 1595, 1597, 1599, 1601, 1603, 1605, 1607,
	 1609, 1611, 1613, 1615, 1617, 1619, 1621, 1623, 1625, 1627, 1629, 1631,
	 1633, 1635, 1637, 1639, 1641, 1643, 1644, 1645, 1646, 1647, 1648, 1649,
	 1650, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662,
	 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674,
	 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686,
	 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1695, 1696, 1697, 1698, 1699,
	 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711,
	 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719
	};
}

private static final short _lexer_key_offsets[] = init__lexer_key_offsets_0();


private static byte[] init__lexer_trans_keys_0()
{
	return new byte [] {
	  -48,  -17,   10,   32,   34,   35,   37,   42,   64,  124,    9,   13,
	 -112, -105, -104, -102, -100,  -98,  -97,  -95,  -92,  -48,  -69,  -48,
	  -72,   32,   10,   13,   10,   13,  -48,   10,   32,   34,   35,   37,
	   42,   64,  124,    9,   13,   34,   34,   10,   13,   10,   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,  -80,  -48,
	  -76,  -48,  -80,  -47, -126,  -48,  -75,  -72,  -66,  -48,  -80,  -66,
	  -48,  -76,  -48,   32,  -80,  -48,  -67,  -47, -126, -122,  -48,  -75,
	  -48,  -70,  -47, -127,  -47, -126,   58,   10,   10,  -48,   10,   32,
	   35,   37,   42,   64,    9,   13, -112, -105, -104, -102, -100,  -98,
	  -97,  -95,  -92,   10,  -48,   10,  -69,   10,  -48,   10,  -72,   10,
	   10,   32,  -48,   10,   32,   34,   35,   37,   42,   64,  124,    9,
	   13,  -48,   10,  -80,   10,  -48,   10,  -76,   10,  -48,   10,  -80,
	   10,  -47,   10, -126,   10,  -48,   10,  -75,  -72,  -66,   10,  -48,
	   10,  -80,  -66,   10,  -48,   10,  -76,   10,  -48,   10,   32,  -80,
	   10,  -48,   10,  -67,   10,  -47,   10, -122,   10,  -48,   10,  -75,
	   10,  -48,   10,  -65,   10,  -47,   10, -126,   10,   10,   58,  -48,
	   10,  -66,   10,  -48,   10,  -77,   10,  -47,   10, -125,   10,  -47,
	   10, -101,   10,  -48,   10,  -67,   10,  -48,   10,  -66,   10,  -47,
	   10, -127,   10,  -48,  -47,   10,  -67,   10,  -48,   10,  -76,   10,
	  -48,   10, -127,   10,  -48,   10,  -66,   10,  -48,   10,  -79,   10,
	  -48,   10,  -72,   10,  -48,   10,  -67,   10,  -48,   10,  -80,   10,
	  -47,   10, -128,   10,  -48,   10,  -72,   10,  -48,   10,  -68,   10,
	  -48,   10,  -75,   10,  -47,   10, -128,   10,  -48,  -47,   10,  -70,
	   10,  -48,   10,  -72,   10,  -47,   10, -122,   10, -126, -122,   10,
	  -47,   10, -128,   10,  -47,   10, -125,   10,  -48,   10,  -70,   10,
	  -47,   10, -126,   10,  -47,   10, -125,   10,  -47,   10, -128,   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,  -47,   10,
	 -104,   10,  -48,   10,  -75,   10,  -48,   10,  -67,   10,  -48,   10,
	  -80,   10,  -47,   10, -128,   10,  -48,   10,  -72,   10,  -48,   10,
	  -66,   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,   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,  -75,  -48,  -65,  -47, -126,
	   58,   10,   10,  -48,   10,   32,   35,   37,   42,   64,    9,   13,
	 -112, -105, -104, -102, -100,  -98,  -97,  -95,  -92,   10,  -48,   10,
	  -69,   10,  -48,   10,  -72,   10,   10,   32,  -48,   10,  -80,   10,
	  -48,   10,  -76,   10,  -48,   10,  -80,   10,  -47,   10, -126,   10,
	  -48,   10,  -75,  -72,  -66,   10,  -48,   10,  -80,   10,  -48,   10,
	  -76,   10,  -48,   10,   32,  -80,   10,  -48,   10,  -66,   10,  -48,
	   10,  -77,   10,  -47,   10, -125,   10,  -47,   10, -101,   10,  -48,
	   10,  -67,   10,  -48,   10,  -66,   10,  -47,   10, -127,   10,  -47,
	   10, -126,   10,   10,   58,  -48,  -47,   10,  -67,   10,  -48,   10,
	  -76,   10,  -48,   10, -127,   10,  -48,   10,  -66,   10,  -48,   10,
	  -79,   10,  -48,   10,  -72,   10,  -48,   10,  -67,   10,  -48,   10,
	  -80,   10,  -47,   10, -128,   10,  -48,   10,  -72,   10,  -48,   10,
	  -68,   10,  -48,   10,  -75,   10,  -47,   10, -128,   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,
	  -66,   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,   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,  -66,  -48,  -77,  -47, -125,
	  -47, -101,  -48,  -67,  -48,  -66,  -47, -127,  -47, -126,   58,   10,
	   10,  -48,   10,   32,   35,   37,   64,    9,   13, -102, -100,  -98,
	  -97,  -95,  -92,   10,  -48,   10,  -66,   10,  -48,   10,  -67,   10,
	  -47,   10, -126, -122,   10,  -48,   10,  -75,   10,  -48,   10,  -70,
	   10,  -47,   10, -127,   10,  -47,   10, -126,   10,   10,   58,  -48,
	   10,  -75,   10,  -48,   10,  -65,   10,  -48,   10,  -66,   10,  -48,
	   10,  -77,   10,  -47,   10, -125,   10,  -47,   10, -101,   10,  -48,
	   10,  -67,   10,  -48,   10,  -66,   10,  -47,   10, -127,   10,  -48,
	   10,  -67,  -66,   10,  -48,   10,  -66,   10,  -48,   10,  -78,   10,
	  -48,   10,  -80,   10,  -48,   10,  -79,   10,  -48,   10,  -72,   10,
	  -48,   10,  -67,   10,  -48,  -47,   10,  -66,   10,  -48,   10,  -73,
	   10,  -48,   10,  -80,   10,  -48,   10,  -76,   10, -128,   10,  -48,
	   10,  -72,   10,  -48,   10,  -68,   10,  -48,   10,  -75,   10,  -47,
	   10, -128,   10,  -48,   10,   58,  -72,   10,  -48,  -47,   10,  -70,
	   10,  -48,   10,  -72,   10,  -47,   10, -122,   10, -126, -122,   10,
	  -47,   10, -128,   10,  -47,   10, -125,   10,  -48,   10,  -70,   10,
	  -47,   10, -126,   10,  -47,   10, -125,   10,  -47,   10, -128,   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,  -47,   10,
	 -104,   10,  -48,   10,  -75,   10,  -48,   10,  -67,   10,  -48,   10,
	  -80,   10,  -47,   10, -128,   10,  -48,   10,  -72,   10,  -48,  -47,
	   10,  -66,   10, -104,   10,  -48,   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,   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,
	  -47,  -67,  -48,  -76,  -48, -127,  -48,  -67,  -66,  -48,  -66,  -48,
	  -78,  -48,  -80,  -48,  -79,  -48,  -72,  -48,  -67,  -48,  -80,  -48,
	  -47,  -66,  -48,  -73,  -48,  -80,  -48,  -76,  -48,  -72,  -48,  -67,
	 -128,  -48,  -72,  -48,  -68,  -48,  -75,  -47, -128,  -48,   58,  -72,
	   58,   10,   10,  -48,   10,   32,   35,  124,    9,   13, -100,  -98,
	  -92,   10,  -48,   10,  -66,   10,  -48,   10,  -77,   10,  -47,   10,
	 -125,   10,  -47,   10, -101,   10,  -48,   10,  -67,   10,  -48,   10,
	  -66,   10,  -47,   10, -127,   10,  -47,   10, -126,   10,   10,   58,
	  -47,   10, -127,   10,  -48,   10,  -66,   10,  -48,   10,  -79,   10,
	  -48,   10,  -72,   10,  -48,   10,  -67,   10,  -48,   10,  -80,   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,
	   10,   10,  -48,   10,   32,   35,   37,   42,   64,    9,   13, -112,
	 -105, -104, -102, -100,  -98,  -97,  -95,  -92,   10,  -48,   10,  -69,
	   10,  -48,   10,  -72,   10,   10,   32,  -48,   10,  -80,   10,  -48,
	   10,  -76,   10,  -48,   10,  -80,   10,  -47,   10, -126,   10,  -48,
	   10,  -75,  -72,  -66,   10,  -48,   10,  -80,  -66,   10,  -48,   10,
	  -76,   10,  -48,   10,   32,  -80,   10,  -48,   10,  -67,   10,  -47,
	   10, -126, -122,   10,  -48,   10,  -75,   10,  -48,   10,  -70,   10,
	  -47,   10, -127,   10,  -47,   10, -126,   10,   10,   58,  -48,   10,
	  -75,   10,  -48,   10,  -65,   10,  -48,   10,  -66,   10,  -48,   10,
	  -77,   10,  -47,   10, -125,   10,  -47,   10, -101,   10,  -48,   10,
	  -67,   10,  -48,   10,  -66,   10,  -48,  -47,   10,  -67,   10,  -48,
	   10,  -76,   10,  -48,   10, -127,   10,  -48,   10,  -67,  -66,   10,
	  -48,   10,  -66,   10,  -48,   10,  -78,   10,  -48,   10,  -80,   10,
	  -48,   10,  -79,   10,  -48,   10,  -72,   10,  -48,   10,  -67,   10,
	  -48,  -47,   10,  -66,   10,  -48,   10,  -73,   10,  -48,   10,  -80,
	   10,  -48,   10,  -76,   10, -128,   10,  -48,   10,  -72,   10,  -48,
	   10,  -68,   10,  -48,   10,  -75,   10,  -47,   10, -128,   10,  -48,
	  -47,   10,  -70,   10,  -48,   10,  -72,   10,  -47,   10, -122,   10,
	 -126, -122,   10,  -47,   10, -128,   10,  -47,   10, -125,   10,  -48,
	   10,  -70,   10,  -47,   10, -126,   10,  -47,   10, -125,   10,  -47,
	   10, -128,   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,  -47,   10, -104,   10,  -48,   10,  -75,   10,  -48,   10,  -67,
	   10,  -48,   10,  -80,   10,  -47,   10, -128,   10,  -48,   10,  -72,
	   10,  -48,   10,  -66,   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,   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,  -47,  -70,
	  -48,  -72,  -47, -122,  -48,  -80, -126, -122,  -47, -128,  -47, -125,
	  -48,  -70,  -47, -126,  -47, -125,  -47, -128,  -48,  -80,   32,  -47,
	 -127,  -47, -122,  -48,  -75,  -48,  -67,  -48,  -80,  -47, -128,  -48,
	  -72,  -47, -104,  -48,  -75,  -48,  -67,  -48,  -80,  -47, -128,  -48,
	  -72,  -48,  -47,  -66,   58, -104,  -48,  -47, -125,  -48,  -67,  -48,
	  -70,  -47, -122,  -48,  -72,  -48,  -66,  -48,  -67,  -48,  -80,  -48,
	  -69,  -69,  -65,    0
	};
}

private static final byte _lexer_trans_keys[] = init__lexer_trans_keys_0();


private static byte[] init__lexer_single_lengths_0()
{
	return new byte [] {
	    0,   10,    9,    1,    1,    1,    1,    1,    2,    2,    9,    1,
	    1,    2,    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,    3,    1,    2,    1,    1,
	    2,    1,    1,    1,    1,    2,    1,    1,    1,    1,    1,    1,
	    1,    1,    1,    1,    1,    7,   10,    2,    2,    2,    2,    2,
	    9,    2,    2,    2,    2,    2,    2,    2,    2,    2,    4,    2,
	    3,    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,    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,    3,    2,    2,    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,    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,    4,    2,    2,    2,    2,
	    3,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    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,    1,    1,    1,    1,    1,
	    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
	    1,    1,    6,    7,    2,    2,    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,    3,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    3,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    3,    2,    3,    2,
	    2,    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,    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,    1,
	    1,    1,    1,    1,    1,    2,    1,    1,    1,    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,    1,    2,    1,    1,    1,    1,    5,    4,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    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,    7,   10,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    4,    2,    3,    2,    2,    3,    2,
	    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,    3,    2,    2,    2,    2,    2,    2,
	    3,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    3,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    3,    2,    2,    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,    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,    1,    1,    1,    1,
	    1,    1,    1,    1,    1,    1,    1,    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,    1,    1,    1,    1,    1,    0
	};
}

private static final byte _lexer_single_lengths[] = init__lexer_single_lengths_0();


private static byte[] init__lexer_range_lengths_0()
{
	return new byte [] {
	    0,    1,    0,    0,    0,    0,    0,    0,    0,    0,    1,    0,
	    0,    0,    0,    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,
	    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,    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,    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,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    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,    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,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0
	};
}

private static final byte _lexer_range_lengths[] = init__lexer_range_lengths_0();


private static short[] init__lexer_index_offsets_0()
{
	return new short [] {
	    0,    0,   12,   22,   24,   26,   28,   30,   32,   35,   38,   49,
	   51,   53,   56,   59,   64,   69,   74,   79,   83,   87,   90,   92,
	   94,   96,   98,  100,  102,  104,  106,  108,  110,  112,  114,  116,
	  118,  120,  125,  132,  137,  141,  147,  151,  154,  160,  171,  173,
	  175,  177,  179,  181,  183,  185,  187,  189,  193,  195,  198,  200,
	  202,  205,  207,  209,  211,  213,  216,  218,  220,  222,  224,  226,
	  228,  230,  232,  234,  236,  238,  247,  258,  261,  264,  267,  270,
	  273,  284,  287,  290,  293,  296,  299,  302,  305,  308,  311,  316,
	  319,  323,  326,  329,  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,  415,  418,  421,  424,  427,
	  430,  433,  436,  439,  442,  445,  448,  451,  454,  457,  460,  463,
	  466,  469,  472,  475,  478,  481,  484,  487,  490,  494,  497,  500,
	  503,  506,  509,  513,  516,  519,  522,  525,  528,  531,  534,  537,
	  540,  543,  546,  549,  552,  555,  558,  561,  564,  567,  570,  573,
	  576,  579,  582,  585,  588,  591,  594,  597,  600,  603,  606,  609,
	  612,  615,  618,  621,  624,  627,  630,  633,  636,  639,  642,  645,
	  648,  651,  654,  657,  660,  663,  666,  669,  672,  675,  678,  681,
	  684,  687,  690,  693,  696,  699,  702,  705,  708,  711,  714,  717,
	  720,  723,  726,  729,  732,  735,  738,  740,  742,  744,  746,  748,
	  750,  752,  754,  756,  765,  776,  779,  782,  785,  788,  791,  794,
	  797,  800,  803,  806,  809,  812,  815,  818,  823,  826,  829,  832,
	  835,  839,  842,  845,  848,  851,  854,  857,  860,  863,  866,  869,
	  872,  875,  878,  881,  884,  887,  890,  893,  897,  900,  903,  906,
	  909,  912,  915,  918,  921,  924,  927,  930,  933,  936,  939,  942,
	  945,  948,  951,  954,  957,  960,  963,  966,  969,  972,  975,  978,
	  981,  984,  987,  990,  993,  996,  999, 1002, 1005, 1008, 1011, 1014,
	 1017, 1020, 1023, 1026, 1029, 1032, 1035, 1038, 1041, 1044, 1047, 1050,
	 1053, 1056, 1059, 1062, 1065, 1068, 1071, 1074, 1077, 1080, 1083, 1086,
	 1089, 1092, 1095, 1098, 1101, 1104, 1107, 1110, 1112, 1114, 1116, 1118,
	 1120, 1122, 1124, 1126, 1128, 1130, 1132, 1134, 1136, 1138, 1140, 1142,
	 1144, 1146, 1148, 1156, 1164, 1167, 1170, 1173, 1176, 1179, 1183, 1186,
	 1189, 1192, 1195, 1198, 1201, 1204, 1207, 1210, 1213, 1216, 1219, 1222,
	 1225, 1228, 1231, 1234, 1237, 1240, 1243, 1246, 1249, 1252, 1255, 1258,
	 1261, 1264, 1267, 1271, 1274, 1277, 1280, 1283, 1286, 1289, 1292, 1295,
	 1298, 1301, 1304, 1307, 1311, 1314, 1317, 1320, 1323, 1326, 1329, 1332,
	 1335, 1338, 1341, 1344, 1347, 1350, 1353, 1356, 1359, 1363, 1366, 1370,
	 1373, 1376, 1379, 1382, 1385, 1389, 1392, 1395, 1398, 1401, 1404, 1407,
	 1410, 1413, 1416, 1419, 1422, 1425, 1428, 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, 1516,
	 1519, 1522, 1525, 1528, 1531, 1534, 1537, 1540, 1543, 1546, 1549, 1552,
	 1555, 1558, 1561, 1564, 1567, 1570, 1573, 1576, 1579, 1582, 1585, 1588,
	 1591, 1594, 1597, 1600, 1603, 1606, 1609, 1612, 1615, 1618, 1621, 1624,
	 1626, 1628, 1630, 1632, 1634, 1636, 1639, 1641, 1643, 1645, 1647, 1649,
	 1651, 1653, 1655, 1657, 1659, 1661, 1663, 1665, 1667, 1670, 1672, 1674,
	 1676, 1678, 1680, 1682, 1684, 1686, 1688, 1690, 1692, 1694, 1696, 1698,
	 1700, 1702, 1704, 1706, 1708, 1710, 1713, 1715, 1717, 1719, 1721, 1728,
	 1733, 1736, 1739, 1742, 1745, 1748, 1751, 1754, 1757, 1760, 1763, 1766,
	 1769, 1772, 1775, 1778, 1781, 1784, 1787, 1790, 1793, 1796, 1799, 1802,
	 1805, 1808, 1811, 1814, 1817, 1820, 1823, 1826, 1829, 1832, 1835, 1838,
	 1841, 1844, 1847, 1850, 1853, 1856, 1859, 1862, 1865, 1868, 1871, 1874,
	 1876, 1878, 1887, 1898, 1901, 1904, 1907, 1910, 1913, 1916, 1919, 1922,
	 1925, 1928, 1931, 1934, 1937, 1940, 1945, 1948, 1952, 1955, 1958, 1962,
	 1965, 1968, 1971, 1974, 1978, 1981, 1984, 1987, 1990, 1993, 1996, 1999,
	 2002, 2005, 2008, 2011, 2014, 2017, 2020, 2023, 2026, 2029, 2032, 2035,
	 2038, 2041, 2044, 2047, 2050, 2053, 2057, 2060, 2063, 2066, 2069, 2072,
	 2075, 2079, 2082, 2085, 2088, 2091, 2094, 2097, 2100, 2103, 2106, 2109,
	 2112, 2115, 2119, 2122, 2125, 2128, 2131, 2134, 2137, 2140, 2143, 2146,
	 2149, 2152, 2155, 2158, 2161, 2164, 2167, 2171, 2174, 2177, 2180, 2183,
	 2186, 2190, 2193, 2196, 2199, 2202, 2205, 2208, 2211, 2214, 2217, 2220,
	 2223, 2226, 2229, 2232, 2235, 2238, 2241, 2244, 2247, 2250, 2253, 2256,
	 2259, 2262, 2265, 2268, 2271, 2274, 2277, 2280, 2283, 2286, 2289, 2292,
	 2295, 2298, 2301, 2304, 2307, 2310, 2313, 2316, 2319, 2322, 2325, 2328,
	 2331, 2334, 2337, 2340, 2343, 2346, 2349, 2352, 2355, 2358, 2361, 2364,
	 2367, 2370, 2373, 2376, 2379, 2382, 2385, 2388, 2391, 2394, 2397, 2400,
	 2403, 2406, 2409, 2412, 2415, 2418, 2420, 2422, 2424, 2426, 2428, 2430,
	 2432, 2435, 2437, 2439, 2441, 2443, 2445, 2447, 2449, 2451, 2453, 2455,
	 2457, 2459, 2461, 2463, 2465, 2467, 2469, 2471, 2473, 2475, 2477, 2479,
	 2481, 2483, 2485, 2487, 2489, 2491, 2493, 2495, 2497, 2499, 2501, 2503,
	 2505, 2507, 2509, 2511, 2513, 2515, 2517, 2520, 2522, 2524, 2526, 2528,
	 2530, 2532, 2534, 2536, 2538, 2540, 2542, 2544, 2546, 2548, 2550, 2552,
	 2554, 2556, 2558, 2560, 2562, 2564, 2566, 2568
	};
}

private static final short _lexer_index_offsets[] = init__lexer_index_offsets_0();


private static short[] init__lexer_indicies_0()
{
	return new short [] {
	    1,    2,    4,    3,    5,    6,    7,    8,    9,   10,    3,    0,
	   11,   12,   13,   14,   15,   16,   17,   18,   19,    0,   20,    0,
	   21,    0,   22,    0,   13,    0,   23,    0,   25,   26,   24,   28,
	   29,   27,    1,    4,    3,    5,    6,    7,    8,    9,   10,    3,
	    0,   30,    0,   31,    0,   33,   34,   32,   36,   37,   35,   40,
	   39,   41,   39,   38,   44,   43,   45,   43,   42,   44,   43,   46,
	   43,   42,   44,   43,   47,   43,   42,   49,   48,   48,    0,    4,
	   50,   50,    0,   52,   53,   51,    4,    0,   54,    0,   55,    0,
	   56,    0,   57,    0,   58,    0,   59,    0,   60,    0,   61,    0,
	   62,    0,   63,    0,   64,    0,   65,    0,   66,    0,   67,    0,
	    0,    0,    0,    0,   68,   69,   70,   69,   69,   72,   71,   68,
	    4,   73,    9,   73,    0,   74,   75,   74,    0,   78,   77,   79,
	   80,   77,   76,    0,   82,   83,   81,    0,   82,   81,   78,   84,
	   82,   83,   84,   81,   85,   78,   86,   87,   88,   89,   90,   91,
	   92,   86,    0,   93,    0,   94,    0,   95,    0,   96,    0,   97,
	    0,   98,    0,   99,    0,  100,    0,  101,    0,   13,   13,   13,
	    0,  102,    0,  103,  104,    0,  105,    0,  106,    0,  107,   23,
	    0,   13,    0,  108,    0,  109,    0,  110,    0,  111,  112,    0,
	  113,    0,  114,    0,  115,    0,  116,    0,  117,    0,  118,    0,
	  119,    0,  120,    0,  121,    0,  123,  122,  125,  124,  126,  125,
	  127,  128,  129,  130,  128,  127,  124,  131,  132,  133,  134,  135,
	  136,  137,  138,  139,  125,  124,  140,  125,  124,  141,  125,  124,
	  142,  125,  124,  133,  125,  124,  125,  143,  124,  144,  146,  145,
	  147,  148,  149,  150,  151,  152,  145,    0,  153,  125,  124,  154,
	  125,  124,  155,  125,  124,  156,  125,  124,  157,  125,  124,  158,
	  125,  124,  159,  125,  124,  160,  125,  124,  161,  125,  124,  133,
	  133,  133,  125,  124,  162,  125,  124,  163,  164,  125,  124,  165,
	  125,  124,  166,  125,  124,  167,  125,  143,  124,  133,  125,  124,
	  168,  125,  124,  169,  125,  124,  170,  125,  124,  171,  125,  124,
	  172,  125,  124,  173,  125,  124,  174,  125,  124,  175,  125,  124,
	  176,  125,  124,  177,  125,  124,  125,  143,  124,  178,  125,  124,
	  179,  125,  124,  180,  125,  124,  181,  125,  124,  182,  125,  124,
	  183,  125,  124,  184,  125,  124,  185,  125,  124,  186,  125,  124,
	  187,  125,  124,  188,  125,  124,  189,  125,  124,  190,  125,  124,
	  175,  125,  124,  191,  192,  125,  124,  193,  125,  124,  194,  125,
	  124,  195,  125,  124,  167,  125,  124,  196,  125,  124,  197,  125,
	  124,  198,  125,  124,  199,  125,  124,  200,  125,  124,  201,  125,
	  124,  202,  125,  124,  203,  125,  124,  204,  125,  124,  205,  125,
	  124,  177,  125,  124,  206,  125,  124,  207,  125,  124,  208,  125,
	  124,  209,  125,  124,  210,  125,  124,  211,  125,  124,  212,  125,
	  124,  213,  125,  124,  214,  125,  124,  177,  125,  124,  215,  216,
	  125,  124,  217,  125,  124,  218,  125,  124,  219,  125,  124,  220,
	  125,  124,  204,  125,  124,  221,  222,  125,  124,  223,  125,  124,
	  224,  125,  124,  225,  125,  124,  226,  125,  124,  227,  125,  124,
	  228,  125,  124,  229,  125,  124,  230,  125,  124,  231,  125,  124,
	  232,  125,  124,  233,  125,  124,  234,  125,  124,  235,  125,  124,
	  236,  125,  124,  125,  237,  124,  238,  125,  124,  239,  125,  124,
	  240,  125,  124,  241,  125,  124,  242,  125,  124,  243,  125,  124,
	  244,  125,  124,  245,  125,  124,  246,  125,  124,  247,  125,  124,
	  248,  125,  124,  249,  125,  124,  250,  125,  124,  251,  125,  124,
	  252,  125,  124,  204,  125,  124,  253,  125,  124,  254,  125,  124,
	  255,  125,  124,  256,  125,  124,  257,  125,  124,  258,  125,  124,
	  259,  125,  124,  260,  125,  124,  261,  125,  124,  262,  125,  124,
	  263,  125,  124,  177,  125,  124,  264,  125,  124,  265,  125,  124,
	  266,  125,  124,  267,  125,  124,  268,  125,  124,  269,  125,  124,
	  270,  125,  124,  271,  125,  124,  272,  125,  124,  273,  125,  124,
	  274,  125,  124,  275,  125,  124,  276,  125,  124,  277,  125,  124,
	  278,  125,  124,  279,  125,  124,  280,  125,  124,  185,  125,  124,
	  125,  281,  124,  125,  282,  124,  125,  283,  124,  125,  284,  124,
	  125,  285,  124,  125,  286,  124,  125,  287,  124,  125,  288,  124,
	  125,  289,  124,  125,  290,  124,  125,  291,  124,  125,  292,  124,
	  125,  293,  124,  125,  294,  124,  295,    0,  296,    0,  297,    0,
	  298,    0,  299,    0,  300,    0,  301,    0,  303,  302,  305,  304,
	  306,  305,  307,  308,  309,  310,  308,  307,  304,  311,  312,  313,
	  314,  315,  316,  317,  318,  319,  305,  304,  320,  305,  304,  321,
	  305,  304,  322,  305,  304,  313,  305,  304,  305,  323,  304,  324,
	  305,  304,  325,  305,  304,  326,  305,  304,  327,  305,  304,  328,
	  305,  304,  329,  305,  304,  330,  305,  304,  331,  305,  304,  332,
	  305,  304,  313,  313,  313,  305,  304,  333,  305,  304,  334,  305,
	  304,  335,  305,  304,  336,  305,  304,  337,  305,  323,  304,  313,
	  305,  304,  338,  305,  304,  339,  305,  304,  340,  305,  304,  341,
	  305,  304,  342,  305,  304,  343,  305,  304,  344,  305,  304,  345,
	  305,  304,  346,  305,  304,  347,  305,  304,  348,  305,  304,  349,
	  305,  304,  350,  305,  304,  351,  305,  304,  352,  305,  304,  353,
	  305,  304,  305,  323,  304,  354,  355,  305,  304,  356,  305,  304,
	  357,  305,  304,  358,  305,  304,  337,  305,  304,  359,  305,  304,
	  360,  305,  304,  361,  305,  304,  362,  305,  304,  363,  305,  304,
	  364,  305,  304,  365,  305,  304,  366,  305,  304,  367,  305,  304,
	  368,  305,  304,  353,  305,  304,  369,  305,  304,  370,  305,  304,
	  371,  305,  304,  372,  305,  304,  373,  305,  304,  374,  305,  304,
	  375,  305,  304,  376,  305,  304,  377,  305,  304,  353,  305,  304,
	  378,  305,  304,  379,  305,  304,  380,  305,  304,  381,  305,  304,
	  382,  305,  304,  383,  305,  304,  384,  305,  304,  385,  305,  304,
	  386,  305,  304,  387,  305,  304,  388,  305,  304,  389,  305,  304,
	  390,  305,  304,  353,  305,  304,  391,  305,  304,  392,  305,  304,
	  393,  305,  304,  394,  305,  304,  395,  305,  304,  396,  305,  304,
	  397,  305,  304,  398,  305,  304,  399,  305,  304,  400,  305,  304,
	  401,  305,  304,  402,  305,  304,  403,  305,  304,  404,  305,  304,
	  405,  305,  304,  406,  305,  304,  407,  305,  304,  345,  305,  304,
	  305,  408,  304,  305,  409,  304,  305,  410,  304,  305,  411,  304,
	  305,  412,  304,  305,  413,  304,  305,  414,  304,  305,  415,  304,
	  305,  416,  304,  305,  417,  304,  305,  418,  304,  305,  419,  304,
	  305,  420,  304,  305,  421,  304,  422,    0,  423,    0,  424,    0,
	  425,    0,  426,    0,  427,    0,  428,    0,  429,    0,  430,    0,
	  431,    0,  432,    0,  433,    0,  434,    0,  435,    0,  436,    0,
	  437,    0,  438,    0,  440,  439,  442,  441,  443,  442,  444,  445,
	  446,  445,  444,  441,  447,  448,  449,  450,  451,  452,  442,  441,
	  453,  442,  441,  454,  442,  441,  455,  442,  441,  456,  442,  441,
	  457,  442,  441,  458,  459,  442,  441,  460,  442,  441,  461,  442,
	  441,  462,  442,  441,  463,  442,  441,  464,  442,  441,  465,  442,
	  441,  466,  442,  441,  467,  442,  441,  442,  468,  441,  469,  442,
	  441,  470,  442,  441,  471,  442,  441,  465,  442,  441,  472,  442,
	  441,  473,  442,  441,  474,  442,  441,  475,  442,  441,  476,  442,
	  441,  477,  442,  441,  478,  442,  441,  479,  442,  441,  480,  442,
	  441,  481,  442,  441,  482,  442,  441,  463,  442,  441,  483,  442,
	  441,  484,  442,  441,  485,  442,  441,  486,  487,  442,  441,  488,
	  442,  441,  489,  442,  441,  490,  442,  441,  491,  442,  441,  492,
	  442,  441,  467,  442,  441,  493,  442,  441,  494,  442,  441,  495,
	  442,  441,  496,  442,  441,  497,  442,  441,  491,  442,  441,  498,
	  499,  442,  441,  500,  442,  441,  501,  442,  441,  502,  442,  441,
	  503,  442,  441,  504,  442,  441,  505,  442,  441,  494,  442,  441,
	  506,  442,  441,  507,  442,  441,  508,  442,  441,  509,  442,  441,
	  510,  442,  441,  511,  442,  441,  512,  442,  441,  513,  442,  441,
	  514,  442,  441,  515,  442,  468,  441,  467,  442,  441,  516,  517,
	  442,  441,  518,  442,  441,  519,  442,  441,  520,  442,  441,  521,
	  442,  441,  491,  442,  441,  522,  523,  442,  441,  524,  442,  441,
	  525,  442,  441,  526,  442,  441,  527,  442,  441,  528,  442,  441,
	  529,  442,  441,  530,  442,  441,  531,  442,  441,  532,  442,  441,
	  533,  442,  441,  534,  442,  441,  535,  442,  441,  536,  442,  441,
	  537,  442,  441,  442,  538,  441,  539,  442,  441,  540,  442,  441,
	  541,  442,  441,  542,  442,  441,  543,  442,  441,  544,  442,  441,
	  545,  442,  441,  546,  442,  441,  547,  442,  441,  548,  442,  441,
	  549,  442,  441,  550,  442,  441,  551,  442,  441,  552,  442,  441,
	  553,  442,  441,  491,  442,  441,  554,  442,  441,  555,  442,  441,
	  556,  442,  441,  557,  442,  441,  558,  442,  441,  559,  442,  441,
	  560,  442,  441,  561,  442,  441,  562,  442,  441,  563,  442,  441,
	  564,  565,  442,  441,  467,  442,  441,  566,  442,  441,  515,  442,
	  441,  567,  442,  441,  568,  442,  441,  569,  442,  441,  570,  442,
	  441,  571,  442,  441,  572,  442,  441,  573,  442,  441,  574,  442,
	  441,  575,  442,  441,  576,  442,  441,  577,  442,  441,  578,  442,
	  441,  579,  442,  441,  580,  442,  441,  581,  442,  441,  582,  442,
	  441,  583,  442,  441,  479,  442,  441,  442,  584,  441,  442,  585,
	  441,  442,  586,  441,  442,  587,  441,  442,  588,  441,  442,  589,
	  441,  442,  590,  441,  442,  591,  441,  442,  592,  441,  442,  593,
	  441,  442,  594,  441,  442,  595,  441,  442,  596,  441,  442,  597,
	  441,  598,  599,    0,  600,    0,  601,    0,  602,    0,  107,    0,
	  603,    0,  604,    0,  605,  606,    0,  607,    0,  608,    0,  609,
	    0,  610,    0,  611,    0,  120,    0,  612,    0,  613,    0,  614,
	    0,  615,    0,  616,    0,  617,    0,  618,    0,  437,    0,  619,
	  620,    0,  621,    0,  622,    0,  623,    0,  624,    0,  625,    0,
	  626,    0,  627,    0,  628,    0,  629,    0,  630,    0,  610,    0,
	  631,    0,  632,    0,  633,    0,  634,    0,  635,    0,  636,    0,
	  637,    0,  638,    0,  639,    0,  640,  641,    0,  642,    0,  643,
	    0,  645,  644,  647,  646,  648,  647,  649,  650,  650,  649,  646,
	  651,  652,  653,  647,  646,  654,  647,  646,  655,  647,  646,  656,
	  647,  646,  657,  647,  646,  658,  647,  646,  659,  647,  646,  660,
	  647,  646,  661,  647,  646,  662,  647,  646,  663,  647,  646,  664,
	  647,  646,  665,  647,  646,  666,  647,  646,  667,  647,  646,  668,
	  647,  646,  669,  647,  646,  647,  670,  646,  671,  647,  646,  672,
	  647,  646,  673,  647,  646,  674,  647,  646,  675,  647,  646,  676,
	  647,  646,  677,  647,  646,  678,  647,  646,  679,  647,  646,  680,
	  647,  646,  681,  647,  646,  669,  647,  646,  682,  647,  646,  683,
	  647,  646,  684,  647,  646,  685,  647,  646,  686,  647,  646,  687,
	  647,  646,  688,  647,  646,  689,  647,  646,  690,  647,  646,  691,
	  647,  646,  692,  647,  646,  693,  647,  646,  694,  647,  646,  695,
	  647,  646,  696,  647,  646,  697,  647,  646,  698,  647,  646,  661,
	  647,  646,  700,  699,  702,  701,  703,  702,  704,  705,  706,  707,
	  705,  704,  701,  708,  709,  710,  711,  712,  713,  714,  715,  716,
	  702,  701,  717,  702,  701,  718,  702,  701,  719,  702,  701,  710,
	  702,  701,  702,  720,  701,  721,  702,  701,  722,  702,  701,  723,
	  702,  701,  724,  702,  701,  725,  702,  701,  726,  702,  701,  727,
	  702,  701,  728,  702,  701,  729,  702,  701,  710,  710,  710,  702,
	  701,  730,  702,  701,  731,  732,  702,  701,  733,  702,  701,  734,
	  702,  701,  735,  702,  720,  701,  710,  702,  701,  736,  702,  701,
	  737,  702,  701,  738,  702,  701,  739,  740,  702,  701,  741,  702,
	  701,  742,  702,  701,  743,  702,  701,  744,  702,  701,  745,  702,
	  701,  746,  702,  701,  747,  702,  701,  748,  702,  701,  702,  720,
	  701,  749,  702,  701,  750,  702,  701,  751,  702,  701,  746,  702,
	  701,  752,  702,  701,  753,  702,  701,  754,  702,  701,  755,  702,
	  701,  756,  702,  701,  757,  702,  701,  758,  702,  701,  759,  702,
	  701,  760,  702,  701,  761,  702,  701,  762,  702,  701,  744,  702,
	  701,  763,  764,  702,  701,  765,  702,  701,  766,  702,  701,  767,
	  702,  701,  735,  702,  701,  768,  702,  701,  769,  702,  701,  770,
	  771,  702,  701,  772,  702,  701,  773,  702,  701,  774,  702,  701,
	  775,  702,  701,  776,  702,  701,  748,  702,  701,  777,  702,  701,
	  778,  702,  701,  779,  702,  701,  780,  702,  701,  781,  702,  701,
	  775,  702,  701,  782,  783,  702,  701,  784,  702,  701,  785,  702,
	  701,  786,  702,  701,  787,  702,  701,  788,  702,  701,  789,  702,
	  701,  778,  702,  701,  790,  702,  701,  791,  702,  701,  792,  702,
	  701,  793,  702,  701,  794,  702,  701,  795,  702,  701,  796,  702,
	  701,  797,  702,  701,  748,  702,  701,  798,  799,  702,  701,  800,
	  702,  701,  801,  702,  701,  802,  702,  701,  803,  702,  701,  775,
	  702,  701,  804,  805,  702,  701,  806,  702,  701,  807,  702,  701,
	  808,  702,  701,  809,  702,  701,  810,  702,  701,  811,  702,  701,
	  812,  702,  701,  813,  702,  701,  814,  702,  701,  815,  702,  701,
	  816,  702,  701,  817,  702,  701,  818,  702,  701,  819,  702,  701,
	  702,  820,  701,  821,  702,  701,  822,  702,  701,  823,  702,  701,
	  824,  702,  701,  825,  702,  701,  826,  702,  701,  827,  702,  701,
	  828,  702,  701,  829,  702,  701,  830,  702,  701,  831,  702,  701,
	  832,  702,  701,  833,  702,  701,  834,  702,  701,  835,  702,  701,
	  775,  702,  701,  836,  702,  701,  837,  702,  701,  838,  702,  701,
	  839,  702,  701,  840,  702,  701,  841,  702,  701,  842,  702,  701,
	  843,  702,  701,  844,  702,  701,  845,  702,  701,  846,  702,  701,
	  748,  702,  701,  847,  702,  701,  848,  702,  701,  849,  702,  701,
	  850,  702,  701,  851,  702,  701,  852,  702,  701,  853,  702,  701,
	  854,  702,  701,  855,  702,  701,  856,  702,  701,  857,  702,  701,
	  858,  702,  701,  859,  702,  701,  860,  702,  701,  861,  702,  701,
	  862,  702,  701,  863,  702,  701,  759,  702,  701,  702,  864,  701,
	  702,  865,  701,  702,  866,  701,  702,  867,  701,  702,  868,  701,
	  702,  869,  701,  702,  870,  701,  702,  871,  701,  702,  872,  701,
	  702,  873,  701,  702,  874,  701,  702,  875,  701,  702,  876,  701,
	  702,  877,  701,  878,  879,    0,  880,    0,  881,    0,  882,    0,
	  883,    0,  884,    0,  885,    0,  300,    0,  886,  887,    0,  888,
	    0,  889,    0,  890,    0,  891,    0,  892,    0,  893,    0,  894,
	    0,  895,    0,  896,    0,  897,    0,  898,    0,  899,    0,  900,
	    0,  901,    0,  902,    0,  903,    0,  904,    0,  905,    0,  906,
	    0,  907,    0,  908,    0,  909,    0,  910,    0,  911,    0,  912,
	    0,  913,    0,  914,    0,  915,    0,  916,    0,  917,    0,  884,
	    0,  918,    0,  919,    0,  920,    0,  921,    0,  922,    0,  923,
	    0,  924,    0,  925,    0,  926,    0,  927,    0,  928,  929,    0,
	  930,    0,  641,    0,  931,    0,  640,    0,  932,    0,  933,    0,
	  934,    0,  935,    0,  936,    0,  937,    0,  938,    0,  939,    0,
	  940,    0,  941,    0,  942,    0,  943,    0,  944,    0,  945,    0,
	  946,    0,  947,    0,  948,    0,  429,    0,  949,    0,    3,    0,
	  950,    0
	};
}

private static final short _lexer_indicies[] = init__lexer_indicies_0();


private static short[] init__lexer_trans_targs_0()
{
	return new short [] {
	    0,    2,  869,   10,   10,   11,   21,   23,    7,   37,   40,    3,
	   46,    7,   56,  355,  526,  548,  796,  851,    4,    5,    6,    8,
	    9,   10,   22,    9,   10,   22,   12,   13,   14,   15,   14,   14,
	   15,   14,   16,   16,   16,   17,   16,   16,   16,   17,   18,   19,
	   20,   10,   20,   21,   10,   22,   24,   25,   26,   27,   28,   29,
	   30,   31,   32,   33,   34,   35,   36,  871,   38,   39,   10,   38,
	   37,   39,   40,   41,   42,   44,   45,   43,   41,   42,   43,   41,
	   44,    2,   45,   11,   21,   23,    7,   37,   40,   47,   48,   49,
	   50,   51,   52,   53,   54,   55,   57,   58,   62,   59,   60,   61,
	   63,   64,   65,   66,  234,   67,   68,   69,   70,   71,   72,   73,
	   74,   75,   76,   77,   76,   77,   78,   77,   10,  220,   83,   79,
	   85,   83,   95,  112,  126,  142,  152,  202,   80,   81,   82,   84,
	    2,   10,   10,   11,   21,   23,    7,   37,   40,   86,   87,   88,
	   89,   90,   91,   92,   93,   94,   96,   97,  101,   98,   99,  100,
	  102,  103,  104,  105,  106,  107,  108,  109,  110,  111,  113,  114,
	  115,  116,  117,  118,  119,  120,  121,  122,  123,  124,  125,  127,
	  131,  128,  129,  130,  132,  133,  134,  135,  136,  137,  138,  139,
	  140,  141,  143,  144,  145,  146,  147,  148,  149,  150,  151,  153,
	  158,  154,  155,  156,  157,  159,  190,  160,  161,  162,  163,  164,
	  165,  166,  167,  168,  169,  170,  171,  172,  173,  174,  175,  176,
	  177,  178,  179,  180,  181,  182,  183,  184,  185,  186,  187,  188,
	  189,  191,  192,  193,  194,  195,  196,  197,  198,  199,  200,  201,
	  203,  204,  205,  206,  207,  208,  209,  210,  211,  212,  213,  214,
	  215,  216,  217,  218,  219,  221,  222,  223,  224,  225,  226,  227,
	  228,  229,  230,  231,  232,  233,   10,  235,  236,  237,  238,  239,
	  240,  241,  242,  243,  242,  243,  244,  243,   10,  341,  249,  245,
	  250,  249,  260,  266,  283,  299,  309,  323,  246,  247,  248,   84,
	  251,  252,  253,  254,  255,  256,  257,  258,  259,  261,  262,  263,
	  264,  265,  267,  268,  269,  270,  271,  272,  273,  274,  275,  276,
	  277,  278,  279,  280,  281,  282,  284,  288,  285,  286,  287,  289,
	  290,  291,  292,  293,  294,  295,  296,  297,  298,  300,  301,  302,
	  303,  304,  305,  306,  307,  308,  310,  311,  312,  313,  314,  315,
	  316,  317,  318,  319,  320,  321,  322,  324,  325,  326,  327,  328,
	  329,  330,  331,  332,  333,  334,  335,  336,  337,  338,  339,  340,
	  342,  343,  344,  345,  346,  347,  348,  349,  350,  351,  352,  353,
	  354,   10,  356,  357,  358,  359,  360,  361,  362,  363,  364,  365,
	  366,  367,  368,  369,  370,  371,  372,  373,  374,  373,  374,  375,
	  374,   10,  512,  376,  395,  407,  423,  442,  494,  377,  378,  379,
	  380,  381,  382,  391,  383,  384,  385,  386,  387,  388,  389,  390,
	   84,  392,  393,  394,  396,  397,  398,  399,  400,  401,  402,  403,
	  404,  405,  406,  408,  409,  410,  411,  417,  412,  413,  414,  415,
	  416,  418,  419,  420,  421,  422,  424,  431,  425,  426,  427,  428,
	  429,  430,  432,  433,  434,  435,  436,  437,  438,  439,  440,  441,
	  443,  448,  444,  445,  446,  447,  449,  480,  450,  451,  452,  453,
	  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,  481,  482,  483,  484,  485,  486,  487,  488,  489,  490,
	  491,  492,  493,  495,  496,  497,  498,  499,  500,  501,  502,  503,
	  504,  505,  506,  507,  508,  509,  510,  511,  513,  514,  515,  516,
	  517,  518,  519,  520,  521,  522,  523,  524,  525,   10,  527,  531,
	  528,  529,  530,  532,  533,  534,  540,  535,  536,  537,  538,  539,
	  541,  542,  543,  544,  545,  546,  547,  549,  560,  550,  551,  552,
	  553,  554,  555,  556,  557,  558,  559,  561,  562,  563,  564,  565,
	  566,  567,  568,  569,  570,  623,  571,  572,  573,  574,  573,  574,
	  575,  574,   10,  576,  593,  605,  577,  578,  579,  580,  581,  582,
	  583,  584,  585,  586,  587,  588,  589,  590,  591,  592,   84,  594,
	  595,  596,  597,  598,  599,  600,  601,  602,  603,  604,  606,  607,
	  608,  609,  610,  611,  612,  613,  614,  615,  616,  617,  618,  619,
	  620,  621,  622,  624,  625,  624,  625,  626,  625,   10,  782,  631,
	  627,  632,  631,  642,  665,  677,  697,  714,  764,  628,  629,  630,
	   84,  633,  634,  635,  636,  637,  638,  639,  640,  641,  643,  644,
	  648,  645,  646,  647,  649,  650,  651,  652,  661,  653,  654,  655,
	  656,  657,  658,  659,  660,  662,  663,  664,  666,  667,  668,  669,
	  670,  671,  672,  673,  674,  675,  676,  678,  682,  679,  680,  681,
	  683,  684,  685,  691,  686,  687,  688,  689,  690,  692,  693,  694,
	  695,  696,  698,  705,  699,  700,  701,  702,  703,  704,  706,  707,
	  708,  709,  710,  711,  712,  713,  715,  720,  716,  717,  718,  719,
	  721,  752,  722,  723,  724,  725,  726,  727,  728,  729,  730,  731,
	  732,  733,  734,  735,  736,  737,  738,  739,  740,  741,  742,  743,
	  744,  745,  746,  747,  748,  749,  750,  751,  753,  754,  755,  756,
	  757,  758,  759,  760,  761,  762,  763,  765,  766,  767,  768,  769,
	  770,  771,  772,  773,  774,  775,  776,  777,  778,  779,  780,  781,
	  783,  784,  785,  786,  787,  788,  789,  790,  791,  792,  793,  794,
	  795,   10,  797,  804,  798,  799,  800,  801,  802,  803,  805,  836,
	  806,  807,  808,  809,  810,  811,  812,  813,  814,  815,  816,  817,
	  818,  819,  820,  821,  822,  823,  824,  825,  826,  827,  828,  829,
	  830,  831,  832,  833,  834,  835,  837,  838,  839,  840,  841,  842,
	  843,  844,  845,  846,  847,  849,  848,  850,  852,  853,  854,  855,
	  856,  857,  858,  859,  860,  861,  862,  863,  864,  865,  866,  867,
	  868,  870,    0
	};
}

private static final short _lexer_trans_targs[] = init__lexer_trans_targs_0();


private static short[] init__lexer_trans_actions_0()
{
	return new short [] {
	   43,   29,    0,    0,   54,    3,    1,    0,   29,    1,   35,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	   57,  149,  126,    0,  110,   23,    0,    0,    7,  139,   48,    0,
	  102,    9,    5,   45,  134,   45,    0,   33,  122,   33,   33,    0,
	   11,  106,    0,    0,  114,   25,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,   27,  118,   27,
	   51,    0,    0,    0,   37,   37,   54,   37,   87,    0,    0,   39,
	    0,   96,    0,   93,   90,   41,   96,   90,   99,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,   57,  144,    0,   54,   84,    0,   72,   33,   84,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,   15,
	   63,   31,  130,   60,   57,   31,   63,   57,   66,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    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,   57,  144,    0,   54,   84,    0,   78,   33,   84,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,   19,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,   19,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,   57,  144,    0,   54,   84,
	    0,   69,   33,    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,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    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,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,   57,  144,    0,   54,
	   84,    0,   81,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,   21,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,   57,  144,    0,   54,   84,    0,   75,   33,   84,
	    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,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    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,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0
	};
}

private static final short _lexer_trans_actions[] = init__lexer_trans_actions_0();


private static short[] init__lexer_eof_actions_0()
{
	return new short [] {
	    0,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
	   43,   43,   43,   43,   43,   43,   43,   43
	};
}

private static final short _lexer_eof_actions[] = init__lexer_eof_actions_0();


static final int lexer_start = 1;
static final int lexer_first_final = 871;

static final int lexer_en_main = 1;


// line 159 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"

  public void scan(String source)  {
    String input = source + "\n%_FEATURE_END_%";
    byte[] data = null;
    try {
      data = input.getBytes("UTF-8");
    } catch(UnsupportedEncodingException e) {
      throw new RuntimeException(e);
    }
    int cs, p = 0, pe = data.length;
    int eof = pe;

    int lineNumber = 1;
    int lastNewline = 0;

    int contentStart = -1;
    int currentLine = -1;
    int docstringContentTypeStart = -1;
    int docstringContentTypeEnd = -1;
    int startCol = -1;
    int nextKeywordStart = -1;
    int keywordStart = -1;
    String keyword = null;
    List currentRow = null;

    
// line 1047 "java/src/main/java/gherkin/lexer/i18n/SR_CYRL.java"
	{
	cs = lexer_start;
	}

// line 185 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
    
// line 1054 "java/src/main/java/gherkin/lexer/i18n/SR_CYRL.java"
	{
	int _klen;
	int _trans = 0;
	int _acts;
	int _nacts;
	int _keys;
	int _goto_targ = 0;

	_goto: while (true) {
	switch ( _goto_targ ) {
	case 0:
	if ( p == pe ) {
		_goto_targ = 4;
		continue _goto;
	}
	if ( cs == 0 ) {
		_goto_targ = 5;
		continue _goto;
	}
case 1:
	_match: do {
	_keys = _lexer_key_offsets[cs];
	_trans = _lexer_index_offsets[cs];
	_klen = _lexer_single_lengths[cs];
	if ( _klen > 0 ) {
		int _lower = _keys;
		int _mid;
		int _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;
			}
		}
		_keys += _klen;
		_trans += _klen;
	}

	_klen = _lexer_range_lengths[cs];
	if ( _klen > 0 ) {
		int _lower = _keys;
		int _mid;
		int _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;
			}
		}
		_trans += _klen;
	}
	} while (false);

	_trans = _lexer_indicies[_trans];
	cs = _lexer_trans_targs[_trans];

	if ( _lexer_trans_actions[_trans] != 0 ) {
		_acts = _lexer_trans_actions[_trans];
		_nacts = (int) _lexer_actions[_acts++];
		while ( _nacts-- > 0 )
	{
			switch ( _lexer_actions[_acts++] )
			{
	case 0:
// line 16 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
	{
      contentStart = p;
      currentLine = lineNumber;
      if(keyword != null) {
        startCol = p - lastNewline - (keyword.length() + 1);
      }
    }
	break;
	case 1:
// line 24 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
	{
      currentLine = lineNumber;
      startCol = p - lastNewline;
    }
	break;
	case 2:
// line 29 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
	{
      contentStart = p;
    }
	break;
	case 3:
// line 33 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
	{
      docstringContentTypeStart = p;
    }
	break;
	case 4:
// line 37 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
	{
      docstringContentTypeEnd = p;
    }
	break;
	case 5:
// line 41 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
	{
      String con = unindent(startCol, substring(data, contentStart, nextKeywordStart-1).replaceFirst("(\\r?\\n)?([\\t ])*\\Z", "").replaceAll("\\\\\"\\\\\"\\\\\"", "\"\"\""));
      String conType = substring(data, docstringContentTypeStart, docstringContentTypeEnd).trim();
      listener.docString(conType, con, currentLine);
    }
	break;
	case 6:
// line 47 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
	{
      String[] nameDescription = nameAndUnindentedDescription(startCol, keywordContent(data, p, eof, nextKeywordStart, contentStart));
      listener.feature(keyword, nameDescription[0], nameDescription[1], currentLine);
      if(nextKeywordStart != -1) p = nextKeywordStart - 1;
      nextKeywordStart = -1;
    }
	break;
	case 7:
// line 54 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
	{
      String[] nameDescription = nameAndUnindentedDescription(startCol, keywordContent(data, p, eof, nextKeywordStart, contentStart));
      listener.background(keyword, nameDescription[0], nameDescription[1], currentLine);
      if(nextKeywordStart != -1) p = nextKeywordStart - 1;
      nextKeywordStart = -1;
    }
	break;
	case 8:
// line 61 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
	{
      String[] nameDescription = nameAndUnindentedDescription(startCol, keywordContent(data, p, eof, nextKeywordStart, contentStart));
      listener.scenario(keyword, nameDescription[0], nameDescription[1], currentLine);
      if(nextKeywordStart != -1) p = nextKeywordStart - 1;
      nextKeywordStart = -1;
    }
	break;
	case 9:
// line 68 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
	{
      String[] nameDescription = nameAndUnindentedDescription(startCol, keywordContent(data, p, eof, nextKeywordStart, contentStart));
      listener.scenarioOutline(keyword, nameDescription[0], nameDescription[1], currentLine);
      if(nextKeywordStart != -1) p = nextKeywordStart - 1;
      nextKeywordStart = -1;
    }
	break;
	case 10:
// line 75 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
	{
      String[] nameDescription = nameAndUnindentedDescription(startCol, keywordContent(data, p, eof, nextKeywordStart, contentStart));
      listener.examples(keyword, nameDescription[0], nameDescription[1], currentLine);
      if(nextKeywordStart != -1) p = nextKeywordStart - 1;
      nextKeywordStart = -1;
    }
	break;
	case 11:
// line 82 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
	{
      listener.step(keyword, substring(data, contentStart, p).trim(), currentLine);
    }
	break;
	case 12:
// line 86 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
	{
      listener.comment(substring(data, contentStart, p).trim(), lineNumber);
      keywordStart = -1;
    }
	break;
	case 13:
// line 91 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
	{
      listener.tag(substring(data, contentStart, p).trim(), currentLine);
      keywordStart = -1;
    }
	break;
	case 14:
// line 96 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
	{
      lineNumber++;
    }
	break;
	case 15:
// line 100 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
	{
      lastNewline = p + 1;
    }
	break;
	case 16:
// line 104 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
	{
      if(keywordStart == -1) keywordStart = p;
    }
	break;
	case 17:
// line 108 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
	{
      keyword = substring(data, keywordStart, p).replaceFirst(":$","");
      keywordStart = -1;
    }
	break;
	case 18:
// line 113 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
	{
      nextKeywordStart = p;
    }
	break;
	case 19:
// line 117 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
	{
      p = p - 1;
      currentRow = new ArrayList();
      currentLine = lineNumber;
    }
	break;
	case 20:
// line 123 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
	{
      contentStart = p;
    }
	break;
	case 21:
// line 127 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
	{
      String con = substring(data, contentStart, p).trim();
      currentRow.add(con
        .replaceAll("\\\\\\|", "|")
        .replaceAll("\\\\n", "\n")
        .replaceAll("\\\\\\\\", "\\\\")
      );
    }
	break;
	case 22:
// line 136 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
	{
      listener.row(currentRow, currentLine);
    }
	break;
	case 23:
// line 140 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
	{
      if(cs < lexer_first_final) {
        String content = currentLineContent(data, lastNewline);
        throw new LexingError("Lexing error on line " + lineNumber + ": '" + content + "'. See http://wiki.github.com/cucumber/gherkin/lexingerror for more information.");
      } else {
        listener.eof();
      }
    }
	break;
// line 1315 "java/src/main/java/gherkin/lexer/i18n/SR_CYRL.java"
			}
		}
	}

case 2:
	if ( cs == 0 ) {
		_goto_targ = 5;
		continue _goto;
	}
	if ( ++p != pe ) {
		_goto_targ = 1;
		continue _goto;
	}
case 4:
	if ( p == eof )
	{
	int __acts = _lexer_eof_actions[cs];
	int __nacts = (int) _lexer_actions[__acts++];
	while ( __nacts-- > 0 ) {
		switch ( _lexer_actions[__acts++] ) {
	case 23:
// line 140 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
	{
      if(cs < lexer_first_final) {
        String content = currentLineContent(data, lastNewline);
        throw new LexingError("Lexing error on line " + lineNumber + ": '" + content + "'. See http://wiki.github.com/cucumber/gherkin/lexingerror for more information.");
      } else {
        listener.eof();
      }
    }
	break;
// line 1347 "java/src/main/java/gherkin/lexer/i18n/SR_CYRL.java"
		}
	}
	}

case 5:
	}
	break; }
	}

// line 186 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/sr_cyrl.java.rl"
  }

  private String keywordContent(byte[] data, int p, int eof, int nextKeywordStart, int contentStart) {
    int endPoint = (nextKeywordStart == -1 || (p == eof)) ? p : nextKeywordStart;
    return substring(data, contentStart, endPoint);
  }

  private String[] nameAndUnindentedDescription(int startCol, String text) {
    String[] lines = text.split("\n");
    String name = lines.length > 0 ? lines[0].trim() : "";
    StringBuffer description = new StringBuffer();
    for(int i = 1; i < lines.length; i++) {
      description.append(lines[i]);
      description.append("\n");
    }
    return new String[]{name, unindent(startCol+2, description.toString()).replaceAll("\\s+$", "")};
  }

  private String unindent(int startCol, String text) {
    return Pattern.compile("^[\t ]{0," + startCol + "}", Pattern.MULTILINE).matcher(text).replaceAll("");
  }

  private String currentLineContent(byte[] data, int lastNewline) {
    return substring(data, lastNewline, data.length).trim();
  }

  private String substring(byte[] data, int start, int end) {
    try {
      return new String(data, start, end-start, "utf-8");
    } catch(java.io.UnsupportedEncodingException e) {
      throw new RuntimeException("Internal error", e);
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy