001/* The following code was generated by JFlex 1.4.1 on 3/13/06 6:15 PM */
002
003/*
004 * Copyright 2000-2006 Omnicore Software, Hans Kratz & Dennis Strein GbR,
005 *                     Geert Bevin <gbevin[remove] at uwyn dot com>.
006 * Distributed under the terms of the GNU Lesser General Public License, v2.1 or later
007 * $Id: JavaHighlighter.java 3106 2006-03-13 17:53:50Z gbevin $
008 */
009package com.uwyn.jhighlight.highlighter;
010
011import java.io.Reader;
012import java.io.IOException;
013
014
015/**
016 * This class is a scanner generated by 
017 * <a href="http://www.jflex.de/">JFlex</a> 1.4.1
018 * on 3/13/06 6:15 PM from the specification file
019 * <tt>com/uwyn/jhighlight/highlighter/JavaHighlighter.flex</tt>
020 */
021public class JavaHighlighter implements ExplicitStateHighlighter {
022
023  /** This character denotes the end of file */
024  public static final int YYEOF = -1;
025
026  /** initial size of the lookahead buffer */
027  private static final int ZZ_BUFFERSIZE = 128;
028
029  /** lexical states */
030  public static final int YYINITIAL = 0;
031  public static final int IN_COMMENT = 1;
032  public static final int IN_JAVA_DOC_COMMENT = 2;
033
034  /** 
035   * Translates characters to character classes
036   */
037  private static final String ZZ_CMAP_PACKED = 
038    "\11\4\1\0\1\50\1\0\1\0\1\0\16\4\4\0\1\0\1\54"+
039    "\1\47\1\0\1\2\1\54\1\54\1\52\1\53\1\53\1\55\1\24"+
040    "\1\53\1\24\1\21\1\56\1\6\7\15\2\1\1\54\1\53\1\54"+
041    "\1\54\1\54\1\54\1\57\3\14\1\17\1\23\1\17\5\5\1\10"+
042    "\13\5\1\12\2\5\1\53\1\51\1\53\1\54\1\3\1\0\1\25"+
043    "\1\26\1\13\1\20\1\22\1\16\1\45\1\33\1\36\1\2\1\32"+
044    "\1\7\1\41\1\35\1\34\1\42\1\2\1\31\1\27\1\30\1\37"+
045    "\1\43\1\44\1\11\1\40\1\46\1\53\1\54\1\53\1\54\41\4"+
046    "\2\0\4\2\4\0\1\2\12\0\1\2\4\0\1\2\5\0\27\2"+
047    "\1\0\37\2\1\0\u0128\2\2\0\22\2\34\0\136\2\2\0\11\2"+
048    "\2\0\7\2\16\0\2\2\16\0\5\2\11\0\1\2\21\0\117\4"+
049    "\21\0\3\4\27\0\1\2\13\0\1\2\1\0\3\2\1\0\1\2"+
050    "\1\0\24\2\1\0\54\2\1\0\10\2\2\0\32\2\14\0\202\2"+
051    "\1\0\4\4\5\0\71\2\2\0\2\2\2\0\2\2\3\0\46\2"+
052    "\2\0\2\2\67\0\46\2\2\0\1\2\7\0\47\2\11\0\21\4"+
053    "\1\0\27\4\1\0\3\4\1\0\1\4\1\0\2\4\1\0\1\4"+
054    "\13\0\33\2\5\0\3\2\56\0\32\2\5\0\13\2\13\4\12\0"+
055    "\12\4\6\0\1\4\143\2\1\0\1\2\7\4\2\0\6\4\2\2"+
056    "\2\4\1\0\4\4\2\0\12\4\3\2\22\0\1\4\1\2\1\4"+
057    "\33\2\3\0\33\4\65\0\46\2\13\4\u0150\0\3\4\1\0\65\2"+
058    "\2\0\1\4\1\2\20\4\2\0\1\2\4\4\3\0\12\2\2\4"+
059    "\2\0\12\4\21\0\3\4\1\0\10\2\2\0\2\2\2\0\26\2"+
060    "\1\0\7\2\1\0\1\2\3\0\4\2\2\0\1\4\1\0\7\4"+
061    "\2\0\2\4\2\0\3\4\11\0\1\4\4\0\2\2\1\0\3\2"+
062    "\2\4\2\0\12\4\4\2\16\0\1\4\2\0\6\2\4\0\2\2"+
063    "\2\0\26\2\1\0\7\2\1\0\2\2\1\0\2\2\1\0\2\2"+
064    "\2\0\1\4\1\0\5\4\4\0\2\4\2\0\3\4\13\0\4\2"+
065    "\1\0\1\2\7\0\14\4\3\2\14\0\3\4\1\0\7\2\1\0"+
066    "\1\2\1\0\3\2\1\0\26\2\1\0\7\2\1\0\2\2\1\0"+
067    "\5\2\2\0\1\4\1\2\10\4\1\0\3\4\1\0\3\4\2\0"+
068    "\1\2\17\0\1\2\5\0\12\4\21\0\3\4\1\0\10\2\2\0"+
069    "\2\2\2\0\26\2\1\0\7\2\1\0\2\2\2\0\4\2\2\0"+
070    "\1\4\1\2\6\4\3\0\2\4\2\0\3\4\10\0\2\4\4\0"+
071    "\2\2\1\0\3\2\4\0\12\4\22\0\2\4\1\0\6\2\3\0"+
072    "\3\2\1\0\4\2\3\0\2\2\1\0\1\2\1\0\2\2\3\0"+
073    "\2\2\3\0\3\2\3\0\10\2\1\0\3\2\4\0\5\4\3\0"+
074    "\3\4\1\0\4\4\11\0\1\4\17\0\11\4\21\0\3\4\1\0"+
075    "\10\2\1\0\3\2\1\0\27\2\1\0\12\2\1\0\5\2\4\0"+
076    "\7\4\1\0\3\4\1\0\4\4\7\0\2\4\11\0\2\2\4\0"+
077    "\12\4\22\0\2\4\1\0\10\2\1\0\3\2\1\0\27\2\1\0"+
078    "\12\2\1\0\5\2\4\0\7\4\1\0\3\4\1\0\4\4\7\0"+
079    "\2\4\7\0\1\2\1\0\2\2\4\0\12\4\22\0\2\4\1\0"+
080    "\10\2\1\0\3\2\1\0\27\2\1\0\20\2\4\0\6\4\2\0"+
081    "\3\4\1\0\4\4\11\0\1\4\10\0\2\2\4\0\12\4\22\0"+
082    "\2\4\1\0\22\2\3\0\30\2\1\0\11\2\1\0\1\2\2\0"+
083    "\7\2\3\0\1\4\4\0\6\4\1\0\1\4\1\0\10\4\22\0"+
084    "\2\4\15\0\60\2\1\4\2\2\7\4\4\0\10\2\10\4\1\0"+
085    "\12\4\47\0\2\2\1\0\1\2\2\0\2\2\1\0\1\2\2\0"+
086    "\1\2\6\0\4\2\1\0\7\2\1\0\3\2\1\0\1\2\1\0"+
087    "\1\2\2\0\2\2\1\0\4\2\1\4\2\2\6\4\1\0\2\4"+
088    "\1\2\2\0\5\2\1\0\1\2\1\0\6\4\2\0\12\4\2\0"+
089    "\2\2\42\0\1\2\27\0\2\4\6\0\12\4\13\0\1\4\1\0"+
090    "\1\4\1\0\1\4\4\0\2\4\10\2\1\0\42\2\6\0\24\4"+
091    "\1\0\2\4\4\2\4\0\10\4\1\0\44\4\11\0\1\4\71\0"+
092    "\42\2\1\0\5\2\1\0\2\2\1\0\7\4\3\0\4\4\6\0"+
093    "\12\4\6\0\6\2\4\4\106\0\46\2\12\0\47\2\11\0\132\2"+
094    "\5\0\104\2\5\0\122\2\6\0\7\2\1\0\77\2\1\0\1\2"+
095    "\1\0\4\2\2\0\7\2\1\0\1\2\1\0\4\2\2\0\47\2"+
096    "\1\0\1\2\1\0\4\2\2\0\37\2\1\0\1\2\1\0\4\2"+
097    "\2\0\7\2\1\0\1\2\1\0\4\2\2\0\7\2\1\0\7\2"+
098    "\1\0\27\2\1\0\37\2\1\0\1\2\1\0\4\2\2\0\7\2"+
099    "\1\0\47\2\1\0\23\2\16\0\11\4\56\0\125\2\14\0\u026c\2"+
100    "\2\0\10\2\12\0\32\2\5\0\113\2\225\0\64\2\40\4\7\0"+
101    "\1\2\4\0\12\4\41\0\4\4\1\0\12\4\6\0\130\2\10\0"+
102    "\51\2\1\4\u0556\0\234\2\4\0\132\2\6\0\26\2\2\0\6\2"+
103    "\2\0\46\2\2\0\6\2\2\0\10\2\1\0\1\2\1\0\1\2"+
104    "\1\0\1\2\1\0\37\2\2\0\65\2\1\0\7\2\1\0\1\2"+
105    "\3\0\3\2\1\0\7\2\3\0\4\2\2\0\6\2\4\0\15\2"+
106    "\5\0\3\2\1\0\7\2\17\0\4\4\32\0\5\4\20\0\2\2"+
107    "\51\0\6\4\17\0\1\2\40\0\20\2\40\0\15\4\4\0\1\4"+
108    "\40\0\1\2\4\0\1\2\2\0\12\2\1\0\1\2\3\0\5\2"+
109    "\6\0\1\2\1\0\1\2\1\0\1\2\1\0\4\2\1\0\3\2"+
110    "\1\0\7\2\46\0\44\2\u0e81\0\3\2\31\0\11\2\6\4\1\0"+
111    "\5\2\2\0\3\2\6\0\124\2\4\0\2\4\2\0\2\2\2\0"+
112    "\136\2\6\0\50\2\4\0\136\2\21\0\30\2\u0248\0\u19b6\2\112\0"+
113    "\u51a6\2\132\0\u048d\2\u0773\0\u2ba4\2\u215c\0\u012e\2\322\0\7\2\14\0"+
114    "\5\2\5\0\1\2\1\4\12\2\1\0\15\2\1\0\5\2\1\0"+
115    "\1\2\1\0\2\2\1\0\2\2\1\0\154\2\41\0\u016b\2\22\0"+
116    "\100\2\2\0\66\2\50\0\14\2\44\0\4\4\17\0\2\2\30\0"+
117    "\3\2\31\0\1\2\6\0\3\2\1\0\1\2\1\0\207\2\2\0"+
118    "\1\4\4\0\1\2\13\0\12\4\7\0\32\2\4\0\1\2\1\0"+
119    "\32\2\12\0\132\2\3\0\6\2\2\0\6\2\2\0\6\2\2\0"+
120    "\3\2\3\0\2\2\3\0\2\2\22\0\3\4\4\0";
121
122  /** 
123   * Translates characters to character classes
124   */
125  private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
126
127  /** 
128   * Translates DFA states to action switch labels.
129   */
130  private static final int [] ZZ_ACTION = zzUnpackAction();
131
132  private static final String ZZ_ACTION_PACKED_0 =
133    "\3\0\1\1\1\2\2\1\1\2\4\1\1\3\1\1"+
134    "\1\4\15\1\1\3\1\4\1\1\1\5\1\1\3\6"+
135    "\1\1\3\2\1\0\1\1\1\7\4\2\12\1\1\10"+
136    "\22\1\1\10\10\1\4\0\1\11\3\0\1\12\1\13"+
137    "\1\14\1\2\1\0\1\2\37\1\1\7\11\1\1\15"+
138    "\1\7\20\1\1\2\14\1\1\10\11\1\1\10\12\1"+
139    "\1\16\25\1";
140
141  private static int [] zzUnpackAction() {
142    int [] result = new int[214];
143    int offset = 0;
144    offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
145    return result;
146  }
147
148  private static int zzUnpackAction(String packed, int offset, int [] result) {
149    int i = 0;       /* index in packed string  */
150    int j = offset;  /* index in unpacked array */
151    int l = packed.length();
152    while (i < l) {
153      int count = packed.charAt(i++);
154      int value = packed.charAt(i++);
155      do result[j++] = value; while (--count > 0);
156    }
157    return j;
158  }
159
160
161  /** 
162   * Translates a state to a row index in the transition table
163   */
164  private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
165
166  private static final String ZZ_ROWMAP_PACKED_0 =
167    "\0\0\0\60\0\140\0\220\0\300\0\360\0\u0120\0\u0150"+
168    "\0\u0180\0\u01b0\0\u01e0\0\u0210\0\u0240\0\u0270\0\220\0\u02a0"+
169    "\0\u02d0\0\u0300\0\u0330\0\u0360\0\u0390\0\u03c0\0\u03f0\0\u0420"+
170    "\0\u0450\0\u0480\0\u04b0\0\u04e0\0\220\0\u0510\0\u0540\0\220"+
171    "\0\u0570\0\220\0\u05a0\0\u05d0\0\u0600\0\220\0\u0600\0\u0630"+
172    "\0\u0660\0\u0690\0\u06c0\0\u06f0\0\u0720\0\u0750\0\u0780\0\u07b0"+
173    "\0\u07e0\0\u0810\0\u0840\0\u0870\0\u08a0\0\u08d0\0\u0900\0\u0930"+
174    "\0\u0960\0\u0990\0\u09c0\0\u09f0\0\u0a20\0\u0a50\0\u0a80\0\u0ab0"+
175    "\0\u0ae0\0\u0b10\0\u0b40\0\u0b70\0\u0ba0\0\u0bd0\0\u0c00\0\u0c30"+
176    "\0\u0c60\0\u0c90\0\u0cc0\0\u0cf0\0\360\0\u0d20\0\u0d50\0\u0d80"+
177    "\0\u0db0\0\u0de0\0\u0e10\0\u0e40\0\u0e70\0\u04b0\0\u0ea0\0\u04e0"+
178    "\0\u0ed0\0\u0f00\0\u0f30\0\u0540\0\u0570\0\220\0\220\0\u0f60"+
179    "\0\u0f90\0\u0fc0\0\u0ff0\0\u1020\0\u1050\0\u1080\0\u10b0\0\u10e0"+
180    "\0\u1110\0\u1140\0\u1170\0\u11a0\0\u11d0\0\u1200\0\u1230\0\u1260"+
181    "\0\u1290\0\u12c0\0\u12f0\0\u1320\0\u1350\0\u1380\0\u13b0\0\u13e0"+
182    "\0\u1410\0\u1440\0\u1470\0\u14a0\0\u14d0\0\u1500\0\u1530\0\u1560"+
183    "\0\u1590\0\u15c0\0\u15f0\0\u1620\0\u1650\0\u1680\0\u16b0\0\u16e0"+
184    "\0\u1710\0\u1740\0\u1770\0\u17a0\0\u17d0\0\360\0\u1800\0\u1830"+
185    "\0\u1860\0\u1890\0\u18c0\0\u18f0\0\u1920\0\u1950\0\u1980\0\u19b0"+
186    "\0\u19e0\0\u1a10\0\u1a40\0\u1a70\0\u1aa0\0\u1ad0\0\360\0\u1b00"+
187    "\0\u1b30\0\u1b60\0\u1b90\0\u1bc0\0\u1bf0\0\u1c20\0\u1c50\0\u1c80"+
188    "\0\u1cb0\0\u1ce0\0\u1d10\0\u1d40\0\u1d70\0\u1da0\0\u1dd0\0\u1e00"+
189    "\0\u1e30\0\u1e60\0\u1e90\0\u1ec0\0\u1ef0\0\u1500\0\u1f20\0\u1f50"+
190    "\0\u1f80\0\u1fb0\0\u1fe0\0\u2010\0\u2040\0\u2070\0\u20a0\0\u20d0"+
191    "\0\360\0\u2100\0\u2130\0\u2160\0\u2190\0\u21c0\0\u21f0\0\u2220"+
192    "\0\u2250\0\u2280\0\u22b0\0\u22e0\0\u2310\0\u2340\0\u2370\0\u23a0"+
193    "\0\u23d0\0\u2400\0\u2430\0\u2460\0\u2490\0\u24c0";
194
195  private static int [] zzUnpackRowMap() {
196    int [] result = new int[214];
197    int offset = 0;
198    offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
199    return result;
200  }
201
202  private static int zzUnpackRowMap(String packed, int offset, int [] result) {
203    int i = 0;  /* index in packed string  */
204    int j = offset;  /* index in unpacked array */
205    int l = packed.length();
206    while (i < l) {
207      int high = packed.charAt(i++) << 16;
208      result[j++] = high | packed.charAt(i++);
209    }
210    return j;
211  }
212
213  /** 
214   * The transition table of the DFA
215   */
216  private static final int [] ZZ_TRANS = zzUnpackTrans();
217
218  private static final String ZZ_TRANS_PACKED_0 =
219    "\1\4\1\5\2\6\1\4\1\7\1\10\1\11\1\7"+
220    "\1\6\1\7\1\12\1\7\1\5\1\13\1\7\1\14"+
221    "\1\15\1\16\1\7\1\17\1\20\1\21\1\22\1\23"+
222    "\1\24\3\6\1\25\1\26\3\6\1\27\1\30\1\31"+
223    "\1\32\1\6\1\33\2\4\1\34\1\35\2\17\1\36"+
224    "\1\4\50\37\1\40\4\37\1\41\2\37\55\42\1\43"+
225    "\1\42\1\44\61\0\1\5\1\0\1\45\1\0\1\45"+
226    "\1\5\1\46\1\47\1\0\1\45\1\0\1\45\1\5"+
227    "\1\46\1\47\1\46\1\50\1\51\1\52\35\0\20\6"+
228    "\1\0\2\6\1\0\22\6\12\0\1\7\1\53\1\7"+
229    "\1\53\2\7\1\53\1\7\1\53\1\7\1\53\2\7"+
230    "\1\53\1\7\1\53\1\0\1\53\1\7\1\0\22\53"+
231    "\12\0\1\54\1\0\1\45\1\0\1\45\1\55\1\46"+
232    "\1\47\1\56\1\57\1\0\1\45\1\55\1\46\1\47"+
233    "\1\46\1\50\1\51\1\52\35\0\20\6\1\0\2\6"+
234    "\1\0\7\6\1\60\12\6\12\0\6\6\1\61\11\6"+
235    "\1\0\2\6\1\0\1\62\5\6\1\63\1\64\12\6"+
236    "\12\0\6\6\1\65\11\6\1\0\2\6\1\0\1\66"+
237    "\6\6\1\67\1\6\1\70\10\6\12\0\20\6\1\0"+
238    "\1\71\1\6\1\0\7\6\1\72\12\6\12\0\1\50"+
239    "\4\0\1\50\6\0\1\50\43\0\6\6\1\73\1\6"+
240    "\1\74\7\6\1\0\2\6\1\0\22\6\12\0\20\6"+
241    "\1\0\2\6\1\0\1\6\1\75\1\76\17\6\12\0"+
242    "\20\6\1\0\2\6\1\0\4\6\1\77\2\6\1\100"+
243    "\3\6\1\101\6\6\12\0\20\6\1\0\2\6\1\0"+
244    "\3\6\1\102\2\6\1\103\3\6\1\104\1\105\3\6"+
245    "\1\106\2\6\12\0\20\6\1\0\2\6\1\0\4\6"+
246    "\1\107\1\6\1\110\13\6\12\0\20\6\1\0\1\111"+
247    "\1\6\1\0\22\6\12\0\20\6\1\0\1\112\1\6"+
248    "\1\0\1\113\11\6\1\114\7\6\12\0\15\6\1\115"+
249    "\2\6\1\0\2\6\1\0\10\6\1\116\3\6\1\117"+
250    "\5\6\12\0\20\6\1\0\2\6\1\0\1\120\3\6"+
251    "\1\121\5\6\1\122\7\6\12\0\20\6\1\0\2\6"+
252    "\1\0\7\6\1\123\12\6\12\0\20\6\1\0\2\6"+
253    "\1\0\6\6\1\124\13\6\12\0\20\6\1\0\2\6"+
254    "\1\0\7\6\1\125\12\6\11\0\47\126\2\46\1\127"+
255    "\6\126\50\130\1\46\1\131\1\46\5\130\55\0\1\132"+
256    "\1\133\1\0\50\134\1\40\4\134\1\135\52\134\1\40"+
257    "\4\134\1\135\1\136\1\134\56\0\1\137\3\0\2\140"+
258    "\1\0\1\140\1\0\6\140\1\0\3\140\1\0\2\140"+
259    "\1\0\22\140\12\0\1\45\1\0\1\45\1\0\2\45"+
260    "\1\0\1\45\1\0\1\45\1\0\2\45\1\0\1\45"+
261    "\3\0\1\45\35\0\1\50\4\0\1\50\6\0\1\50"+
262    "\3\46\1\0\2\51\35\0\1\141\4\0\1\141\6\0"+
263    "\1\141\6\0\1\142\34\0\1\143\1\0\1\45\1\0"+
264    "\1\45\1\143\1\0\1\45\1\0\1\45\1\0\1\45"+
265    "\1\143\1\0\1\45\3\0\1\45\1\142\34\0\20\53"+
266    "\1\0\2\53\1\0\22\53\12\0\1\54\1\0\1\45"+
267    "\1\0\1\45\1\54\1\0\1\45\1\0\1\45\1\0"+
268    "\1\45\1\54\1\46\1\47\1\46\1\50\1\51\1\52"+
269    "\35\0\1\54\1\0\1\45\1\0\1\45\1\55\1\46"+
270    "\1\47\1\0\1\45\1\0\1\45\1\55\1\46\1\47"+
271    "\1\46\1\50\1\51\1\52\35\0\1\56\4\0\1\56"+
272    "\2\46\2\0\6\56\1\0\2\56\1\0\2\56\32\0"+
273    "\1\57\1\0\1\45\1\0\1\45\1\57\1\46\1\47"+
274    "\1\0\1\45\1\56\2\57\1\56\1\57\1\56\1\0"+
275    "\1\56\1\57\1\0\2\56\32\0\20\6\1\0\2\6"+
276    "\1\0\10\6\1\144\11\6\12\0\20\6\1\0\2\6"+
277    "\1\0\1\145\21\6\12\0\20\6\1\0\2\6\1\0"+
278    "\2\6\1\146\1\147\16\6\12\0\20\6\1\0\2\6"+
279    "\1\0\1\150\21\6\12\0\20\6\1\0\2\6\1\0"+
280    "\10\6\1\151\11\6\12\0\20\6\1\0\2\6\1\0"+
281    "\7\6\1\152\12\6\12\0\6\6\1\153\11\6\1\0"+
282    "\2\6\1\0\22\6\12\0\20\6\1\0\2\6\1\0"+
283    "\4\6\1\115\15\6\12\0\20\6\1\0\2\6\1\0"+
284    "\10\6\1\154\11\6\12\0\15\6\1\155\2\6\1\0"+
285    "\2\6\1\0\22\6\12\0\20\6\1\0\2\6\1\0"+
286    "\12\6\1\156\7\6\12\0\20\6\1\0\2\6\1\0"+
287    "\2\6\1\146\17\6\12\0\20\6\1\0\2\6\1\0"+
288    "\3\6\1\157\16\6\12\0\20\6\1\0\2\6\1\0"+
289    "\2\6\1\160\17\6\12\0\20\6\1\0\2\6\1\0"+
290    "\2\6\1\161\17\6\12\0\20\6\1\0\1\162\1\6"+
291    "\1\0\22\6\12\0\20\6\1\0\2\6\1\0\7\6"+
292    "\1\163\12\6\12\0\20\6\1\0\2\6\1\0\3\6"+
293    "\1\164\16\6\12\0\20\6\1\0\2\6\1\0\1\165"+
294    "\3\6\1\166\15\6\12\0\20\6\1\0\2\6\1\0"+
295    "\7\6\1\167\12\6\12\0\20\6\1\0\2\6\1\0"+
296    "\15\6\1\170\4\6\12\0\20\6\1\0\2\6\1\0"+
297    "\10\6\1\171\11\6\12\0\20\6\1\0\2\6\1\0"+
298    "\11\6\1\172\10\6\12\0\20\6\1\0\2\6\1\0"+
299    "\1\173\11\6\1\174\1\115\6\6\12\0\20\6\1\0"+
300    "\2\6\1\0\4\6\1\175\4\6\1\176\10\6\12\0"+
301    "\20\6\1\0\2\6\1\0\3\6\1\177\16\6\12\0"+
302    "\20\6\1\0\2\6\1\0\17\6\1\115\2\6\12\0"+
303    "\20\6\1\0\2\6\1\0\3\6\1\200\16\6\12\0"+
304    "\6\6\1\201\11\6\1\0\2\6\1\0\22\6\12\0"+
305    "\20\6\1\0\2\6\1\0\2\6\1\202\1\203\16\6"+
306    "\12\0\20\6\1\0\2\6\1\0\15\6\1\204\4\6"+
307    "\12\0\12\6\1\205\5\6\1\0\2\6\1\0\22\6"+
308    "\12\0\20\6\1\0\2\6\1\0\7\6\1\206\1\6"+
309    "\1\207\10\6\12\0\20\6\1\0\2\6\1\0\1\6"+
310    "\1\210\20\6\12\0\6\6\1\211\11\6\1\0\2\6"+
311    "\1\0\11\6\1\212\10\6\12\0\20\6\1\0\2\6"+
312    "\1\0\11\6\1\213\10\6\12\0\20\6\1\0\2\6"+
313    "\1\0\3\6\1\214\16\6\11\0\50\126\1\46\7\126"+
314    "\50\130\1\46\7\130\55\0\1\215\2\0\50\133\1\40"+
315    "\7\133\1\0\20\140\1\0\2\140\1\0\22\140\12\0"+
316    "\1\141\4\0\1\141\6\0\1\141\3\46\40\0\1\141"+
317    "\4\0\1\141\6\0\1\141\43\0\1\143\1\0\1\45"+
318    "\1\0\1\45\1\143\1\0\1\45\1\0\1\45\1\0"+
319    "\1\45\1\143\1\46\1\47\1\46\2\0\1\45\35\0"+
320    "\20\6\1\0\2\6\1\0\20\6\1\216\1\6\12\0"+
321    "\20\6\1\0\2\6\1\0\2\6\1\176\17\6\12\0"+
322    "\20\6\1\0\1\115\1\6\1\0\22\6\12\0\12\6"+
323    "\1\217\5\6\1\0\2\6\1\0\22\6\12\0\20\6"+
324    "\1\0\2\6\1\0\4\6\1\216\15\6\12\0\20\6"+
325    "\1\0\2\6\1\0\2\6\1\220\1\221\16\6\12\0"+
326    "\20\6\1\0\2\6\1\0\1\222\21\6\12\0\20\6"+
327    "\1\0\2\6\1\0\2\6\1\174\17\6\12\0\20\6"+
328    "\1\0\2\6\1\0\1\223\21\6\12\0\20\6\1\0"+
329    "\2\6\1\0\1\224\21\6\12\0\20\6\1\0\2\6"+
330    "\1\0\1\6\1\225\20\6\12\0\20\6\1\0\1\226"+
331    "\1\6\1\0\22\6\12\0\20\6\1\0\2\6\1\0"+
332    "\3\6\1\227\16\6\12\0\20\6\1\0\1\230\1\6"+
333    "\1\0\22\6\12\0\20\6\1\0\2\6\1\0\1\231"+
334    "\21\6\12\0\6\6\1\232\11\6\1\0\2\6\1\0"+
335    "\22\6\12\0\20\6\1\0\1\216\1\6\1\0\22\6"+
336    "\12\0\20\6\1\0\2\6\1\0\3\6\1\233\16\6"+
337    "\12\0\20\6\1\0\2\6\1\0\11\6\1\234\10\6"+
338    "\12\0\20\6\1\0\2\6\1\0\4\6\1\222\15\6"+
339    "\12\0\20\6\1\0\1\67\1\6\1\0\22\6\12\0"+
340    "\12\6\1\235\5\6\1\0\2\6\1\0\22\6\12\0"+
341    "\20\6\1\0\2\6\1\0\3\6\1\147\16\6\12\0"+
342    "\20\6\1\0\2\6\1\0\10\6\1\236\11\6\12\0"+
343    "\20\6\1\0\1\237\1\6\1\0\22\6\12\0\20\6"+
344    "\1\0\2\6\1\0\7\6\1\240\12\6\12\0\20\6"+
345    "\1\0\2\6\1\0\2\6\1\115\17\6\12\0\20\6"+
346    "\1\0\2\6\1\0\12\6\1\241\7\6\12\0\20\6"+
347    "\1\0\2\6\1\0\11\6\1\242\10\6\12\0\6\6"+
348    "\1\237\11\6\1\0\2\6\1\0\22\6\12\0\20\6"+
349    "\1\0\2\6\1\0\3\6\1\243\16\6\12\0\20\6"+
350    "\1\0\1\244\1\6\1\0\22\6\12\0\6\6\1\245"+
351    "\11\6\1\0\2\6\1\0\7\6\1\246\12\6\12\0"+
352    "\20\6\1\0\2\6\1\0\5\6\1\247\14\6\12\0"+
353    "\20\6\1\0\2\6\1\0\3\6\1\250\16\6\12\0"+
354    "\20\6\1\0\2\6\1\0\16\6\1\251\3\6\12\0"+
355    "\6\6\1\233\11\6\1\0\2\6\1\0\22\6\12\0"+
356    "\20\6\1\0\2\6\1\0\1\252\21\6\12\0\17\6"+
357    "\1\216\1\0\2\6\1\0\22\6\12\0\6\6\1\146"+
358    "\11\6\1\0\2\6\1\0\22\6\12\0\20\6\1\0"+
359    "\2\6\1\0\7\6\1\115\12\6\67\0\1\40\2\0"+
360    "\20\6\1\0\2\6\1\0\6\6\1\115\13\6\12\0"+
361    "\20\6\1\0\2\6\1\0\3\6\1\115\16\6\12\0"+
362    "\20\6\1\0\2\6\1\0\11\6\1\253\10\6\12\0"+
363    "\20\6\1\0\2\6\1\0\3\6\1\216\16\6\12\0"+
364    "\6\6\1\254\11\6\1\0\2\6\1\0\22\6\12\0"+
365    "\20\6\1\0\2\6\1\0\12\6\1\255\7\6\12\0"+
366    "\6\6\1\164\11\6\1\0\2\6\1\0\22\6\12\0"+
367    "\20\6\1\0\2\6\1\0\10\6\1\256\11\6\12\0"+
368    "\20\6\1\0\2\6\1\0\4\6\1\257\15\6\12\0"+
369    "\20\6\1\0\2\6\1\0\4\6\1\260\15\6\12\0"+
370    "\20\6\1\0\2\6\1\0\5\6\1\115\14\6\12\0"+
371    "\20\6\1\0\1\261\1\6\1\0\22\6\12\0\20\6"+
372    "\1\0\2\6\1\0\11\6\1\262\10\6\12\0\12\6"+
373    "\1\263\5\6\1\0\2\6\1\0\22\6\12\0\20\6"+
374    "\1\0\2\6\1\0\6\6\1\264\13\6\12\0\20\6"+
375    "\1\0\2\6\1\0\2\6\1\265\17\6\12\0\20\6"+
376    "\1\0\2\6\1\0\17\6\1\266\2\6\12\0\20\6"+
377    "\1\0\2\6\1\0\4\6\1\267\15\6\12\0\20\6"+
378    "\1\0\2\6\1\0\16\6\1\146\3\6\12\0\20\6"+
379    "\1\0\2\6\1\0\1\270\21\6\12\0\20\6\1\0"+
380    "\2\6\1\0\4\6\1\271\15\6\12\0\20\6\1\0"+
381    "\1\272\1\6\1\0\22\6\12\0\20\6\1\0\2\6"+
382    "\1\0\4\6\1\220\15\6\12\0\20\6\1\0\2\6"+
383    "\1\0\1\273\21\6\12\0\20\6\1\0\1\274\1\6"+
384    "\1\0\22\6\12\0\20\6\1\0\2\6\1\0\1\275"+
385    "\21\6\12\0\20\6\1\0\2\6\1\0\3\6\1\124"+
386    "\16\6\12\0\20\6\1\0\2\6\1\0\10\6\1\276"+
387    "\11\6\12\0\6\6\1\277\11\6\1\0\2\6\1\0"+
388    "\22\6\12\0\6\6\1\220\11\6\1\0\2\6\1\0"+
389    "\22\6\12\0\17\6\1\176\1\0\2\6\1\0\22\6"+
390    "\12\0\20\6\1\0\2\6\1\0\1\300\21\6\12\0"+
391    "\20\6\1\0\2\6\1\0\3\6\1\301\16\6\12\0"+
392    "\20\6\1\0\2\6\1\0\1\302\21\6\12\0\12\6"+
393    "\1\115\5\6\1\0\2\6\1\0\22\6\12\0\20\6"+
394    "\1\0\2\6\1\0\3\6\1\303\16\6\12\0\20\6"+
395    "\1\0\2\6\1\0\4\6\1\304\15\6\12\0\20\6"+
396    "\1\0\2\6\1\0\11\6\1\305\10\6\12\0\20\6"+
397    "\1\0\2\6\1\0\10\6\1\115\11\6\12\0\20\6"+
398    "\1\0\2\6\1\0\10\6\1\306\11\6\12\0\15\6"+
399    "\1\307\2\6\1\0\2\6\1\0\22\6\12\0\20\6"+
400    "\1\0\2\6\1\0\14\6\1\310\5\6\12\0\20\6"+
401    "\1\0\2\6\1\0\20\6\1\146\1\6\12\0\12\6"+
402    "\1\311\5\6\1\0\2\6\1\0\22\6\12\0\20\6"+
403    "\1\0\2\6\1\0\3\6\1\146\16\6\12\0\20\6"+
404    "\1\0\2\6\1\0\12\6\1\146\7\6\12\0\20\6"+
405    "\1\0\2\6\1\0\13\6\1\115\6\6\12\0\12\6"+
406    "\1\220\5\6\1\0\2\6\1\0\22\6\12\0\20\6"+
407    "\1\0\2\6\1\0\10\6\1\216\11\6\12\0\15\6"+
408    "\1\312\2\6\1\0\2\6\1\0\22\6\12\0\20\6"+
409    "\1\0\2\6\1\0\7\6\1\313\12\6\12\0\20\6"+
410    "\1\0\1\314\1\6\1\0\22\6\12\0\12\6\1\315"+
411    "\5\6\1\0\2\6\1\0\22\6\12\0\20\6\1\0"+
412    "\2\6\1\0\1\316\21\6\12\0\20\6\1\0\1\317"+
413    "\1\6\1\0\22\6\12\0\20\6\1\0\2\6\1\0"+
414    "\3\6\1\320\16\6\12\0\20\6\1\0\2\6\1\0"+
415    "\15\6\1\115\4\6\12\0\20\6\1\0\2\6\1\0"+
416    "\10\6\1\321\11\6\12\0\20\6\1\0\2\6\1\0"+
417    "\10\6\1\220\11\6\12\0\20\6\1\0\1\322\1\6"+
418    "\1\0\22\6\12\0\12\6\1\146\5\6\1\0\2\6"+
419    "\1\0\22\6\12\0\20\6\1\0\2\6\1\0\10\6"+
420    "\1\323\11\6\12\0\20\6\1\0\1\324\1\6\1\0"+
421    "\22\6\12\0\20\6\1\0\2\6\1\0\11\6\1\325"+
422    "\10\6\12\0\20\6\1\0\2\6\1\0\7\6\1\326"+
423    "\12\6\12\0\20\6\1\0\2\6\1\0\3\6\1\176"+
424    "\16\6\12\0\17\6\1\115\1\0\2\6\1\0\22\6"+
425    "\12\0\20\6\1\0\2\6\1\0\21\6\1\320\12\0"+
426    "\15\6\1\115\2\6\1\0\2\6\1\0\22\6\11\0";
427
428  private static int [] zzUnpackTrans() {
429    int [] result = new int[9456];
430    int offset = 0;
431    offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
432    return result;
433  }
434
435  private static int zzUnpackTrans(String packed, int offset, int [] result) {
436    int i = 0;       /* index in packed string  */
437    int j = offset;  /* index in unpacked array */
438    int l = packed.length();
439    while (i < l) {
440      int count = packed.charAt(i++);
441      int value = packed.charAt(i++);
442      value--;
443      do result[j++] = value; while (--count > 0);
444    }
445    return j;
446  }
447
448
449  /* error codes */
450  private static final int ZZ_UNKNOWN_ERROR = 0;
451  private static final int ZZ_NO_MATCH = 1;
452  private static final int ZZ_PUSHBACK_2BIG = 2;
453
454  /* error messages for the codes above */
455  private static final String ZZ_ERROR_MSG[] = {
456    "Unkown internal scanner error",
457    "Error: could not match input",
458    "Error: pushback value was too large"
459  };
460
461  /**
462   * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
463   */
464  private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
465
466  private static final String ZZ_ATTRIBUTE_PACKED_0 =
467    "\3\0\1\11\12\1\1\11\15\1\1\11\2\1\1\11"+
468    "\1\1\1\11\3\1\1\11\2\1\1\0\54\1\4\0"+
469    "\1\1\3\0\2\11\2\1\1\0\164\1";
470
471  private static int [] zzUnpackAttribute() {
472    int [] result = new int[214];
473    int offset = 0;
474    offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
475    return result;
476  }
477
478  private static int zzUnpackAttribute(String packed, int offset, int [] result) {
479    int i = 0;       /* index in packed string  */
480    int j = offset;  /* index in unpacked array */
481    int l = packed.length();
482    while (i < l) {
483      int count = packed.charAt(i++);
484      int value = packed.charAt(i++);
485      do result[j++] = value; while (--count > 0);
486    }
487    return j;
488  }
489
490  /** the input device */
491  private java.io.Reader zzReader;
492
493  /** the current state of the DFA */
494  private int zzState;
495
496  /** the current lexical state */
497  private int zzLexicalState = YYINITIAL;
498
499  /** this buffer contains the current text to be matched and is
500      the source of the yytext() string */
501  private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
502
503  /** the textposition at the last accepting state */
504  private int zzMarkedPos;
505
506  /** the textposition at the last state to be included in yytext */
507  private int zzPushbackPos;
508
509  /** the current text position in the buffer */
510  private int zzCurrentPos;
511
512  /** startRead marks the beginning of the yytext() string in the buffer */
513  private int zzStartRead;
514
515  /** endRead marks the last character in the buffer, that has been read
516      from input */
517  private int zzEndRead;
518
519  /** number of newlines encountered up to the start of the matched text */
520  private int yyline;
521
522  /** the number of characters up to the start of the matched text */
523  private int yychar;
524
525  /**
526   * the number of characters from the last newline up to the start of the 
527   * matched text
528   */
529  private int yycolumn;
530
531  /** 
532   * zzAtBOL == true <=> the scanner is currently at the beginning of a line
533   */
534  private boolean zzAtBOL = true;
535
536  /** zzAtEOF == true <=> the scanner is at the EOF */
537  private boolean zzAtEOF;
538
539  /* user code: */
540        public static boolean ASSERT_IS_KEYWORD = false;
541
542        /* styles */
543        
544        public static final byte PLAIN_STYLE = 1;
545        public static final byte KEYWORD_STYLE = 2;
546        public static final byte TYPE_STYLE = 3;
547        public static final byte OPERATOR_STYLE = 4;
548        public static final byte SEPARATOR_STYLE = 5;
549        public static final byte LITERAL_STYLE = 6;
550        public static final byte JAVA_COMMENT_STYLE = 7;
551        public static final byte JAVADOC_COMMENT_STYLE = 8;
552        public static final byte JAVADOC_TAG_STYLE = 9;
553        
554        /* Highlighter implementation */
555        
556        public int getStyleCount()
557        {
558                return 9;
559        }
560        
561        public byte getStartState()
562        {
563                return YYINITIAL+1;
564        }
565        
566        public byte getCurrentState()
567        {
568                return (byte) (yystate()+1);
569        }
570        
571        public void setState(byte newState)
572        {
573                yybegin(newState-1);
574        }
575        
576        public byte getNextToken()
577        throws IOException
578        {
579                return (byte) yylex();
580        }
581        
582        public int getTokenLength()
583        {
584                return yylength();
585        }
586        
587        public void setReader(Reader r)
588        {
589                this.zzReader = r;
590        }
591
592        public JavaHighlighter()
593        {
594        }
595
596
597  /**
598   * Creates a new scanner
599   * There is also a java.io.InputStream version of this constructor.
600   *
601   * @param   in  the java.io.Reader to read input from.
602   */
603  public JavaHighlighter(java.io.Reader in) {
604    this.zzReader = in;
605  }
606
607  /**
608   * Creates a new scanner.
609   * There is also java.io.Reader version of this constructor.
610   *
611   * @param   in  the java.io.Inputstream to read input from.
612   */
613  public JavaHighlighter(java.io.InputStream in) {
614    this(new java.io.InputStreamReader(in));
615  }
616
617  /** 
618   * Unpacks the compressed character translation table.
619   *
620   * @param packed   the packed character translation table
621   * @return         the unpacked character translation table
622   */
623  private static char [] zzUnpackCMap(String packed) {
624    char [] map = new char[0x10000];
625    int i = 0;  /* index in packed string  */
626    int j = 0;  /* index in unpacked array */
627    while (i < 1656) {
628      int  count = packed.charAt(i++);
629      char value = packed.charAt(i++);
630      do map[j++] = value; while (--count > 0);
631    }
632    return map;
633  }
634
635
636  /**
637   * Refills the input buffer.
638   *
639   * @return      <code>false</code>, iff there was new input.
640   * 
641   * @exception   java.io.IOException  if any I/O-Error occurs
642   */
643  private boolean zzRefill() throws java.io.IOException {
644
645    /* first: make room (if you can) */
646    if (zzStartRead > 0) {
647      System.arraycopy(zzBuffer, zzStartRead,
648                       zzBuffer, 0,
649                       zzEndRead-zzStartRead);
650
651      /* translate stored positions */
652      zzEndRead-= zzStartRead;
653      zzCurrentPos-= zzStartRead;
654      zzMarkedPos-= zzStartRead;
655      zzPushbackPos-= zzStartRead;
656      zzStartRead = 0;
657    }
658
659    /* is the buffer big enough? */
660    if (zzCurrentPos >= zzBuffer.length) {
661      /* if not: blow it up */
662      char newBuffer[] = new char[zzCurrentPos*2];
663      System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
664      zzBuffer = newBuffer;
665    }
666
667    /* finally: fill the buffer with new input */
668    int numRead = zzReader.read(zzBuffer, zzEndRead,
669                                            zzBuffer.length-zzEndRead);
670
671    if (numRead < 0) {
672      return true;
673    }
674    else {
675      zzEndRead+= numRead;
676      return false;
677    }
678  }
679
680    
681  /**
682   * Closes the input stream.
683   */
684  public final void yyclose() throws java.io.IOException {
685    zzAtEOF = true;            /* indicate end of file */
686    zzEndRead = zzStartRead;  /* invalidate buffer    */
687
688    if (zzReader != null)
689      zzReader.close();
690  }
691
692
693  /**
694   * Resets the scanner to read from a new input stream.
695   * Does not close the old reader.
696   *
697   * All internal variables are reset, the old input stream 
698   * <b>cannot</b> be reused (internal buffer is discarded and lost).
699   * Lexical state is set to <tt>ZZ_INITIAL</tt>.
700   *
701   * @param reader   the new input stream 
702   */
703  public final void yyreset(java.io.Reader reader) {
704    zzReader = reader;
705    zzAtBOL  = true;
706    zzAtEOF  = false;
707    zzEndRead = zzStartRead = 0;
708    zzCurrentPos = zzMarkedPos = zzPushbackPos = 0;
709    yyline = yychar = yycolumn = 0;
710    zzLexicalState = YYINITIAL;
711  }
712
713
714  /**
715   * Returns the current lexical state.
716   */
717  public final int yystate() {
718    return zzLexicalState;
719  }
720
721
722  /**
723   * Enters a new lexical state
724   *
725   * @param newState the new lexical state
726   */
727  public final void yybegin(int newState) {
728    zzLexicalState = newState;
729  }
730
731
732  /**
733   * Returns the text matched by the current regular expression.
734   */
735  public final String yytext() {
736    return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
737  }
738
739
740  /**
741   * Returns the character at position <tt>pos</tt> from the 
742   * matched text. 
743   * 
744   * It is equivalent to yytext().charAt(pos), but faster
745   *
746   * @param pos the position of the character to fetch. 
747   *            A value from 0 to yylength()-1.
748   *
749   * @return the character at position pos
750   */
751  public final char yycharat(int pos) {
752    return zzBuffer[zzStartRead+pos];
753  }
754
755
756  /**
757   * Returns the length of the matched text region.
758   */
759  public final int yylength() {
760    return zzMarkedPos-zzStartRead;
761  }
762
763
764  /**
765   * Reports an error that occured while scanning.
766   *
767   * In a wellformed scanner (no or only correct usage of 
768   * yypushback(int) and a match-all fallback rule) this method 
769   * will only be called with things that "Can't Possibly Happen".
770   * If this method is called, something is seriously wrong
771   * (e.g. a JFlex bug producing a faulty scanner etc.).
772   *
773   * Usual syntax/scanner level error handling should be done
774   * in error fallback rules.
775   *
776   * @param   errorCode  the code of the errormessage to display
777   */
778  private void zzScanError(int errorCode) {
779    String message;
780    try {
781      message = ZZ_ERROR_MSG[errorCode];
782    }
783    catch (ArrayIndexOutOfBoundsException e) {
784      message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
785    }
786
787    throw new Error(message);
788  } 
789
790
791  /**
792   * Pushes the specified amount of characters back into the input stream.
793   *
794   * They will be read again by then next call of the scanning method
795   *
796   * @param number  the number of characters to be read again.
797   *                This number must not be greater than yylength()!
798   */
799  public void yypushback(int number)  {
800    if ( number > yylength() )
801      zzScanError(ZZ_PUSHBACK_2BIG);
802
803    zzMarkedPos -= number;
804  }
805
806
807  /**
808   * Resumes scanning until the next regular expression is matched,
809   * the end of input is encountered or an I/O-Error occurs.
810   *
811   * @return      the next token
812   * @exception   java.io.IOException  if any I/O-Error occurs
813   */
814  public int yylex() throws java.io.IOException {
815    int zzInput;
816    int zzAction;
817
818    // cached fields:
819    int zzCurrentPosL;
820    int zzMarkedPosL;
821    int zzEndReadL = zzEndRead;
822    char [] zzBufferL = zzBuffer;
823    char [] zzCMapL = ZZ_CMAP;
824
825    int [] zzTransL = ZZ_TRANS;
826    int [] zzRowMapL = ZZ_ROWMAP;
827    int [] zzAttrL = ZZ_ATTRIBUTE;
828
829    while (true) {
830      zzMarkedPosL = zzMarkedPos;
831
832      zzAction = -1;
833
834      zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
835  
836      zzState = zzLexicalState;
837
838
839      zzForAction: {
840        while (true) {
841    
842          if (zzCurrentPosL < zzEndReadL)
843            zzInput = zzBufferL[zzCurrentPosL++];
844          else if (zzAtEOF) {
845            zzInput = YYEOF;
846            break zzForAction;
847          }
848          else {
849            // store back cached positions
850            zzCurrentPos  = zzCurrentPosL;
851            zzMarkedPos   = zzMarkedPosL;
852            boolean eof = zzRefill();
853            // get translated positions and possibly new buffer
854            zzCurrentPosL  = zzCurrentPos;
855            zzMarkedPosL   = zzMarkedPos;
856            zzBufferL      = zzBuffer;
857            zzEndReadL     = zzEndRead;
858            if (eof) {
859              zzInput = YYEOF;
860              break zzForAction;
861            }
862            else {
863              zzInput = zzBufferL[zzCurrentPosL++];
864            }
865          }
866          int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
867          if (zzNext == -1) break zzForAction;
868          zzState = zzNext;
869
870          int zzAttributes = zzAttrL[zzState];
871          if ( (zzAttributes & 1) == 1 ) {
872            zzAction = zzState;
873            zzMarkedPosL = zzCurrentPosL;
874            if ( (zzAttributes & 8) == 8 ) break zzForAction;
875          }
876
877        }
878      }
879
880      // store back cached position
881      zzMarkedPos = zzMarkedPosL;
882
883      switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
884        case 14: 
885          { return ASSERT_IS_KEYWORD ? KEYWORD_STYLE : PLAIN_STYLE;
886          }
887        case 15: break;
888        case 5: 
889          { return JAVA_COMMENT_STYLE;
890          }
891        case 16: break;
892        case 1: 
893          { return PLAIN_STYLE;
894          }
895        case 17: break;
896        case 8: 
897          { return KEYWORD_STYLE;
898          }
899        case 18: break;
900        case 4: 
901          { return OPERATOR_STYLE;
902          }
903        case 19: break;
904        case 2: 
905          { return LITERAL_STYLE;
906          }
907        case 20: break;
908        case 11: 
909          { yybegin(YYINITIAL); return JAVADOC_COMMENT_STYLE;
910          }
911        case 21: break;
912        case 10: 
913          { yybegin(YYINITIAL); return JAVA_COMMENT_STYLE;
914          }
915        case 22: break;
916        case 3: 
917          { return SEPARATOR_STYLE;
918          }
919        case 23: break;
920        case 7: 
921          { return TYPE_STYLE;
922          }
923        case 24: break;
924        case 9: 
925          { yybegin(IN_COMMENT);  return JAVA_COMMENT_STYLE;
926          }
927        case 25: break;
928        case 13: 
929          { yybegin(IN_JAVA_DOC_COMMENT); return JAVADOC_COMMENT_STYLE;
930          }
931        case 26: break;
932        case 12: 
933          { return JAVADOC_TAG_STYLE;
934          }
935        case 27: break;
936        case 6: 
937          { return JAVADOC_COMMENT_STYLE;
938          }
939        case 28: break;
940        default: 
941          if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
942            zzAtEOF = true;
943            return YYEOF;
944          } 
945          else {
946            zzScanError(ZZ_NO_MATCH);
947          }
948      }
949    }
950  }
951
952
953}