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

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


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


  private final Listener listener;

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

  
// line 26 "java/src/main/java/gherkin/lexer/i18n/HE.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,   19,   20,   22,   23,   24,   25,   27,   29,   40,
	   41,   42,   44,   46,   51,   56,   61,   66,   70,   74,   76,   77,
	   78,   79,   80,   81,   82,   83,   84,   85,   86,   87,   88,   89,
	   90,   91,   96,  103,  108,  112,  118,  121,  123,  129,  140,  142,
	  143,  144,  145,  146,  147,  148,  149,  150,  151,  152,  153,  154,
	  155,  156,  157,  158,  159,  160,  161,  162,  163,  164,  165,  166,
	  167,  168,  175,  177,  179,  181,  183,  185,  187,  189,  191,  193,
	  195,  206,  207,  208,  209,  210,  211,  212,  213,  214,  215,  216,
	  217,  218,  219,  220,  221,  222,  223,  232,  238,  240,  243,  245,
	  247,  249,  252,  254,  256,  258,  260,  262,  264,  266,  268,  270,
	  272,  274,  276,  278,  280,  282,  284,  286,  288,  290,  292,  294,
	  296,  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,  377,  380,  381,  382,  383,  384,  385,  386,
	  387,  388,  389,  390,  391,  392,  393,  394,  395,  396,  397,  398,
	  399,  400,  409,  415,  417,  420,  422,  424,  426,  429,  431,  433,
	  435,  437,  439,  441,  443,  445,  447,  449,  451,  453,  455,  457,
	  459,  461,  463,  465,  467,  469,  471,  473,  476,  478,  480,  482,
	  484,  486,  488,  490,  492,  494,  496,  498,  500,  502,  504,  506,
	  508,  510,  512,  514,  516,  518,  520,  522,  524,  526,  528,  530,
	  531,  532,  533,  534,  535,  536,  537,  538,  539,  547,  551,  553,
	  555,  557,  559,  561,  563,  565,  567,  569,  571,  573,  575,  577,
	  579,  581,  583,  585,  587,  591,  593,  595,  597,  599,  601,  603,
	  605,  607,  609,  611,  613,  615,  617,  619,  621,  623,  625,  627,
	  629,  631,  633,  635,  637,  639,  641,  643,  645,  647,  649,  651,
	  653,  655,  657,  659,  661,  663,  665,  666,  667,  668,  669,  670,
	  671,  672,  673,  674,  683,  690,  692,  695,  697,  699,  701,  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,  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,  837,  838
	};
}

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


