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

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

There is a newer version: 2.12.2
Show newest version

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


  private final Listener listener;

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

  
// line 26 "java/src/main/java/gherkin/lexer/i18n/CA.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,  117,  118,  119,  120,  121,  122,  123,  124,  125,  126,
	  127,  128,  129,  130,  131,  132,  133,  134,  135,  136,  152,  154,
	  156,  158,  160,  162,  164,  166,  168,  170,  172,  174,  176,  178,
	  180,  182,  201,  202,  204,  205,  206,  207,  208,  209,  210,  211,
	  212,  213,  214,  215,  216,  217,  218,  219,  231,  233,  235,  237,
	  239,  241,  243,  245,  247,  249,  251,  253,  255,  257,  259,  261,
	  263,  265,  267,  269,  271,  273,  275,  277,  279,  281,  283,  285,
	  287,  289,  291,  293,  295,  297,  299,  301,  303,  305,  307,  309,
	  312,  315,  317,  319,  321,  323,  325,  327,  329,  331,  333,  335,
	  337,  339,  341,  343,  345,  347,  349,  351,  353,  355,  357,  359,
	  361,  363,  365,  367,  369,  371,  373,  375,  377,  379,  381,  383,
	  385,  387,  389,  391,  393,  395,  397,  398,  399,  400,  402,  403,
	  405,  407,  408,  409,  410,  411,  412,  413,  414,  415,  432,  434,
	  436,  438,  440,  442,  444,  446,  448,  450,  452,  454,  456,  458,
	  460,  462,  466,  468,  470,  472,  474,  476,  478,  480,  482,  484,
	  486,  488,  490,  492,  494,  496,  498,  500,  503,  505,  507,  509,
	  511,  514,  516,  518,  520,  522,  524,  526,  528,  530,  532,  534,
	  536,  538,  540,  542,  544,  547,  549,  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,  639,  640,  641,  642,  643,  644,  645,  646,  647,
	  648,  649,  650,  651,  652,  653,  654,  655,  656,  657,  658,  659,
	  675,  677,  679,  681,  683,  685,  687,  689,  691,  693,  695,  697,
	  699,  701,  703,  705,  708,  710,  712,  714,  716,  718,  720,  722,
	  725,  727,  729,  731,  733,  736,  738,  740,  742,  744,  746,  748,
	  750,  752,  754,  756,  758,  760,  762,  764,  766,  768,  771,  773,
	  775,  777,  779,  781,  783,  785,  787,  789,  791,  793,  795,  797,
	  799,  801,  803,  805,  807,  809,  811,  813,  815,  817,  819,  821,
	  823,  824,  825,  826,  827,  828,  829,  830,  831,  832,  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,  895,  896,  897,  898,  899,  900,  901,  902,  903,  904,
	  905,  906,  907,  908,  909,  910,  911,  912,  913,  914,  915,  916,
	  917,  918,  919,  923,  929,  932,  934,  940,  959,  962,  964,  966,
	  968,  970,  972,  974,  976,  979,  981,  983,  985,  987,  990,  992,
	  994,  996,  998, 1000, 1002, 1004, 1006, 1008, 1010, 1012, 1014, 1016,
	 1018, 1020, 1022, 1025, 1027, 1030, 1032, 1034, 1036, 1038, 1040, 1042,
	 1044, 1046, 1048, 1050, 1052, 1054, 1056, 1058, 1060, 1062, 1064, 1066,
	 1068, 1070, 1072, 1074, 1076, 1078, 1080, 1082, 1084, 1086, 1088, 1090,
	 1092, 1094, 1096, 1098, 1100, 1102, 1104, 1106, 1107, 1108
	};
}

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,   67,   68,   69,
	   70,   73,   80,   81,   82,  124,    9,   13,  -69,  -65,   10,   32,
	   34,   35,   37,   42,   64,   65,   67,   68,   69,   70,   73,   80,
	   81,   82,  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,  108,  110,  116,  101,  115,  104,
	  111,  114,  101,  115,  116,  101,   99,  101,  100,  101,  110,  116,
	  115,   58,   10,   10,   10,   32,   35,   37,   42,   64,   65,   67,
	   68,   69,   70,   73,   80,   81,    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,   67,   68,
	   69,   70,   73,   80,   81,   82,  124,    9,   13,   97,  108,  114,
	   97,   99,  116,  101,  114,  -61,  -83,  115,  116,  105,   99,   97,
	   58,   10,   10,   10,   32,   35,   37,   64,   65,   67,   69,   70,
	   82,    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,  110,   10,  116,   10,
	  101,   10,   99,   10,  101,   10,  100,   10,  101,   10,  110,   10,
	  116,   10,  115,   10,   58,   10,   97,   10,  114,   10,   97,   10,
	   99,   10,  116,   10,  101,   10,  114,  -61,   10,  -83,   10,   10,
	  115,   10,  116,   10,  105,   10,   99,   10,   97,   10,  115,  120,
	   10,   99,  113,   10,  101,   10,  110,   10,   97,   10,  114,   10,
	  105,   10,  117,   10,  101,   10,  109,   10,   97,   10,   32,   10,
	  100,   10,  101,   10,   32,   10,  108,   10,   39,   10,  101,   10,
	  115,   10,   99,   10,  101,   10,  109,   10,  112,   10,  108,   10,
	  101,   10,  117,   10,  110,   10,   99,   10,  105,   10,  111,   10,
	  110,   10,   97,   10,  108,   10,  105,   10,  116,   10,   97,   10,
	  116,   10,  101,   10,  114,   10,  101,   10,  102,   10,  111,   10,
	  110,  111,  110,   97,  100,  116,   97,  115,  120,   99,  113,  101,
	  110,   97,  114,  105,   58,   10,   10,   10,   32,   35,   37,   42,
	   64,   65,   67,   68,   69,   70,   73,   80,   81,   82,    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,  108,  110,  116,   10,  101,
	   10,  115,   10,  104,   10,  111,   10,  114,   10,  101,   10,  115,
	   10,  116,   10,  101,   10,   99,   10,  101,   10,  100,   10,  101,
	   10,  110,   10,  116,   10,  115,   10,   58,  -61,   10,  101,  -88,
	   10,   10,  115,   10,   97,   10,   97,   10,  108,  114,   10,   97,
	   10,   99,   10,  116,   10,  101,   10,  114,  -61,   10,  -83,   10,
	   10,  115,   10,  116,   10,  105,   10,   99,   10,   97,   10,  111,
	   10,  110,   10,   97,   10,  100,  116,   10,  115,   10,   99,  113,
	   10,  101,   10,  110,   10,   97,   10,  114,   10,  105,   10,  117,
	   10,  101,   10,  109,   10,   97,   10,   32,   10,  100,   10,  101,
	   10,   32,   10,  108,   10,   39,   10,  101,   10,  115,   10,   99,
	   10,  117,   10,  110,   10,   99,   10,  105,   10,  111,   10,  110,
	   10,   97,   10,  108,   10,  105,   10,  116,   10,   97,   10,  116,
	   10,  101,   10,  114,  -61,   10,  -78,   10,   10,  117,   10,   97,
	   10,  110,   10,  101,   10,  114,   10,  101,   10,  102,   10,  111,
	   10,  110,  117,  101,  109,   97,   32,  100,  101,   32,  108,   39,
	  101,  115,   99,  101,  110,   97,  114,  105,   58,   10,   10,   10,
	   32,   35,   37,   42,   64,   65,   67,   68,   69,   70,   73,   80,
	   81,    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,  108,  116,
	   10,  101,   10,  115,   10,  104,   10,  111,   10,  114,   10,  101,
	   10,  115,  -61,   10,  101,  -88,   10,   10,  115,   10,   97,   10,
	   97,   10,  108,  114,   10,   97,   10,   99,   10,  116,   10,  101,
	   10,  114,  -61,   10,  -83,   10,   10,  115,   10,  116,   10,  105,
	   10,   99,   10,   97,   10,   58,   10,  111,   10,  110,   10,   97,
	   10,  100,  116,   10,  115,   10,   99,   10,  101,   10,  110,   10,
	   97,   10,  114,   10,  105,   10,  117,   10,  110,   10,   99,   10,
	  105,   10,  111,   10,  110,   10,   97,   10,  108,   10,  105,   10,
	  116,   10,   97,   10,  116,   10,  101,   10,  114,  -61,   10,  -78,
	   10,   10,  117,   10,   97,   10,  110,  101,  109,  112,  108,  101,
	  115,   58,   10,   10,   10,   32,   35,   67,   70,  124,    9,   13,
	   10,   97,   10,  114,   10,   97,   10,   99,   10,  116,   10,  101,
	   10,  114,  -61,   10,  -83,   10,   10,  115,   10,  116,   10,  105,
	   10,   99,   10,   97,   10,   58,   10,  117,   10,  110,   10,   99,
	   10,  105,   10,  111,   10,  110,   10,   97,   10,  108,   10,  105,
	   10,  116,   10,   97,   10,  116,  117,  110,   99,  105,  111,  110,
	   97,  108,  105,  116,   97,  116,  101,  114,  -61,  -78,  117,   97,
	  110,  101,  114,  101,  102,  111,  110,   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,
	   67,   68,   69,   70,   73,   80,   81,   82,  124,    9,   13,   10,
	  108,  116,   10,  101,   10,  115,   10,  104,   10,  111,   10,  114,
	   10,  101,   10,  115,  -61,   10,  101,  -88,   10,   10,  115,   10,
	   97,   10,   97,   10,  108,  114,   10,   97,   10,   99,   10,  116,
	   10,  101,   10,  114,  -61,   10,  -83,   10,   10,  115,   10,  116,
	   10,  105,   10,   99,   10,   97,   10,   58,   10,  111,   10,  110,
	   10,   97,   10,  100,  116,   10,  115,   10,   99,  113,   10,  101,
	   10,  110,   10,   97,   10,  114,   10,  105,   10,  117,   10,  101,
	   10,  109,   10,   97,   10,   32,   10,  100,   10,  101,   10,   32,
	   10,  108,   10,   39,   10,  101,   10,  115,   10,   99,   10,  117,
	   10,  110,   10,   99,   10,  105,   10,  111,   10,  110,   10,   97,
	   10,  108,   10,  105,   10,  116,   10,   97,   10,  116,   10,  101,
	   10,  114,  -61,   10,  -78,   10,   10,  117,   10,   97,   10,  110,
	  -61,  101,  -88,  115,    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,    3,    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,    2,    1,    1,    1,    1,    1,    1,    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,    3,
	    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,    1,    1,    1,    2,    1,    2,
	    2,    1,    1,    1,    1,    1,    1,    1,    1,   15,    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,    3,    2,    2,    2,    2,
	    3,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    3,    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,    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,    3,    2,    2,    2,    2,    2,    2,    2,    3,
	    2,    2,    2,    2,    3,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    3,    2,    2,
	    2,    2,    2,    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,    6,    2,    2,
	    2,    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,    2,    4,    3,    2,    4,   17,    3,    2,    2,    2,
	    2,    2,    2,    2,    3,    2,    2,    2,    2,    3,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    3,    2,    3,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    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,    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,    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,
	    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,    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,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
	    0,    0,    0,    0,    0,    0,    0,    0,    0,    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,    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
	};
}

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,  143,  145,  147,  149,  151,  153,  155,  157,  159,  161,
	  163,  165,  167,  169,  171,  173,  175,  177,  179,  181,  197,  200,
	  203,  206,  209,  212,  215,  218,  221,  224,  227,  230,  233,  236,
	  239,  242,  261,  263,  266,  268,  270,  272,  274,  276,  278,  280,
	  282,  284,  286,  288,  290,  292,  294,  296,  308,  311,  314,  317,
	  320,  323,  326,  329,  332,  335,  338,  341,  344,  347,  350,  353,
	  356,  359,  362,  365,  368,  371,  374,  377,  380,  383,  386,  389,
	  392,  395,  398,  401,  404,  407,  410,  413,  416,  419,  422,  425,
	  429,  433,  436,  439,  442,  445,  448,  451,  454,  457,  460,  463,
	  466,  469,  472,  475,  478,  481,  484,  487,  490,  493,  496,  499,
	  502,  505,  508,  511,  514,  517,  520,  523,  526,  529,  532,  535,
	  538,  541,  544,  547,  550,  553,  556,  558,  560,  562,  565,  567,
	  570,  573,  575,  577,  579,  581,  583,  585,  587,  589,  606,  609,
	  612,  615,  618,  621,  624,  627,  630,  633,  636,  639,  642,  645,
	  648,  651,  656,  659,  662,  665,  668,  671,  674,  677,  680,  683,
	  686,  689,  692,  695,  698,  701,  704,  707,  711,  714,  717,  720,
	  723,  727,  730,  733,  736,  739,  742,  745,  748,  751,  754,  757,
	  760,  763,  766,  769,  772,  776,  779,  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,  897,  900,  903,
	  906,  909,  912,  914,  916,  918,  920,  922,  924,  926,  928,  930,
	  932,  934,  936,  938,  940,  942,  944,  946,  948,  950,  952,  954,
	  970,  973,  976,  979,  982,  985,  988,  991,  994,  997, 1000, 1003,
	 1006, 1009, 1012, 1015, 1019, 1022, 1025, 1028, 1031, 1034, 1037, 1040,
	 1044, 1047, 1050, 1053, 1056, 1060, 1063, 1066, 1069, 1072, 1075, 1078,
	 1081, 1084, 1087, 1090, 1093, 1096, 1099, 1102, 1105, 1108, 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, 1192, 1194, 1196, 1198, 1200, 1202, 1204, 1206, 1208, 1216, 1219,
	 1222, 1225, 1228, 1231, 1234, 1237, 1240, 1243, 1246, 1249, 1252, 1255,
	 1258, 1261, 1264, 1267, 1270, 1273, 1276, 1279, 1282, 1285, 1288, 1291,
	 1294, 1297, 1299, 1301, 1303, 1305, 1307, 1309, 1311, 1313, 1315, 1317,
	 1319, 1321, 1323, 1325, 1327, 1329, 1331, 1333, 1335, 1337, 1339, 1341,
	 1343, 1345, 1347, 1351, 1357, 1361, 1364, 1370, 1389, 1393, 1396, 1399,
	 1402, 1405, 1408, 1411, 1414, 1418, 1421, 1424, 1427, 1430, 1434, 1437,
	 1440, 1443, 1446, 1449, 1452, 1455, 1458, 1461, 1464, 1467, 1470, 1473,
	 1476, 1479, 1482, 1486, 1489, 1493, 1496, 1499, 1502, 1505, 1508, 1511,
	 1514, 1517, 1520, 1523, 1526, 1529, 1532, 1535, 1538, 1541, 1544, 1547,
	 1550, 1553, 1556, 1559, 1562, 1565, 1568, 1571, 1574, 1577, 1580, 1583,
	 1586, 1589, 1592, 1595, 1598, 1601, 1604, 1607, 1609, 1611
	};
}

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

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
	};
}

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


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

static final int lexer_en_main = 1;


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

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

case 5:
	}
	break; }
	}

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

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

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

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

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy