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 3108 2006-03-13 18:03:00Z gbevin $
008     */
009    package com.uwyn.jhighlight.highlighter;
010    
011    import java.io.Reader;
012    import 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     */
021    public 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    }