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

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

There is a newer version: 2.12.2
Show newest version

// line 1 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/en_scouse.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 EN_SCOUSE implements Lexer {
  
// line 150 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/en_scouse.java.rl"


  private final Listener listener;

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

  
// line 26 "java/src/main/java/gherkin/lexer/i18n/EN_SCOUSE.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,   20,   21,   22,   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,   93,   95,   97,  102,
	  109,  114,  115,  116,  117,  120,  121,  122,  123,  124,  125,  126,
	  127,  128,  129,  130,  131,  132,  133,  134,  135,  136,  137,  138,
	  139,  140,  141,  142,  143,  144,  145,  146,  147,  148,  149,  150,
	  151,  152,  153,  154,  155,  171,  173,  175,  177,  179,  181,  183,
	  185,  187,  189,  191,  193,  195,  197,  199,  201,  220,  221,  222,
	  223,  224,  225,  226,  227,  228,  229,  230,  237,  239,  241,  243,
	  245,  247,  249,  251,  252,  253,  254,  255,  256,  257,  258,  259,
	  260,  272,  274,  276,  278,  280,  282,  284,  286,  288,  290,  292,
	  294,  296,  298,  300,  302,  304,  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,  358,  360,  362,  364,
	  366,  368,  370,  372,  374,  376,  378,  380,  382,  384,  386,  388,
	  390,  392,  394,  396,  398,  400,  402,  404,  406,  408,  410,  412,
	  414,  416,  418,  419,  420,  421,  422,  423,  424,  425,  426,  427,
	  428,  429,  430,  431,  432,  433,  434,  435,  436,  437,  438,  439,
	  440,  441,  457,  459,  461,  463,  465,  467,  469,  471,  473,  475,
	  477,  479,  481,  483,  485,  487,  489,  491,  493,  497,  499,  501,
	  503,  505,  507,  509,  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,  618,  620,  622,
	  624,  626,  628,  630,  632,  634,  636,  638,  640,  642,  644,  646,
	  648,  650,  652,  654,  657,  659,  661,  663,  665,  667,  669,  671,
	  673,  675,  677,  679,  681,  683,  685,  687,  689,  691,  693,  695,
	  697,  699,  700,  701,  702,  703,  704,  705,  706,  707,  708,  709,
	  710,  711,  712,  713,  729,  731,  733,  735,  737,  739,  741,  743,
	  745,  747,  749,  751,  753,  755,  757,  759,  761,  763,  765,  768,
	  770,  772,  774,  776,  778,  780,  782,  784,  786,  788,  790,  792,
	  794,  796,  798,  800,  802,  804,  806,  808,  810,  812,  814,  816,
	  818,  820,  822,  824,  826,  828,  830,  832,  834,  836,  838,  840,
	  842,  844,  846,  848,  850,  852,  854,  856,  858,  860,  862,  864,
	  866,  868,  871,  873,  875,  877,  879,  881,  883,  885,  887,  889,
	  891,  893,  895,  897,  899,  901,  903,  905,  907,  909,  911,  912,
	  913,  914,  915,  916,  917,  918,  919,  920,  921,  923,  924,  925,
	  926,  927,  928,  929,  930,  931,  932,  933,  934,  935,  936,  937,
	  938,  939,  940,  941,  942,  943,  947,  953,  956,  958,  964,  983,
	  985,  987,  989,  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, 1075, 1077, 1079, 1081,
	 1083, 1085, 1087, 1089, 1091, 1093, 1095, 1097, 1099, 1101, 1103, 1105,
	 1107, 1109, 1111, 1114, 1116, 1118, 1120, 1122, 1124, 1126, 1128, 1130,
	 1132, 1134, 1136, 1138, 1140, 1142, 1144, 1146, 1148, 1150, 1152, 1154
	};
}

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


