alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

What this is

This file is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Other links

The source code

/* The following code was generated by JFlex 1.3.5 on 4/2/04 2:35 PM */

/*
 *                 Sun Public License Notice
 * 
 * The contents of this file are subject to the Sun Public License
 * Version 1.0 (the "License"). You may not use this file except in
 * compliance with the License. A copy of the License is available at
 * http://www.sun.com/
 * 
 * The Original Code is NetBeans. The Initial Developer of the Original
 * Code is Sun Microsystems, Inc. Portions Copyright 1997-2002 Sun
 * Microsystems, Inc. All Rights Reserved.
 */

/* Java Scanner */

package org.netbeans.lib.java.parser;

import java.util.ArrayList;
import java.util.List;
import java.lang.reflect.Modifier;


/**
 * This class is a scanner generated by 
 * JFlex 1.3.5
 * on 4/2/04 2:35 PM from the specification file
 * file:/home/th125165/Projects/Source/netbeans-cvs/nb_all/java/libsrc/org/netbeans/lib/java/parser/scanner.l
 */
public final class Scanner implements ParserTokens,JScanner {

  /** This character denotes the end of file */
  final public static int YYEOF = -1;

  /** initial size of the lookahead buffer */
  final private static int YY_BUFFERSIZE = 16384;

  /** lexical states */
  final public static int STRING = 1;
  final public static int YYINITIAL = 0;
  final public static int CHARACTER = 2;

  /** 
   * Translates characters to character classes
   */
  final private static String yycmap_packed = 
    "\11\7\1\3\1\2\1\0\1\3\1\1\16\7\4\0\1\104\1\72"+
    "\1\24\1\0\1\6\1\102\1\76\1\25\1\57\1\60\1\5\1\100"+
    "\1\66\1\22\1\20\1\4\1\10\1\16\2\15\4\17\2\11\1\75"+
    "\1\65\1\71\1\67\1\70\1\74\1\0\3\14\1\103\1\21\1\23"+
    "\5\6\1\12\13\6\1\13\2\6\1\63\1\26\1\64\1\101\1\6"+
    "\1\0\1\27\1\30\1\34\1\46\1\35\1\50\1\53\1\43\1\44"+
    "\1\6\1\41\1\37\1\51\1\40\1\36\1\52\1\6\1\33\1\31"+
    "\1\32\1\45\1\54\1\55\1\47\1\42\1\56\1\61\1\77\1\62"+
    "\1\73\41\7\2\0\4\6\4\0\1\6\12\0\1\6\4\0\1\6"+
    "\5\0\27\6\1\0\37\6\1\0\u0128\6\2\0\22\6\34\0\136\6"+
    "\2\0\11\6\2\0\7\6\16\0\2\6\16\0\5\6\11\0\1\6"+
    "\21\0\117\7\21\0\3\7\27\0\1\6\13\0\1\6\1\0\3\6"+
    "\1\0\1\6\1\0\24\6\1\0\54\6\1\0\10\6\2\0\32\6"+
    "\14\0\202\6\1\0\4\7\5\0\71\6\2\0\2\6\2\0\2\6"+
    "\3\0\46\6\2\0\2\6\67\0\46\6\2\0\1\6\7\0\47\6"+
    "\11\0\21\7\1\0\27\7\1\0\3\7\1\0\1\7\1\0\2\7"+
    "\1\0\1\7\13\0\33\6\5\0\3\6\56\0\32\6\5\0\13\6"+
    "\13\7\12\0\12\7\6\0\1\7\143\6\1\0\1\6\7\7\2\0"+
    "\6\7\2\6\2\7\1\0\4\7\2\0\12\7\3\6\22\0\1\7"+
    "\1\6\1\7\33\6\3\0\33\7\65\0\46\6\13\7\u0150\0\3\7"+
    "\1\0\65\6\2\0\1\7\1\6\20\7\2\0\1\6\4\7\3\0"+
    "\12\6\2\7\2\0\12\7\21\0\3\7\1\0\10\6\2\0\2\6"+
    "\2\0\26\6\1\0\7\6\1\0\1\6\3\0\4\6\2\0\1\7"+
    "\1\0\7\7\2\0\2\7\2\0\3\7\11\0\1\7\4\0\2\6"+
    "\1\0\3\6\2\7\2\0\12\7\4\6\16\0\1\7\2\0\6\6"+
    "\4\0\2\6\2\0\26\6\1\0\7\6\1\0\2\6\1\0\2\6"+
    "\1\0\2\6\2\0\1\7\1\0\5\7\4\0\2\7\2\0\3\7"+
    "\13\0\4\6\1\0\1\6\7\0\14\7\3\6\14\0\3\7\1\0"+
    "\7\6\1\0\1\6\1\0\3\6\1\0\26\6\1\0\7\6\1\0"+
    "\2\6\1\0\5\6\2\0\1\7\1\6\10\7\1\0\3\7\1\0"+
    "\3\7\2\0\1\6\17\0\1\6\5\0\12\7\21\0\3\7\1\0"+
    "\10\6\2\0\2\6\2\0\26\6\1\0\7\6\1\0\2\6\2\0"+
    "\4\6\2\0\1\7\1\6\6\7\3\0\2\7\2\0\3\7\10\0"+
    "\2\7\4\0\2\6\1\0\3\6\4\0\12\7\22\0\2\7\1\0"+
    "\6\6\3\0\3\6\1\0\4\6\3\0\2\6\1\0\1\6\1\0"+
    "\2\6\3\0\2\6\3\0\3\6\3\0\10\6\1\0\3\6\4\0"+
    "\5\7\3\0\3\7\1\0\4\7\11\0\1\7\17\0\11\7\21\0"+
    "\3\7\1\0\10\6\1\0\3\6\1\0\27\6\1\0\12\6\1\0"+
    "\5\6\4\0\7\7\1\0\3\7\1\0\4\7\7\0\2\7\11\0"+
    "\2\6\4\0\12\7\22\0\2\7\1\0\10\6\1\0\3\6\1\0"+
    "\27\6\1\0\12\6\1\0\5\6\4\0\7\7\1\0\3\7\1\0"+
    "\4\7\7\0\2\7\7\0\1\6\1\0\2\6\4\0\12\7\22\0"+
    "\2\7\1\0\10\6\1\0\3\6\1\0\27\6\1\0\20\6\4\0"+
    "\6\7\2\0\3\7\1\0\4\7\11\0\1\7\10\0\2\6\4\0"+
    "\12\7\22\0\2\7\1\0\22\6\3\0\30\6\1\0\11\6\1\0"+
    "\1\6\2\0\7\6\3\0\1\7\4\0\6\7\1\0\1\7\1\0"+
    "\10\7\22\0\2\7\15\0\60\6\1\7\2\6\7\7\4\0\10\6"+
    "\10\7\1\0\12\7\47\0\2\6\1\0\1\6\2\0\2\6\1\0"+
    "\1\6\2\0\1\6\6\0\4\6\1\0\7\6\1\0\3\6\1\0"+
    "\1\6\1\0\1\6\2\0\2\6\1\0\4\6\1\7\2\6\6\7"+
    "\1\0\2\7\1\6\2\0\5\6\1\0\1\6\1\0\6\7\2\0"+
    "\12\7\2\0\2\6\42\0\1\6\27\0\2\7\6\0\12\7\13\0"+
    "\1\7\1\0\1\7\1\0\1\7\4\0\2\7\10\6\1\0\42\6"+
    "\6\0\24\7\1\0\2\7\4\6\4\0\10\7\1\0\44\7\11\0"+
    "\1\7\71\0\42\6\1\0\5\6\1\0\2\6\1\0\7\7\3\0"+
    "\4\7\6\0\12\7\6\0\6\6\4\7\106\0\46\6\12\0\47\6"+
    "\11\0\132\6\5\0\104\6\5\0\122\6\6\0\7\6\1\0\77\6"+
    "\1\0\1\6\1\0\4\6\2\0\7\6\1\0\1\6\1\0\4\6"+
    "\2\0\47\6\1\0\1\6\1\0\4\6\2\0\37\6\1\0\1\6"+
    "\1\0\4\6\2\0\7\6\1\0\1\6\1\0\4\6\2\0\7\6"+
    "\1\0\7\6\1\0\27\6\1\0\37\6\1\0\1\6\1\0\4\6"+
    "\2\0\7\6\1\0\47\6\1\0\23\6\16\0\11\7\56\0\125\6"+
    "\14\0\u026c\6\2\0\10\6\12\0\32\6\5\0\113\6\225\0\64\6"+
    "\40\7\7\0\1\6\4\0\12\7\41\0\4\7\1\0\12\7\6\0"+
    "\130\6\10\0\51\6\1\7\u0556\0\234\6\4\0\132\6\6\0\26\6"+
    "\2\0\6\6\2\0\46\6\2\0\6\6\2\0\10\6\1\0\1\6"+
    "\1\0\1\6\1\0\1\6\1\0\37\6\2\0\65\6\1\0\7\6"+
    "\1\0\1\6\3\0\3\6\1\0\7\6\3\0\4\6\2\0\6\6"+
    "\4\0\15\6\5\0\3\6\1\0\7\6\17\0\4\7\32\0\5\7"+
    "\20\0\2\6\51\0\6\7\17\0\1\6\40\0\20\6\40\0\15\7"+
    "\4\0\1\7\40\0\1\6\4\0\1\6\2\0\12\6\1\0\1\6"+
    "\3\0\5\6\6\0\1\6\1\0\1\6\1\0\1\6\1\0\4\6"+
    "\1\0\3\6\1\0\7\6\46\0\44\6\u0e81\0\3\6\31\0\11\6"+
    "\6\7\1\0\5\6\2\0\3\6\6\0\124\6\4\0\2\7\2\0"+
    "\2\6\2\0\136\6\6\0\50\6\4\0\136\6\21\0\30\6\u0248\0"+
    "\u19b6\6\112\0\u51a6\6\132\0\u048d\6\u0773\0\u2ba4\6\u215c\0\u012e\6\322\0"+
    "\7\6\14\0\5\6\5\0\1\6\1\7\12\6\1\0\15\6\1\0"+
    "\5\6\1\0\1\6\1\0\2\6\1\0\2\6\1\0\154\6\41\0"+
    "\u016b\6\22\0\100\6\2\0\66\6\50\0\14\6\44\0\4\7\17\0"+
    "\2\6\30\0\3\6\31\0\1\6\6\0\3\6\1\0\1\6\1\0"+
    "\207\6\2\0\1\7\4\0\1\6\13\0\12\7\7\0\32\6\4\0"+
    "\1\6\1\0\32\6\12\0\132\6\3\0\6\6\2\0\6\6\2\0"+
    "\6\6\2\0\3\6\3\0\2\6\3\0\2\6\22\0\3\7\4\0";

  /** 
   * Translates characters to character classes
   */
  final private static char [] yycmap = yy_unpack_cmap(yycmap_packed);

  /** 
   * Translates a state to a row index in the transition table
   */
  final private static int yy_rowMap [] = { 
        0,    69,   138,   207,   276,   345,   414,   483,   552,   621, 
      690,   759,   828,   207,   207,   897,   966,  1035,  1104,  1173, 
     1242,  1311,  1380,  1449,  1518,  1587,  1656,  1725,  1794,  1863, 
     1932,   207,   207,   207,   207,   207,   207,   207,   207,  2001, 
     2070,  2139,  2208,   207,   207,   207,  2277,  2346,  2415,  2484, 
     2553,  2622,  2691,  2760,   207,   207,  2829,  2898,  2967,   207, 
     3036,  3105,  3174,   207,   207,  3243,  3312,   207,  3381,  3450, 
     3519,  3588,  3657,  3726,   207,   207,  3795,   207,   207,  3864, 
     3933,  4002,  4071,  4140,  4209,  4278,  4347,  4416,  4485,  4554, 
     4623,  4692,  4761,  4830,  4899,  4968,  5037,  5106,  5175,  5244, 
     5313,  5382,  5451,   552,  5520,  5589,  5658,  5727,  5796,  5865, 
     5934,  6003,  6072,  6141,  6210,  6279,  6348,   207,   207,  6417, 
      207,  6486,   207,   207,   207,   207,   207,   207,   207,   207, 
      207,   207,  6555,  6624,   207,   207,   207,   207,   207,   207, 
      207,   207,   207,  6693,  6762,  6831,  6900,  6969,  7038,  7107, 
     7176,  7245,  7314,  7383,   207,  7452,  7521,  7590,  7659,  7728, 
     7797,   207,  7866,  7935,  8004,  8073,  8142,  8211,  8280,  8349, 
     8418,  8487,  8556,  8625,   552,  8694,  8763,  8832,  8901,  8970, 
     9039,  9108,  9177,  9246,  9315,  9384,  9453,  9522,   552,  9591, 
     9660,  9729,  9798,  9867,  9936, 10005,   552, 10074, 10143, 10212, 
    10281, 10350, 10419, 10488, 10557, 10626, 10695,   207, 10764,   207, 
      207,  6762,   207, 10833,   207,   207,   207,   207,   207,   207, 
      207,   207,   207,   207, 10902, 10971, 11040, 11109, 11178, 11247, 
    11316,   552, 11385, 11454, 11523, 11592, 11661, 11730, 11799,   552, 
    11868,   552, 11937,   552, 12006, 12075, 12144, 12213,   552,   552, 
    12282,   552, 12351,   552, 12420, 12489, 12558, 12627, 12696, 12765, 
    12834, 12903, 12972, 13041, 13110, 13179, 13248,   552, 13317,   552, 
    13386,   207, 13455, 13524, 13593, 13662, 13731,   552, 13800, 13869, 
    13938, 14007,   552,   552, 14076, 14145, 14214, 14283,   552,   552, 
    14352,   552, 14421, 14490, 14559, 14628, 14697, 14766, 14835, 14904, 
      552,   552, 14973, 15042, 15111, 15180, 15249, 15318,   552, 15387, 
    15456, 15525, 15594,   552, 15663,   552, 15732, 15801,   552, 15870, 
      552,   552, 15939, 16008,   552, 16077, 16146,   552, 16215, 16284, 
      552, 16353, 16422, 16491, 16560,   552, 16629, 16698, 16767, 16836, 
    16905,   552, 16974, 17043, 17112, 17181,   552, 17250, 17319, 17388, 
      552,   552,   552, 17457,   552, 17526, 17595, 17664, 17733,   552, 
      552, 17802, 17871,   552, 17940, 18009, 18078, 18147,   552, 18216, 
    18285, 18354, 18423,   552, 18492,   552, 18561,   552, 18630, 18699, 
    18768, 18837,   552,   552, 18906, 18975, 19044, 19113, 19182, 19251, 
    19320,   552, 19389, 19458, 19527, 19596, 19665, 19734, 19803, 19872, 
    19941, 20010, 20079, 20148, 20217, 20286, 20286, 20355, 20424, 20493, 
    20562, 20631, 20700
  };

  /** 
   * The packed transition table of the DFA (part 0)
   */
  final private static String yy_packed0 = 
    "\1\4\2\5\1\6\1\7\1\10\1\11\1\4\1\12"+
    "\1\13\3\11\3\13\1\14\1\11\1\15\1\11\1\16"+
    "\1\17\1\4\1\20\1\21\1\22\1\23\1\24\1\25"+
    "\1\26\1\11\1\27\1\30\3\11\1\31\1\11\1\32"+
    "\1\11\1\33\1\11\1\34\1\35\1\36\1\37\1\11"+
    "\1\40\1\41\1\42\1\43\1\44\1\45\1\46\1\47"+
    "\1\50\1\51\1\52\1\53\1\54\1\55\1\56\1\57"+
    "\1\60\1\61\1\62\1\63\1\11\1\64\1\65\1\66"+
    "\1\67\21\65\1\70\1\65\1\71\56\65\1\72\1\73"+
    "\1\74\22\72\1\4\1\75\56\72\106\0\2\5\105\0"+
    "\1\6\100\0\1\6\4\0\1\76\1\77\61\0\1\100"+
    "\104\0\1\101\23\0\12\11\1\0\1\11\1\0\1\11"+
    "\3\0\30\11\24\0\1\11\11\0\1\102\1\103\1\104"+
    "\1\105\1\0\1\106\1\107\1\110\1\111\1\112\1\0"+
    "\1\113\11\0\1\112\1\0\1\104\6\0\1\114\1\105"+
    "\1\113\32\0\1\114\11\0\2\13\1\104\2\0\3\13"+
    "\1\111\1\112\1\0\1\113\11\0\1\112\1\0\1\104"+
    "\6\0\1\114\1\0\1\113\32\0\1\114\11\0\2\111"+
    "\3\0\3\111\1\115\106\0\1\116\44\0\1\117\23\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\1\11\1\120"+
    "\1\121\25\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\4\11\1\122\2\11\1\123\3\11"+
    "\1\124\14\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\3\11\1\125\7\11\1\126\1\127"+
    "\1\11\1\130\7\11\1\131\1\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\4\11\1\132"+
    "\7\11\1\133\13\11\24\0\1\11\7\0\12\11\1\0"+
    "\1\11\1\0\1\11\3\0\6\11\1\134\21\11\24\0"+
    "\1\11\7\0\12\11\1\0\1\11\1\0\1\11\3\0"+
    "\1\135\6\11\1\136\1\137\3\11\1\140\13\11\24\0"+
    "\1\11\7\0\12\11\1\0\1\11\1\0\1\11\3\0"+
    "\10\11\1\141\7\11\1\142\7\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\7\11\1\143"+
    "\20\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\1\144\5\11\1\145\7\11\1\146\11\11"+
    "\24\0\1\11\7\0\12\11\1\0\1\11\1\0\1\11"+
    "\3\0\11\11\1\147\7\11\1\150\1\151\5\11\24\0"+
    "\1\11\7\0\12\11\1\0\1\11\1\0\1\11\3\0"+
    "\6\11\1\152\1\153\20\11\24\0\1\11\7\0\12\11"+
    "\1\0\1\11\1\0\1\11\3\0\1\154\6\11\1\155"+
    "\1\156\4\11\1\157\12\11\24\0\1\11\7\0\12\11"+
    "\1\0\1\11\1\0\1\11\3\0\1\160\3\11\1\161"+
    "\11\11\1\162\11\11\24\0\1\11\7\0\12\11\1\0"+
    "\1\11\1\0\1\11\3\0\7\11\1\163\20\11\24\0"+
    "\1\11\7\0\12\11\1\0\1\11\1\0\1\11\3\0"+
    "\7\11\1\164\20\11\24\0\1\11\7\0\12\11\1\0"+
    "\1\11\1\0\1\11\3\0\14\11\1\165\13\11\24\0"+
    "\1\11\70\0\1\166\104\0\1\167\1\170\103\0\1\171"+
    "\1\0\1\172\102\0\1\173\104\0\1\174\6\0\1\175"+
    "\75\0\1\176\7\0\1\177\74\0\1\200\10\0\1\201"+
    "\73\0\1\202\104\0\1\203\20\0\1\6\100\0\1\64"+
    "\1\65\2\0\21\65\1\0\1\65\1\0\56\65\2\0"+
    "\1\67\102\0\2\204\1\0\5\204\1\205\4\204\2\205"+
    "\1\206\4\204\1\207\1\210\1\211\1\204\1\212\1\204"+
    "\1\213\1\214\4\204\1\215\7\204\1\216\34\204\25\0"+
    "\1\217\61\0\1\74\102\0\2\204\1\0\5\204\1\220"+
    "\4\204\2\220\1\221\4\204\1\222\1\223\1\224\1\204"+
    "\1\225\1\204\1\226\1\227\4\204\1\230\7\204\1\231"+
    "\34\204\1\76\2\0\102\76\5\77\1\232\77\77\10\0"+
    "\1\102\1\103\1\233\2\0\1\106\1\107\1\110\1\111"+
    "\1\112\1\0\1\113\11\0\1\112\1\0\1\233\6\0"+
    "\1\114\1\0\1\113\32\0\1\114\11\0\2\103\3\0"+
    "\3\103\1\111\1\112\1\0\1\113\11\0\1\112\10\0"+
    "\1\114\1\0\1\113\32\0\1\114\11\0\1\234\1\235"+
    "\2\0\4\235\1\0\1\235\1\0\1\235\3\0\2\235"+
    "\3\0\2\235\10\0\1\235\1\0\1\235\32\0\1\235"+
    "\11\0\1\236\1\103\1\233\2\0\3\236\1\111\1\112"+
    "\1\0\1\113\11\0\1\112\1\0\1\233\6\0\1\114"+
    "\1\0\1\113\32\0\1\114\11\0\1\110\1\103\1\233"+
    "\2\0\3\110\1\111\1\112\1\0\1\113\11\0\1\112"+
    "\1\0\1\233\6\0\1\114\1\0\1\113\32\0\1\114"+
    "\11\0\1\237\1\103\1\233\2\0\3\237\1\111\1\112"+
    "\1\0\1\113\11\0\1\112\1\0\1\233\6\0\1\114"+
    "\1\0\1\113\32\0\1\114\11\0\2\111\3\0\3\111"+
    "\1\0\1\112\1\0\1\113\11\0\1\112\10\0\1\114"+
    "\1\0\1\113\32\0\1\114\11\0\2\240\3\0\3\240"+
    "\2\0\1\241\55\0\1\241\24\0\1\242\72\0\12\11"+
    "\1\0\1\11\1\0\1\11\3\0\2\11\1\243\25\11"+
    "\24\0\1\11\7\0\12\11\1\0\1\11\1\0\1\11"+
    "\3\0\2\11\1\244\25\11\24\0\1\11\7\0\12\11"+
    "\1\0\1\11\1\0\1\11\3\0\6\11\1\245\21\11"+
    "\24\0\1\11\7\0\12\11\1\0\1\11\1\0\1\11"+
    "\3\0\7\11\1\246\20\11\24\0\1\11\7\0\12\11"+
    "\1\0\1\11\1\0\1\11\3\0\3\11\1\247\24\11"+
    "\24\0\1\11\7\0\12\11\1\0\1\11\1\0\1\11"+
    "\3\0\1\250\3\11\1\251\23\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\11\11\1\252"+
    "\16\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\7\11\1\253\20\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\23\11\1\254"+
    "\4\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\15\11\1\255\12\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\1\256\12\11"+
    "\1\257\2\11\1\260\11\11\24\0\1\11\7\0\12\11"+
    "\1\0\1\11\1\0\1\11\3\0\4\11\1\261\10\11"+
    "\1\262\12\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\3\11\1\263\24\11\24\0\1\11"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\2\11"+
    "\1\264\1\265\24\11\24\0\1\11\7\0\12\11\1\0"+
    "\1\11\1\0\1\11\3\0\11\11\1\266\16\11\24\0"+
    "\1\11\7\0\12\11\1\0\1\11\1\0\1\11\3\0"+
    "\1\267\27\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\1\270\27\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\2\11\1\271"+
    "\25\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\3\11\1\272\24\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\11\11\1\273"+
    "\16\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\3\11\1\274\24\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\26\11\1\275"+
    "\1\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\10\11\1\276\17\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\2\11\1\277"+
    "\1\300\24\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\23\11\1\301\4\11\24\0\1\11"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\21\11"+
    "\1\302\6\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\16\11\1\303\11\11\24\0\1\11"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\10\11"+
    "\1\304\17\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\4\11\1\305\23\11\24\0\1\11"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\7\11"+
    "\1\306\20\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\11\11\1\307\16\11\24\0\1\11"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\5\11"+
    "\1\310\22\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\7\11\1\311\5\11\1\312\12\11"+
    "\24\0\1\11\7\0\12\11\1\0\1\11\1\0\1\11"+
    "\3\0\1\11\1\313\26\11\24\0\1\11\7\0\12\11"+
    "\1\0\1\11\1\0\1\11\3\0\3\11\1\314\24\11"+
    "\24\0\1\11\7\0\12\11\1\0\1\11\1\0\1\11"+
    "\3\0\10\11\1\315\4\11\1\316\12\11\24\0\1\11"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\15\11"+
    "\1\317\12\11\24\0\1\11\70\0\1\320\1\321\103\0"+
    "\1\322\25\0\1\206\4\0\3\206\75\0\1\323\4\0"+
    "\3\323\75\0\1\324\4\0\3\324\5\0\1\325\67\0"+
    "\1\326\4\0\3\326\5\0\1\325\104\0\1\327\104\0"+
    "\1\330\104\0\1\331\104\0\1\332\104\0\1\333\104\0"+
    "\1\334\104\0\1\335\104\0\1\336\57\0\4\77\1\337"+
    "\1\232\77\77\10\0\1\234\1\235\1\340\1\0\4\235"+
    "\1\0\1\235\1\0\1\235\3\0\2\235\3\0\2\235"+
    "\1\0\1\340\6\0\1\235\1\0\1\235\32\0\1\235"+
    "\11\0\2\341\1\340\1\0\4\341\1\0\1\341\1\0"+
    "\1\341\3\0\2\341\3\0\2\341\1\0\1\340\6\0"+
    "\1\341\1\0\1\341\32\0\1\341\11\0\1\342\1\103"+
    "\1\233\2\0\3\342\1\111\1\112\1\0\1\113\11\0"+
    "\1\112\1\0\1\233\6\0\1\114\1\0\1\113\32\0"+
    "\1\114\11\0\1\343\1\103\1\233\2\0\3\343\1\111"+
    "\1\112\1\0\1\113\11\0\1\112\1\0\1\233\6\0"+
    "\1\114\1\0\1\113\32\0\1\114\11\0\2\240\3\0"+
    "\3\240\3\0\1\113\22\0\1\114\1\0\1\113\32\0"+
    "\1\114\11\0\2\240\3\0\3\240\73\0\12\11\1\0"+
    "\1\11\1\0\1\11\3\0\3\11\1\344\24\11\24\0"+
    "\1\11\7\0\12\11\1\0\1\11\1\0\1\11\3\0"+
    "\6\11\1\345\21\11\24\0\1\11\7\0\12\11\1\0"+
    "\1\11\1\0\1\11\3\0\1\346\27\11\24\0\1\11"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\10\11"+
    "\1\347\17\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\6\11\1\350\21\11\24\0\1\11"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\3\11"+
    "\1\351\24\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\15\11\1\352\12\11\24\0\1\11"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\5\11"+
    "\1\353\22\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\4\11\1\354\23\11\24\0\1\11"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\6\11"+
    "\1\355\21\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\3\11\1\356\24\11\24\0\1\11"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\11\11"+
    "\1\357\16\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\6\11\1\360\21\11\24\0\1\11"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\7\11"+
    "\1\361\20\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\2\11\1\362\25\11\24\0\1\11"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\16\11"+
    "\1\363\11\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\6\11\1\364\21\11\24\0\1\11"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\5\11"+
    "\1\365\22\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\2\11\1\366\1\367\24\11\24\0"+
    "\1\11\7\0\12\11\1\0\1\11\1\0\1\11\3\0"+
    "\2\11\1\370\25\11\24\0\1\11\7\0\12\11\1\0"+
    "\1\11\1\0\1\11\3\0\4\11\1\371\23\11\24\0"+
    "\1\11\7\0\12\11\1\0\1\11\1\0\1\11\3\0"+
    "\6\11\1\372\21\11\24\0\1\11\7\0\12\11\1\0"+
    "\1\11\1\0\1\11\3\0\6\11\1\373\21\11\24\0"+
    "\1\11\7\0\12\11\1\0\1\11\1\0\1\11\3\0"+
    "\24\11\1\374\3\11\24\0\1\11\7\0\12\11\1\0"+
    "\1\11\1\0\1\11\3\0\15\11\1\375\12\11\24\0"+
    "\1\11\7\0\12\11\1\0\1\11\1\0\1\11\3\0"+
    "\10\11\1\376\17\11\24\0\1\11\7\0\12\11\1\0"+
    "\1\11\1\0\1\11\3\0\3\11\1\377\24\11\24\0"+
    "\1\11\7\0\12\11\1\0\1\11\1\0\1\11\3\0"+
    "\6\11\1\u0100\21\11\24\0\1\11\7\0\12\11\1\0"+
    "\1\11\1\0\1\11\3\0\7\11\1\u0101\1\u0102\17\11"+
    "\24\0\1\11\7\0\12\11\1\0\1\11\1\0\1\11"+
    "\3\0\1\u0103\27\11\24\0\1\11\7\0\12\11\1\0"+
    "\1\11\1\0\1\11\3\0\1\11\1\u0104\26\11\24\0"+
    "\1\11\7\0\12\11\1\0\1\11\1\0\1\11\3\0"+
    "\2\11\1\u0105\25\11\24\0\1\11\7\0\12\11\1\0"+
    "\1\11\1\0\1\11\3\0\1\u0106\27\11\24\0\1\11"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\1\u0107"+
    "\27\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\12\11\1\u0108\15\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\3\11\1\u0109"+
    "\24\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\25\11\1\u010a\2\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\10\11\1\u010b"+
    "\17\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\7\11\1\u010c\20\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\1\u010d\27\11"+
    "\24\0\1\11\7\0\12\11\1\0\1\11\1\0\1\11"+
    "\3\0\17\11\1\u010e\10\11\24\0\1\11\7\0\12\11"+
    "\1\0\1\11\1\0\1\11\3\0\10\11\1\u010f\17\11"+
    "\24\0\1\11\70\0\1\u0110\42\0\1\325\67\0\2\u0111"+
    "\1\340\1\0\4\u0111\1\0\1\u0111\1\0\1\u0111\3\0"+
    "\2\u0111\3\0\2\u0111\1\0\1\340\6\0\1\u0111\1\0"+
    "\1\u0111\32\0\1\u0111\11\0\1\u0112\1\103\1\233\2\0"+
    "\3\u0112\1\111\1\112\1\0\1\113\11\0\1\112\1\0"+
    "\1\233\6\0\1\114\1\0\1\113\32\0\1\114\11\0"+
    "\1\u0113\1\103\1\233\2\0\3\u0113\1\111\1\112\1\0"+
    "\1\113\11\0\1\112\1\0\1\233\6\0\1\114\1\0"+
    "\1\113\32\0\1\114\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\4\11\1\u0114\23\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\4\11\1\u0115"+
    "\23\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\12\11\1\u0116\15\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\6\11\1\u0117"+
    "\21\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\15\11\1\u0118\12\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\5\11\1\u0119"+
    "\22\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\14\11\1\u011a\13\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\3\11\1\u011b"+
    "\24\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\4\11\1\u011c\23\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\5\11\1\u011d"+
    "\22\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\2\11\1\u011e\25\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\26\11\1\u011f"+
    "\1\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\4\11\1\u0120\23\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\14\11\1\u0121"+
    "\13\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\3\11\1\u0122\24\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\15\11\1\u0123"+
    "\12\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\2\11\1\u0124\25\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\11\11\1\u0125"+
    "\16\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\25\11\1\u0126\2\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\1\u0127\27\11"+
    "\24\0\1\11\7\0\12\11\1\0\1\11\1\0\1\11"+
    "\3\0\4\11\1\u0128\23\11\24\0\1\11\7\0\12\11"+
    "\1\0\1\11\1\0\1\11\3\0\4\11\1\u0129\23\11"+
    "\24\0\1\11\7\0\12\11\1\0\1\11\1\0\1\11"+
    "\3\0\6\11\1\u012a\21\11\24\0\1\11\7\0\12\11"+
    "\1\0\1\11\1\0\1\11\3\0\16\11\1\u012b\11\11"+
    "\24\0\1\11\7\0\12\11\1\0\1\11\1\0\1\11"+
    "\3\0\10\11\1\u012c\17\11\24\0\1\11\7\0\12\11"+
    "\1\0\1\11\1\0\1\11\3\0\6\11\1\u012d\21\11"+
    "\24\0\1\11\7\0\12\11\1\0\1\11\1\0\1\11"+
    "\3\0\3\11\1\u012e\24\11\24\0\1\11\7\0\12\11"+
    "\1\0\1\11\1\0\1\11\3\0\10\11\1\u012f\17\11"+
    "\24\0\1\11\7\0\12\11\1\0\1\11\1\0\1\11"+
    "\3\0\1\u0130\27\11\24\0\1\11\7\0\12\11\1\0"+
    "\1\11\1\0\1\11\3\0\6\11\1\u0131\21\11\24\0"+
    "\1\11\7\0\12\11\1\0\1\11\1\0\1\11\3\0"+
    "\1\u0132\27\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\15\11\1\u0133\12\11\24\0\1\11"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\3\11"+
    "\1\u0134\24\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\6\11\1\u0135\21\11\24\0\1\11"+
    "\11\0\2\u0136\1\340\1\0\4\u0136\1\0\1\u0136\1\0"+
    "\1\u0136\3\0\2\u0136\3\0\2\u0136\1\0\1\340\6\0"+
    "\1\u0136\1\0\1\u0136\32\0\1\u0136\11\0\1\u0137\1\103"+
    "\1\233\2\0\3\u0137\1\111\1\112\1\0\1\113\11\0"+
    "\1\112\1\0\1\233\6\0\1\114\1\0\1\113\32\0"+
    "\1\114\11\0\1\u0138\1\103\1\233\2\0\3\u0138\1\111"+
    "\1\112\1\0\1\113\11\0\1\112\1\0\1\233\6\0"+
    "\1\114\1\0\1\113\32\0\1\114\7\0\12\11\1\0"+
    "\1\11\1\0\1\11\3\0\1\u0139\27\11\24\0\1\11"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\3\11"+
    "\1\u013a\24\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\1\u013b\27\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\5\11\1\u013c"+
    "\22\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\3\11\1\u013d\24\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\4\11\1\u013e"+
    "\23\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\14\11\1\u013f\13\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\15\11\1\u0140"+
    "\12\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\2\11\1\u0141\25\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\11\11\1\u0142"+
    "\16\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\11\11\1\u0143\16\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\17\11\1\u0144"+
    "\10\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\6\11\1\u0145\21\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\11\11\1\u0146"+
    "\16\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\21\11\1\u0147\6\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\3\11\1\u0148"+
    "\24\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\22\11\1\u0149\5\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\10\11\1\u014a"+
    "\17\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\6\11\1\u014b\21\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\10\11\1\u014c"+
    "\17\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\24\11\1\u014d\3\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\5\11\1\u014e"+
    "\22\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\3\11\1\u014f\24\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\5\11\1\u0150"+
    "\22\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\15\11\1\u0151\12\11\24\0\1\11\11\0"+
    "\2\u0152\1\340\1\0\4\u0152\1\0\1\u0152\1\0\1\u0152"+
    "\3\0\2\u0152\3\0\2\u0152\1\0\1\340\6\0\1\u0152"+
    "\1\0\1\u0152\32\0\1\u0152\11\0\1\u0153\1\103\1\233"+
    "\2\0\3\u0153\1\111\1\112\1\0\1\113\11\0\1\112"+
    "\1\0\1\233\6\0\1\114\1\0\1\113\32\0\1\114"+
    "\11\0\1\u0154\1\103\1\233\2\0\3\u0154\1\111\1\112"+
    "\1\0\1\113\11\0\1\112\1\0\1\233\6\0\1\114"+
    "\1\0\1\113\32\0\1\114\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\5\11\1\u0155\22\11\24\0\1\11"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\11\11"+
    "\1\u0156\16\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\21\11\1\u0157\6\11\24\0\1\11"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\7\11"+
    "\1\u0158\20\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\6\11\1\u0159\21\11\24\0\1\11"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\16\11"+
    "\1\u015a\11\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\2\11\1\u015b\25\11\24\0\1\11"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\5\11"+
    "\1\u015c\22\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\1\u015d\27\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\6\11\1\u015e"+
    "\21\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\3\11\1\u015f\24\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\13\11\1\u0160"+
    "\14\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\6\11\1\u0161\21\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\3\11\1\u0162"+
    "\24\11\24\0\1\11\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\6\11\1\u0163\21\11\24\0\1\11\7\0"+
    "\12\11\1\0\1\11\1\0\1\11\3\0\10\11\1\u0164"+
    "\17\11\24\0\1\11\11\0\2\u0165\1\340\1\0\4\u0165"+
    "\1\0\1\u0165\1\0\1\u0165\3\0\2\u0165\3\0\2\u0165"+
    "\1\0\1\340\6\0\1\u0165\1\0\1\u0165\32\0\1\u0165"+
    "\11\0\1\u0166\1\103\1\233\2\0\3\u0166\1\111\1\112"+
    "\1\0\1\113\11\0\1\112\1\0\1\233\6\0\1\114"+
    "\1\0\1\113\32\0\1\114\11\0\1\u0167\1\103\1\233"+
    "\2\0\3\u0167\1\111\1\112\1\0\1\113\11\0\1\112"+
    "\1\0\1\233\6\0\1\114\1\0\1\113\32\0\1\114"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\3\11"+
    "\1\u0168\24\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\23\11\1\u0169\4\11\24\0\1\11"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\11\11"+
    "\1\u016a\16\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\11\11\1\u016b\16\11\24\0\1\11"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\6\11"+
    "\1\u016c\21\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\6\11\1\u016d\21\11\24\0\1\11"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\5\11"+
    "\1\u016e\22\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\11\11\1\u016f\16\11\24\0\1\11"+
    "\7\0\12\11\1\0\1\11\1\0\1\11\3\0\6\11"+
    "\1\u0170\21\11\24\0\1\11\7\0\12\11\1\0\1\11"+
    "\1\0\1\11\3\0\6\11\1\u0171\21\11\24\0\1\11"+
    "\11\0\2\u0172\1\340\1\0\4\u0172\1\0\1\u0172\1\0"+
    "\1\u0172\3\0\2\u0172\3\0\2\u0172\1\0\1\340\6\0"+
    "\1\u0172\1\0\1\u0172\32\0\1\u0172\11\0\1\u0173\1\103"+
    "\1\233\2\0\3\u0173\1\111\1\112\1\0\1\113\11\0"+
    "\1\112\1\0\1\233\6\0\1\114\1\0\1\113\32\0"+
    "\1\114\11\0\1\u0174\1\103\1\233\2\0\3\u0174\1\111"+
    "\1\112\1\0\1\113\11\0\1\112\1\0\1\233\6\0"+
    "\1\114\1\0\1\113\32\0\1\114\7\0\12\11\1\0"+
    "\1\11\1\0\1\11\3\0\15\11\1\u0175\12\11\24\0"+
    "\1\11\7\0\12\11\1\0\1\11\1\0\1\11\3\0"+
    "\3\11\1\u0176\24\11\24\0\1\11\7\0\12\11\1\0"+
    "\1\11\1\0\1\11\3\0\7\11\1\u0177\20\11\24\0"+
    "\1\11\7\0\12\11\1\0\1\11\1\0\1\11\3\0"+
    "\6\11\1\u0178\21\11\24\0\1\11\7\0\12\11\1\0"+
    "\1\11\1\0\1\11\3\0\3\11\1\u0179\24\11\24\0"+
    "\1\11\7\0\12\11\1\0\1\11\1\0\1\11\3\0"+
    "\17\11\1\u017a\10\11\24\0\1\11\11\0\2\u017b\1\340"+
    "\1\0\4\u017b\1\0\1\u017b\1\0\1\u017b\3\0\2\u017b"+
    "\3\0\2\u017b\1\0\1\340\6\0\1\u017b\1\0\1\u017b"+
    "\32\0\1\u017b\11\0\1\u017c\1\103\1\233\2\0\3\u017c"+
    "\1\111\1\112\1\0\1\113\11\0\1\112\1\0\1\233"+
    "\6\0\1\114\1\0\1\113\32\0\1\114\11\0\1\u017d"+
    "\1\103\1\233\2\0\3\u017d\1\111\1\112\1\0\1\113"+
    "\11\0\1\112\1\0\1\233\6\0\1\114\1\0\1\113"+
    "\32\0\1\114\7\0\12\11\1\0\1\11\1\0\1\11"+
    "\3\0\27\11\1\u017e\24\0\1\11\7\0\12\11\1\0"+
    "\1\11\1\0\1\11\3\0\21\11\1\u017f\6\11\24\0"+
    "\1\11\7\0\12\11\1\0\1\11\1\0\1\11\3\0"+
    "\2\11\1\u0180\25\11\24\0\1\11\11\0\2\u0181\1\340"+
    "\1\0\4\u0181\1\0\1\u0181\1\0\1\u0181\3\0\2\u0181"+
    "\3\0\2\u0181\1\0\1\340\6\0\1\u0181\1\0\1\u0181"+
    "\32\0\1\u0181\11\0\1\u0182\1\103\1\233\2\0\3\u0182"+
    "\1\111\1\112\1\0\1\113\11\0\1\112\1\0\1\233"+
    "\6\0\1\114\1\0\1\113\32\0\1\114\11\0\1\u0183"+
    "\1\103\1\233\2\0\3\u0183\1\111\1\112\1\0\1\113"+
    "\11\0\1\112\1\0\1\233\6\0\1\114\1\0\1\113"+
    "\32\0\1\114\7\0\12\11\1\0\1\11\1\0\1\11"+
    "\3\0\6\11\1\u0184\21\11\24\0\1\11\11\0\2\u0185"+
    "\1\340\1\0\4\u0185\1\0\1\u0185\1\0\1\u0185\3\0"+
    "\2\u0185\3\0\2\u0185\1\0\1\340\6\0\1\u0185\1\0"+
    "\1\u0185\32\0\1\u0185\11\0\1\u0186\1\103\1\233\2\0"+
    "\3\u0186\1\111\1\112\1\0\1\113\11\0\1\112\1\0"+
    "\1\233\6\0\1\114\1\0\1\113\32\0\1\114\11\0"+
    "\1\u0187\1\103\1\233\2\0\3\u0187\1\111\1\112\1\0"+
    "\1\113\11\0\1\112\1\0\1\233\6\0\1\114\1\0"+
    "\1\113\32\0\1\114\7\0\12\11\1\0\1\11\1\0"+
    "\1\11\3\0\17\11\1\u0188\10\11\24\0\1\11\11\0"+
    "\2\u0189\1\340\1\0\4\u0189\1\0\1\u0189\1\0\1\u0189"+
    "\3\0\2\u0189\3\0\2\u0189\1\0\1\340\6\0\1\u0189"+
    "\1\0\1\u0189\32\0\1\u0189\11\0\1\u018a\1\103\1\233"+
    "\2\0\3\u018a\1\111\1\112\1\0\1\113\11\0\1\112"+
    "\1\0\1\233\6\0\1\114\1\0\1\113\32\0\1\114"+
    "\11\0\1\u018b\1\103\1\233\2\0\3\u018b\1\111\1\112"+
    "\1\0\1\113\11\0\1\112\1\0\1\233\6\0\1\114"+
    "\1\0\1\113\32\0\1\114\11\0\2\u018c\1\340\1\0"+
    "\4\u018c\1\0\1\u018c\1\0\1\u018c\3\0\2\u018c\3\0"+
    "\2\u018c\1\0\1\340\6\0\1\u018c\1\0\1\u018c\32\0"+
    "\1\u018c\11\0\1\u018d\1\103\1\233\2\0\3\u018d\1\111"+
    "\1\112\1\0\1\113\11\0\1\112\1\0\1\233\6\0"+
    "\1\114\1\0\1\113\32\0\1\114\11\0\1\u018e\1\103"+
    "\1\233\2\0\3\u018e\1\111\1\112\1\0\1\113\11\0"+
    "\1\112\1\0\1\233\6\0\1\114\1\0\1\113\32\0"+
    "\1\114\11\0\2\u018f\1\340\1\0\4\u018f\1\0\1\u018f"+
    "\1\0\1\u018f\3\0\2\u018f\3\0\2\u018f\1\0\1\340"+
    "\6\0\1\u018f\1\0\1\u018f\32\0\1\u018f\11\0\1\u0190"+
    "\1\103\1\233\2\0\3\u0190\1\111\1\112\1\0\1\113"+
    "\11\0\1\112\1\0\1\233\6\0\1\114\1\0\1\113"+
    "\32\0\1\114\11\0\1\u0191\1\103\1\233\2\0\3\u0191"+
    "\1\111\1\112\1\0\1\113\11\0\1\112\1\0\1\233"+
    "\6\0\1\114\1\0\1\113\32\0\1\114\11\0\2\u0192"+
    "\1\340\1\0\4\u0192\1\0\1\u0192\1\0\1\u0192\3\0"+
    "\2\u0192\3\0\2\u0192\1\0\1\340\6\0\1\u0192\1\0"+
    "\1\u0192\32\0\1\u0192\11\0\1\u0193\1\103\1\233\2\0"+
    "\3\u0193\1\111\1\112\1\0\1\113\11\0\1\112\1\0"+
    "\1\233\6\0\1\114\1\0\1\113\32\0\1\114\11\0"+
    "\1\u0194\1\103\1\233\2\0\3\u0194\1\111\1\112\1\0"+
    "\1\113\11\0\1\112\1\0\1\233\6\0\1\114\1\0"+
    "\1\113\32\0\1\114\11\0\2\u0195\1\340\1\0\4\u0195"+
    "\1\0\1\u0195\1\0\1\u0195\3\0\2\u0195\3\0\2\u0195"+
    "\1\0\1\340\6\0\1\u0195\1\0\1\u0195\32\0\1\u0195"+
    "\11\0\1\u0196\1\103\1\233\2\0\3\u0196\1\111\1\112"+
    "\1\0\1\113\11\0\1\112\1\0\1\233\6\0\1\114"+
    "\1\0\1\113\32\0\1\114\11\0\1\u0197\1\103\1\233"+
    "\2\0\3\u0197\1\111\1\112\1\0\1\113\11\0\1\112"+
    "\1\0\1\233\6\0\1\114\1\0\1\113\32\0\1\114"+
    "\11\0\2\u0198\1\340\1\0\4\u0198\1\0\1\u0198\1\0"+
    "\1\u0198\3\0\2\u0198\3\0\2\u0198\1\0\1\340\6\0"+
    "\1\u0198\1\0\1\u0198\32\0\1\u0198\11\0\1\u0199\1\103"+
    "\1\233\2\0\3\u0199\1\111\1\112\1\0\1\113\11\0"+
    "\1\112\1\0\1\233\6\0\1\114\1\0\1\113\32\0"+
    "\1\114\13\0\1\340\24\0\1\340\55\0\1\u019a\1\103"+
    "\1\233\2\0\3\u019a\1\111\1\112\1\0\1\113\11\0"+
    "\1\112\1\0\1\233\6\0\1\114\1\0\1\113\32\0"+
    "\1\114\11\0\1\u019b\1\103\1\233\2\0\3\u019b\1\111"+
    "\1\112\1\0\1\113\11\0\1\112\1\0\1\233\6\0"+
    "\1\114\1\0\1\113\32\0\1\114\11\0\1\u019c\1\103"+
    "\1\233\2\0\3\u019c\1\111\1\112\1\0\1\113\11\0"+
    "\1\112\1\0\1\233\6\0\1\114\1\0\1\113\32\0"+
    "\1\114\11\0\1\u019d\1\103\1\233\2\0\3\u019d\1\111"+
    "\1\112\1\0\1\113\11\0\1\112\1\0\1\233\6\0"+
    "\1\114\1\0\1\113\32\0\1\114\11\0\2\103\1\233"+
    "\2\0\3\103\1\111\1\112\1\0\1\113\11\0\1\112"+
    "\1\0\1\233\6\0\1\114\1\0\1\113\32\0\1\114"+
    "\1\0";

