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

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

There is a newer version: 2.12.2
Show newest version

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


  private final Listener listener;

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

  
// line 26 "java/src/main/java/gherkin/lexer/i18n/AR.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,   13,   19,   21,   22,   23,   24,   25,   26,   27,   29,
	   31,   43,   46,   47,   48,   49,   50,   51,   52,   53,   54,   55,
	   56,   58,   60,   65,   70,   75,   80,   84,   88,   90,   91,   92,
	   93,   94,   95,   96,   97,   98,   99,  100,  101,  102,  103,  104,
	  105,  110,  117,  122,  126,  132,  135,  137,  143,  155,  157,  158,
	  159,  160,  161,  162,  163,  164,  165,  166,  167,  168,  169,  170,
	  180,  187,  189,  191,  193,  195,  197,  199,  201,  213,  215,  217,
	  219,  221,  223,  225,  227,  229,  231,  233,  235,  237,  239,  241,
	  243,  245,  247,  249,  251,  253,  255,  257,  259,  261,  263,  265,
	  267,  269,  271,  274,  276,  278,  280,  282,  284,  286,  288,  290,
	  292,  294,  296,  298,  300,  302,  304,  306,  310,  312,  314,  316,
	  318,  320,  322,  324,  326,  328,  330,  332,  334,  336,  338,  340,
	  342,  344,  346,  348,  350,  352,  354,  355,  356,  357,  358,  359,
	  360,  361,  362,  363,  370,  372,  374,  376,  378,  380,  382,  384,
	  386,  388,  390,  391,  392,  393,  394,  395,  396,  397,  398,  399,
	  400,  401,  402,  403,  404,  405,  406,  407,  408,  409,  417,  421,
	  423,  426,  428,  430,  432,  434,  436,  438,  440,  442,  444,  446,
	  448,  450,  452,  454,  456,  458,  460,  462,  464,  466,  468,  470,
	  472,  474,  476,  478,  480,  482,  484,  486,  488,  491,  493,  495,
	  497,  499,  501,  503,  505,  507,  509,  511,  513,  515,  517,  519,
	  521,  523,  525,  527,  529,  531,  533,  535,  536,  537,  538,  539,
	  540,  541,  542,  543,  544,  545,  546,  547,  549,  550,  551,  552,
	  553,  554,  555,  556,  557,  558,  559,  560,  570,  577,  579,  581,
	  583,  585,  587,  589,  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,  669,  671,  673,  675,  677,  679,
	  681,  683,  685,  687,  689,  691,  693,  695,  697,  699,  701,  703,
	  705,  707,  709,  711,  713,  714,  715,  725,  732,  735,  737,  739,
	  741,  743,  745,  747,  749,  751,  753,  755,  757,  759,  761,  763,
	  765,  767,  769,  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,  822,  824,  826,  828,  830,  832,  834,  836,
	  838,  840,  842,  844,  846,  848,  850,  852,  854,  858,  860,  862,
	  864,  866,  868,  870,  872,  874,  876,  878,  880,  882,  884,  886,
	  888,  890,  892,  894,  896,  898,  900,  902,  903,  904,  905,  906,
	  907,  908,  909,  910,  911,  912
	};
}

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


private static byte[] init__lexer_trans_keys_0()
{
	return new byte [] {
	  -40,  -39,  -17,   10,   32,   34,   35,   37,   42,   64,  124,    9,
	   13,  -89,  -88,  -85,  -82,  -77,  -71,  -40,  -39,  -80,  -40,  -89,
	  -39, -117,   32,   10,   13,   10,   13,  -40,  -39,   10,   32,   34,
	   35,   37,   42,   64,  124,    9,   13, -124, -123, -120,  -39, -125,
	  -39, -122,  -40,  -86,  -39, -119,   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,  -40,
	  -39,   10,   32,   34,   35,   37,   42,   64,  124,    9,   13, -124,
	 -123,  -40,  -82,  -39, -124,  -39, -127,  -39, -118,  -40,  -87,   58,
	   10,   10,  -40,  -39,   10,   32,   35,   37,   42,   64,    9,   13,
	  -89,  -88,  -85,  -82,  -77,  -71,   10,  -40,   10,  -80,   10,  -40,
	   10,  -89,   10,  -39,   10, -117,   10,   10,   32,  -40,  -39,   10,
	   32,   34,   35,   37,   42,   64,  124,    9,   13,  -39,   10, -127,
	   10,  -40,   10,  -79,   10,  -40,   10,  -74,   10,  -39,   10, -123,
	   10,  -40,   10,  -89,   10,  -40,   10,  -75,   10,  -39,   10, -118,
	   10,  -40,   10,  -87,   10,   10,   58,  -39,   10, -118,   10,  -39,
	   10, -122,   10,  -40,   10,  -89,   10,  -40,   10,  -79,   10,  -39,
	   10, -118,   10,  -39,   10, -120,   10,   10,   32,   58,  -39,   10,
	 -123,   10,  -40,   10,  -82,   10,  -40,   10,  -73,   10,  -40,   10,
	  -73,   10,  -39,   10, -122,   10,  -40,   10,  -81,   10,  -39,   10,
	 -123,   10,  -40,   10,  -89,   10, -124, -123, -120,   10,  -39,   10,
	 -125,   10,  -39,   10, -122,   10,  -40,   10,  -86,   10,  -39,   10,
	 -119,   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,  -40,  -85,  -39, -124,  -40,  -87,
	   58,   10,   10,  -40,   10,   32,   35,  124,    9,   13,  -82,   10,
	  -40,   10,  -89,   10,  -40,   10,  -75,   10,  -39,   10, -118,   10,
	  -40,   10,  -87,   10,   10,   58,  -39, -127,  -40,  -79,  -40,  -74,
	  -39, -123,  -40,  -89,  -40,  -75,  -39, -118,  -40,  -87,   58,   10,
	   10,  -40,   10,   32,   35,   37,   64,    9,   13,  -89,  -82,  -77,
	   10,  -39,   10, -124, -123,   10,  -40,   10,  -82,   10,  -39,   10,
	 -124,   10,  -39,   10, -127,   10,  -39,   10, -118,   10,  -40,   10,
	  -87,   10,   10,   58,  -40,   10,  -85,   10,  -39,   10, -124,   10,
	  -40,   10,  -89,   10,  -40,   10,  -75,   10,  -39,   10, -118,   10,
	  -39,   10, -122,   10,  -40,   10,  -89,   10,  -40,   10,  -79,   10,
	  -39,   10, -118,   10,  -39,   10, -120,   10,   10,   32,   58,  -39,
	   10, -123,   10,  -40,   10,  -82,   10,  -40,   10,  -73,   10,  -40,
	   10,  -73,   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,  -39, -118,  -39, -122,  -40,
	  -89,  -40,  -79,  -39, -118,  -39, -120,   32,   58,  -39, -123,  -40,
	  -82,  -40,  -73,  -40,  -73,   58,   10,   10,  -40,  -39,   10,   32,
	   35,   37,   42,   64,    9,   13,  -89,  -88,  -85,  -82,  -77,  -71,
	   10,  -40,   10,  -80,   10,  -40,   10,  -89,   10,  -39,   10, -117,
	   10,   10,   32,  -39,   10, -127,   10,  -40,   10,  -79,   10,  -40,
	   10,  -74,   10,  -39,   10, -123,   10,  -40,   10,  -89,   10,  -40,
	   10,  -75,   10,  -39,   10, -118,   10,  -40,   10,  -87,   10,   10,
	   58,  -39,   10, -118,   10,  -39,   10, -122,   10,  -40,   10,  -89,
	   10,  -40,   10,  -79,   10,  -39,   10, -118,   10,  -39,   10, -120,
	   10,  -39,   10, -122,   10,  -40,   10,  -81,   10,  -39,   10, -123,
	   10,  -40,   10,  -89,   10, -124, -123, -120,   10,  -39,   10, -125,
	   10,  -39,   10, -122,   10,  -40,   10,  -86,   10,  -39,   10, -119,
	   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,   10,   10,  -40,  -39,   10,   32,   35,
	   37,   42,   64,    9,   13,  -89,  -88,  -85,  -82,  -77,  -71,   10,
	  -40,  -39,   10,  -80,   10,  -40,   10,  -89,   10,  -39,   10, -117,
	   10,   10,   32, -124,   10,  -40,   10,  -82,   10,  -39,   10, -124,
	   10,  -39,   10, -127,   10,  -39,   10, -118,   10,  -40,   10,  -87,
	   10,   10,   58,  -39,   10, -127,   10,  -40,   10,  -79,   10,  -40,
	   10,  -74,   10,  -39,   10, -123,   10,  -40,   10,  -89,   10,  -40,
	   10,  -75,   10,  -39,   10, -118,   10,  -39,   10, -122,   10,  -40,
	   10,  -89,   10,  -40,   10,  -79,   10,  -39,   10, -118,   10,  -39,
	   10, -120,   10,   10,   32,   58,  -39,   10, -123,   10,  -40,   10,
	  -82,   10,  -40,   10,  -73,   10,  -40,   10,  -73,   10,  -39,   10,
	 -122,   10,  -40,   10,  -81,   10,  -39,   10, -123,   10,  -40,   10,
	  -89,   10, -124, -123, -120,   10,  -39,   10, -125,   10,  -39,   10,
	 -122,   10,  -40,   10,  -86,   10,  -39,   10, -119,   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,  -39, -122,  -40,  -81,  -39, -123,  -40,  -89,  -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,   11,    6,    2,    1,    1,    1,    1,    1,    1,    2,    2,
	   10,    3,    1,    1,    1,    1,    1,    1,    1,    1,    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,   10,    2,    1,    1,
	    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    8,
	    7,    2,    2,    2,    2,    2,    2,    2,   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,    3,    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,    1,    1,    1,    1,    1,    1,
	    1,    1,    1,    5,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
	    1,    1,    1,    1,    1,    1,    1,    1,    1,    6,    4,    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,    3,    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,    2,    1,    1,    1,    1,
	    1,    1,    1,    1,    1,    1,    1,    8,    7,    2,    2,    2,
	    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
	    2,    2,    2,    2,    2,    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,    1,    1,    8,    7,    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,    3,    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,    1,    1,    1,    1,    1,
	    1,    1,    1,    1,    1,    0
	};
}

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


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

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,   13,   20,   23,   25,   27,   29,   31,   33,   35,   38,
	   41,   53,   57,   59,   61,   63,   65,   67,   69,   71,   73,   75,
	   77,   80,   83,   88,   93,   98,  103,  107,  111,  114,  116,  118,
	  120,  122,  124,  126,  128,  130,  132,  134,  136,  138,  140,  142,
	  144,  149,  156,  161,  165,  171,  175,  178,  184,  196,  199,  201,
	  203,  205,  207,  209,  211,  213,  215,  217,  219,  221,  223,  225,
	  235,  243,  246,  249,  252,  255,  258,  261,  264,  276,  279,  282,
	  285,  288,  291,  294,  297,  300,  303,  306,  309,  312,  315,  318,
	  321,  324,  327,  330,  333,  336,  339,  342,  345,  348,  351,  354,
	  357,  360,  363,  367,  370,  373,  376,  379,  382,  385,  388,  391,
	  394,  397,  400,  403,  406,  409,  412,  415,  420,  423,  426,  429,
	  432,  435,  438,  441,  444,  447,  450,  453,  456,  459,  462,  465,
	  468,  471,  474,  477,  480,  483,  486,  488,  490,  492,  494,  496,
	  498,  500,  502,  504,  511,  514,  517,  520,  523,  526,  529,  532,
	  535,  538,  541,  543,  545,  547,  549,  551,  553,  555,  557,  559,
	  561,  563,  565,  567,  569,  571,  573,  575,  577,  579,  587,  592,
	  595,  599,  602,  605,  608,  611,  614,  617,  620,  623,  626,  629,
	  632,  635,  638,  641,  644,  647,  650,  653,  656,  659,  662,  665,
	  668,  671,  674,  677,  680,  683,  686,  689,  692,  696,  699,  702,
	  705,  708,  711,  714,  717,  720,  723,  726,  729,  732,  735,  738,
	  741,  744,  747,  750,  753,  756,  759,  762,  764,  766,  768,  770,
	  772,  774,  776,  778,  780,  782,  784,  786,  789,  791,  793,  795,
	  797,  799,  801,  803,  805,  807,  809,  811,  821,  829,  832,  835,
	  838,  841,  844,  847,  850,  853,  856,  859,  862,  865,  868,  871,
	  874,  877,  880,  883,  886,  889,  892,  895,  898,  901,  904,  907,
	  910,  913,  916,  919,  922,  925,  928,  931,  934,  937,  940,  943,
	  946,  949,  952,  955,  958,  961,  966,  969,  972,  975,  978,  981,
	  984,  987,  990,  993,  996,  999, 1002, 1005, 1008, 1011, 1014, 1017,
	 1020, 1023, 1026, 1029, 1032, 1034, 1036, 1046, 1054, 1058, 1061, 1064,
	 1067, 1070, 1073, 1076, 1079, 1082, 1085, 1088, 1091, 1094, 1097, 1100,
	 1103, 1106, 1109, 1112, 1115, 1118, 1121, 1124, 1127, 1130, 1133, 1136,
	 1139, 1142, 1145, 1148, 1151, 1154, 1157, 1160, 1163, 1166, 1169, 1172,
	 1175, 1178, 1181, 1184, 1188, 1191, 1194, 1197, 1200, 1203, 1206, 1209,
	 1212, 1215, 1218, 1221, 1224, 1227, 1230, 1233, 1236, 1241, 1244, 1247,
	 1250, 1253, 1256, 1259, 1262, 1265, 1268, 1271, 1274, 1277, 1280, 1283,
	 1286, 1289, 1292, 1295, 1298, 1301, 1304, 1307, 1309, 1311, 1313, 1315,
	 1317, 1319, 1321, 1323, 1325, 1327
	};
}

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


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

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


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

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


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

static final int lexer_en_main = 1;


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

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

case 5:
	}
	break; }
	}

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