private static byte[] init__lexer_trans_keys_0()
{
	return new byte [] {
	  -17,   10,   32,   34,   35,   37,   42,   64,   65,   66,   68,   69,
	   70,   71,   84,   87,   89,  124,    9,   13,  -69,  -65,   10,   32,
	   34,   35,   37,   42,   64,   65,   66,   68,   69,   70,   71,   84,
	   87,   89,  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,   32,   10,   13,   10,
	   13,   13,   32,   64,    9,   10,    9,   10,   13,   32,   64,   11,
	   12,   10,   32,   64,    9,   13,  110,  117,  104,  101,  105,  117,
	  110,   32,  121,  111,  117,  115,  101,   32,  103,  111,  116,  116,
	   97,  115,   32,  105,  115,   32,  119,  104,   97,  116,   32,  119,
	  101,  110,  116,   32,  100,  111,  119,  110,   58,   10,   10,   10,
	   32,   35,   37,   42,   64,   65,   66,   68,   70,   71,   84,   87,
	   89,    9,   13,   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,   10,   32,   10,   32,   34,
	   35,   37,   42,   64,   65,   66,   68,   69,   70,   71,   84,   87,
	   89,  124,    9,   13,  120,   97,  109,  112,  108,  101,  115,   58,
	   10,   10,   10,   32,   35,   70,  124,    9,   13,   10,  101,   10,
	   97,   10,  116,   10,  117,   10,  114,   10,  101,   10,   58,  101,
	   97,  116,  117,  114,  101,   58,   10,   10,   10,   32,   35,   37,
	   64,   68,   69,   70,   84,   87,    9,   13,   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,
	   10,  105,   10,  115,   10,   32,   10,  105,   10,  115,   10,   32,
	   10,  119,   10,  104,   10,   97,   10,  116,   10,   32,   10,  119,
	   10,  101,   10,  110,   10,  116,   10,   32,   10,  100,   10,  111,
	   10,  119,   10,  110,   10,   58,   10,  120,   10,   97,   10,  109,
	   10,  112,   10,  108,   10,  101,   10,  115,   10,  101,   10,   97,
	   10,  116,   10,  117,   10,  114,   10,  101,   10,  104,   10,  101,
	   10,   32,   10,  116,   10,  104,   10,  105,   10,  110,   10,  103,
	   10,   32,   10,  111,   10,  102,   10,   32,   10,  105,   10,  116,
	   10,   32,   10,  105,   10,  104,   10,   97,   10,  114,   10,  114,
	   10,  105,   10,  109,   10,  101,   10,   97,   10,  110,  105,  118,
	  117,  104,  101,   32,  116,  104,  105,  110,  103,   32,  111,  102,
	   32,  105,  116,   32,  105,  115,   58,   10,   10,   10,   32,   35,
	   37,   42,   64,   65,   66,   68,   70,   71,   84,   87,   89,    9,
	   13,   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,   10,   32,   10,  110,   10,  117,   10,
	  104,   10,  101,  105,  117,   10,  110,   10,   32,   10,  121,   10,
	  111,   10,  117,   10,  115,   10,  101,   10,   32,   10,  103,   10,
	  111,   10,  116,   10,  116,   10,   97,   10,  115,   10,   32,   10,
	  105,   10,  115,   10,   32,   10,  119,   10,  104,   10,   97,   10,
	  116,   10,   32,   10,  119,   10,  101,   10,  110,   10,  116,   10,
	   32,   10,  100,   10,  111,   10,  119,   10,  110,   10,   58,   10,
	  101,   10,   97,   10,  116,   10,  117,   10,  114,   10,  101,   10,
	  105,   10,  118,   10,  117,   10,  104,   10,  101,   10,   32,   10,
	  116,   10,  104,   10,  105,   10,  110,   10,  103,   10,   32,   10,
	  111,   10,  102,   10,   32,   10,  105,   10,  116,   10,   32,   10,
	  105,   10,  115,   10,  104,  117,   10,   97,   10,  114,   10,  114,
	   10,  105,   10,  109,   10,  101,   10,   97,   10,  110,   10,  111,
	   10,  117,   10,  115,   10,  101,   10,   32,   10,  107,   10,  110,
	   10,  111,   10,  119,   10,   32,   10,  108,  119,   10,  105,   10,
	  107,   10,  101,   10,   32,   10,  119,   10,  104,   10,  101,   10,
	  104,   10,  101,   10,  110,   10,   32,   10,  121,   10,  111,   10,
	  117,   10,  115,   10,  101,   10,   32,   10,  103,   10,  111,   10,
	  116,  104,  117,   97,  114,  114,  105,  109,  101,   97,  110,   32,
	  105,  115,   58,   10,   10,   10,   32,   35,   37,   42,   64,   65,
	   66,   68,   70,   71,   84,   87,   89,    9,   13,   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,   10,   32,   10,  110,   10,  117,   10,  104,   10,  101,  117,
	   10,  110,   10,   32,   10,  121,   10,  111,   10,  117,   10,  115,
	   10,  101,   10,   32,   10,  103,   10,  111,   10,  116,   10,  116,
	   10,   97,   10,  101,   10,   97,   10,  116,   10,  117,   10,  114,
	   10,  101,   10,   58,   10,  105,   10,  118,   10,  117,   10,  104,
	   10,  101,   10,   32,   10,  116,   10,  104,   10,  105,   10,  110,
	   10,  103,   10,   32,   10,  111,   10,  102,   10,   32,   10,  105,
	   10,  116,   10,   32,   10,  105,   10,  115,   10,  111,   10,  117,
	   10,  115,   10,  101,   10,   32,   10,  107,   10,  110,   10,  111,
	   10,  119,   10,   32,   10,  108,  119,   10,  105,   10,  107,   10,
	  101,   10,   32,   10,  119,   10,  104,   10,  101,   10,  104,   10,
	  101,   10,  110,   10,   32,   10,  121,   10,  111,   10,  117,   10,
	  115,   10,  101,   10,   32,   10,  103,   10,  111,   10,  116,  111,
	  117,  115,  101,   32,  107,  110,  111,  119,   32,  108,  119,  105,
	  107,  101,   32,  119,  104,  101,  104,  101,  110,   32,  121,  111,
	  117,  115,  101,   32,  103,  111,  116,   32,  124,    9,   13,   10,
	   32,   92,  124,    9,   13,   10,   92,  124,   10,   92,   10,   32,
	   92,  124,    9,   13,   10,   32,   34,   35,   37,   42,   64,   65,
	   66,   68,   69,   70,   71,   84,   87,   89,  124,    9,   13,   10,
	  110,   10,  117,   10,  104,   10,  101,  117,   10,  110,   10,   32,
	   10,  121,   10,  111,   10,  117,   10,  115,   10,  101,   10,   32,
	   10,  103,   10,  111,   10,  116,   10,  116,   10,   97,   10,  101,
	   10,   97,   10,  116,   10,  117,   10,  114,   10,  101,   10,   58,
	   10,  105,   10,  118,   10,  117,   10,  104,   10,  101,   10,   32,
	   10,  116,   10,  104,   10,  105,   10,  110,   10,  103,   10,   32,
	   10,  111,   10,  102,   10,   32,   10,  105,   10,  116,   10,   32,
	   10,  105,   10,  115,   10,  104,  117,   10,   97,   10,  114,   10,
	  114,   10,  105,   10,  109,   10,  101,   10,   97,   10,  110,   10,
	  111,   10,  117,   10,  115,   10,  101,   10,   32,   10,  107,   10,
	  110,   10,  111,   10,  119,   10,   32,   10,  108,  119,   10,  105,
	   10,  107,   10,  101,   10,   32,   10,  119,   10,  104,   10,  101,
	   10,  104,   10,  101,   10,  110,   10,   32,   10,  121,   10,  111,
	   10,  117,   10,  115,   10,  101,   10,   32,   10,  103,   10,  111,
	   10,  116,    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,   18,    1,    1,   17,    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,    1,    2,    2,    3,    5,
	    3,    1,    1,    1,    3,    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,   14,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,   17,    1,    1,    1,
	    1,    1,    1,    1,    1,    1,    1,    5,    2,    2,    2,    2,
	    2,    2,    2,    1,    1,    1,    1,    1,    1,    1,    1,    1,
	   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,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
	    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
	    1,   14,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    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,    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,    3,    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,   14,    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,    3,    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,    2,    1,    1,    1,
	    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
	    1,    1,    1,    1,    1,    2,    4,    3,    2,    4,   17,    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,    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,    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,    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,    0,    0,    0,    1,    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,    0,    0,    0,    0,
	    0,    0,    0,    0,    1,    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,    1,    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,    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,    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,    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,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    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,   20,   22,   24,   43,   45,   47,   50,   53,   58,   63,
	   68,   73,   77,   81,   84,   86,   88,   90,   92,   94,   96,   98,
	  100,  102,  104,  106,  108,  110,  112,  114,  116,  119,  122,  127,
	  134,  139,  141,  143,  145,  149,  151,  153,  155,  157,  159,  161,
	  163,  165,  167,  169,  171,  173,  175,  177,  179,  181,  183,  185,
	  187,  189,  191,  193,  195,  197,  199,  201,  203,  205,  207,  209,
	  211,  213,  215,  217,  219,  235,  238,  241,  244,  247,  250,  253,
	  256,  259,  262,  265,  268,  271,  274,  277,  280,  299,  301,  303,
	  305,  307,  309,  311,  313,  315,  317,  319,  326,  329,  332,  335,
	  338,  341,  344,  347,  349,  351,  353,  355,  357,  359,  361,  363,
	  365,  377,  380,  383,  386,  389,  392,  395,  398,  401,  404,  407,
	  410,  413,  416,  419,  422,  425,  428,  431,  434,  437,  440,  443,
	  446,  449,  452,  455,  458,  461,  464,  467,  470,  473,  476,  479,
	  482,  485,  488,  491,  494,  497,  500,  503,  506,  509,  512,  515,
	  518,  521,  524,  527,  530,  533,  536,  539,  542,  545,  548,  551,
	  554,  557,  560,  563,  566,  569,  572,  575,  578,  581,  584,  587,
	  590,  593,  596,  598,  600,  602,  604,  606,  608,  610,  612,  614,
	  616,  618,  620,  622,  624,  626,  628,  630,  632,  634,  636,  638,
	  640,  642,  658,  661,  664,  667,  670,  673,  676,  679,  682,  685,
	  688,  691,  694,  697,  700,  703,  706,  709,  712,  717,  720,  723,
	  726,  729,  732,  735,  738,  741,  744,  747,  750,  753,  756,  759,
	  762,  765,  768,  771,  774,  777,  780,  783,  786,  789,  792,  795,
	  798,  801,  804,  807,  810,  813,  816,  819,  822,  825,  828,  831,
	  834,  837,  840,  843,  846,  849,  852,  855,  858,  861,  864,  867,
	  870,  873,  876,  879,  882,  885,  888,  891,  894,  898,  901,  904,
	  907,  910,  913,  916,  919,  922,  925,  928,  931,  934,  937,  940,
	  943,  946,  949,  952,  956,  959,  962,  965,  968,  971,  974,  977,
	  980,  983,  986,  989,  992,  995,  998, 1001, 1004, 1007, 1010, 1013,
	 1016, 1019, 1021, 1023, 1025, 1027, 1029, 1031, 1033, 1035, 1037, 1039,
	 1041, 1043, 1045, 1047, 1063, 1066, 1069, 1072, 1075, 1078, 1081, 1084,
	 1087, 1090, 1093, 1096, 1099, 1102, 1105, 1108, 1111, 1114, 1117, 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, 1275, 1278, 1281, 1284, 1287, 1290, 1293, 1296, 1299, 1302,
	 1305, 1308, 1311, 1314, 1317, 1320, 1323, 1326, 1329, 1332, 1335, 1337,
	 1339, 1341, 1343, 1345, 1347, 1349, 1351, 1353, 1355, 1358, 1360, 1362,
	 1364, 1366, 1368, 1370, 1372, 1374, 1376, 1378, 1380, 1382, 1384, 1386,
	 1388, 1390, 1392, 1394, 1396, 1398, 1402, 1408, 1412, 1415, 1421, 1440,
	 1443, 1446, 1449, 1453, 1456, 1459, 1462, 1465, 1468, 1471, 1474, 1477,
	 1480, 1483, 1486, 1489, 1492, 1495, 1498, 1501, 1504, 1507, 1510, 1513,
	 1516, 1519, 1522, 1525, 1528, 1531, 1534, 1537, 1540, 1543, 1546, 1549,
	 1552, 1555, 1558, 1561, 1564, 1567, 1570, 1573, 1577, 1580, 1583, 1586,
	 1589, 1592, 1595, 1598, 1601, 1604, 1607, 1610, 1613, 1616, 1619, 1622,
	 1625, 1628, 1631, 1635, 1638, 1641, 1644, 1647, 1650, 1653, 1656, 1659,
	 1662, 1665, 1668, 1671, 1674, 1677, 1680, 1683, 1686, 1689, 1692, 1695
	};
}

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


private static short[] init__lexer_indicies_0()
{
	return new short [] {
	    1,    3,    2,    4,    5,    6,    7,    8,    9,   10,   11,   12,
	   13,   14,   15,   16,   17,   18,    2,    0,   19,    0,    2,    0,
	    3,    2,    4,    5,    6,    7,    8,    9,   10,   11,   12,   13,
	   14,   15,   16,   17,   18,    2,    0,   20,    0,   21,    0,   23,
	   24,   22,   26,   27,   25,   30,   29,   31,   29,   28,   34,   33,
	   35,   33,   32,   34,   33,   36,   33,   32,   34,   33,   37,   33,
	   32,   39,   38,   38,    0,    3,   40,   40,    0,   42,   43,   41,
	    3,    0,   44,    0,   45,    0,   46,    0,   47,    0,   48,    0,
	   49,    0,   50,    0,   51,    0,   52,    0,   53,    0,   54,    0,
	   55,    0,   56,    0,   57,    0,   58,    0,   60,   61,   59,   63,
	   64,   62,    0,    0,    0,    0,   65,   66,   67,   66,   66,   69,
	   68,   65,    3,   70,    8,   70,    0,   71,    0,   72,    0,   71,
	    0,   73,   74,   75,    0,   76,    0,   77,    0,   78,    0,   79,
	    0,   80,    0,   81,    0,   82,    0,   83,    0,   84,    0,   85,
	    0,   86,    0,   87,    0,   71,    0,   88,    0,   89,    0,   90,
	    0,   91,    0,   92,    0,   93,    0,   94,    0,   95,    0,   96,
	    0,   97,    0,   98,    0,   99,    0,  100,    0,  101,    0,  102,
	    0,  103,    0,  104,    0,  105,    0,  106,    0,  107,    0,  109,
	  108,  111,  110,  111,  112,  113,  114,  115,  113,  116,  117,  118,
	  119,  120,  121,  122,  123,  112,  110,  111,  124,  110,  111,  125,
	  110,  111,  126,  110,  111,  127,  110,  111,  128,  110,  111,  129,
	  110,  111,  130,  110,  111,  131,  110,  111,  132,  110,  111,  133,
	  110,  111,  134,  110,  111,  135,  110,  111,  136,  110,  111,  137,
	  110,  111,  138,  110,  140,  139,  141,  142,  143,  144,  145,  146,
	  147,  148,  149,  150,  151,  152,  153,  154,  155,  139,    0,  156,
	    0,  157,    0,  158,    0,  159,    0,  160,    0,  161,    0,  162,
	    0,  163,    0,  165,  164,  167,  166,  167,  168,  169,  170,  169,
	  168,  166,  167,  171,  166,  167,  172,  166,  167,  173,  166,  167,
	  174,  166,  167,  175,  166,  167,  176,  166,  167,  177,  166,  178,
	    0,  179,    0,  180,    0,  181,    0,  182,    0,  183,    0,  184,
	    0,  186,  185,  188,  187,  188,  189,  190,  191,  190,  192,  193,
	  194,  195,  196,  189,  187,  188,  197,  187,  188,  198,  187,  188,
	  199,  187,  188,  200,  187,  188,  201,  187,  188,  202,  187,  188,
	  203,  187,  188,  204,  187,  188,  205,  187,  188,  206,  187,  188,
	  207,  187,  188,  208,  187,  188,  209,  187,  188,  210,  187,  188,
	  211,  187,  188,  212,  187,  188,  213,  187,  188,  214,  187,  188,
	  215,  187,  188,  216,  187,  188,  217,  187,  188,  218,  187,  188,
	  219,  187,  188,  220,  187,  188,  221,  187,  188,  222,  187,  188,
	  223,  187,  188,  224,  187,  188,  225,  187,  188,  226,  187,  188,
	  227,  187,  188,  228,  187,  188,  229,  187,  188,  230,  187,  188,
	  231,  187,  188,  232,  187,  188,  233,  187,  188,  234,  187,  188,
	  235,  187,  188,  236,  187,  188,  237,  187,  188,  230,  187,  188,
	  238,  187,  188,  239,  187,  188,  240,  187,  188,  241,  187,  188,
	  242,  187,  188,  230,  187,  188,  243,  187,  188,  244,  187,  188,
	  245,  187,  188,  246,  187,  188,  247,  187,  188,  248,  187,  188,
	  249,  187,  188,  250,  187,  188,  251,  187,  188,  252,  187,  188,
	  253,  187,  188,  254,  187,  188,  255,  187,  188,  256,  187,  188,
	  257,  187,  188,  237,  187,  188,  258,  187,  188,  259,  187,  188,
	  260,  187,  188,  261,  187,  188,  262,  187,  188,  263,  187,  188,
	  264,  187,  188,  265,  187,  188,  256,  187,  266,    0,  267,    0,
	   75,    0,  268,    0,  269,    0,  270,    0,  271,    0,  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,  287,  286,  289,  288,  289,  290,  291,  292,  293,  291,
	  294,  295,  296,  297,  298,  299,  300,  301,  290,  288,  289,  302,
	  288,  289,  303,  288,  289,  304,  288,  289,  305,  288,  289,  306,
	  288,  289,  307,  288,  289,  308,  288,  289,  309,  288,  289,  310,
	  288,  289,  311,  288,  289,  312,  288,  289,  313,  288,  289,  314,
	  288,  289,  315,  288,  289,  316,  288,  289,  317,  288,  289,  318,
	  288,  289,  317,  288,  289,  319,  320,  321,  288,  289,  322,  288,
	  289,  323,  288,  289,  324,  288,  289,  325,  288,  289,  326,  288,
	  289,  327,  288,  289,  328,  288,  289,  329,  288,  289,  330,  288,
	  289,  331,  288,  289,  332,  288,  289,  333,  288,  289,  317,  288,
	  289,  334,  288,  289,  335,  288,  289,  336,  288,  289,  337,  288,
	  289,  338,  288,  289,  339,  288,  289,  340,  288,  289,  341,  288,
	  289,  342,  288,  289,  343,  288,  289,  344,  288,  289,  345,  288,
	  289,  346,  288,  289,  347,  288,  289,  348,  288,  289,  349,  288,
	  289,  350,  288,  289,  351,  288,  289,  352,  288,  289,  316,  288,
	  289,  353,  288,  289,  354,  288,  289,  355,  288,  289,  356,  288,
	  289,  357,  288,  289,  352,  288,  289,  358,  288,  289,  359,  288,
	  289,  321,  288,  289,  360,  288,  289,  361,  288,  289,  362,  288,
	  289,  363,  288,  289,  364,  288,  289,  365,  288,  289,  366,  288,
	  289,  367,  288,  289,  368,  288,  289,  369,  288,  289,  370,  288,
	  289,  371,  288,  289,  372,  288,  289,  373,  288,  289,  374,  288,
	  289,  375,  288,  289,  352,  288,  289,  376,  321,  288,  289,  377,
	  288,  289,  378,  288,  289,  379,  288,  289,  380,  288,  289,  381,
	  288,  289,  382,  288,  289,  383,  288,  289,  373,  288,  289,  384,
	  288,  289,  385,  288,  289,  386,  288,  289,  387,  288,  289,  388,
	  288,  289,  389,  288,  289,  390,  288,  289,  391,  288,  289,  392,
	  288,  289,  393,  288,  289,  394,  395,  288,  289,  396,  288,  289,
	  397,  288,  289,  398,  288,  289,  399,  288,  289,  400,  288,  289,
	  401,  288,  289,  321,  288,  289,  402,  288,  289,  403,  288,  289,
	  404,  288,  289,  405,  288,  289,  406,  288,  289,  407,  288,  289,
	  408,  288,  289,  409,  288,  289,  410,  288,  289,  411,  288,  289,
	  412,  288,  289,  413,  288,  289,  317,  288,  414,   75,    0,  415,
	    0,  416,    0,  417,    0,  418,    0,  419,    0,  420,    0,  421,
	    0,  422,    0,  423,    0,  424,    0,  425,    0,  426,    0,  428,
	  427,  430,  429,  430,  431,  432,  433,  434,  432,  435,  436,  437,
	  438,  439,  440,  441,  442,  431,  429,  430,  443,  429,  430,  444,
	  429,  430,  445,  429,  430,  446,  429,  430,  447,  429,  430,  448,
	  429,  430,  449,  429,  430,  450,  429,  430,  451,  429,  430,  452,
	  429,  430,  453,  429,  430,  454,  429,  430,  455,  429,  430,  456,
	  429,  430,  457,  429,  430,  458,  429,  430,  459,  429,  430,  458,
	  429,  430,  460,  461,  429,  430,  462,  429,  430,  463,  429,  430,
	  464,  429,  430,  465,  429,  430,  466,  429,  430,  467,  429,  430,
	  468,  429,  430,  469,  429,  430,  470,  429,  430,  471,  429,  430,
	  472,  429,  430,  473,  429,  430,  458,  429,  430,  474,  429,  430,
	  475,  429,  430,  476,  429,  430,  477,  429,  430,  478,  429,  430,
	  479,  429,  430,  457,  429,  430,  480,  429,  430,  481,  429,  430,
	  461,  429,  430,  482,  429,  430,  483,  429,  430,  484,  429,  430,
	  485,  429,  430,  486,  429,  430,  487,  429,  430,  488,  429,  430,
	  489,  429,  430,  490,  429,  430,  491,  429,  430,  492,  429,  430,
	  493,  429,  430,  494,  429,  430,  495,  429,  430,  496,  429,  430,
	  497,  429,  430,  479,  429,  430,  498,  429,  430,  499,  429,  430,
	  500,  429,  430,  501,  429,  430,  502,  429,  430,  503,  429,  430,
	  504,  429,  430,  505,  429,  430,  506,  429,  430,  507,  429,  430,
	  508,  509,  429,  430,  510,  429,  430,  511,  429,  430,  512,  429,
	  430,  513,  429,  430,  514,  429,  430,  515,  429,  430,  461,  429,
	  430,  516,  429,  430,  517,  429,  430,  518,  429,  430,  519,  429,
	  430,  520,  429,  430,  521,  429,  430,  522,  429,  430,  523,  429,
	  430,  524,  429,  430,  525,  429,  430,  526,  429,  430,  527,  429,
	  430,  458,  429,  528,    0,  529,    0,  530,    0,  531,    0,  532,
	    0,  533,    0,  534,    0,  535,    0,  536,    0,  537,    0,  538,
	  539,    0,  540,    0,  541,    0,  542,    0,  543,    0,  544,    0,
	  545,    0,   75,    0,  546,    0,  547,    0,  548,    0,  549,    0,
	  550,    0,  551,    0,  552,    0,  553,    0,  554,    0,  555,    0,
	  556,    0,  557,    0,   71,    0,  558,  559,  558,    0,  562,  561,
	  563,  564,  561,  560,    0,  566,  567,  565,    0,  566,  565,  562,
	  568,  566,  567,  568,  565,  562,  569,  570,  571,  572,  573,  574,
	  575,  576,  577,  578,  579,  580,  581,  582,  583,  584,  569,    0,
	  111,  585,  110,  111,  586,  110,  111,  585,  110,  111,  587,  588,
	  110,  111,  589,  110,  111,  590,  110,  111,  591,  110,  111,  592,
	  110,  111,  593,  110,  111,  594,  110,  111,  595,  110,  111,  596,
	  110,  111,  597,  110,  111,  598,  110,  111,  599,  110,  111,  600,
	  110,  111,  585,  110,  111,  601,  110,  111,  602,  110,  111,  603,
	  110,  111,  604,  110,  111,  605,  110,  111,  606,  110,  111,  138,
	  110,  111,  607,  110,  111,  608,  110,  111,  588,  110,  111,  609,
	  110,  111,  610,  110,  111,  611,  110,  111,  612,  110,  111,  613,
	  110,  111,  614,  110,  111,  615,  110,  111,  616,  110,  111,  617,
	  110,  111,  618,  110,  111,  619,  110,  111,  620,  110,  111,  621,
	  110,  111,  622,  110,  111,  623,  110,  111,  624,  110,  111,  606,
	  110,  111,  625,  588,  110,  111,  626,  110,  111,  627,  110,  111,
	  628,  110,  111,  629,  110,  111,  630,  110,  111,  631,  110,  111,
	  632,  110,  111,  622,  110,  111,  633,  110,  111,  634,  110,  111,
	  635,  110,  111,  636,  110,  111,  637,  110,  111,  638,  110,  111,
	  639,  110,  111,  640,  110,  111,  641,  110,  111,  642,  110,  111,
	  643,  644,  110,  111,  645,  110,  111,  646,  110,  111,  647,  110,
	  111,  648,  110,  111,  649,  110,  111,  650,  110,  111,  588,  110,
	  111,  651,  110,  111,  652,  110,  111,  653,  110,  111,  654,  110,
	  111,  655,  110,  111,  656,  110,  111,  657,  110,  111,  658,  110,
	  111,  659,  110,  111,  660,  110,  111,  661,  110,  111,  662,  110,
	  111,  585,  110,  663,    0
	};
}

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