private static byte[] init__lexer_trans_keys_0()
{
	return new byte [] {
	  -41,  -17,   10,   32,   34,   35,   37,   42,   64,  124,    9,   13,
	 -112, -111, -109, -107, -101,  -88,  -86,  -41, -111, -106,  -41, -100,
	   32,   10,   13,   10,   13,  -41,   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,  -41,   10,   32,
	   34,   35,   37,   42,   64,  124,    9,   13,  -41,   32, -103,  -41,
	 -108,  -41, -103,  -41,  -96,  -41,  -86,  -41,  -97,  -41, -107,  -41,
	 -110,  -41,  -98,  -41, -112,  -41, -107,  -41,  -86,   58,   10,   10,
	  -41,   10,   32,   35,  124,    9,   13,  -86,   10,  -41,   10, -101,
	   10,  -41,   10, -107,   10,  -41,   10,  -96,   10,  -41,   10, -108,
	   10,   10,   58,  -41,   10,   32,   34,   35,   37,   42,   64,  124,
	    9,   13,  -41, -110,  -41,  -99,  -41, -112,  -41,  -87,  -41,  -88,
	  -41,  -89,  -41,  -94,   58,   10,   10,  -41,   10,   32,   35,   37,
	   42,   64,    9,   13, -112, -111, -107, -101,  -86,   10,  -41,   10,
	 -111, -106,   10,  -41,   10, -100,   10,   10,   32,  -41,   10,   32,
	 -103,   10,  -41,   10, -108,   10,  -41,   10, -103,   10,  -41,   10,
	  -96,   10,  -41,   10,  -86,   10,  -41,   10,  -97,   10,  -41,   10,
	 -110,   10,  -41,   10,  -99,   10,  -41,   10, -112,   10,  -41,   10,
	  -87,   10,  -41,   10,  -88,   10,  -41,   10, -111, -101,  -88,   10,
	  -41,   10,  -96,   10,  -41,   10, -103,   10,  -41,   10,  -86,   10,
	   10,   32,  -41,   10,  -86,   10,  -41,   10,  -88,   10,  -41,   10,
	 -105,   10,  -41,   10, -103,   10,  -41,   10,  -87,   10,   10,   58,
	  -41,   10, -107,   10,  -41,   10,  -96,   10,  -41,   10, -108,   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,  -41, -111, -101,  -88,  -41,  -96,  -41, -103,
	  -41,  -86,   32,  -41,  -86,  -41,  -88,  -41, -105,  -41, -103,  -41,
	  -87,   58,   10,   10,  -41,   10,   32,   35,   37,   42,   64,    9,
	   13, -112, -111, -107, -101,  -86,   10,  -41,   10, -111, -106,   10,
	  -41,   10, -100,   10,   10,   32,  -41,   10,   32, -103,   10,  -41,
	   10, -108,   10,  -41,   10, -103,   10,  -41,   10,  -96,   10,  -41,
	   10,  -86,   10,  -41,   10,  -97,   10,  -41,   10, -110,   10,  -41,
	   10,  -99,   10,  -41,   10, -112,   10,  -41,   10,  -87,   10,  -41,
	   10,  -88,   10,  -41,   10, -101,  -88,   10,  -41,   10, -107,   10,
	  -41,   10,  -96,   10,  -41,   10, -108,   10,   10,   58,  -41,   10,
	 -105,   10,  -41,   10, -103,   10,  -41,   10,  -87,   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,  -41, -107,  -41,  -96,  -41, -108,   58,   10,   10,  -41,
	   10,   32,   35,   37,   64,    9,   13, -109,  -88,  -86,   10,  -41,
	   10, -107,   10,  -41,   10, -110,   10,  -41,   10,  -98,   10,  -41,
	   10, -112,   10,  -41,   10, -107,   10,  -41,   10,  -86,   10,   10,
	   58,  -41,   10,  -89,   10,  -41,   10,  -94,   10,  -41,   10, -111,
	 -101,  -88,   10,  -41,   10,  -96,   10,  -41,   10, -103,   10,  -41,
	   10,  -86,   10,   10,   32,  -41,   10,  -86,   10,  -41,   10,  -88,
	   10,  -41,   10, -105,   10,  -41,   10, -103,   10,  -41,   10,  -87,
	   10,  -41,   10, -107,   10,  -41,   10,  -96,   10,  -41,   10, -108,
	   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,  -41, -105,  -41, -103,  -41,  -87,   58,
	   10,   10,  -41,   10,   32,   35,   37,   42,   64,    9,   13, -112,
	 -111, -107, -101,  -88,  -86,   10,  -41,   10, -111, -106,   10,  -41,
	   10, -100,   10,   10,   32,  -41,   10,   32, -103,   10,  -41,   10,
	 -108,   10,  -41,   10, -103,   10,  -41,   10,  -96,   10,  -41,   10,
	  -86,   10,  -41,   10,  -97,   10,  -41,   10, -110,   10,  -41,   10,
	  -99,   10,  -41,   10, -112,   10,  -41,   10,  -87,   10,  -41,   10,
	  -88,   10,  -41,   10,  -89,   10,  -41,   10,  -94,   10,   10,   58,
	  -41,   10, -111, -101,  -88,   10,  -41,   10,  -96,   10,  -41,   10,
	 -103,   10,  -41,   10,  -86,   10,   10,   32,  -41,   10,  -86,   10,
	  -41,   10,  -88,   10,  -41,   10, -105,   10,  -41,   10, -103,   10,
	  -41,   10,  -87,   10,  -41,   10, -107,   10,  -41,   10,  -96,   10,
	  -41,   10, -108,   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,    7,    1,    2,    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,    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,    5,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    9,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
	    1,    1,    1,    1,    1,    1,    7,    6,    2,    3,    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,
	    4,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    1,    3,    1,    1,    1,    1,    1,    1,    1,
	    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
	    1,    7,    6,    2,    3,    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,    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,    1,
	    1,    1,    1,    1,    1,    1,    1,    1,    6,    4,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    4,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    1,    1,    1,    1,    1,    1,
	    1,    1,    1,    7,    7,    2,    3,    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,    4,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    1,    1,    0
	};
}

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


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

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,   20,   22,   25,   27,   29,   31,   34,   37,   48,
	   50,   52,   55,   58,   63,   68,   73,   78,   82,   86,   89,   91,
	   93,   95,   97,   99,  101,  103,  105,  107,  109,  111,  113,  115,
	  117,  119,  124,  131,  136,  140,  146,  150,  153,  159,  170,  173,
	  175,  177,  179,  181,  183,  185,  187,  189,  191,  193,  195,  197,
	  199,  201,  203,  205,  207,  209,  211,  213,  215,  217,  219,  221,
	  223,  225,  232,  235,  238,  241,  244,  247,  250,  253,  256,  259,
	  262,  273,  275,  277,  279,  281,  283,  285,  287,  289,  291,  293,
	  295,  297,  299,  301,  303,  305,  307,  316,  323,  326,  330,  333,
	  336,  339,  343,  346,  349,  352,  355,  358,  361,  364,  367,  370,
	  373,  376,  379,  382,  385,  388,  391,  394,  397,  400,  403,  406,
	  409,  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,  530,  534,  536,  538,  540,  542,  544,  546,
	  548,  550,  552,  554,  556,  558,  560,  562,  564,  566,  568,  570,
	  572,  574,  583,  590,  593,  597,  600,  603,  606,  610,  613,  616,
	  619,  622,  625,  628,  631,  634,  637,  640,  643,  646,  649,  652,
	  655,  658,  661,  664,  667,  670,  673,  676,  680,  683,  686,  689,
	  692,  695,  698,  701,  704,  707,  710,  713,  716,  719,  722,  725,
	  728,  731,  734,  737,  740,  743,  746,  749,  752,  755,  758,  761,
	  763,  765,  767,  769,  771,  773,  775,  777,  779,  787,  792,  795,
	  798,  801,  804,  807,  810,  813,  816,  819,  822,  825,  828,  831,
	  834,  837,  840,  843,  846,  851,  854,  857,  860,  863,  866,  869,
	  872,  875,  878,  881,  884,  887,  890,  893,  896,  899,  902,  905,
	  908,  911,  914,  917,  920,  923,  926,  929,  932,  935,  938,  941,
	  944,  947,  950,  953,  956,  959,  962,  964,  966,  968,  970,  972,
	  974,  976,  978,  980,  989,  997, 1000, 1004, 1007, 1010, 1013, 1017,
	 1020, 1023, 1026, 1029, 1032, 1035, 1038, 1041, 1044, 1047, 1050, 1053,
	 1056, 1059, 1062, 1065, 1068, 1071, 1074, 1077, 1080, 1083, 1086, 1089,
	 1092, 1095, 1098, 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, 1216, 1218
	};
}

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

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


