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

gherkin.lexer.Bg Maven / Gradle / Ivy

There is a newer version: 2.12.2
Show newest version

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

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 Bg implements Lexer {
  
// line 150 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bg.java.rl"


  private final Listener listener;

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

  
// line 26 "java/src/main/java/gherkin/lexer/Bg.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,   27,   28,   29,
	   30,   31,   32,   34,   36,   47,   48,   49,   51,   53,   58,   63,
	   68,   73,   77,   81,   83,   84,   85,   86,   87,   88,   89,   90,
	   91,   92,   93,   94,   95,   96,   97,   98,  103,  110,  115,  119,
	  125,  128,  130,  136,  147,  148,  149,  150,  151,  152,  153,  154,
	  155,  156,  157,  158,  160,  161,  162,  163,  164,  165,  166,  167,
	  168,  169,  170,  171,  172,  173,  174,  175,  176,  177,  178,  179,
	  188,  197,  199,  201,  203,  205,  207,  209,  211,  213,  215,  217,
	  219,  230,  232,  234,  236,  238,  240,  242,  244,  246,  248,  250,
	  252,  254,  256,  258,  260,  262,  264,  266,  268,  270,  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,  389,  390,  391,
	  392,  393,  394,  395,  396,  397,  398,  399,  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,  463,  464,  465,  466,  467,  468,  469,  470,  471,  472,  473,
	  474,  475,  476,  477,  478,  479,  480,  481,  482,  483,  484,  485,
	  486,  487,  488,  489,  490,  491,  492,  493,  494,  495,  504,  512,
	  514,  516,  518,  520,  522,  524,  526,  528,  530,  532,  534,  536,
	  538,  540,  542,  544,  546,  548,  550,  552,  554,  556,  558,  560,
	  562,  564,  566,  568,  570,  572,  574,  576,  578,  580,  582,  584,
	  586,  588,  590,  592,  594,  596,  598,  600,  602,  604,  606,  608,
	  610,  612,  614,  616,  618,  620,  622,  624,  626,  628,  630,  632,
	  634,  636,  638,  640,  642,  644,  646,  648,  650,  652,  654,  656,
	  658,  660,  661,  662,  663,  664,  665,  666,  667,  668,  669,  670,
	  671,  672,  673,  674,  675,  676,  677,  686,  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,
	  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,  870,
	  872,  874,  876,  878,  880,  882,  884,  886,  888,  890,  892,  894,
	  896,  898,  900,  902,  904,  906,  908,  910,  912,  914,  916,  917,
	  918,  919,  920,  921,  922,  923,  924,  925,  926,  927,  928,  929,
	  930,  931,  932,  933,  934,  935,  936,  937,  938,  939,  940,  941,
	  942,  943,  944,  945,  953,  958,  960,  962,  964,  967,  969,  971,
	  973,  975,  977,  979,  981,  983,  985,  987,  989,  991,  993,  995,
	  997,  999, 1001, 1003, 1005, 1007, 1009, 1011, 1013, 1015, 1017, 1019,
	 1021, 1023, 1025, 1027, 1029, 1031, 1033, 1035, 1037, 1039, 1041, 1043,
	 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, 1119, 1121, 1123, 1125, 1127, 1129, 1131, 1133, 1135, 1137, 1139,
	 1141, 1143, 1145, 1147, 1149, 1151, 1153, 1155, 1157, 1158, 1159
	};
}

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,
	 -108, -104, -102,  -99,  -97,  -96,  -95,  -94,  -92,  -48,  -80,  -48,
	  -76,  -48,  -75,  -48,  -67,  -48,  -66,   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,  -66,  -48,  -77,  -48,  -80,  -47, -126,  -47,
	 -128,  -48,  -75,  -72,  -48,  -76,  -48,  -72,  -47, -127,  -47, -126,
	  -48,  -66,  -47, -128,  -48,  -72,  -47, -113,   58,   10,   10,  -48,
	   10,   32,   35,   37,   42,   64,    9,   13, -108, -104, -102,  -99,
	  -96,  -95,  -94,  -92,   10,  -48,   10,  -80,   10,  -48,   10,  -76,
	   10,  -48,   10,  -75,   10,  -48,   10,  -67,   10,  -48,   10,  -66,
	   10,   10,   32,  -48,   10,   32,   34,   35,   37,   42,   64,  124,
	    9,   13,  -48,   10,  -66,   10,  -48,   10,  -77,   10,  -48,   10,
	  -80,   10,  -47,   10, -126,   10,  -48,   10,  -80,   10,  -48,   10,
	  -68,   10,  -48,   10,  -70,   10,  -48,   10,  -80,   10,   10,   32,
	  -48,   10,  -67,   10,  -48,   10,  -80,   10,   10,   32,  -47,   10,
	 -127,   10,  -47,   10, -122,   10,  -48,   10,  -75,   10,  -48,   10,
	  -67,   10,  -48,   10,  -80,   10,  -47,   10, -128,   10,  -48,   10,
	  -72,   10,  -48,   10,  -71,   10,   10,   58,  -47,   10, -125,   10,
	  -48,   10,  -67,   10,  -48,   10,  -70,   10,  -47,   10, -122,   10,
	  -48,   10,  -72,   10,  -48,   10,  -66,   10,  -48,   10,  -67,   10,
	  -48,   10,  -80,   10,  -48,   10,  -69,   10,  -48,   10,  -67,   10,
	  -48,   10,  -66,   10,  -47,   10, -127,   10,  -47,   10, -126,   10,
	   10,   95,   10,   70,   10,   69,   10,   65,   10,   84,   10,   85,
	   10,   82,   10,   69,   10,   95,   10,   69,   10,   78,   10,   68,
	   10,   95,   10,   37,  -48,  -68,  -48,  -75,  -47, -128,  -48,  -72,
	   58,   10,   10,  -48,   10,   32,   35,  124,    9,   13,  -92,   10,
	  -47,   10, -125,   10,  -48,   10,  -67,   10,  -48,   10,  -70,   10,
	  -47,   10, -122,   10,  -48,   10,  -72,   10,  -48,   10,  -66,   10,
	  -48,   10,  -67,   10,  -48,   10,  -80,   10,  -48,   10,  -69,   10,
	  -48,   10,  -67,   10,  -48,   10,  -66,   10,  -47,   10, -127,   10,
	  -47,   10, -126,   10,   10,   58,  -48,  -80,  -48,  -68,  -48,  -70,
	  -48,  -80,   32,  -48,  -67,  -48,  -80,   32,  -47, -127,  -47, -122,
	  -48,  -75,  -48,  -67,  -48,  -80,  -47, -128,  -48,  -72,  -48,  -71,
	   58,   10,   10,  -48,   10,   32,   35,   37,   42,   64,    9,   13,
	 -108, -104, -102,  -99,  -95,  -94,  -92,   10,  -48,   10,  -80,   10,
	  -48,   10,  -76,   10,  -48,   10,  -75,   10,  -48,   10,  -67,   10,
	  -48,   10,  -66,   10,   10,   32,  -48,   10,  -66,   10,  -48,   10,
	  -77,   10,  -48,   10,  -80,   10,  -47,   10, -126,   10,  -47,   10,
	 -122,   10,  -48,   10,  -75,   10,  -48,   10,  -67,   10,  -48,   10,
	  -80,   10,  -47,   10, -128,   10,  -48,   10,  -72,   10,  -48,   10,
	  -71,   10,   10,   58,  -47,   10, -125,   10,  -48,   10,  -67,   10,
	  -48,   10,  -70,   10,  -47,   10, -122,   10,  -48,   10,  -72,   10,
	  -48,   10,  -66,   10,  -48,   10,  -67,   10,  -48,   10,  -80,   10,
	  -48,   10,  -69,   10,  -48,   10,  -67,   10,  -48,   10,  -66,   10,
	  -47,   10, -127,   10,  -47,   10, -126,   10,   10,   95,   10,   70,
	   10,   69,   10,   65,   10,   84,   10,   85,   10,   82,   10,   69,
	   10,   95,   10,   69,   10,   78,   10,   68,   10,   95,   10,   37,
	  -47, -122,  -48,  -75,  -48,  -67,  -48,  -80,  -47, -128,  -48,  -72,
	  -48,  -71,   58,   10,   10,  -48,   10,   32,   35,   37,   42,   64,
	    9,   13, -108, -104, -102,  -99,  -97,  -96,  -95,  -94,  -92,   10,
	  -48,   10,  -80,   10,  -48,   10,  -76,   10,  -48,   10,  -75,   10,
	  -48,   10,  -67,   10,  -48,   10,  -66,   10,   10,   32,  -48,   10,
	  -66,   10,  -48,   10,  -77,   10,  -48,   10,  -80,   10,  -47,   10,
	 -126,   10,  -47,   10, -128,   10,  -48,   10,  -75,   10,  -48,   10,
	  -76,   10,  -48,   10,  -72,   10,  -47,   10, -127,   10,  -47,   10,
	 -126,   10,  -48,   10,  -66,   10,  -47,   10, -128,   10,  -48,   10,
	  -72,   10,  -47,   10, -113,   10,   10,   58,  -48,   10,  -80,   10,
	  -48,   10,  -68,   10,  -48,   10,  -70,   10,  -48,   10,  -80,   10,
	   10,   32,  -48,   10,  -67,   10,  -48,   10,  -80,   10,   10,   32,
	  -47,   10, -127,   10,  -47,   10, -122,   10,  -48,   10,  -75,   10,
	  -48,   10,  -67,   10,  -48,   10,  -80,   10,  -47,   10, -128,   10,
	  -48,   10,  -72,   10,  -48,   10,  -71,   10,  -47,   10, -125,   10,
	  -48,   10,  -67,   10,  -48,   10,  -70,   10,  -47,   10, -122,   10,
	  -48,   10,  -72,   10,  -48,   10,  -66,   10,  -48,   10,  -67,   10,
	  -48,   10,  -80,   10,  -48,   10,  -69,   10,  -48,   10,  -67,   10,
	  -48,   10,  -66,   10,  -47,   10, -127,   10,  -47,   10, -126,   10,
	   10,   95,   10,   70,   10,   69,   10,   65,   10,   84,   10,   85,
	   10,   82,   10,   69,   10,   95,   10,   69,   10,   78,   10,   68,
	   10,   95,   10,   37,  -47, -125,  -48,  -67,  -48,  -70,  -47, -122,
	  -48,  -72,  -48,  -66,  -48,  -67,  -48,  -80,  -48,  -69,  -48,  -67,
	  -48,  -66,  -47, -127,  -47, -126,   58,   10,   10,  -48,   10,   32,
	   35,   37,   64,    9,   13,  -97,  -96,  -95,  -92,   10,  -47,   10,
	 -128,   10,  -48,   10,  -75,  -72,   10,  -48,   10,  -76,   10,  -48,
	   10,  -72,   10,  -47,   10, -127,   10,  -47,   10, -126,   10,  -48,
	   10,  -66,   10,  -47,   10, -128,   10,  -48,   10,  -72,   10,  -47,
	   10, -113,   10,   10,   58,  -48,   10,  -68,   10,  -48,   10,  -75,
	   10,  -47,   10, -128,   10,  -48,   10,  -72,   10,  -48,   10,  -80,
	   10,  -48,   10,  -68,   10,  -48,   10,  -70,   10,  -48,   10,  -80,
	   10,   10,   32,  -48,   10,  -67,   10,  -48,   10,  -80,   10,   10,
	   32,  -47,   10, -127,   10,  -47,   10, -122,   10,  -48,   10,  -75,
	   10,  -48,   10,  -67,   10,  -48,   10,  -80,   10,  -47,   10, -128,
	   10,  -48,   10,  -72,   10,  -48,   10,  -71,   10,  -47,   10, -125,
	   10,  -48,   10,  -67,   10,  -48,   10,  -70,   10,  -47,   10, -122,
	   10,  -48,   10,  -72,   10,  -48,   10,  -66,   10,  -48,   10,  -67,
	   10,  -48,   10,  -80,   10,  -48,   10,  -69,   10,  -48,   10,  -67,
	   10,  -48,   10,  -66,   10,  -47,   10, -127,   10,  -47,   10, -126,
	   10,   10,   95,   10,   70,   10,   69,   10,   65,   10,   84,   10,
	   85,   10,   82,   10,   69,   10,   95,   10,   69,   10,   78,   10,
	   68,   10,   95,   10,   37,  -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,    1,    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,    1,    1,    2,    1,    1,    1,    1,    1,    1,    1,    1,
	    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    7,
	    9,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    9,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    1,    1,    1,    1,
	    1,    1,    1,    1,    1,    1,    1,    5,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
	    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
	    1,    1,    1,    1,    1,    1,    1,    1,    1,    7,    8,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
	    1,    1,    1,    1,    1,    1,    7,   10,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    1,    1,
	    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
	    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
	    1,    1,    1,    6,    5,    2,    2,    2,    3,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    1,    1,    0
	};
}

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,    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,    0,    0,    0,    0,    0,    0,
	    1,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    1,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    1,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    1,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    1,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
	};
}

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,   34,   36,   38,
	   40,   42,   44,   47,   50,   61,   63,   65,   68,   71,   76,   81,
	   86,   91,   95,   99,  102,  104,  106,  108,  110,  112,  114,  116,
	  118,  120,  122,  124,  126,  128,  130,  132,  137,  144,  149,  153,
	  159,  163,  166,  172,  183,  185,  187,  189,  191,  193,  195,  197,
	  199,  201,  203,  205,  208,  210,  212,  214,  216,  218,  220,  222,
	  224,  226,  228,  230,  232,  234,  236,  238,  240,  242,  244,  246,
	  255,  265,  268,  271,  274,  277,  280,  283,  286,  289,  292,  295,
	  298,  309,  312,  315,  318,  321,  324,  327,  330,  333,  336,  339,
	  342,  345,  348,  351,  354,  357,  360,  363,  366,  369,  372,  375,
	  378,  381,  384,  387,  390,  393,  396,  399,  402,  405,  408,  411,
	  414,  417,  420,  423,  426,  429,  432,  435,  438,  441,  444,  447,
	  450,  453,  456,  459,  462,  465,  468,  471,  474,  477,  480,  483,
	  486,  489,  492,  495,  498,  501,  504,  507,  510,  513,  516,  519,
	  522,  525,  528,  531,  534,  537,  540,  543,  546,  548,  550,  552,
	  554,  556,  558,  560,  562,  564,  566,  568,  575,  578,  581,  584,
	  587,  590,  593,  596,  599,  602,  605,  608,  611,  614,  617,  620,
	  623,  626,  629,  632,  635,  638,  641,  644,  647,  650,  653,  656,
	  659,  661,  663,  665,  667,  669,  671,  673,  675,  677,  679,  681,
	  683,  685,  687,  689,  691,  693,  695,  697,  699,  701,  703,  705,
	  707,  709,  711,  713,  715,  717,  719,  721,  723,  725,  734,  743,
	  746,  749,  752,  755,  758,  761,  764,  767,  770,  773,  776,  779,
	  782,  785,  788,  791,  794,  797,  800,  803,  806,  809,  812,  815,
	  818,  821,  824,  827,  830,  833,  836,  839,  842,  845,  848,  851,
	  854,  857,  860,  863,  866,  869,  872,  875,  878,  881,  884,  887,
	  890,  893,  896,  899,  902,  905,  908,  911,  914,  917,  920,  923,
	  926,  929,  932,  935,  938,  941,  944,  947,  950,  953,  956,  959,
	  962,  965,  967,  969,  971,  973,  975,  977,  979,  981,  983,  985,
	  987,  989,  991,  993,  995,  997,  999, 1008, 1019, 1022, 1025, 1028,
	 1031, 1034, 1037, 1040, 1043, 1046, 1049, 1052, 1055, 1058, 1061, 1064,
	 1067, 1070, 1073, 1076, 1079, 1082, 1085, 1088, 1091, 1094, 1097, 1100,
	 1103, 1106, 1109, 1112, 1115, 1118, 1121, 1124, 1127, 1130, 1133, 1136,
	 1139, 1142, 1145, 1148, 1151, 1154, 1157, 1160, 1163, 1166, 1169, 1172,
	 1175, 1178, 1181, 1184, 1187, 1190, 1193, 1196, 1199, 1202, 1205, 1208,
	 1211, 1214, 1217, 1220, 1223, 1226, 1229, 1232, 1235, 1238, 1241, 1244,
	 1247, 1250, 1253, 1256, 1259, 1262, 1265, 1268, 1271, 1274, 1277, 1280,
	 1283, 1286, 1289, 1292, 1295, 1298, 1301, 1304, 1307, 1310, 1313, 1316,
	 1319, 1322, 1325, 1328, 1331, 1334, 1337, 1340, 1343, 1346, 1349, 1351,
	 1353, 1355, 1357, 1359, 1361, 1363, 1365, 1367, 1369, 1371, 1373, 1375,
	 1377, 1379, 1381, 1383, 1385, 1387, 1389, 1391, 1393, 1395, 1397, 1399,
	 1401, 1403, 1405, 1407, 1415, 1421, 1424, 1427, 1430, 1434, 1437, 1440,
	 1443, 1446, 1449, 1452, 1455, 1458, 1461, 1464, 1467, 1470, 1473, 1476,
	 1479, 1482, 1485, 1488, 1491, 1494, 1497, 1500, 1503, 1506, 1509, 1512,
	 1515, 1518, 1521, 1524, 1527, 1530, 1533, 1536, 1539, 1542, 1545, 1548,
	 1551, 1554, 1557, 1560, 1563, 1566, 1569, 1572, 1575, 1578, 1581, 1584,
	 1587, 1590, 1593, 1596, 1599, 1602, 1605, 1608, 1611, 1614, 1617, 1620,
	 1623, 1626, 1629, 1632, 1635, 1638, 1641, 1644, 1647, 1650, 1653, 1656,
	 1659, 1662, 1665, 1668, 1671, 1674, 1677, 1680, 1683, 1686, 1689, 1692,
	 1695, 1698, 1701, 1704, 1707, 1710, 1713, 1716, 1719, 1721, 1723
	};
}

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

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


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

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


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

static final int lexer_en_main = 1;


// line 159 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bg.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 761 "java/src/main/java/gherkin/lexer/Bg.java"
	{
	cs = lexer_start;
	}

// line 185 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bg.java.rl"
    
// line 768 "java/src/main/java/gherkin/lexer/Bg.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/bg.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/bg.java.rl"
	{
      currentLine = lineNumber;
      startCol = p - lastNewline;
    }
	break;
	case 2:
// line 29 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bg.java.rl"
	{
      contentStart = p;
    }
	break;
	case 3:
// line 33 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bg.java.rl"
	{
      docstringContentTypeStart = p;
    }
	break;
	case 4:
// line 37 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bg.java.rl"
	{
      docstringContentTypeEnd = p;
    }
	break;
	case 5:
// line 41 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bg.java.rl"
	{
      String con = unindent(startCol, substring(data, contentStart, nextKeywordStart-1).replaceFirst("(\\r?\\n)?([\\t ])*\\Z", "").replace("\\\"\\\"\\\"", "\"\"\""));
      String conType = substring(data, docstringContentTypeStart, docstringContentTypeEnd).trim();
      listener.docString(conType, con, currentLine);
    }
	break;
	case 6:
// line 47 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bg.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/bg.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/bg.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/bg.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/bg.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/bg.java.rl"
	{
      listener.step(keyword, substring(data, contentStart, p).trim(), currentLine);
    }
	break;
	case 12:
// line 86 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bg.java.rl"
	{
      listener.comment(substring(data, contentStart, p).trim(), lineNumber);
      keywordStart = -1;
    }
	break;
	case 13:
// line 91 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bg.java.rl"
	{
      listener.tag(substring(data, contentStart, p).trim(), currentLine);
      keywordStart = -1;
    }
	break;
	case 14:
// line 96 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bg.java.rl"
	{
      lineNumber++;
    }
	break;
	case 15:
// line 100 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bg.java.rl"
	{
      lastNewline = p + 1;
    }
	break;
	case 16:
// line 104 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bg.java.rl"
	{
      if(keywordStart == -1) keywordStart = p;
    }
	break;
	case 17:
// line 108 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bg.java.rl"
	{
      keyword = substring(data, keywordStart, p).replaceFirst(":$","");
      keywordStart = -1;
    }
	break;
	case 18:
// line 113 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bg.java.rl"
	{
      nextKeywordStart = p;
    }
	break;
	case 19:
// line 117 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bg.java.rl"
	{
      p = p - 1;
      currentRow = new ArrayList();
      currentLine = lineNumber;
    }
	break;
	case 20:
// line 123 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bg.java.rl"
	{
      contentStart = p;
    }
	break;
	case 21:
// line 127 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bg.java.rl"
	{
      String con = substring(data, contentStart, p).trim();
      currentRow.add(con
        .replace("\\|", "|")
        .replace("\\n", "\n")
        .replace("\\\\", "\\")
      );
    }
	break;
	case 22:
// line 136 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bg.java.rl"
	{
      listener.row(currentRow, currentLine);
    }
	break;
	case 23:
// line 140 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bg.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 1029 "java/src/main/java/gherkin/lexer/Bg.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/bg.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 1061 "java/src/main/java/gherkin/lexer/Bg.java"
		}
	}
	}

case 5:
	}
	break; }
	}

// line 186 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/bg.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