  /** 
   * The transition table of the DFA
   */
  final private static int yytrans [] = yy_unpack();


  /* error codes */
  final private static int YY_UNKNOWN_ERROR = 0;
  final private static int YY_ILLEGAL_STATE = 1;
  final private static int YY_NO_MATCH = 2;
  final private static int YY_PUSHBACK_2BIG = 3;

  /* error messages for the codes above */
  final private static String YY_ERROR_MSG[] = {
    "Unkown internal scanner error",
    "Internal error: unknown state",
    "Error: could not match input",
    "Error: pushback value was too large"
  };

  /**
   * YY_ATTRIBUTE[aState] contains the attributes of state aState
   */
  private final static byte YY_ATTRIBUTE[] = {
     0,  0,  0,  9,  1,  1,  1,  1,  1,  1,  1,  1,  1,  9,  9,  1, 
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  9, 
     9,  9,  9,  9,  9,  9,  9,  1,  1,  1,  1,  9,  9,  9,  1,  1, 
     1,  1,  1,  1,  1,  1,  9,  9,  1,  1,  1,  9,  1,  1,  0,  9, 
     9,  1,  1,  9,  0,  1,  1,  1,  1,  0,  9,  9,  0,  9,  9,  1, 
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
     1,  1,  1,  1,  1,  9,  9,  1,  9,  1,  9,  9,  9,  9,  9,  9, 
     9,  9,  9,  9,  1,  1,  9,  9,  9,  9,  9,  9,  9,  9,  9,  1, 
     1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  9,  1,  1,  1,  1,  1, 
     0,  9,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  9, 
     1,  9,  9,  0,  9,  0,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9, 
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  9, 
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
     0,  1,  1,  1,  0,  1,  1,  1,  0,  1,  1,  0,  1,  1,  0,  1, 
     1,  0,  1,  1,  0,  1,  1,  0,  1,  1,  1,  1,  1
  };

  /** the input device */
  private java.io.Reader yy_reader;

  /** the current state of the DFA */
  private int yy_state;

  /** the current lexical state */
  private int yy_lexical_state = YYINITIAL;

  /** this buffer contains the current text to be matched and is
      the source of the yytext() string */
  private char yy_buffer[] = new char[YY_BUFFERSIZE];

  /** the textposition at the last accepting state */
  private int yy_markedPos;

  /** the textposition at the last state to be included in yytext */
  private int yy_pushbackPos;

  /** the current text position in the buffer */
  private int yy_currentPos;

  /** startRead marks the beginning of the yytext() string in the buffer */
  private int yy_startRead;

  /** endRead marks the last character in the buffer, that has been read
      from input */
  private int yy_endRead;

  /** number of newlines encountered up to the start of the matched text */
  private int yyline;

  /** the number of characters up to the start of the matched text */
  private int yychar;

  /**
   * the number of characters from the last newline up to the start of the 
   * matched text
   */
  private int yycolumn; 

  /** 
   * yy_atBOL == true <=> the scanner is currently at the beginning of a line
   */
  private boolean yy_atBOL = true;

  /** yy_atEOF == true <=> the scanner is at the EOF */
  private boolean yy_atEOF;

  /** denotes if the user-EOF-code has already been executed */
  private boolean yy_eof_done;

  /* user code: */
  private StringBuffer string = new StringBuffer();
  private Token lastToken=null;
  private List padding=new ArrayList();
  private Parser parser;
  private UnicodeEscapes unicodeReader;
  private ArrayList tokens=new ArrayList();
  private int savedOffset;
  private static final Token EMPTY_PADDING[]=new Token[0];
  private static final Integer MOD_ABSTRACT=new Integer(Modifier.ABSTRACT);
  private static final Integer MOD_PUBLIC=new Integer(Modifier.PUBLIC);
  private static final Integer MOD_PROTECTED=new Integer(Modifier.PROTECTED);
  private static final Integer MOD_PRIVATE=new Integer(Modifier.PRIVATE);
  private static final Integer MOD_STATIC=new Integer(Modifier.STATIC);
  private static final Integer MOD_FINAL=new Integer(Modifier.FINAL);
  private static final Integer MOD_SYNCHRONIZED=new Integer(Modifier.SYNCHRONIZED);
  private static final Integer MOD_NATIVE=new Integer(Modifier.NATIVE);
  private static final Integer MOD_STRICTFP=new Integer(Modifier.STRICT);
  private static final Integer MOD_TRANSIENT=new Integer(Modifier.TRANSIENT);
  private static final Integer MOD_VOLATILE=new Integer(Modifier.VOLATILE);
  private static final Boolean LIT_TRUE=new Boolean(true);
  private static final Boolean LIT_FALSE=new Boolean(false);

  private int token(int type) {
    return token(type,null);
  }

  private Token cretateToken(int type, Object value,Token pad[],int index) {
	  int startPos;
	  int endPos;
          int scStartPos;

          if (type==STRING_LIT || type==CHAR_LIT)
              scStartPos=savedOffset;
          else 
              scStartPos=yychar;
	  startPos=unicodeReader.convertPosition(scStartPos);
	  endPos=unicodeReader.convertPosition(yychar+yylength());
	  //System.out.println("Current start position:"+yychar+" Correct start position:"+startPos);
          //System.out.println("Current end position:"+yychar+yylength()+" Correct end position:"+endPos);
	  return new ScannerToken(type, value, startPos, endPos, pad,index);
  }
  
  private int token(int type, Object value) {
    if (parser!=null) {
        int psize=padding.size();
        Token padArr[];

        padArr=(psize==0)?EMPTY_PADDING:(Token[])padding.toArray(new Token[padding.size()]);
        lastToken = cretateToken(type,value,padArr,tokens.size());
            tokens.add(lastToken);
        if (parser!=null)
            parser.yylval = (ASTClass)lastToken;
        padding.clear();
    }
    return type;
  }

  private void addPadding(int type) {
    if (parser!=null) {
        Token pad=cretateToken(type,type==DOC_COMMENT?yytext():null,null,padding.size());
        padding.add(pad);
    }
  }

  protected void setParser(Parser p) {
     parser=p;
  }

  protected Token getToken(int index) {
     if (parser!=null) 
        return (Token)tokens.get(index);
     return null;
  }

  protected Token[] getTokens() {
      if (parser!=null) {
	  Token[] array = new Token[tokens.size()];
	  return (Token[])tokens.toArray(array);
      }
     return null;
  }

  private Integer atoi(int start,int end,int radix) {
    Long number=atol(start,end,radix);

    return new Integer(number.intValue());
  }