private static short[] init__lexer_trans_targs_0()
{
	return new short [] {
	    0,    2,  400,   10,   10,   11,   21,   23,    7,   37,   40,    3,
	   48,   58,   85,   89,   95,  171,    4,    5,   46,    6,    7,    8,
	    9,   10,   22,    9,   10,   22,   12,   13,   14,   15,   14,   14,
	   15,   14,   16,   16,   16,   17,   16,   16,   16,   17,   18,   19,
	   20,   10,   20,   21,   10,   22,   24,   25,   26,   27,   28,   29,
	   30,   31,   32,   33,   34,   35,   36,  402,   38,   39,   10,   38,
	   37,   39,   40,   41,   42,   44,   45,   43,   41,   42,   43,   41,
	   44,    2,   45,   11,   21,   23,    7,   37,   40,   47,   49,   50,
	   51,   52,   53,   54,   55,   56,   57,   59,   60,   61,   62,   63,
	   64,   65,   66,   67,   68,   69,   70,   71,   72,   73,   72,   73,
	   74,   73,   10,   75,   76,   77,   78,   79,   80,   81,   82,   83,
	   84,    2,   10,   10,   11,   21,   23,    7,   37,   40,   86,   87,
	   88,   90,   91,   92,   93,   94,   96,   97,   98,   99,  100,  101,
	  102,  101,  102,  103,  102,   10,  157,  108,  104,  111,  121,  125,
	  131,  105,  106,  109,  107,  108,   84,  110,  112,  113,  114,  115,
	  116,  117,  118,  119,  120,  122,  123,  124,  126,  127,  128,  129,
	  130,  132,  133,  151,  144,  134,  135,  136,  137,  138,  139,  140,
	  141,  142,  143,  145,  146,  147,  148,  149,  150,  152,  153,  154,
	  155,  156,  158,  159,  160,  161,  162,  163,  164,  165,  166,  167,
	  168,  169,  170,   10,  172,  173,  251,  318,  174,  175,  176,  177,
	  178,  179,  180,  181,  182,  183,  184,  185,  186,  187,  188,  189,
	  190,  191,  192,  193,  192,  193,  194,  193,   10,  237,  199,  195,
	  202,  212,  216,  222,  196,  197,  200,  198,  199,   84,  201,  203,
	  204,  205,  206,  207,  208,  209,  210,  211,  213,  214,  215,  217,
	  218,  219,  220,  221,  223,  224,  231,  225,  226,  227,  228,  229,
	  230,  232,  233,  234,  235,  236,  238,  239,  240,  241,  242,  243,
	  244,  245,  246,  247,  248,  249,  250,   10,  252,  253,  254,  255,
	  256,  257,  258,  259,  260,  259,  260,  261,  260,   10,  304,  262,
	  275,  279,  263,  264,  265,  266,  267,  268,  269,  270,  271,  272,
	  273,  274,   84,  276,  277,  278,  280,  281,  298,  292,  282,  283,
	  284,  285,  286,  287,  288,  289,  290,  291,  293,  294,  295,  296,
	  297,  299,  300,  301,  302,  303,  305,  306,  307,  308,  309,  310,
	  311,  312,  313,  314,  315,  316,  317,   10,  319,  320,  321,  322,
	  323,  324,  325,  326,  327,  326,  327,  328,  327,   10,  386,  333,
	  329,  336,  346,  350,  356,  361,  330,  331,  334,  332,  333,   84,
	  335,  337,  338,  339,  340,  341,  342,  343,  344,  345,  347,  348,
	  349,  351,  352,  353,  354,  355,  357,  358,  359,  360,  362,  363,
	  380,  374,  364,  365,  366,  367,  368,  369,  370,  371,  372,  373,
	  375,  376,  377,  378,  379,  381,  382,  383,  384,  385,  387,  388,
	  389,  390,  391,  392,  393,  394,  395,  396,  397,  398,  399,   10,
	  401,    0
	};
}

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


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

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


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