private static short[] init__lexer_trans_targs_0()
{
	return new short [] {
	    0,    2,    4,    4,    5,   15,   17,   31,   34,   37,   38,   40,
	   93,  111,  194,  197,  336,  442,  473,    3,    6,    7,    8,    9,
	    8,    8,    9,    8,   10,   10,   10,   11,   10,   10,   10,   11,
	   12,   13,   14,    4,   14,   15,    4,   16,   18,   19,   20,   21,
	   22,   23,   24,   25,   26,   27,   28,   29,   30,  563,   32,   33,
	    4,   16,   33,    4,   16,   35,   36,    4,   35,   34,   36,   31,
	   39,   41,   54,   37,   42,   43,   44,   45,   46,   47,   48,   49,
	   50,   51,   52,   53,   55,   56,   57,   58,   59,   60,   61,   62,
	   63,   64,   65,   66,   67,   68,   69,   70,   71,   72,   73,   74,
	   75,   76,   75,   76,   76,    4,   77,   91,  479,  480,  482,  496,
	  503,  506,  523,  532,   78,   79,   80,   81,   82,   83,   84,   85,
	   86,   87,   88,   89,   90,    4,   92,    4,    4,    5,   15,   17,
	   31,   34,   37,   38,   40,   93,  111,  194,  197,  336,  442,  473,
	   94,   95,   96,   97,   98,   99,  100,  101,  102,  103,  102,  103,
	  103,    4,  104,  105,  106,  107,  108,  109,  110,   92,  112,  113,
	  114,  115,  116,  117,  118,  119,  120,  119,  120,  120,    4,  121,
	  135,  156,  163,  169,  185,  122,  123,  124,  125,  126,  127,  128,
	  129,  130,  131,  132,  133,  134,    4,  136,  137,  138,  139,  140,
	  141,  142,  143,  144,  145,  146,  147,  148,  149,  150,  151,  152,
	  153,  154,  155,   92,  157,  158,  159,  160,  161,  162,  164,  165,
	  166,  167,  168,  170,  171,  172,  173,  174,  175,  176,  177,  178,
	  179,  180,  181,  182,  183,  184,  186,  187,  188,  189,  190,  191,
	  192,  193,  195,  196,  198,  199,  200,  201,  202,  203,  204,  205,
	  206,  207,  208,  209,  210,  211,  212,  213,  214,  215,  216,  217,
	  216,  217,  217,    4,  218,  232,  233,  234,  236,  270,  276,  279,
	  296,  305,  219,  220,  221,  222,  223,  224,  225,  226,  227,  228,
	  229,  230,  231,    4,   92,  232,  235,  237,  250,  233,  238,  239,
	  240,  241,  242,  243,  244,  245,  246,  247,  248,  249,  251,  252,
	  253,  254,  255,  256,  257,  258,  259,  260,  261,  262,  263,  264,
	  265,  266,  267,  268,  269,  271,  272,  273,  274,  275,  277,  278,
	  280,  281,  282,  283,  284,  285,  286,  287,  288,  289,  290,  291,
	  292,  293,  294,  295,  297,  298,  299,  300,  301,  302,  303,  304,
	  306,  307,  308,  309,  310,  311,  312,  313,  314,  315,  316,  323,
	  317,  318,  319,  320,  321,  322,  324,  325,  326,  327,  328,  329,
	  330,  331,  332,  333,  334,  335,  337,  338,  339,  340,  341,  342,
	  343,  344,  345,  346,  347,  348,  349,  350,  351,  350,  351,  351,
	    4,  352,  366,  367,  368,  370,  384,  391,  394,  393,  411,  353,
	  354,  355,  356,  357,  358,  359,  360,  361,  362,  363,  364,  365,
	    4,   92,  366,  369,  371,  367,  372,  373,  374,  375,  376,  377,
	  378,  379,  380,  381,  382,  383,  385,  386,  387,  388,  389,  390,
	  392,  393,  395,  396,  397,  398,  399,  400,  401,  402,  403,  404,
	  405,  406,  407,  408,  409,  410,  412,  413,  414,  415,  416,  417,
	  418,  419,  420,  421,  422,  429,  423,  424,  425,  426,  427,  428,
	  430,  431,  432,  433,  434,  435,  436,  437,  438,  439,  440,  441,
	  443,  444,  445,  446,  447,  448,  449,  450,  451,  452,  453,  460,
	  454,  455,  456,  457,  458,  459,  461,  462,  463,  464,  465,  466,
	  467,  468,  469,  470,  471,  472,  473,  474,  475,  477,  478,  476,
	  474,  475,  476,  474,  477,  478,    5,   15,   17,   31,   34,   37,
	   38,   40,   93,  111,  194,  197,  336,  442,  473,   91,  481,  483,
	  479,  484,  485,  486,  487,  488,  489,  490,  491,  492,  493,  494,
	  495,  497,  498,  499,  500,  501,  502,  504,  505,  507,  508,  509,
	  510,  511,  512,  513,  514,  515,  516,  517,  518,  519,  520,  521,
	  522,  524,  525,  526,  527,  528,  529,  530,  531,  533,  534,  535,
	  536,  537,  538,  539,  540,  541,  542,  543,  550,  544,  545,  546,
	  547,  548,  549,  551,  552,  553,  554,  555,  556,  557,  558,  559,
	  560,  561,  562,    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,    0,    0,   54,    3,    1,    0,   29,    1,   29,   29,   29,
	   29,   29,   29,   29,   29,   29,   35,    0,    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,   57,
	  149,  126,    0,  110,   23,    0,   27,  118,   27,   51,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    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,    0,   72,   33,   84,   84,   84,   84,   84,
	   84,   84,   84,   84,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,   15,   15,   31,  130,   60,   57,   31,
	   63,   57,   63,   63,   63,   63,   63,   63,   63,   63,   63,   66,
	    0,    0,    0,    0,    0,    0,    0,    0,   57,  144,    0,   54,
	    0,   81,   84,    0,    0,    0,    0,    0,    0,   21,    0,    0,
	    0,    0,    0,    0,    0,   57,  144,    0,   54,    0,   69,   33,
	   84,   84,   84,   84,   84,    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,   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,   57,  144,
	    0,   54,    0,   75,   33,   84,   84,   84,   84,   84,   84,   84,
	   84,   84,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,   17,   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,   57,  144,    0,   54,    0,
	   78,   33,   84,   84,   84,   84,   84,   84,   84,   84,   84,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	   19,   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,    0,    0,    0,    0,    0,   37,   37,   54,   37,
	   87,    0,    0,   39,    0,    0,   93,   90,   41,   96,   90,   96,
	   96,   96,   96,   96,   96,   96,   96,   96,   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,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    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
	};
}

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


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

static final int lexer_en_main = 1;


// line 159 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/en_scouse.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 749 "java/src/main/java/gherkin/lexer/i18n/EN_SCOUSE.java"
	{
	cs = lexer_start;
	}

// line 185 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/en_scouse.java.rl"
    
// line 756 "java/src/main/java/gherkin/lexer/i18n/EN_SCOUSE.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/scm/gherkin/tasks/../ragel/i18n/en_scouse.java.rl"
	{
      contentStart = p;
      currentLine = lineNumber;
      if(keyword != null) {
        startCol = p - lastNewline - (keyword.length() + 1);
      }
    }
	break;
	case 1:
// line 24 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/en_scouse.java.rl"
	{
      currentLine = lineNumber;
      startCol = p - lastNewline;
    }
	break;
	case 2:
// line 29 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/en_scouse.java.rl"
	{
      contentStart = p;
    }
	break;
	case 3:
// line 33 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/en_scouse.java.rl"
	{
      docstringContentTypeStart = p;
    }
	break;
	case 4:
// line 37 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/en_scouse.java.rl"
	{
      docstringContentTypeEnd = p;
    }
	break;
	case 5:
// line 41 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/en_scouse.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/scm/gherkin/tasks/../ragel/i18n/en_scouse.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/scm/gherkin/tasks/../ragel/i18n/en_scouse.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/scm/gherkin/tasks/../ragel/i18n/en_scouse.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/scm/gherkin/tasks/../ragel/i18n/en_scouse.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/scm/gherkin/tasks/../ragel/i18n/en_scouse.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/scm/gherkin/tasks/../ragel/i18n/en_scouse.java.rl"
	{
      listener.step(keyword, substring(data, contentStart, p).trim(), currentLine);
    }
	break;
	case 12:
// line 86 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/en_scouse.java.rl"
	{
      listener.comment(substring(data, contentStart, p).trim(), lineNumber);
      keywordStart = -1;
    }
	break;
	case 13:
// line 91 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/en_scouse.java.rl"
	{
      listener.tag(substring(data, contentStart, p).trim(), currentLine);
      keywordStart = -1;
    }
	break;
	case 14:
// line 96 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/en_scouse.java.rl"
	{
      lineNumber++;
    }
	break;
	case 15:
// line 100 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/en_scouse.java.rl"
	{
      lastNewline = p + 1;
    }
	break;
	case 16:
// line 104 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/en_scouse.java.rl"
	{
      if(keywordStart == -1) keywordStart = p;
    }
	break;
	case 17:
// line 108 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/en_scouse.java.rl"
	{
      keyword = substring(data, keywordStart, p).replaceFirst(":$","");
      keywordStart = -1;
    }
	break;
	case 18:
// line 113 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/en_scouse.java.rl"
	{
      nextKeywordStart = p;
    }
	break;
	case 19:
// line 117 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/en_scouse.java.rl"
	{
      p = p - 1;
      currentRow = new ArrayList();
      currentLine = lineNumber;
    }
	break;
	case 20:
// line 123 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/en_scouse.java.rl"
	{
      contentStart = p;
    }
	break;
	case 21:
// line 127 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/en_scouse.java.rl"
	{
      String con = substring(data, contentStart, p).trim();
      currentRow.add(con
        .replaceAll("\\\\\\|", "|")
        .replaceAll("\\\\n", "\n")
        .replaceAll("\\\\\\\\", "\\\\")
      );
    }
	break;
	case 22:
// line 136 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/en_scouse.java.rl"
	{
      listener.row(currentRow, currentLine);
    }
	break;
	case 23:
// line 140 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/en_scouse.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 1017 "java/src/main/java/gherkin/lexer/i18n/EN_SCOUSE.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/scm/gherkin/tasks/../ragel/i18n/en_scouse.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 1049 "java/src/main/java/gherkin/lexer/i18n/EN_SCOUSE.java"
		}
	}
	}

case 5:
	}
	break; }
	}

// line 186 "/Users/ahellesoy/scm/gherkin/tasks/../ragel/i18n/en_scouse.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 - 2024 Weber Informatics LLC | Privacy Policy