  private Long atol(int start,int end,int radix) {
    long result=0;
    int i;

    for(i=start;i='A' && ch<='F')
        digit=ch-'A'+10;
      else if (ch>='a' && ch<='f')
        digit=ch-'a'+10;
      result+=digit;
    }
    return new Long(result);
  }

  public static Scanner newScanner (java.io.Reader in, String sourceLevel,
				    boolean liteScanning) {
      return new Scanner(in);
  }

  public int yyhash() {
      return yytext().hashCode();
  }

  public boolean isDeprecated() {
      return false;
  }

  public void resetDeprecatedFlag() { }

  /**
   * Creates a new scanner
   * There is also a java.io.InputStream version of this constructor.
   *
   * @param   in  the java.io.Reader to read input from.
   */
  public Scanner(java.io.Reader in) {
    in = unicodeReader = new UnicodeEscapes(in);
    this.yy_reader = in;
  }

  /**
   * Creates a new scanner.
   * There is also java.io.Reader version of this constructor.
   *
   * @param   in  the java.io.Inputstream to read input from.
   */
  public Scanner(java.io.InputStream in) {
    this(new java.io.InputStreamReader(in));
  }

  /** 
   * Unpacks the split, compressed DFA transition table.
   *
   * @return the unpacked transition table
   */
  private static int [] yy_unpack() {
    int [] trans = new int[20769];
    int offset = 0;
    offset = yy_unpack(yy_packed0, offset, trans);
    return trans;
  }

  /** 
   * Unpacks the compressed DFA transition table.
   *
   * @param packed   the packed transition table
   * @return         the index of the last entry
   */
  private static int yy_unpack(String packed, int offset, int [] trans) {
    int i = 0;       /* index in packed string  */
    int j = offset;  /* index in unpacked array */
    int l = packed.length();
    while (i < l) {
      int count = packed.charAt(i++);
      int value = packed.charAt(i++);
      value--;
      do trans[j++] = value; while (--count > 0);
    }
    return j;
  }

  /** 
   * Unpacks the compressed character translation table.
   *
   * @param packed   the packed character translation table
   * @return         the unpacked character translation table
   */
  private static char [] yy_unpack_cmap(String packed) {
    char [] map = new char[0x10000];
    int i = 0;  /* index in packed string  */
    int j = 0;  /* index in unpacked array */
    while (i < 1660) {
      int  count = packed.charAt(i++);
      char value = packed.charAt(i++);
      do map[j++] = value; while (--count > 0);
    }
    return map;
  }


  /**
   * Refills the input buffer.
   *
   * @return      false, iff there was new input.
   * 
   * @exception   IOException  if any I/O-Error occurs
   */
  private boolean yy_refill() throws java.io.IOException {

    /* first: make room (if you can) */
    if (yy_startRead > 0) {
      System.arraycopy(yy_buffer, yy_startRead, 
                       yy_buffer, 0, 
                       yy_endRead-yy_startRead);

      /* translate stored positions */
      yy_endRead-= yy_startRead;
      yy_currentPos-= yy_startRead;
      yy_markedPos-= yy_startRead;
      yy_pushbackPos-= yy_startRead;
      yy_startRead = 0;
    }

    /* is the buffer big enough? */
    if (yy_currentPos >= yy_buffer.length) {
      /* if not: blow it up */
      char newBuffer[] = new char[yy_currentPos*2];
      System.arraycopy(yy_buffer, 0, newBuffer, 0, yy_buffer.length);
      yy_buffer = newBuffer;
    }

    /* finally: fill the buffer with new input */
    int numRead = yy_reader.read(yy_buffer, yy_endRead, 
                                            yy_buffer.length-yy_endRead);

    if (numRead < 0) {
      return true;
    }
    else {
      yy_endRead+= numRead;  
      return false;
    }
  }


  /**
   * Closes the input stream.
   */
  final public void yyclose() throws java.io.IOException {
    yy_atEOF = true;            /* indicate end of file */
    yy_endRead = yy_startRead;  /* invalidate buffer    */

    if (yy_reader != null)
      yy_reader.close();
  }


  /**
   * Closes the current stream, and resets the
   * scanner to read from a new input stream.
   *
   * All internal variables are reset, the old input stream 
   * cannot be reused (internal buffer is discarded and lost).
   * Lexical state is set to YY_INITIAL.
   *
   * @param reader   the new input stream 
   */
  final public void yyreset(java.io.Reader reader) throws java.io.IOException {
    yyclose();
    yy_reader = reader;
    yy_atBOL  = true;
    yy_atEOF  = false;
    yy_endRead = yy_startRead = 0;
    yy_currentPos = yy_markedPos = yy_pushbackPos = 0;
    yyline = yychar = yycolumn = 0;
    yy_lexical_state = YYINITIAL;
  }


  /**
   * Returns the current lexical state.
   */
  final public int yystate() {
    return yy_lexical_state;
  }


  /**
   * Enters a new lexical state
   *
   * @param newState the new lexical state
   */
  final public void yybegin(int newState) {
    yy_lexical_state = newState;
  }


  /**
   * Returns the text matched by the current regular expression.
   */
  final public String yytext() {
    return new String( yy_buffer, yy_startRead, yy_markedPos-yy_startRead );
  }


  /**
   * Returns the character at position pos from the 
   * matched text. 
   * 
   * It is equivalent to yytext().charAt(pos), but faster
   *
   * @param pos the position of the character to fetch. 
   *            A value from 0 to yylength()-1.
   *
   * @return the character at position pos
   */
  final public char yycharat(int pos) {
    return yy_buffer[yy_startRead+pos];
  }


  /**
   * Returns the length of the matched text region.
   */
  final public int yylength() {
    return yy_markedPos-yy_startRead;
  }


  /**
   * Reports an error that occured while scanning.
   *
   * In a wellformed scanner (no or only correct usage of 
   * yypushback(int) and a match-all fallback rule) this method 
   * will only be called with things that "Can't Possibly Happen".
   * If this method is called, something is seriously wrong
   * (e.g. a JFlex bug producing a faulty scanner etc.).
   *
   * Usual syntax/scanner level error handling should be done
   * in error fallback rules.
   *
   * @param   errorCode  the code of the errormessage to display
   */
  private void yy_ScanError(int errorCode) {
    String message;
    try {
      message = YY_ERROR_MSG[errorCode];
    }
    catch (ArrayIndexOutOfBoundsException e) {
      message = YY_ERROR_MSG[YY_UNKNOWN_ERROR];
    }

    throw new Error(message);
  } 


  /**
   * Pushes the specified amount of characters back into the input stream.
   *
   * They will be read again by then next call of the scanning method
   *
   * @param number  the number of characters to be read again.
   *                This number must not be greater than yylength()!
   */
  private void yypushback(int number)  {
    if ( number > yylength() )
      yy_ScanError(YY_PUSHBACK_2BIG);

    yy_markedPos -= number;
  }


  /**
   * Contains user EOF-code, which will be executed exactly once,
   * when the end of file is reached
   */
  private void yy_do_eof() throws java.io.IOException {
    if (!yy_eof_done) {
      yy_eof_done = true;
      yyclose();
    }
  }


  /**
   * Resumes scanning until the next regular expression is matched,
   * the end of input is encountered or an I/O-Error occurs.
   *
   * @return      the next token
   * @exception   IOException  if any I/O-Error occurs
   */
  public int yylex() throws java.io.IOException {
    int yy_input;
    int yy_action;

    // cached fields:
    int yy_currentPos_l;
    int yy_startRead_l;
    int yy_markedPos_l;
    int yy_endRead_l = yy_endRead;
    char [] yy_buffer_l = yy_buffer;
    char [] yycmap_l = yycmap;

    int [] yytrans_l = yytrans;
    int [] yy_rowMap_l = yy_rowMap;
    byte [] yy_attr_l = YY_ATTRIBUTE;

    while (true) {
      yy_markedPos_l = yy_markedPos;

      yychar+= yy_markedPos_l-yy_startRead;

      yy_action = -1;

      yy_startRead_l = yy_currentPos_l = yy_currentPos = 
                       yy_startRead = yy_markedPos_l;

      yy_state = yy_lexical_state;


      yy_forAction: {
        while (true) {

          if (yy_currentPos_l < yy_endRead_l)
            yy_input = yy_buffer_l[yy_currentPos_l++];
          else if (yy_atEOF) {
            yy_input = YYEOF;
            break yy_forAction;
          }
          else {
            // store back cached positions
            yy_currentPos  = yy_currentPos_l;
            yy_markedPos   = yy_markedPos_l;
            boolean eof = yy_refill();
            // get translated positions and possibly new buffer
            yy_currentPos_l  = yy_currentPos;
            yy_markedPos_l   = yy_markedPos;
            yy_buffer_l      = yy_buffer;
            yy_endRead_l     = yy_endRead;
            if (eof) {
              yy_input = YYEOF;
              break yy_forAction;
            }
            else {
              yy_input = yy_buffer_l[yy_currentPos_l++];
            }
          }
          int yy_next = yytrans_l[ yy_rowMap_l[yy_state] + yycmap_l[yy_input] ];
          if (yy_next == -1) break yy_forAction;
          yy_state = yy_next;

          int yy_attributes = yy_attr_l[yy_state];
          if ( (yy_attributes & 1) == 1 ) {
            yy_action = yy_state; 
            yy_markedPos_l = yy_currentPos_l; 
            if ( (yy_attributes & 8) == 8 ) break yy_forAction;
          }

        }
      }

      // store back cached position
      yy_markedPos = yy_markedPos_l;

      switch (yy_action) {

        case 3: 
        case 56: 
        case 57: 
        case 60: 
          {  throw new RuntimeException("Illegal character \""+yytext()+"\" at line "+yyline+", column "+yycolumn);  }
        case 414: break;
        case 53: 
        case 54: 
          {  throw new RuntimeException("Unterminated string at end of line");  }
        case 415: break;
        case 47: 
          {  return token(OR);  }
        case 416: break;
        case 41: 
          {  return token(LT);  }
        case 417: break;
        case 40: 
          {  return token(GT);  }
        case 418: break;
        case 103: 
          {  return token(IF);  }
        case 419: break;
        case 106: 
          {  return token(DO);  }
        case 420: break;
        case 117: 
          {  return token(EQ);  }
        case 421: break;
        case 363: 
          {  return token(CONTINUE);  }
        case 422: break;
        case 352: 
          {  return token(PACKAGE);  }
        case 423: break;
        case 351: 
          {  return token(FINALLY);  }
        case 424: break;
        case 350: 
          {  return token(DEFAULT);  }
        case 425: break;
        case 346: 
          {  return token(EXTENDS);  }
        case 426: break;
        case 341: 
          {  return token(BOOLEAN);  }
        case 427: break;
        case 253: 
          {  return token(NULL_LIT);  }
        case 428: break;
        case 221: 
          {  yybegin(YYINITIAL); return token(CHAR_LIT, new Character('\f')); }
        case 429: break;
        case 220: 
          {  yybegin(YYINITIAL); return token(CHAR_LIT, new Character('\n')); }
        case 430: break;
        case 219: 
          {  yybegin(YYINITIAL); return token(CHAR_LIT, new Character('\r')); }
        case 431: break;
        case 218: 
          {  yybegin(YYINITIAL); return token(CHAR_LIT, new Character('\t')); }
        case 432: break;
        case 217: 
          {  yybegin(YYINITIAL); return token(CHAR_LIT, new Character('\b')); }
        case 433: break;
        case 215: 
          {  yybegin(YYINITIAL); return token(CHAR_LIT, new Character('\'')); }
        case 434: break;
        case 214: 
          {  yybegin(YYINITIAL); return token(CHAR_LIT, new Character('\"')); }
        case 435: break;
        case 208: 
          {  return token(UR_SHIFT);  }
        case 436: break;
        case 161: 
          {  return token(ELLIPSIS);  }
        case 437: break;
        case 141: 
          {  string.append( '\f' );  }
        case 438: break;
        case 52: 
          {  if (parser!=null) string.append( yytext() );  }
        case 439: break;
        case 44: 
          {  return token(QUESTION);  }
        case 440: break;
        case 4: 
          {  addPadding(EOL);  }
        case 441: break;
        case 33: 
          {  return token(L_CURLY);  }
        case 442: break;
        case 34: 
          {  return token(R_CURLY);  }
        case 443: break;
        case 119: 
          {  return token(R_SHIFT);  }
        case 444: break;
        case 121: 
          {  return token(L_SHIFT);  }
        case 445: break;
        case 124: 
          {  return token(BOOL_AND);  }
        case 446: break;
        case 126: 
          {  return token(BOOL_OR);  }
        case 447: break;
        case 134: 
          {  string.append( '\"' );  }
        case 448: break;
        case 135: 
          {  string.append( '\'' );  }
        case 449: break;
        case 136: 
          {  string.append( '\\' );  }
        case 450: break;
        case 137: 
          {  string.append( '\b' );  }
        case 451: break;
        case 138: 
          {  string.append( '\t' );  }
        case 452: break;
        case 139: 
          {  string.append( '\r' );  }
        case 453: break;
        case 140: 
          {  string.append( '\n' );  }
        case 454: break;
        case 155: 
        case 156: 
        case 224: 
        case 272: 
        case 309: 
        case 337: 
        case 356: 
        case 369: 
        case 378: 
          {  return token(INT_LIT, parser!=null ? atoi(2,yylength(),16) : null);  }
        case 455: break;
        case 9: 
        case 10: 
          {  return token(INT_LIT, parser!=null ? atoi(0,yylength(),10) : null);  }
        case 456: break;
        case 65: 
        case 69: 
        case 70: 
        case 71: 
        case 157: 
        case 158: 
        case 225: 
        case 226: 
        case 273: 
        case 274: 
        case 310: 
        case 311: 
        case 338: 
        case 339: 
        case 357: 
        case 358: 
        case 370: 
        case 371: 
        case 379: 
        case 380: 
        case 385: 
        case 386: 
        case 389: 
        case 390: 
        case 393: 
        case 394: 
        case 396: 
        case 397: 
        case 399: 
        case 400: 
        case 402: 
        case 403: 
        case 405: 
          {  return token(INT_LIT, parser!=null ? atoi(0,yylength(),8) : null);  }
        case 457: break;
        case 66: 
        case 72: 
        case 159: 
        case 406: 
        case 408: 
        case 409: 
        case 410: 
        case 411: 
        case 412: 
          {  return token(FLOAT_LIT, parser!=null ? new Double(yytext()) : null);  }
        case 458: break;
        case 75: 
          {  return token(FLOAT_LIT, parser!=null ? new Double(yytext().substring(0,yylength()-1)) : null);  }
        case 459: break;
        case 269: 
          {  return token(VOID);  }
        case 460: break;
        case 267: 
          {  return token(GOTO);  }
        case 461: break;
        case 251: 
          {  return token(LONG);  }
        case 462: break;
        case 249: 
          {  return token(ELSE);  }
        case 463: break;
        case 248: 
          {  return token(CHAR);  }
        case 464: break;
        case 243: 
          {  return token(CASE);  }
        case 465: break;
        case 241: 
          {  return token(THIS);  }
        case 466: break;
        case 231: 
          {  return token(BYTE);  }
        case 467: break;
        case 196: 
          {  return token(FOR);  }
        case 468: break;
        case 191: 
          {  return token(INT);  }
        case 469: break;
        case 188: 
          {  return token(NEW);  }
        case 470: break;
        case 174: 
          {  return token(TRY);  }
        case 471: break;
        case 50: 
          {  return token(MOD);  }
        case 472: break;
        case 49: 
          {  return token(XOR);  }
        case 473: break;
        case 48: 
          {  return token(PLUS);  }
        case 474: break;
        case 46: 
          {  return token(AND);  }
        case 475: break;
        case 43: 
          {  return token(COMP);  }
        case 476: break;
        case 42: 
          {  return token(NOT);  }
        case 477: break;
        case 11: 
          {  return token(DOT);  }
        case 478: break;
        case 6: 
          {  return token(DIV);  }
        case 479: break;
        case 118: 
          {  return token(GTE);  }
        case 480: break;
        case 120: 
          {  return token(LTE);  }
        case 481: break;
        case 122: 
          {  return token(NEQ);  }
        case 482: break;
        case 330: 
          {  return token(DOUBLE);  }
        case 483: break;
        case 327: 
          {  return token(IMPORT);  }
        case 484: break;
        case 321: 
          {  return token(RETURN);  }
        case 485: break;
        case 320: 
          {  return token(THROWS);  }
        case 486: break;
        case 318: 
          {  return token(SWITCH);  }
        case 487: break;
        case 313: 
          {  return token(ASSERT);  }
        case 488: break;
        case 308: 
          {  return token(WHILE);  }
        case 489: break;
        case 301: 
          {  return token(FLOAT);  }
        case 490: break;
        case 291: 
          {  return token(CLASS);  }
        case 491: break;
        case 289: 
          {  return token(CONST);  }
        case 492: break;
        case 288: 
          {  return token(CATCH);  }
        case 493: break;
        case 286: 
          {  return token(THROW);  }
        case 494: break;
        case 283: 
          {  return token(SUPER);  }
        case 495: break;
        case 282: 
          {  return token(SHORT);  }
        case 496: break;
        case 277: 
          {  return token(BREAK);  }
        case 497: break;
        case 45: 
          {  return token(COLON);  }
        case 498: break;
        case 39: 
          {  return token(ASSIGN);  }
        case 499: break;
        case 38: 
          {  return token(COMMA);  }
        case 500: break;
        case 7: 
          {  return token(MULTI);  }
        case 501: break;
        case 12: 
          {  return token(MINUS);  }
        case 502: break;
        case 13: 
          {  yybegin(STRING); string.setLength(0); savedOffset=yychar;  }
        case 503: break;
        case 31: 
          {  return token(L_PAR);  }
        case 504: break;
        case 32: 
          {  return token(R_PAR);  }
        case 505: break;
        case 58: 
        case 59: 
          {  throw new RuntimeException("Unterminated character literal at end of line");  }
        case 506: break;
        case 8: 
        case 15: 
        case 16: 
        case 17: 
        case 18: 
        case 19: 
        case 20: 
        case 21: 
        case 22: 
        case 23: 
        case 24: 
        case 25: 
        case 26: 
        case 27: 
        case 28: 
        case 29: 
        case 30: 
        case 79: 
        case 80: 
        case 81: 
        case 82: 
        case 83: 
        case 84: 
        case 85: 
        case 86: 
        case 87: 
        case 88: 
        case 89: 
        case 90: 
        case 91: 
        case 92: 
        case 93: 
        case 94: 
        case 95: 
        case 96: 
        case 97: 
        case 98: 
        case 99: 
        case 100: 
        case 101: 
        case 102: 
        case 104: 
        case 105: 
        case 107: 
        case 108: 
        case 109: 
        case 110: 
        case 111: 
        case 112: 
        case 113: 
        case 114: 
        case 115: 
        case 116: 
        case 162: 
        case 163: 
        case 164: 
        case 165: 
        case 166: 
        case 167: 
        case 168: 
        case 169: 
        case 170: 
        case 171: 
        case 172: 
        case 173: 
        case 175: 
        case 176: 
        case 177: 
        case 178: 
        case 179: 
        case 180: 
        case 181: 
        case 182: 
        case 183: 
        case 184: 
        case 185: 
        case 186: 
        case 187: 
        case 189: 
        case 190: 
        case 192: 
        case 193: 
        case 194: 
        case 195: 
        case 197: 
        case 198: 
        case 199: 
        case 200: 
        case 201: 
        case 202: 
        case 203: 
        case 204: 
        case 205: 
        case 206: 
        case 227: 
        case 228: 
        case 229: 
        case 230: 
        case 232: 
        case 233: 
        case 234: 
        case 235: 
        case 236: 
        case 237: 
        case 238: 
        case 240: 
        case 242: 
        case 244: 
        case 245: 
        case 246: 
        case 247: 
        case 250: 
        case 252: 
        case 254: 
        case 255: 
        case 256: 
        case 257: 
        case 258: 
        case 259: 
        case 260: 
        case 261: 
        case 262: 
        case 263: 
        case 264: 
        case 265: 
        case 266: 
        case 268: 
        case 270: 
        case 275: 
        case 276: 
        case 278: 
        case 279: 
        case 280: 
        case 281: 
        case 284: 
        case 285: 
        case 287: 
        case 290: 
        case 292: 
        case 293: 
        case 294: 
        case 295: 
        case 296: 
        case 297: 
        case 298: 
        case 299: 
        case 303: 
        case 304: 
        case 305: 
        case 306: 
        case 307: 
        case 312: 
        case 314: 
        case 316: 
        case 317: 
        case 319: 
        case 322: 
        case 323: 
        case 325: 
        case 326: 
        case 328: 
        case 329: 
        case 331: 
        case 332: 
        case 333: 
        case 334: 
        case 336: 
        case 340: 
        case 342: 
        case 343: 
        case 344: 
        case 345: 
        case 347: 
        case 348: 
        case 349: 
        case 353: 
        case 355: 
        case 361: 
        case 362: 
        case 364: 
        case 365: 
        case 366: 
        case 367: 
        case 372: 
        case 374: 
        case 376: 
        case 381: 
        case 387: 
          {  return token(IDENTIFIER, parser!=null?yytext():null);  }
        case 507: break;
        case 74: 
          {  return token(FLOAT_LIT, parser!=null ? new Float(yytext().substring(0,yylength()-1)) : null);  }
        case 508: break;
        case 300: 
          {  return token(BOOL_LIT, LIT_FALSE);  }
        case 509: break;
        case 271: 
          {  return token(UR_SHIFT_ASSIGN);  }
        case 510: break;
        case 209: 
          {  return token(L_SHIFT_ASSIGN);  }
        case 511: break;
        case 207: 
          {  return token(R_SHIFT_ASSIGN);  }
        case 512: break;
        case 391: 
          {  return token(SYNCHRONIZED,MOD_SYNCHRONIZED);  }
        case 513: break;
        case 5: 
          {  addPadding(WHITESPACE);  }
        case 514: break;
        case 377: 
          {  return token(PROTECTED,MOD_PROTECTED);  }
        case 515: break;
        case 360: 
          {  return token(STRICTFP,MOD_STRICTFP);  }
        case 516: break;
        case 315: 
          {  return token(STATIC,MOD_STATIC);  }
        case 517: break;
        case 127: 
          {  return token(PLUS_ASSIGN);  }
        case 518: break;
        case 61: 
          {  addPadding(EOL_COMMENT);  }
        case 519: break;
        case 302: 
          {  return token(FINAL,MOD_FINAL);  }
        case 520: break;
        case 64: 
          {  return token(MULTI_ASSIGN);  }
        case 521: break;
        case 78: 
          {  return token(MINUS_ASSIGN);  }
        case 522: break;
        case 335: 
          {  return token(PUBLIC,MOD_PUBLIC);  }
        case 523: break;
        case 239: 
          {  return token(BOOL_LIT, LIT_TRUE);  }
        case 524: break;
        case 368: 
          {  return token(VOLATILE,MOD_VOLATILE);  }
        case 525: break;
        case 324: 
          {  return token(NATIVE,MOD_NATIVE);  }
        case 526: break;
        case 142: 
          {  yybegin(YYINITIAL); return token(CHAR_LIT, new Character(yytext().charAt(0)));  }
        case 527: break;
        case 373: 
          {  return token(TRANSIENT,MOD_TRANSIENT);  }
        case 528: break;
        case 359: 
          {  return token(ABSTRACT,MOD_ABSTRACT);  }
        case 529: break;
        case 354: 
          {  return token(PRIVATE,MOD_PRIVATE);  }
        case 530: break;
        case 212: 
          {  yybegin(YYINITIAL); 
			            int val = Integer.parseInt(yytext().substring(1,yylength()-1),8);
			            return token(CHAR_LIT, new Character((char)val)); 
                                  }
        case 531: break;
        case 55: 
          {  yybegin(YYINITIAL); return token(STRING_LIT, parser!=null ? string.toString() : null);  }
        case 532: break;
        case 132: 
        case 133: 
        case 210: 
          {  char val = (char) Integer.parseInt(yytext().substring(1),8);
                        				   string.append( val );  }
        case 533: break;
        case 383: 
          {  return token(IMPLEMENTS);  }
        case 534: break;
        case 382: 
          {  return token(INSTANCEOF);  }
        case 535: break;
        case 375: 
          {  return token(INTERFACE);  }
        case 536: break;
        case 216: 
          {  yybegin(YYINITIAL); return token(CHAR_LIT, new Character('\\'));  }
        case 537: break;
        case 37: 
          {  return token(SEMICOLON);  }
        case 538: break;
        case 35: 
          {  return token(L_BRACKET);  }
        case 539: break;
        case 36: 
          {  return token(R_BRACKET);  }
        case 540: break;
        case 63: 
          {  return token(DIV_ASSIGN);  }
        case 541: break;
        case 77: 
          {  return token(DECREMENT);  }
        case 542: break;
        case 123: 
          {  return token(AND_ASSIGN);  }
        case 543: break;
        case 125: 
          {  return token(OR_ASSIGN);  }
        case 544: break;
        case 128: 
          {  return token(INCREMENT);  }
        case 545: break;
        case 129: 
          {  return token(XOR_ASSIGN);  }
        case 546: break;
        case 130: 
          {  return token(MOD_ASSIGN);  }
        case 547: break;
        case 223: 
          {  return token(INT_LIT, parser!=null ? atol(2,yylength()-1,16) : null);  }
        case 548: break;
        case 222: 
          {  if (yylength()>4 && yycharat(2)=='*')
                                      addPadding(DOC_COMMENT);
                                   else
                                      addPadding(COMMENT);
                                  }
        case 549: break;
        case 154: 
          {  return token(INT_LIT, parser!=null ? atol(0,yylength()-1,8) : null);  }
        case 550: break;
        case 143: 
        case 144: 
        case 145: 
        case 146: 
        case 147: 
        case 148: 
        case 149: 
        case 150: 
        case 151: 
        case 152: 
          {  throw new RuntimeException("Illegal escape sequence \""+yytext()+"\"");  }
        case 551: break;
        case 51: 
          {  /* ignore spaces */  }
        case 552: break;
        case 14: 
          {  yybegin(CHARACTER); savedOffset=yychar;  }
        case 553: break;
        case 67: 
          {  return token(INT_LIT, parser!=null ? atol(0,yylength()-1,10) : null);  }
        case 554: break;
        case 131: 
          {  throw new RuntimeException("Illegal escape sequence \""+yytext()+"\"");  }
        case 555: break;
        default: 
          if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
            yy_atEOF = true;
            yy_do_eof();
              { return 0; }
          } 
          else {
            yy_ScanError(YY_NO_MATCH);
          }
      }
    }
  }


}
... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.