static final int lexer_en_main = 1;


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

// line 185 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/he.java.rl"
    
// line 594 "java/src/main/java/gherkin/lexer/i18n/HE.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/he.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/he.java.rl"
	{
      currentLine = lineNumber;
      startCol = p - lastNewline;
    }
	break;
	case 2:
// line 29 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/he.java.rl"
	{
      contentStart = p;
    }
	break;
	case 3:
// line 33 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/he.java.rl"
	{
      docstringContentTypeStart = p;
    }
	break;
	case 4:
// line 37 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/he.java.rl"
	{
      docstringContentTypeEnd = p;
    }
	break;
	case 5:
// line 41 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/he.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/he.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/he.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/he.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/he.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/he.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/he.java.rl"
	{
      listener.step(keyword, substring(data, contentStart, p).trim(), currentLine);
    }
	break;
	case 12:
// line 86 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/he.java.rl"
	{
      listener.comment(substring(data, contentStart, p).trim(), lineNumber);
      keywordStart = -1;
    }
	break;
	case 13:
// line 91 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/he.java.rl"
	{
      listener.tag(substring(data, contentStart, p).trim(), currentLine);
      keywordStart = -1;
    }
	break;
	case 14:
// line 96 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/he.java.rl"
	{
      lineNumber++;
    }
	break;
	case 15:
// line 100 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/he.java.rl"
	{
      lastNewline = p + 1;
    }
	break;
	case 16:
// line 104 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/he.java.rl"
	{
      if(keywordStart == -1) keywordStart = p;
    }
	break;
	case 17:
// line 108 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/he.java.rl"
	{
      keyword = substring(data, keywordStart, p).replaceFirst(":$","");
      keywordStart = -1;
    }
	break;
	case 18:
// line 113 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/he.java.rl"
	{
      nextKeywordStart = p;
    }
	break;
	case 19:
// line 117 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/he.java.rl"
	{
      p = p - 1;
      currentRow = new ArrayList();
      currentLine = lineNumber;
    }
	break;
	case 20:
// line 123 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/he.java.rl"
	{
      contentStart = p;
    }
	break;
	case 21:
// line 127 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/he.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/he.java.rl"
	{
      listener.row(currentRow, currentLine);
    }
	break;
	case 23:
// line 140 "/Users/ahellesoy/github/gherkin/tasks/../ragel/i18n/he.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 855 "java/src/main/java/gherkin/lexer/i18n/HE.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/he.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 887 "java/src/main/java/gherkin/lexer/i18n/HE.java"
		}
	}
	}

case 5:
	}
	break; }
	}

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