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: XmlHighlighter.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/XmlHighlighter.flex</tt> 020 */ 021 public class XmlHighlighter 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 TAG_START = 9; 031 public static final int IN_CDATA_SECTION = 14; 032 public static final int IN_RIFE_NAME_QUOTED = 6; 033 public static final int IN_SINGLE_QUOTE_STRING = 11; 034 public static final int IN_RIFE_TAG_REGULAR = 4; 035 public static final int IN_PROCESSING_INSTRUCTION = 13; 036 public static final int IN_DOUBLE_QUOTE_STRING = 12; 037 public static final int IN_RIFE_NAME = 7; 038 public static final int IN_TAG = 10; 039 public static final int IN_RIFE_NAME_SINGLEQUOTED = 5; 040 public static final int IN_RIFE_TAG_VELOCITY = 3; 041 public static final int IN_COMMENT = 8; 042 public static final int YYINITIAL = 0; 043 public static final int IN_RIFE_TAG_COMMENT = 1; 044 public static final int IN_RIFE_TAG_COMPACT = 2; 045 046 /** 047 * Translates characters to character classes 048 */ 049 private static final String ZZ_CMAP_PACKED = 050 "\11\3\1\40\1\34\1\0\1\1\1\2\16\3\4\0\1\1\1\10"+ 051 "\1\37\1\0\1\20\2\0\1\36\5\0\1\4\1\3\1\15\12\3"+ 052 "\1\6\1\0\1\7\1\35\1\14\1\27\1\0\1\32\1\12\1\30"+ 053 "\1\31\4\5\1\13\12\5\1\33\1\5\1\11\4\5\1\16\1\0"+ 054 "\1\17\1\0\1\5\1\0\1\5\1\23\6\5\1\24\10\5\1\26"+ 055 "\1\41\2\5\1\22\4\5\1\21\1\0\1\25\1\0\41\3\2\0"+ 056 "\4\5\4\0\1\5\12\0\1\5\4\0\1\5\5\0\27\5\1\0"+ 057 "\37\5\1\0\u0128\5\2\0\22\5\34\0\136\5\2\0\11\5\2\0"+ 058 "\7\5\16\0\2\5\16\0\5\5\11\0\1\5\21\0\117\3\21\0"+ 059 "\3\3\27\0\1\5\13\0\1\5\1\0\3\5\1\0\1\5\1\0"+ 060 "\24\5\1\0\54\5\1\0\10\5\2\0\32\5\14\0\202\5\1\0"+ 061 "\4\3\5\0\71\5\2\0\2\5\2\0\2\5\3\0\46\5\2\0"+ 062 "\2\5\67\0\46\5\2\0\1\5\7\0\47\5\11\0\21\3\1\0"+ 063 "\27\3\1\0\3\3\1\0\1\3\1\0\2\3\1\0\1\3\13\0"+ 064 "\33\5\5\0\3\5\56\0\32\5\5\0\13\5\13\3\12\0\12\3"+ 065 "\6\0\1\3\143\5\1\0\1\5\7\3\2\0\6\3\2\5\2\3"+ 066 "\1\0\4\3\2\0\12\3\3\5\22\0\1\3\1\5\1\3\33\5"+ 067 "\3\0\33\3\65\0\46\5\13\3\u0150\0\3\3\1\0\65\5\2\0"+ 068 "\1\3\1\5\20\3\2\0\1\5\4\3\3\0\12\5\2\3\2\0"+ 069 "\12\3\21\0\3\3\1\0\10\5\2\0\2\5\2\0\26\5\1\0"+ 070 "\7\5\1\0\1\5\3\0\4\5\2\0\1\3\1\0\7\3\2\0"+ 071 "\2\3\2\0\3\3\11\0\1\3\4\0\2\5\1\0\3\5\2\3"+ 072 "\2\0\12\3\4\5\16\0\1\3\2\0\6\5\4\0\2\5\2\0"+ 073 "\26\5\1\0\7\5\1\0\2\5\1\0\2\5\1\0\2\5\2\0"+ 074 "\1\3\1\0\5\3\4\0\2\3\2\0\3\3\13\0\4\5\1\0"+ 075 "\1\5\7\0\14\3\3\5\14\0\3\3\1\0\7\5\1\0\1\5"+ 076 "\1\0\3\5\1\0\26\5\1\0\7\5\1\0\2\5\1\0\5\5"+ 077 "\2\0\1\3\1\5\10\3\1\0\3\3\1\0\3\3\2\0\1\5"+ 078 "\17\0\1\5\5\0\12\3\21\0\3\3\1\0\10\5\2\0\2\5"+ 079 "\2\0\26\5\1\0\7\5\1\0\2\5\2\0\4\5\2\0\1\3"+ 080 "\1\5\6\3\3\0\2\3\2\0\3\3\10\0\2\3\4\0\2\5"+ 081 "\1\0\3\5\4\0\12\3\22\0\2\3\1\0\6\5\3\0\3\5"+ 082 "\1\0\4\5\3\0\2\5\1\0\1\5\1\0\2\5\3\0\2\5"+ 083 "\3\0\3\5\3\0\10\5\1\0\3\5\4\0\5\3\3\0\3\3"+ 084 "\1\0\4\3\11\0\1\3\17\0\11\3\21\0\3\3\1\0\10\5"+ 085 "\1\0\3\5\1\0\27\5\1\0\12\5\1\0\5\5\4\0\7\3"+ 086 "\1\0\3\3\1\0\4\3\7\0\2\3\11\0\2\5\4\0\12\3"+ 087 "\22\0\2\3\1\0\10\5\1\0\3\5\1\0\27\5\1\0\12\5"+ 088 "\1\0\5\5\4\0\7\3\1\0\3\3\1\0\4\3\7\0\2\3"+ 089 "\7\0\1\5\1\0\2\5\4\0\12\3\22\0\2\3\1\0\10\5"+ 090 "\1\0\3\5\1\0\27\5\1\0\20\5\4\0\6\3\2\0\3\3"+ 091 "\1\0\4\3\11\0\1\3\10\0\2\5\4\0\12\3\22\0\2\3"+ 092 "\1\0\22\5\3\0\30\5\1\0\11\5\1\0\1\5\2\0\7\5"+ 093 "\3\0\1\3\4\0\6\3\1\0\1\3\1\0\10\3\22\0\2\3"+ 094 "\15\0\60\5\1\3\2\5\7\3\4\0\10\5\10\3\1\0\12\3"+ 095 "\47\0\2\5\1\0\1\5\2\0\2\5\1\0\1\5\2\0\1\5"+ 096 "\6\0\4\5\1\0\7\5\1\0\3\5\1\0\1\5\1\0\1\5"+ 097 "\2\0\2\5\1\0\4\5\1\3\2\5\6\3\1\0\2\3\1\5"+ 098 "\2\0\5\5\1\0\1\5\1\0\6\3\2\0\12\3\2\0\2\5"+ 099 "\42\0\1\5\27\0\2\3\6\0\12\3\13\0\1\3\1\0\1\3"+ 100 "\1\0\1\3\4\0\2\3\10\5\1\0\42\5\6\0\24\3\1\0"+ 101 "\2\3\4\5\4\0\10\3\1\0\44\3\11\0\1\3\71\0\42\5"+ 102 "\1\0\5\5\1\0\2\5\1\0\7\3\3\0\4\3\6\0\12\3"+ 103 "\6\0\6\5\4\3\106\0\46\5\12\0\47\5\11\0\132\5\5\0"+ 104 "\104\5\5\0\122\5\6\0\7\5\1\0\77\5\1\0\1\5\1\0"+ 105 "\4\5\2\0\7\5\1\0\1\5\1\0\4\5\2\0\47\5\1\0"+ 106 "\1\5\1\0\4\5\2\0\37\5\1\0\1\5\1\0\4\5\2\0"+ 107 "\7\5\1\0\1\5\1\0\4\5\2\0\7\5\1\0\7\5\1\0"+ 108 "\27\5\1\0\37\5\1\0\1\5\1\0\4\5\2\0\7\5\1\0"+ 109 "\47\5\1\0\23\5\16\0\11\3\56\0\125\5\14\0\u026c\5\2\0"+ 110 "\10\5\12\0\32\5\5\0\113\5\225\0\64\5\40\3\7\0\1\5"+ 111 "\4\0\12\3\41\0\4\3\1\0\12\3\6\0\130\5\10\0\51\5"+ 112 "\1\3\u0556\0\234\5\4\0\132\5\6\0\26\5\2\0\6\5\2\0"+ 113 "\46\5\2\0\6\5\2\0\10\5\1\0\1\5\1\0\1\5\1\0"+ 114 "\1\5\1\0\37\5\2\0\65\5\1\0\7\5\1\0\1\5\3\0"+ 115 "\3\5\1\0\7\5\3\0\4\5\2\0\6\5\4\0\15\5\5\0"+ 116 "\3\5\1\0\7\5\17\0\4\3\32\0\5\3\20\0\2\5\51\0"+ 117 "\6\3\17\0\1\5\40\0\20\5\40\0\15\3\4\0\1\3\40\0"+ 118 "\1\5\4\0\1\5\2\0\12\5\1\0\1\5\3\0\5\5\6\0"+ 119 "\1\5\1\0\1\5\1\0\1\5\1\0\4\5\1\0\3\5\1\0"+ 120 "\7\5\46\0\44\5\u0e81\0\3\5\31\0\11\5\6\3\1\0\5\5"+ 121 "\2\0\3\5\6\0\124\5\4\0\2\3\2\0\2\5\2\0\136\5"+ 122 "\6\0\50\5\4\0\136\5\21\0\30\5\u0248\0\u19b6\5\112\0\u51a6\5"+ 123 "\132\0\u048d\5\u0773\0\u2ba4\5\u215c\0\u012e\5\322\0\7\5\14\0\5\5"+ 124 "\5\0\1\5\1\3\12\5\1\0\15\5\1\0\5\5\1\0\1\5"+ 125 "\1\0\2\5\1\0\2\5\1\0\154\5\41\0\u016b\5\22\0\100\5"+ 126 "\2\0\66\5\50\0\14\5\44\0\4\3\17\0\2\5\30\0\3\5"+ 127 "\31\0\1\5\6\0\3\5\1\0\1\5\1\0\207\5\2\0\1\3"+ 128 "\4\0\1\5\13\0\12\3\7\0\32\5\4\0\1\5\1\0\32\5"+ 129 "\12\0\132\5\3\0\6\5\2\0\6\5\2\0\6\5\2\0\3\5"+ 130 "\3\0\2\5\3\0\2\5\22\0\3\3\4\0"; 131 132 /** 133 * Translates characters to character classes 134 */ 135 private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED); 136 137 /** 138 * Translates DFA states to action switch labels. 139 */ 140 private static final int [] ZZ_ACTION = zzUnpackAction(); 141 142 private static final String ZZ_ACTION_PACKED_0 = 143 "\1\1\2\2\1\3\1\2\3\0\1\4\2\0\2\5"+ 144 "\1\0\1\6\2\1\1\7\2\1\3\2\1\10\1\2"+ 145 "\1\11\2\3\1\2\1\12\1\13\1\14\1\13\2\4"+ 146 "\1\15\1\16\1\17\1\20\2\1\1\20\1\21\1\22"+ 147 "\1\23\1\5\2\24\3\5\1\25\2\5\2\1\1\26"+ 148 "\2\6\1\0\1\7\1\0\1\27\10\0\1\30\16\0"+ 149 "\1\31\1\0\1\32\1\33\4\0\1\34\4\0\1\35"+ 150 "\10\0\1\36\1\37\7\0\1\40"; 151 152 private static int [] zzUnpackAction() { 153 int [] result = new int[118]; 154 int offset = 0; 155 offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); 156 return result; 157 } 158 159 private static int zzUnpackAction(String packed, int offset, int [] result) { 160 int i = 0; /* index in packed string */ 161 int j = offset; /* index in unpacked array */ 162 int l = packed.length(); 163 while (i < l) { 164 int count = packed.charAt(i++); 165 int value = packed.charAt(i++); 166 do result[j++] = value; while (--count > 0); 167 } 168 return j; 169 } 170 171 172 /** 173 * Translates a state to a row index in the transition table 174 */ 175 private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); 176 177 private static final String ZZ_ROWMAP_PACKED_0 = 178 "\0\0\0\42\0\104\0\146\0\210\0\252\0\314\0\356"+ 179 "\0\u0110\0\u0132\0\u0154\0\u0176\0\u0198\0\u01ba\0\u01dc\0\u01fe"+ 180 "\0\u0220\0\u0242\0\u0264\0\u0286\0\u02a8\0\u02ca\0\u01fe\0\u01fe"+ 181 "\0\u02ec\0\u01fe\0\u030e\0\u0330\0\u0352\0\u01fe\0\u01fe\0\u01fe"+ 182 "\0\u0374\0\u0396\0\u03b8\0\u01fe\0\u03da\0\u01fe\0\u03fc\0\u041e"+ 183 "\0\u0440\0\u0462\0\u01fe\0\u01fe\0\u01fe\0\u0484\0\u041e\0\u01fe"+ 184 "\0\u0264\0\u01fe\0\u04a6\0\u01fe\0\u04c8\0\u04ea\0\u050c\0\u052e"+ 185 "\0\u01fe\0\u0550\0\u0572\0\u0594\0\u05b6\0\u05d8\0\u01fe\0\u05fa"+ 186 "\0\u061c\0\u063e\0\u0660\0\u0682\0\u05b6\0\u050c\0\u052e\0\u01fe"+ 187 "\0\u06a4\0\u06c6\0\u06e8\0\u070a\0\u072c\0\u074e\0\u0770\0\u0792"+ 188 "\0\u07b4\0\u07d6\0\u07f8\0\u081a\0\u083c\0\u085e\0\u01fe\0\u0880"+ 189 "\0\u01fe\0\u08a2\0\u08c4\0\u08e6\0\u0908\0\u092a\0\u01fe\0\u094c"+ 190 "\0\u096e\0\u0990\0\u09b2\0\u01fe\0\u08a2\0\u09d4\0\u09f6\0\u0a18"+ 191 "\0\u0a3a\0\u0a5c\0\u0a7e\0\u0aa0\0\u01fe\0\u01fe\0\u0ac2\0\u0ae4"+ 192 "\0\u0b06\0\u0b28\0\u0b4a\0\u0b6c\0\u0b8e\0\u01fe"; 193 194 private static int [] zzUnpackRowMap() { 195 int [] result = new int[118]; 196 int offset = 0; 197 offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); 198 return result; 199 } 200 201 private static int zzUnpackRowMap(String packed, int offset, int [] result) { 202 int i = 0; /* index in packed string */ 203 int j = offset; /* index in unpacked array */ 204 int l = packed.length(); 205 while (i < l) { 206 int high = packed.charAt(i++) << 16; 207 result[j++] = high | packed.charAt(i++); 208 } 209 return j; 210 } 211 212 /** 213 * The transition table of the DFA 214 */ 215 private static final int [] ZZ_TRANS = zzUnpackTrans(); 216 217 private static final String ZZ_TRANS_PACKED_0 = 218 "\1\20\1\21\5\20\1\22\6\20\1\23\1\20\1\24"+ 219 "\17\20\1\21\1\20\4\25\1\26\7\25\1\27\21\25"+ 220 "\1\30\3\25\17\31\1\32\16\31\1\30\3\31\15\33"+ 221 "\1\34\7\33\1\32\12\33\2\27\14\35\1\32\22\35"+ 222 "\1\36\2\35\34\37\1\20\1\37\1\40\37\37\1\20"+ 223 "\2\37\1\40\17\37\1\41\7\37\1\32\6\37\1\20"+ 224 "\5\37\4\42\1\43\27\42\1\20\5\42\5\44\2\45"+ 225 "\2\44\3\45\1\46\3\44\1\45\1\44\3\45\1\44"+ 226 "\1\45\1\44\4\45\1\20\4\44\1\45\5\20\2\47"+ 227 "\1\50\1\20\3\47\1\46\1\51\1\23\1\20\1\52"+ 228 "\1\20\3\47\1\20\1\47\1\20\4\47\1\20\1\53"+ 229 "\1\54\1\55\1\20\1\47\7\56\1\57\4\56\1\60"+ 230 "\1\56\1\61\1\62\1\63\1\62\3\56\1\62\6\56"+ 231 "\1\62\1\56\1\64\3\56\7\65\1\57\4\65\1\60"+ 232 "\1\65\1\61\1\62\1\66\1\62\3\65\1\62\6\65"+ 233 "\1\62\2\65\1\64\2\65\27\67\1\70\4\67\1\71"+ 234 "\5\67\17\72\1\73\14\72\1\20\5\72\43\0\1\21"+ 235 "\36\0\1\21\11\0\1\74\4\0\1\75\10\0\1\76"+ 236 "\1\77\22\0\1\100\52\0\1\101\20\0\4\25\1\0"+ 237 "\7\25\1\0\21\25\1\0\3\25\4\0\1\102\35\0"+ 238 "\17\31\1\0\16\31\1\0\3\31\25\33\1\0\12\33"+ 239 "\2\0\25\33\1\32\12\33\2\0\14\35\1\0\22\35"+ 240 "\1\0\2\35\25\0\1\32\14\0\4\42\1\0\27\42"+ 241 "\1\0\5\42\4\0\1\103\40\0\4\45\2\0\3\45"+ 242 "\4\0\1\45\1\0\3\45\1\0\1\45\1\0\4\45"+ 243 "\5\0\1\45\3\0\4\47\2\0\3\47\4\0\1\47"+ 244 "\1\0\3\47\1\0\1\47\1\0\4\47\5\0\1\47"+ 245 "\10\0\1\104\4\0\1\105\10\0\1\76\27\0\1\46"+ 246 "\30\0\4\47\2\0\3\47\4\0\1\47\1\101\3\47"+ 247 "\1\0\1\47\1\0\4\47\5\0\1\47\7\56\1\0"+ 248 "\4\56\1\0\1\56\2\0\1\56\1\0\3\56\1\0"+ 249 "\6\56\1\0\1\56\1\0\12\56\1\0\4\56\1\0"+ 250 "\1\56\2\0\1\56\1\101\3\56\1\0\6\56\1\0"+ 251 "\1\56\1\0\3\56\7\65\1\0\4\65\1\0\1\65"+ 252 "\2\0\1\65\1\0\3\65\1\0\6\65\1\0\2\65"+ 253 "\1\0\11\65\1\0\4\65\1\0\1\65\2\0\1\65"+ 254 "\1\101\3\65\1\0\6\65\1\0\2\65\1\0\2\65"+ 255 "\27\106\1\107\4\106\1\71\21\106\1\110\12\106\1\111"+ 256 "\4\106\1\71\5\106\17\72\1\0\14\72\1\0\5\72"+ 257 "\17\0\1\112\26\0\1\113\11\0\1\114\51\0\1\115"+ 258 "\21\0\1\116\34\0\2\117\6\0\1\120\1\121\1\120"+ 259 "\1\0\1\122\16\0\1\117\3\0\1\117\2\0\2\123"+ 260 "\12\0\1\124\4\0\1\125\1\126\1\125\7\0\1\123"+ 261 "\3\0\1\123\15\0\1\32\41\0\1\127\31\0\1\130"+ 262 "\35\0\14\106\1\110\12\106\1\111\4\106\1\0\5\106"+ 263 "\14\0\1\131\31\0\1\132\65\0\1\133\17\0\1\134"+ 264 "\55\0\1\135\1\136\1\135\16\0\2\117\6\0\1\120"+ 265 "\1\121\1\120\20\0\1\117\3\0\1\117\2\0\1\137"+ 266 "\36\0\1\137\2\0\1\137\7\0\1\120\26\0\1\137"+ 267 "\2\0\2\122\6\0\1\140\1\141\21\0\1\122\3\0"+ 268 "\1\122\2\0\2\123\17\0\1\125\1\126\1\125\7\0"+ 269 "\1\123\3\0\1\123\2\0\2\124\17\0\1\142\1\143"+ 270 "\10\0\1\124\3\0\1\124\2\0\1\144\36\0\1\144"+ 271 "\2\0\1\144\20\0\1\125\15\0\1\144\5\0\1\145"+ 272 "\36\0\2\146\6\0\1\147\1\150\1\147\1\0\1\151"+ 273 "\16\0\1\146\3\0\1\146\32\0\1\152\32\0\1\153"+ 274 "\1\154\17\0\1\155\36\0\1\155\2\0\1\155\20\0"+ 275 "\1\135\15\0\1\155\2\0\2\140\14\0\1\27\14\0"+ 276 "\1\140\3\0\1\140\2\0\2\140\6\0\1\140\5\0"+ 277 "\1\27\14\0\1\140\3\0\1\140\2\0\2\142\22\0"+ 278 "\1\27\6\0\1\142\3\0\1\142\2\0\2\142\17\0"+ 279 "\1\142\2\0\1\27\6\0\1\142\3\0\1\142\2\0"+ 280 "\2\146\6\0\1\147\1\150\1\147\20\0\1\146\3\0"+ 281 "\1\146\2\0\1\156\36\0\1\156\2\0\1\156\7\0"+ 282 "\1\147\26\0\1\156\2\0\2\151\6\0\1\157\1\160"+ 283 "\21\0\1\151\3\0\1\151\33\0\1\161\10\0\1\153"+ 284 "\12\0\1\27\23\0\1\153\2\0\1\153\12\0\1\27"+ 285 "\5\0\1\153\15\0\1\153\2\0\2\157\1\0\1\162"+ 286 "\27\0\1\157\3\0\1\157\2\0\2\157\1\0\1\162"+ 287 "\4\0\1\157\22\0\1\157\3\0\1\157\34\0\1\163"+ 288 "\12\0\1\164\67\0\1\165\23\0\1\27\43\0\1\166"+ 289 "\23\0"; 290 291 private static int [] zzUnpackTrans() { 292 int [] result = new int[2992]; 293 int offset = 0; 294 offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); 295 return result; 296 } 297 298 private static int zzUnpackTrans(String packed, int offset, int [] result) { 299 int i = 0; /* index in packed string */ 300 int j = offset; /* index in unpacked array */ 301 int l = packed.length(); 302 while (i < l) { 303 int count = packed.charAt(i++); 304 int value = packed.charAt(i++); 305 value--; 306 do result[j++] = value; while (--count > 0); 307 } 308 return j; 309 } 310 311 312 /* error codes */ 313 private static final int ZZ_UNKNOWN_ERROR = 0; 314 private static final int ZZ_NO_MATCH = 1; 315 private static final int ZZ_PUSHBACK_2BIG = 2; 316 317 /* error messages for the codes above */ 318 private static final String ZZ_ERROR_MSG[] = { 319 "Unkown internal scanner error", 320 "Error: could not match input", 321 "Error: pushback value was too large" 322 }; 323 324 /** 325 * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code> 326 */ 327 private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); 328 329 private static final String ZZ_ATTRIBUTE_PACKED_0 = 330 "\5\1\3\0\1\1\2\0\2\1\1\0\1\1\1\11"+ 331 "\6\1\2\11\1\1\1\11\3\1\3\11\3\1\1\11"+ 332 "\1\1\1\11\4\1\3\11\2\1\1\11\1\1\1\11"+ 333 "\1\1\1\11\4\1\1\11\2\1\1\0\1\1\1\0"+ 334 "\1\11\10\0\1\11\16\0\1\11\1\0\1\11\1\1"+ 335 "\4\0\1\11\4\0\1\11\10\0\2\11\7\0\1\11"; 336 337 private static int [] zzUnpackAttribute() { 338 int [] result = new int[118]; 339 int offset = 0; 340 offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); 341 return result; 342 } 343 344 private static int zzUnpackAttribute(String packed, int offset, int [] result) { 345 int i = 0; /* index in packed string */ 346 int j = offset; /* index in unpacked array */ 347 int l = packed.length(); 348 while (i < l) { 349 int count = packed.charAt(i++); 350 int value = packed.charAt(i++); 351 do result[j++] = value; while (--count > 0); 352 } 353 return j; 354 } 355 356 /** the input device */ 357 private java.io.Reader zzReader; 358 359 /** the current state of the DFA */ 360 private int zzState; 361 362 /** the current lexical state */ 363 private int zzLexicalState = YYINITIAL; 364 365 /** this buffer contains the current text to be matched and is 366 the source of the yytext() string */ 367 private char zzBuffer[] = new char[ZZ_BUFFERSIZE]; 368 369 /** the textposition at the last accepting state */ 370 private int zzMarkedPos; 371 372 /** the textposition at the last state to be included in yytext */ 373 private int zzPushbackPos; 374 375 /** the current text position in the buffer */ 376 private int zzCurrentPos; 377 378 /** startRead marks the beginning of the yytext() string in the buffer */ 379 private int zzStartRead; 380 381 /** endRead marks the last character in the buffer, that has been read 382 from input */ 383 private int zzEndRead; 384 385 /** number of newlines encountered up to the start of the matched text */ 386 private int yyline; 387 388 /** the number of characters up to the start of the matched text */ 389 private int yychar; 390 391 /** 392 * the number of characters from the last newline up to the start of the 393 * matched text 394 */ 395 private int yycolumn; 396 397 /** 398 * zzAtBOL == true <=> the scanner is currently at the beginning of a line 399 */ 400 private boolean zzAtBOL = true; 401 402 /** zzAtEOF == true <=> the scanner is at the EOF */ 403 private boolean zzAtEOF; 404 405 /* user code: */ 406 /* styles */ 407 408 public static final byte PLAIN_STYLE = 1; 409 public static final byte CHAR_DATA = 2; 410 public static final byte TAG_SYMBOLS = 3; 411 public static final byte COMMENT = 4; 412 public static final byte ATTRIBUTE_VALUE = 5; 413 public static final byte ATTRIBUTE_NAME = 6; 414 public static final byte PROCESSING_INSTRUCTION = 7; 415 public static final byte TAG_NAME = 8; 416 public static final byte RIFE_TAG = 9; 417 public static final byte RIFE_NAME = 10; 418 419 /* Highlighter implementation */ 420 421 public int getStyleCount() 422 { 423 return 10; 424 } 425 426 public byte getStartState() 427 { 428 return YYINITIAL+1; 429 } 430 431 public byte getCurrentState() 432 { 433 return (byte) (yystate()+1); 434 } 435 436 public void setState(byte newState) 437 { 438 yybegin(newState-1); 439 } 440 441 public byte getNextToken() 442 { 443 try 444 { 445 return (byte) yylex(); 446 } 447 catch (IOException e) 448 { 449 throw new InternalError(); 450 } 451 } 452 453 public int getTokenLength() 454 { 455 return yylength(); 456 } 457 458 public void setReader(Reader r) 459 { 460 this.zzReader = r; 461 } 462 463 public XmlHighlighter() 464 { 465 } 466 467 private int mReturningState; 468 private int mReturningStateTag; 469 470 471 /** 472 * Creates a new scanner 473 * There is also a java.io.InputStream version of this constructor. 474 * 475 * @param in the java.io.Reader to read input from. 476 */ 477 public XmlHighlighter(java.io.Reader in) { 478 this.zzReader = in; 479 } 480 481 /** 482 * Creates a new scanner. 483 * There is also java.io.Reader version of this constructor. 484 * 485 * @param in the java.io.Inputstream to read input from. 486 */ 487 public XmlHighlighter(java.io.InputStream in) { 488 this(new java.io.InputStreamReader(in)); 489 } 490 491 /** 492 * Unpacks the compressed character translation table. 493 * 494 * @param packed the packed character translation table 495 * @return the unpacked character translation table 496 */ 497 private static char [] zzUnpackCMap(String packed) { 498 char [] map = new char[0x10000]; 499 int i = 0; /* index in packed string */ 500 int j = 0; /* index in unpacked array */ 501 while (i < 1614) { 502 int count = packed.charAt(i++); 503 char value = packed.charAt(i++); 504 do map[j++] = value; while (--count > 0); 505 } 506 return map; 507 } 508 509 510 /** 511 * Refills the input buffer. 512 * 513 * @return <code>false</code>, iff there was new input. 514 * 515 * @exception java.io.IOException if any I/O-Error occurs 516 */ 517 private boolean zzRefill() throws java.io.IOException { 518 519 /* first: make room (if you can) */ 520 if (zzStartRead > 0) { 521 System.arraycopy(zzBuffer, zzStartRead, 522 zzBuffer, 0, 523 zzEndRead-zzStartRead); 524 525 /* translate stored positions */ 526 zzEndRead-= zzStartRead; 527 zzCurrentPos-= zzStartRead; 528 zzMarkedPos-= zzStartRead; 529 zzPushbackPos-= zzStartRead; 530 zzStartRead = 0; 531 } 532 533 /* is the buffer big enough? */ 534 if (zzCurrentPos >= zzBuffer.length) { 535 /* if not: blow it up */ 536 char newBuffer[] = new char[zzCurrentPos*2]; 537 System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length); 538 zzBuffer = newBuffer; 539 } 540 541 /* finally: fill the buffer with new input */ 542 int numRead = zzReader.read(zzBuffer, zzEndRead, 543 zzBuffer.length-zzEndRead); 544 545 if (numRead < 0) { 546 return true; 547 } 548 else { 549 zzEndRead+= numRead; 550 return false; 551 } 552 } 553 554 555 /** 556 * Closes the input stream. 557 */ 558 public final void yyclose() throws java.io.IOException { 559 zzAtEOF = true; /* indicate end of file */ 560 zzEndRead = zzStartRead; /* invalidate buffer */ 561 562 if (zzReader != null) 563 zzReader.close(); 564 } 565 566 567 /** 568 * Resets the scanner to read from a new input stream. 569 * Does not close the old reader. 570 * 571 * All internal variables are reset, the old input stream 572 * <b>cannot</b> be reused (internal buffer is discarded and lost). 573 * Lexical state is set to <tt>ZZ_INITIAL</tt>. 574 * 575 * @param reader the new input stream 576 */ 577 public final void yyreset(java.io.Reader reader) { 578 zzReader = reader; 579 zzAtBOL = true; 580 zzAtEOF = false; 581 zzEndRead = zzStartRead = 0; 582 zzCurrentPos = zzMarkedPos = zzPushbackPos = 0; 583 yyline = yychar = yycolumn = 0; 584 zzLexicalState = YYINITIAL; 585 } 586 587 588 /** 589 * Returns the current lexical state. 590 */ 591 public final int yystate() { 592 return zzLexicalState; 593 } 594 595 596 /** 597 * Enters a new lexical state 598 * 599 * @param newState the new lexical state 600 */ 601 public final void yybegin(int newState) { 602 zzLexicalState = newState; 603 } 604 605 606 /** 607 * Returns the text matched by the current regular expression. 608 */ 609 public final String yytext() { 610 return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); 611 } 612 613 614 /** 615 * Returns the character at position <tt>pos</tt> from the 616 * matched text. 617 * 618 * It is equivalent to yytext().charAt(pos), but faster 619 * 620 * @param pos the position of the character to fetch. 621 * A value from 0 to yylength()-1. 622 * 623 * @return the character at position pos 624 */ 625 public final char yycharat(int pos) { 626 return zzBuffer[zzStartRead+pos]; 627 } 628 629 630 /** 631 * Returns the length of the matched text region. 632 */ 633 public final int yylength() { 634 return zzMarkedPos-zzStartRead; 635 } 636 637 638 /** 639 * Reports an error that occured while scanning. 640 * 641 * In a wellformed scanner (no or only correct usage of 642 * yypushback(int) and a match-all fallback rule) this method 643 * will only be called with things that "Can't Possibly Happen". 644 * If this method is called, something is seriously wrong 645 * (e.g. a JFlex bug producing a faulty scanner etc.). 646 * 647 * Usual syntax/scanner level error handling should be done 648 * in error fallback rules. 649 * 650 * @param errorCode the code of the errormessage to display 651 */ 652 private void zzScanError(int errorCode) { 653 String message; 654 try { 655 message = ZZ_ERROR_MSG[errorCode]; 656 } 657 catch (ArrayIndexOutOfBoundsException e) { 658 message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; 659 } 660 661 throw new Error(message); 662 } 663 664 665 /** 666 * Pushes the specified amount of characters back into the input stream. 667 * 668 * They will be read again by then next call of the scanning method 669 * 670 * @param number the number of characters to be read again. 671 * This number must not be greater than yylength()! 672 */ 673 public void yypushback(int number) { 674 if ( number > yylength() ) 675 zzScanError(ZZ_PUSHBACK_2BIG); 676 677 zzMarkedPos -= number; 678 } 679 680 681 /** 682 * Resumes scanning until the next regular expression is matched, 683 * the end of input is encountered or an I/O-Error occurs. 684 * 685 * @return the next token 686 * @exception java.io.IOException if any I/O-Error occurs 687 */ 688 public int yylex() throws java.io.IOException { 689 int zzInput; 690 int zzAction; 691 692 // cached fields: 693 int zzCurrentPosL; 694 int zzMarkedPosL; 695 int zzEndReadL = zzEndRead; 696 char [] zzBufferL = zzBuffer; 697 char [] zzCMapL = ZZ_CMAP; 698 699 int [] zzTransL = ZZ_TRANS; 700 int [] zzRowMapL = ZZ_ROWMAP; 701 int [] zzAttrL = ZZ_ATTRIBUTE; 702 703 while (true) { 704 zzMarkedPosL = zzMarkedPos; 705 706 zzAction = -1; 707 708 zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; 709 710 zzState = zzLexicalState; 711 712 713 zzForAction: { 714 while (true) { 715 716 if (zzCurrentPosL < zzEndReadL) 717 zzInput = zzBufferL[zzCurrentPosL++]; 718 else if (zzAtEOF) { 719 zzInput = YYEOF; 720 break zzForAction; 721 } 722 else { 723 // store back cached positions 724 zzCurrentPos = zzCurrentPosL; 725 zzMarkedPos = zzMarkedPosL; 726 boolean eof = zzRefill(); 727 // get translated positions and possibly new buffer 728 zzCurrentPosL = zzCurrentPos; 729 zzMarkedPosL = zzMarkedPos; 730 zzBufferL = zzBuffer; 731 zzEndReadL = zzEndRead; 732 if (eof) { 733 zzInput = YYEOF; 734 break zzForAction; 735 } 736 else { 737 zzInput = zzBufferL[zzCurrentPosL++]; 738 } 739 } 740 int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ]; 741 if (zzNext == -1) break zzForAction; 742 zzState = zzNext; 743 744 int zzAttributes = zzAttrL[zzState]; 745 if ( (zzAttributes & 1) == 1 ) { 746 zzAction = zzState; 747 zzMarkedPosL = zzCurrentPosL; 748 if ( (zzAttributes & 8) == 8 ) break zzForAction; 749 } 750 751 } 752 } 753 754 // store back cached position 755 zzMarkedPos = zzMarkedPosL; 756 757 switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { 758 case 27: 759 { yybegin(IN_COMMENT); return COMMENT; 760 } 761 case 33: break; 762 case 5: 763 { return ATTRIBUTE_VALUE; 764 } 765 case 34: break; 766 case 4: 767 { return COMMENT; 768 } 769 case 35: break; 770 case 21: 771 { yybegin(IN_TAG); return ATTRIBUTE_VALUE; 772 } 773 case 36: break; 774 case 20: 775 { yybegin(IN_TAG); return TAG_SYMBOLS; 776 } 777 case 37: break; 778 case 13: 779 { yybegin(IN_TAG); return PLAIN_STYLE; 780 } 781 case 38: break; 782 case 14: 783 { yybegin(IN_TAG); return TAG_NAME; 784 } 785 case 39: break; 786 case 3: 787 { mReturningStateTag = yystate(); yybegin(IN_RIFE_NAME); return RIFE_NAME; 788 } 789 case 40: break; 790 case 10: 791 { mReturningStateTag = yystate(); yybegin(IN_RIFE_NAME_QUOTED); return RIFE_NAME; 792 } 793 case 41: break; 794 case 31: 795 { mReturningState = yystate(); yybegin(IN_RIFE_TAG_COMMENT); return RIFE_TAG; 796 } 797 case 42: break; 798 case 24: 799 { yybegin(YYINITIAL); return PROCESSING_INSTRUCTION; 800 } 801 case 43: break; 802 case 28: 803 { mReturningState = yystate(); yybegin(IN_RIFE_TAG_COMPACT); return RIFE_TAG; 804 } 805 case 44: break; 806 case 22: 807 { return PROCESSING_INSTRUCTION; 808 } 809 case 45: break; 810 case 8: 811 { mReturningStateTag = yystate(); yybegin(IN_RIFE_NAME_SINGLEQUOTED); return RIFE_NAME; 812 } 813 case 46: break; 814 case 15: 815 { yybegin(YYINITIAL); return TAG_SYMBOLS; 816 } 817 case 47: break; 818 case 30: 819 { mReturningState = yystate(); yybegin(IN_RIFE_TAG_REGULAR); return RIFE_TAG; 820 } 821 case 48: break; 822 case 11: 823 { return RIFE_NAME; 824 } 825 case 49: break; 826 case 23: 827 { yybegin(IN_PROCESSING_INSTRUCTION); return PROCESSING_INSTRUCTION; 828 } 829 case 50: break; 830 case 17: 831 { return TAG_SYMBOLS; 832 } 833 case 51: break; 834 case 29: 835 { mReturningState = yystate(); yybegin(IN_RIFE_TAG_VELOCITY); return RIFE_TAG; 836 } 837 case 52: break; 838 case 1: 839 { return PLAIN_STYLE; 840 } 841 case 53: break; 842 case 2: 843 { return RIFE_TAG; 844 } 845 case 54: break; 846 case 18: 847 { yybegin(IN_SINGLE_QUOTE_STRING); return ATTRIBUTE_VALUE; 848 } 849 case 55: break; 850 case 26: 851 { yybegin(YYINITIAL); return CHAR_DATA; 852 } 853 case 56: break; 854 case 25: 855 { yybegin(YYINITIAL); return COMMENT; 856 } 857 case 57: break; 858 case 19: 859 { yybegin(IN_DOUBLE_QUOTE_STRING); return ATTRIBUTE_VALUE; 860 } 861 case 58: break; 862 case 32: 863 { yybegin(IN_CDATA_SECTION); return CHAR_DATA; 864 } 865 case 59: break; 866 case 12: 867 { yybegin(mReturningStateTag); return RIFE_NAME; 868 } 869 case 60: break; 870 case 16: 871 { return ATTRIBUTE_NAME; 872 } 873 case 61: break; 874 case 6: 875 { return CHAR_DATA; 876 } 877 case 62: break; 878 case 9: 879 { yybegin(mReturningState); return RIFE_TAG; 880 } 881 case 63: break; 882 case 7: 883 { yybegin(TAG_START); return TAG_SYMBOLS; 884 } 885 case 64: break; 886 default: 887 if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { 888 zzAtEOF = true; 889 return YYEOF; 890 } 891 else { 892 zzScanError(ZZ_NO_MATCH); 893 } 894 } 895 } 896 } 897 898 899 }