get rid of ftl in html lexer completely

This commit is contained in:
Dennis Ushakov
2017-10-09 13:12:26 +03:00
parent 8a1ccc360a
commit 17d4bf8112
3 changed files with 169 additions and 200 deletions
@@ -33,11 +33,9 @@ public class _HtmlLexer implements FlexLexer {
public static final int ATTRIBUTE_VALUE_DQ = 16;
public static final int ATTRIBUTE_VALUE_SQ = 18;
public static final int PROCESSING_INSTRUCTION = 20;
public static final int START_TAG_NAME2 = 22;
public static final int END_TAG_NAME2 = 24;
public static final int TAG_CHARACTERS = 26;
public static final int C_COMMENT_START = 28;
public static final int C_COMMENT_END = 30;
public static final int TAG_CHARACTERS = 22;
public static final int C_COMMENT_START = 24;
public static final int C_COMMENT_END = 26;
/**
* ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
@@ -47,7 +45,7 @@ public class _HtmlLexer implements FlexLexer {
*/
private static final int ZZ_LEXSTATE[] = {
0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15
8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13
};
/**
@@ -123,12 +121,12 @@ public class _HtmlLexer implements FlexLexer {
/* The ZZ_CMAP_A table has 2944 entries */
static final char ZZ_CMAP_A[] = zzUnpackCMap(
"\11\0\2\11\1\0\2\11\22\0\1\11\1\15\1\12\1\7\1\52\1\0\1\44\1\13\2\43\3\0\1"+
"\6\1\5\1\46\12\2\1\4\1\53\1\14\1\10\1\42\1\45\1\0\1\62\1\37\1\21\1\16\1\27"+
"\1\62\1\1\1\30\1\41\2\1\1\33\1\31\1\1\1\17\1\25\3\1\1\22\1\35\3\1\1\24\1\1"+
"\1\47\1\51\1\50\1\0\1\4\1\0\1\55\1\40\1\21\1\16\1\27\1\62\1\54\1\30\1\41\2"+
"\1\1\34\1\32\1\60\1\20\1\26\1\57\1\1\1\56\1\23\1\36\2\1\1\61\1\24\1\1\1\0"+
"\1\43\10\0\1\3\24\0\1\1\12\0\1\1\4\0\1\1\5\0\27\1\1\0\12\1\4\0\14\1\16\0\5"+
"\11\0\2\10\1\0\2\10\22\0\1\10\1\14\1\11\1\60\1\51\1\0\1\43\1\12\2\42\3\0\1"+
"\6\1\5\1\45\12\2\1\4\1\52\1\13\1\7\1\41\1\44\1\0\1\62\1\36\1\20\1\15\1\26"+
"\1\62\1\1\1\27\1\40\2\1\1\32\1\30\1\1\1\16\1\24\3\1\1\21\1\34\3\1\1\23\1\1"+
"\1\46\1\50\1\47\1\0\1\4\1\0\1\54\1\37\1\20\1\15\1\26\1\62\1\53\1\27\1\40\2"+
"\1\1\33\1\31\1\57\1\17\1\25\1\56\1\1\1\55\1\22\1\35\2\1\1\61\1\23\1\1\1\0"+
"\1\42\10\0\1\3\24\0\1\1\12\0\1\1\4\0\1\1\5\0\27\1\1\0\12\1\4\0\14\1\16\0\5"+
"\1\7\0\1\1\1\0\1\1\1\0\5\1\1\0\2\1\2\0\4\1\1\0\1\1\6\0\1\1\1\0\3\1\1\0\1\1"+
"\1\0\4\1\1\0\23\1\1\0\13\1\10\0\6\1\1\0\26\1\2\0\1\1\6\0\10\1\10\0\13\1\5"+
"\0\3\1\33\0\6\1\1\0\1\1\17\0\2\1\7\0\2\1\12\0\3\1\2\0\2\1\1\0\16\1\15\0\11"+
@@ -172,19 +170,18 @@ public class _HtmlLexer implements FlexLexer {
private static final int [] ZZ_ACTION = zzUnpackAction();
private static final String ZZ_ACTION_PACKED_0 =
"\1\1\11\0\1\2\5\0\1\1\1\3\1\1\1\3"+
"\3\1\1\4\1\5\4\4\1\6\1\4\3\7\1\10"+
"\1\7\1\11\1\12\1\13\1\14\2\12\1\15\1\16"+
"\1\12\1\17\1\5\1\20\1\21\1\5\1\22\1\23"+
"\1\21\1\24\1\25\2\24\1\2\1\26\2\4\1\12"+
"\3\27\1\30\1\7\3\30\1\31\1\32\2\0\1\33"+
"\1\34\14\0\1\34\1\35\1\21\1\0\1\36\1\17"+
"\1\37\1\40\2\0\1\41\1\0\1\42\11\0\1\43"+
"\1\44\1\45\1\0\1\46\1\47\3\0\1\17\3\0"+
"\1\50\2\0\1\51";
"\1\1\11\0\1\2\3\0\1\1\2\3\4\1\1\4"+
"\1\5\4\4\1\6\1\4\3\7\1\10\1\7\1\11"+
"\1\12\1\13\1\14\2\12\1\15\1\16\1\12\1\17"+
"\1\5\1\20\1\21\1\5\1\22\1\23\1\21\1\24"+
"\1\25\2\24\1\2\1\26\1\4\3\27\1\30\1\7"+
"\3\30\1\31\1\32\1\0\1\33\1\34\14\0\1\34"+
"\1\35\1\21\1\0\1\36\2\0\1\37\1\40\11\0"+
"\1\41\1\42\1\43\1\0\1\44\3\0\1\17\3\0"+
"\1\45\2\0\1\46";
private static int [] zzUnpackAction() {
int [] result = new int[127];
int [] result = new int[117];
int offset = 0;
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
return result;
@@ -211,23 +208,22 @@ public class _HtmlLexer implements FlexLexer {
private static final String ZZ_ROWMAP_PACKED_0 =
"\0\0\0\63\0\146\0\231\0\314\0\377\0\u0132\0\u0165"+
"\0\u0198\0\u01cb\0\u01fe\0\u0231\0\u0264\0\u0297\0\u02ca\0\u02fd"+
"\0\u0330\0\u0363\0\u0396\0\u03c9\0\u03fc\0\u042f\0\u0462\0\u0396"+
"\0\u0495\0\u04c8\0\u04fb\0\u052e\0\u0561\0\u0396\0\u042f\0\u0396"+
"\0\u0594\0\u05c7\0\u0396\0\u042f\0\u0396\0\u0396\0\u05fa\0\u0396"+
"\0\u042f\0\u062d\0\u0660\0\u0396\0\u0693\0\u06c6\0\u06f9\0\u0396"+
"\0\u072c\0\u075f\0\u0396\0\u0396\0\u0792\0\u0396\0\u0396\0\u042f"+
"\0\u07c5\0\u07f8\0\u0396\0\u082b\0\u085e\0\u0891\0\u0396\0\u042f"+
"\0\u0693\0\u0396\0\u08c4\0\u0594\0\u042f\0\u08f7\0\u0396\0\u092a"+
"\0\u095d\0\u0990\0\u0396\0\u09c3\0\u09f6\0\u0a29\0\u0a5c\0\u0a8f"+
"\0\u0ac2\0\u0af5\0\u04c8\0\u04fb\0\u0b28\0\u0b5b\0\u0b8e\0\u0bc1"+
"\0\u0396\0\u0396\0\u0bf4\0\u0c27\0\u0c5a\0\u0c8d\0\u0396\0\u0cc0"+
"\0\u0cf3\0\u0d26\0\u0d59\0\u0d8c\0\u0396\0\u0dbf\0\u0df2\0\u0e25"+
"\0\u0e58\0\u0e8b\0\u0ebe\0\u0ef1\0\u0f24\0\u0f57\0\u0396\0\u0396"+
"\0\u0396\0\u0f8a\0\u0fbd\0\u0396\0\u0ff0\0\u1023\0\u1056\0\u0396"+
"\0\u1089\0\u10bc\0\u10ef\0\u0396\0\u1122\0\u1155\0\u0396";
"\0\u0330\0\u0363\0\u0396\0\u03c9\0\u03fc\0\u03fc\0\u042f\0\u0462"+
"\0\u0495\0\u04c8\0\u04fb\0\u03fc\0\u0396\0\u03fc\0\u052e\0\u0561"+
"\0\u03fc\0\u0396\0\u03fc\0\u03fc\0\u0594\0\u03fc\0\u0396\0\u05c7"+
"\0\u05fa\0\u03fc\0\u062d\0\u0660\0\u0693\0\u03fc\0\u06c6\0\u06f9"+
"\0\u03fc\0\u03fc\0\u072c\0\u03fc\0\u03fc\0\u0396\0\u075f\0\u0792"+
"\0\u03fc\0\u07c5\0\u03fc\0\u0396\0\u062d\0\u03fc\0\u07f8\0\u052e"+
"\0\u0396\0\u082b\0\u03fc\0\u085e\0\u0891\0\u03fc\0\u08c4\0\u08f7"+
"\0\u092a\0\u095d\0\u0990\0\u09c3\0\u09f6\0\u0462\0\u0495\0\u0a29"+
"\0\u0a5c\0\u0a8f\0\u0ac2\0\u03fc\0\u03fc\0\u0af5\0\u0b28\0\u03fc"+
"\0\u0b5b\0\u0b8e\0\u0bc1\0\u03fc\0\u0bf4\0\u0c27\0\u0c5a\0\u0c8d"+
"\0\u0cc0\0\u0cf3\0\u0d26\0\u0d59\0\u0d8c\0\u03fc\0\u03fc\0\u03fc"+
"\0\u0dbf\0\u03fc\0\u0df2\0\u0e25\0\u0e58\0\u03fc\0\u0e8b\0\u0ebe"+
"\0\u0ef1\0\u03fc\0\u0f24\0\u0f57\0\u03fc";
private static int [] zzUnpackRowMap() {
int [] result = new int[127];
int [] result = new int[117];
int offset = 0;
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
return result;
@@ -250,89 +246,83 @@ public class _HtmlLexer implements FlexLexer {
private static final int [] ZZ_TRANS = zzUnpackTrans();
private static final String ZZ_TRANS_PACKED_0 =
"\3\21\1\22\3\21\1\23\1\21\1\24\2\21\1\25"+
"\27\21\1\26\4\21\1\27\1\23\10\21\3\30\1\31"+
"\5\30\1\31\1\32\1\33\11\30\2\34\1\30\1\35"+
"\11\30\1\36\1\30\1\37\16\30\6\40\1\41\5\40"+
"\1\42\25\40\1\43\1\40\1\44\2\40\1\45\13\40"+
"\1\46\1\47\1\46\1\31\1\47\4\46\1\31\2\46"+
"\1\50\1\46\24\47\2\46\1\51\7\46\7\47\1\46"+
"\1\47\1\46\1\31\1\47\4\46\1\31\2\46\1\52"+
"\1\46\24\47\2\46\1\51\7\46\7\47\3\46\1\53"+
"\5\46\1\53\30\46\1\54\1\46\1\51\1\46\1\55"+
"\14\46\3\56\1\57\4\56\1\60\1\31\3\46\25\56"+
"\1\54\3\56\1\55\14\56\3\61\1\62\5\61\1\31"+
"\1\63\1\64\26\61\1\54\3\61\1\65\14\61\12\66"+
"\1\67\31\66\1\70\4\66\1\71\24\66\1\67\30\66"+
"\1\70\4\66\1\71\11\66\42\72\1\73\2\72\1\74"+
"\15\72\7\30\1\75\4\30\1\50\27\30\1\37\16\30"+
"\3\46\1\31\3\46\1\76\1\46\1\31\2\46\1\52"+
"\25\46\1\54\1\46\1\51\16\46\3\77\1\31\5\77"+
"\1\31\2\77\1\50\25\77\1\54\1\77\1\100\1\77"+
"\1\101\14\77\1\102\1\103\4\102\1\104\7\102\24\103"+
"\2\102\1\105\3\102\1\106\3\102\7\103\1\102\1\103"+
"\4\102\1\104\7\102\24\103\2\102\1\105\3\102\1\107"+
"\3\102\7\103\7\21\1\0\1\21\1\0\2\21\1\0"+
"\27\21\1\0\4\21\1\27\1\0\13\21\1\22\3\21"+
"\1\0\1\21\1\24\2\21\1\0\27\21\1\0\4\21"+
"\1\27\1\0\10\21\66\0\1\24\5\0\1\24\52\0"+
"\1\110\2\0\1\110\2\0\1\111\5\0\1\112\24\110"+
"\3\0\1\113\1\114\5\0\7\110\1\0\1\115\2\0"+
"\1\115\2\0\1\116\6\0\16\115\1\117\5\115\12\0"+
"\1\117\1\120\1\115\1\121\1\122\2\115\11\21\1\0"+
"\2\21\1\0\27\21\1\0\4\21\1\27\11\21\3\0"+
"\1\31\5\0\1\31\51\0\12\123\1\66\50\123\13\124"+
"\1\66\47\124\35\0\2\125\46\0\2\126\45\0\1\127"+
"\71\0\1\130\46\0\2\47\1\0\3\47\7\0\24\47"+
"\12\0\7\47\46\0\1\131\17\0\1\53\5\0\1\53"+
"\113\0\1\132\20\0\10\56\5\0\25\56\1\0\3\56"+
"\1\0\17\56\1\57\4\56\1\0\1\31\3\0\25\56"+
"\1\0\3\56\1\0\14\56\11\61\1\0\30\61\1\0"+
"\3\61\1\133\17\61\1\62\5\61\1\31\30\61\1\0"+
"\3\61\1\133\25\61\1\0\30\61\1\132\3\61\1\133"+
"\14\61\52\0\1\66\10\0\42\72\1\0\2\72\1\134"+
"\57\72\1\73\20\72\1\0\1\135\2\0\1\135\11\0"+
"\24\135\12\0\7\135\1\0\1\136\2\0\1\136\11\0"+
"\24\136\12\0\7\136\1\0\3\103\1\0\1\103\3\0"+
"\1\103\3\0\25\103\1\0\2\103\7\0\7\103\42\0"+
"\1\137\21\0\2\110\1\0\3\110\7\0\24\110\12\0"+
"\7\110\1\0\1\140\2\0\1\140\11\0\24\140\12\0"+
"\7\140\6\0\1\141\7\0\1\142\45\0\1\143\2\0"+
"\1\143\2\0\1\144\6\0\24\143\12\0\7\143\1\0"+
"\2\115\1\0\3\115\7\0\24\115\11\0\1\145\7\115"+
"\2\0\1\146\56\0\1\147\2\0\2\115\1\0\3\115"+
"\7\0\5\115\1\150\16\115\11\0\1\145\7\115\1\0"+
"\2\115\1\0\3\115\7\0\10\115\1\151\3\115\1\152"+
"\7\115\11\0\1\145\7\115\1\0\2\115\1\0\3\115"+
"\7\0\20\115\1\153\3\115\11\0\1\145\7\115\1\0"+
"\2\115\1\0\3\115\7\0\22\115\1\154\1\115\11\0"+
"\1\145\7\115\37\0\2\155\53\0\2\156\72\0\1\157"+
"\67\0\1\160\13\0\42\61\1\0\3\61\1\133\14\61"+
"\42\72\1\0\20\72\1\0\2\135\1\0\3\135\7\0"+
"\24\135\12\0\7\135\1\0\2\136\1\0\3\136\7\0"+
"\24\136\12\0\7\136\1\0\2\140\1\0\3\140\7\0"+
"\24\140\12\0\7\140\6\0\1\161\73\0\2\162\43\0"+
"\2\143\1\0\3\143\7\0\24\143\12\0\7\143\1\0"+
"\1\163\2\0\1\163\11\0\24\163\12\0\7\163\2\0"+
"\1\146\50\0\1\164\11\0\1\165\13\0\1\165\2\0"+
"\1\165\5\0\1\165\7\0\2\165\14\0\1\165\4\0"+
"\1\165\1\0\2\115\1\0\3\115\7\0\24\115\11\0"+
"\1\164\7\115\1\0\2\115\1\0\3\115\7\0\2\115"+
"\1\166\21\115\11\0\1\145\7\115\1\0\2\115\1\0"+
"\3\115\7\0\10\115\1\150\13\115\11\0\1\145\7\115"+
"\1\0\2\115\1\0\3\115\7\0\2\115\1\117\21\115"+
"\11\0\1\145\7\115\1\0\2\115\1\0\3\115\7\0"+
"\24\115\11\0\1\145\2\115\1\152\4\115\33\0\2\167"+
"\61\0\2\170\47\0\1\171\42\0\2\163\1\0\3\163"+
"\7\0\24\163\12\0\7\163\2\0\1\165\13\0\1\165"+
"\2\0\1\165\5\0\1\165\7\0\2\165\12\0\1\164"+
"\1\0\1\165\4\0\1\165\1\0\2\115\1\0\3\115"+
"\7\0\24\115\11\0\1\145\2\115\1\150\4\115\41\0"+
"\1\172\43\0\2\173\60\0\1\174\65\0\1\175\63\0"+
"\2\176\63\0\1\177\33\0";
"\3\17\1\20\4\17\1\21\2\17\1\22\27\17\1\23"+
"\4\17\1\24\1\25\6\17\1\25\2\17\3\26\1\27"+
"\4\26\1\27\1\30\1\31\11\26\2\32\1\26\1\33"+
"\11\26\1\34\1\26\1\35\17\26\6\36\1\37\4\36"+
"\1\40\25\36\1\41\1\36\1\42\2\36\1\43\14\36"+
"\1\44\1\45\1\44\1\27\1\45\3\44\1\27\2\44"+
"\1\46\1\44\24\45\2\44\1\47\7\44\5\45\1\44"+
"\2\45\1\44\1\45\1\44\1\27\1\45\3\44\1\27"+
"\2\44\1\50\1\44\24\45\2\44\1\47\7\44\5\45"+
"\1\44\2\45\3\44\1\51\4\44\1\51\30\44\1\52"+
"\1\44\1\47\1\44\1\53\15\44\3\54\1\55\3\54"+
"\1\56\1\27\3\44\25\54\1\52\3\54\1\53\15\54"+
"\3\57\1\60\4\57\1\27\1\61\1\62\26\57\1\52"+
"\3\57\1\63\15\57\11\64\1\65\31\64\1\66\4\64"+
"\1\67\24\64\1\65\30\64\1\66\4\64\1\67\12\64"+
"\41\70\1\71\2\70\1\72\16\70\3\73\1\27\4\73"+
"\1\27\2\73\1\46\25\73\1\52\1\73\1\74\1\73"+
"\1\75\15\73\1\76\1\77\4\76\1\100\6\76\24\77"+
"\2\76\1\101\3\76\1\102\3\76\5\77\1\76\2\77"+
"\1\76\1\77\4\76\1\100\6\76\24\77\2\76\1\101"+
"\3\76\1\103\3\76\5\77\1\76\2\77\10\17\1\0"+
"\2\17\1\0\27\17\1\0\4\17\1\24\1\0\6\17"+
"\1\0\5\17\1\20\4\17\1\21\2\17\1\0\27\17"+
"\1\0\4\17\1\24\1\0\6\17\1\0\2\17\3\0"+
"\1\21\4\0\1\21\53\0\1\104\2\0\1\104\7\0"+
"\1\105\24\104\3\0\1\106\1\107\5\0\5\104\1\0"+
"\2\104\1\0\1\110\2\0\1\110\10\0\16\110\1\111"+
"\5\110\12\0\1\111\1\112\1\110\1\113\1\114\1\115"+
"\2\110\10\17\1\0\2\17\1\0\27\17\1\0\4\17"+
"\1\24\12\17\66\0\1\27\4\0\1\27\52\0\11\116"+
"\1\64\51\116\12\117\1\64\50\117\34\0\2\120\46\0"+
"\2\121\46\0\1\122\70\0\1\123\47\0\2\45\1\0"+
"\3\45\6\0\24\45\12\0\5\45\1\0\2\45\45\0"+
"\1\124\20\0\1\51\4\0\1\51\113\0\1\125\21\0"+
"\7\54\5\0\25\54\1\0\3\54\1\0\20\54\1\55"+
"\3\54\1\0\1\27\3\0\25\54\1\0\3\54\1\0"+
"\15\54\10\57\1\0\30\57\1\0\3\57\1\126\20\57"+
"\1\60\4\57\1\27\30\57\1\0\3\57\1\126\25\57"+
"\1\0\30\57\1\125\3\57\1\126\15\57\51\0\1\64"+
"\11\0\41\70\1\0\2\70\1\127\57\70\1\71\21\70"+
"\1\0\3\77\1\0\1\77\2\0\1\77\3\0\25\77"+
"\1\0\2\77\7\0\5\77\1\0\2\77\41\0\1\130"+
"\22\0\2\104\1\0\3\104\6\0\24\104\12\0\5\104"+
"\1\0\2\104\6\0\1\131\6\0\1\132\46\0\1\133"+
"\2\0\1\133\10\0\24\133\12\0\5\133\1\0\2\133"+
"\1\0\2\110\1\0\3\110\6\0\24\110\11\0\1\134"+
"\5\110\1\0\2\110\1\0\2\110\1\0\3\110\6\0"+
"\5\110\1\135\16\110\11\0\1\134\5\110\1\0\2\110"+
"\1\0\2\110\1\0\3\110\6\0\10\110\1\136\3\110"+
"\1\137\7\110\11\0\1\134\5\110\1\0\2\110\1\0"+
"\2\110\1\0\3\110\6\0\20\110\1\140\3\110\11\0"+
"\1\134\5\110\1\0\2\110\1\0\2\110\1\0\3\110"+
"\6\0\22\110\1\141\1\110\11\0\1\134\5\110\1\0"+
"\2\110\2\0\1\142\56\0\1\143\37\0\2\144\53\0"+
"\2\145\72\0\1\146\67\0\1\147\14\0\41\57\1\0"+
"\3\57\1\126\15\57\41\70\1\0\21\70\6\0\1\150"+
"\72\0\2\151\44\0\2\133\1\0\3\133\6\0\24\133"+
"\12\0\5\133\1\0\2\133\1\0\2\110\1\0\3\110"+
"\6\0\24\110\11\0\1\152\5\110\1\0\2\110\1\0"+
"\2\110\1\0\3\110\6\0\2\110\1\153\21\110\11\0"+
"\1\134\5\110\1\0\2\110\1\0\2\110\1\0\3\110"+
"\6\0\10\110\1\135\13\110\11\0\1\134\5\110\1\0"+
"\2\110\1\0\2\110\1\0\3\110\6\0\2\110\1\111"+
"\21\110\11\0\1\134\5\110\1\0\2\110\1\0\2\110"+
"\1\0\3\110\6\0\24\110\11\0\1\134\2\110\1\137"+
"\2\110\1\0\2\110\2\0\1\142\47\0\1\152\12\0"+
"\1\154\12\0\1\154\2\0\1\154\5\0\1\154\7\0"+
"\2\154\14\0\1\154\5\0\1\154\32\0\2\155\61\0"+
"\2\156\47\0\1\157\43\0\2\110\1\0\3\110\6\0"+
"\24\110\11\0\1\134\2\110\1\135\2\110\1\0\2\110"+
"\2\0\1\154\12\0\1\154\2\0\1\154\5\0\1\154"+
"\7\0\2\154\12\0\1\152\1\0\1\154\5\0\1\154"+
"\40\0\1\160\43\0\2\161\60\0\1\162\65\0\1\163"+
"\63\0\2\164\63\0\1\165\34\0";
private static int [] zzUnpackTrans() {
int [] result = new int[4488];
int [] result = new int[3978];
int offset = 0;
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
return result;
@@ -370,17 +360,16 @@ public class _HtmlLexer implements FlexLexer {
private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
private static final String ZZ_ATTRIBUTE_PACKED_0 =
"\1\1\11\0\1\1\5\0\2\1\1\11\4\1\1\11"+
"\5\1\1\11\1\1\1\11\2\1\1\11\1\1\2\11"+
"\1\1\1\11\3\1\1\11\3\1\1\11\2\1\2\11"+
"\1\1\2\11\3\1\1\11\3\1\1\11\2\1\1\11"+
"\4\1\1\11\1\1\2\0\1\11\1\1\14\0\2\11"+
"\1\1\1\0\2\1\1\11\1\1\2\0\1\1\1\0"+
"\1\11\11\0\3\11\1\0\1\1\1\11\3\0\1\11"+
"\3\0\1\11\2\0\1\11";
"\1\1\11\0\1\1\3\0\6\1\2\11\5\1\1\11"+
"\1\1\1\11\2\1\1\11\1\1\2\11\1\1\1\11"+
"\3\1\1\11\3\1\1\11\2\1\2\11\1\1\2\11"+
"\3\1\1\11\1\1\1\11\2\1\1\11\4\1\1\11"+
"\1\1\1\0\1\11\1\1\14\0\2\11\1\1\1\0"+
"\1\11\2\0\1\1\1\11\11\0\3\11\1\0\1\11"+
"\3\0\1\11\3\0\1\11\2\0\1\11";
private static int [] zzUnpackAttribute() {
int [] result = new int[127];
int [] result = new int[117];
int offset = 0;
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
return result;
@@ -688,31 +677,31 @@ public class _HtmlLexer implements FlexLexer {
case 1:
{ return XmlTokenType.XML_DATA_CHARACTERS;
}
case 42: break;
case 39: break;
case 2:
{ return XmlTokenType.XML_PI_TARGET;
}
case 43: break;
case 40: break;
case 3:
{ return XmlTokenType.XML_REAL_WHITE_SPACE;
}
case 44: break;
case 41: break;
case 4:
{ return XmlTokenType.XML_BAD_CHARACTER;
}
case 45: break;
case 42: break;
case 5:
{ return XmlTokenType.XML_WHITE_SPACE;
}
case 46: break;
case 43: break;
case 6:
{ yybegin(YYINITIAL); return XmlTokenType.XML_DOCTYPE_END;
}
case 47: break;
case 44: break;
case 7:
{ return XmlTokenType.XML_COMMENT_CHARACTERS;
}
case 48: break;
case 45: break;
case 8:
{ // according to HTML spec (http://www.w3.org/html/wg/drafts/html/master/syntax.html#comments)
// comments should start with <!-- and end with --> thus making <!--> absolutely valid comment
@@ -725,139 +714,127 @@ public class _HtmlLexer implements FlexLexer {
}
return XmlTokenType.XML_COMMENT_CHARACTERS;
}
case 49: break;
case 46: break;
case 9:
{ yybegin(C_COMMENT_START); return XmlTokenType.XML_CONDITIONAL_COMMENT_START;
}
case 50: break;
case 47: break;
case 10:
{ yybegin(YYINITIAL); yypushback(1); break;
}
case 51: break;
case 48: break;
case 11:
{ yybegin(BEFORE_TAG_ATTRIBUTES); return XmlTokenType.XML_NAME;
}
case 52: break;
case 49: break;
case 12:
{ return XmlTokenType.XML_START_TAG_START;
}
case 53: break;
case 50: break;
case 13:
{ yybegin(TAG_ATTRIBUTES); return XmlTokenType.XML_WHITE_SPACE;
}
case 54: break;
case 51: break;
case 14:
{ yybegin(YYINITIAL); return XmlTokenType.XML_TAG_END;
}
case 55: break;
case 52: break;
case 15:
{ return XmlTokenType.XML_NAME;
}
case 56: break;
case 53: break;
case 16:
{ yybegin(ATTRIBUTE_VALUE_START); return XmlTokenType.XML_EQ;
}
case 57: break;
case 54: break;
case 17:
{ yybegin(TAG_ATTRIBUTES); return XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN;
}
case 58: break;
case 55: break;
case 18:
{ yybegin(ATTRIBUTE_VALUE_DQ); return XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER;
}
case 59: break;
case 56: break;
case 19:
{ yybegin(ATTRIBUTE_VALUE_SQ); return XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER;
}
case 60: break;
case 57: break;
case 20:
{ return XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN;
}
case 61: break;
case 58: break;
case 21:
{ yybegin(TAG_ATTRIBUTES); return XmlTokenType.XML_ATTRIBUTE_VALUE_END_DELIMITER;
}
case 62: break;
case 59: break;
case 22:
{ yybegin(YYINITIAL); return XmlTokenType.XML_PI_END;
}
case 63: break;
case 60: break;
case 23:
{ return XmlTokenType.XML_TAG_CHARACTERS;
}
case 64: break;
case 61: break;
case 24:
{ yybegin(COMMENT); return XmlTokenType.XML_COMMENT_CHARACTERS;
}
case 65: break;
case 62: break;
case 25:
{ yybegin(COMMENT); return XmlTokenType.XML_CONDITIONAL_COMMENT_END;
}
case 66: break;
case 63: break;
case 26:
{ yybegin(START_TAG_NAME); yypushback(yylength());
}
case 67: break;
case 64: break;
case 27:
{ yybegin(PROCESSING_INSTRUCTION); return XmlTokenType.XML_PI_START;
}
case 68: break;
case 65: break;
case 28:
{ return XmlTokenType.XML_END_TAG_START;
}
case 69: break;
case 66: break;
case 29:
{ yybegin(YYINITIAL); return XmlTokenType.XML_EMPTY_ELEMENT_END;
}
case 70: break;
case 67: break;
case 30:
{ yybegin(TAG_CHARACTERS); return XmlTokenType.XML_NAME;
}
case 71: break;
case 31:
{ yybegin(COMMENT); return XmlTokenType.XML_CONDITIONAL_COMMENT_START_END;
}
case 72: break;
case 32:
{ yybegin(START_TAG_NAME2); yypushback(yylength());
}
case 73: break;
case 33:
case 68: break;
case 31:
{ yybegin(END_TAG_NAME); yypushback(yylength());
}
case 74: break;
case 34:
case 69: break;
case 32:
{ return XmlTokenType.XML_ENTITY_REF_TOKEN;
}
case 75: break;
case 35:
case 70: break;
case 33:
{ yybegin(YYINITIAL); return XmlTokenType.XML_COMMENT_END;
}
case 76: break;
case 36:
case 71: break;
case 34:
{ yybegin(C_COMMENT_END); return XmlTokenType.XML_CONDITIONAL_COMMENT_END_START;
}
case 77: break;
case 37:
case 72: break;
case 35:
{ yybegin(COMMENT); return XmlTokenType.XML_COMMENT_START;
}
case 78: break;
case 38:
{ yybegin(END_TAG_NAME2); yypushback(yylength());
}
case 79: break;
case 39:
case 73: break;
case 36:
{ return XmlTokenType.XML_CHAR_ENTITY_REF;
}
case 80: break;
case 40:
case 74: break;
case 37:
{ return XmlTokenType.XML_DOCTYPE_PUBLIC;
}
case 81: break;
case 41:
case 75: break;
case 38:
{ yybegin(DOC_TYPE); return XmlTokenType.XML_DOCTYPE_START;
}
case 82: break;
case 76: break;
default:
zzScanError(ZZ_NO_MATCH);
}
@@ -247,8 +247,7 @@ public class HtmlHighlightingLexer extends BaseHtmlLexer {
@Override
protected boolean isHtmlTagState(int state) {
return state == _HtmlLexer.START_TAG_NAME || state == _HtmlLexer.END_TAG_NAME ||
state == _HtmlLexer.START_TAG_NAME2 || state == _HtmlLexer.END_TAG_NAME2;
return state == _HtmlLexer.START_TAG_NAME || state == _HtmlLexer.END_TAG_NAME;
}
public void setHasNoEmbeddments(boolean hasNoEmbeddments) {
@@ -32,8 +32,6 @@ import com.intellij.psi.xml.*;
%state ATTRIBUTE_VALUE_DQ
%state ATTRIBUTE_VALUE_SQ
%state PROCESSING_INSTRUCTION
%state START_TAG_NAME2
%state END_TAG_NAME2
%state TAG_CHARACTERS
%state C_COMMENT_START
%state C_COMMENT_END
@@ -44,7 +42,6 @@ DIGIT=[0-9]
WHITE_SPACE_CHARS=[ \n\r\t\f\u2028\u2029\u0085]+
TAG_NAME=({ALPHA}|"_"|":")({ALPHA}|{DIGIT}|"_"|":"|"."|"-")*
TAG_NAME_FWT=("#")({ALPHA}|"_"|":")({ALPHA}|{DIGIT}|"_"|":"|"."|"-")*
/* see http://www.w3.org/TR/html5/syntax.html#syntax-attribute-name */
ATTRIBUTE_NAME=([^ \n\r\t\f\"\'<>/=])+
@@ -67,14 +64,12 @@ CONDITIONAL_COMMENT_CONDITION=({ALPHA})({ALPHA}|{WHITE_SPACE_CHARS}|{DIGIT}|"."|
<DOC_TYPE> {DTD_REF} { return XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN;}
<DOC_TYPE> ">" { yybegin(YYINITIAL); return XmlTokenType.XML_DOCTYPE_END; }
<YYINITIAL> {WHITE_SPACE_CHARS} { return XmlTokenType.XML_REAL_WHITE_SPACE; }
<DOC_TYPE,TAG_ATTRIBUTES,ATTRIBUTE_VALUE_START,PROCESSING_INSTRUCTION, START_TAG_NAME, END_TAG_NAME, END_TAG_NAME2, TAG_CHARACTERS> {WHITE_SPACE_CHARS} { return XmlTokenType.XML_WHITE_SPACE; }
<DOC_TYPE,TAG_ATTRIBUTES,ATTRIBUTE_VALUE_START,PROCESSING_INSTRUCTION, START_TAG_NAME, END_TAG_NAME, TAG_CHARACTERS> {WHITE_SPACE_CHARS} { return XmlTokenType.XML_WHITE_SPACE; }
<YYINITIAL> "<" {TAG_NAME} { yybegin(START_TAG_NAME); yypushback(yylength()); }
<YYINITIAL> "<" {TAG_NAME_FWT} { yybegin(START_TAG_NAME2); yypushback(yylength()); }
<START_TAG_NAME, START_TAG_NAME2, TAG_CHARACTERS> "<" { return XmlTokenType.XML_START_TAG_START; }
<START_TAG_NAME, TAG_CHARACTERS> "<" { return XmlTokenType.XML_START_TAG_START; }
<YYINITIAL> "</" {TAG_NAME} { yybegin(END_TAG_NAME); yypushback(yylength()); }
<YYINITIAL> "</" {TAG_NAME_FWT} { yybegin(END_TAG_NAME2); yypushback(yylength()); }
<YYINITIAL, END_TAG_NAME, END_TAG_NAME2> "</" { return XmlTokenType.XML_END_TAG_START; }
<YYINITIAL, END_TAG_NAME> "</" { return XmlTokenType.XML_END_TAG_START; }
<YYINITIAL> "<!--" { yybegin(COMMENT); return XmlTokenType.XML_COMMENT_START; }
<COMMENT> "[" { yybegin(C_COMMENT_START); return XmlTokenType.XML_CONDITIONAL_COMMENT_START; }
@@ -106,15 +101,13 @@ CONDITIONAL_COMMENT_CONDITION=({ALPHA})({ALPHA}|{WHITE_SPACE_CHARS}|{DIGIT}|"."|
}
<START_TAG_NAME, END_TAG_NAME> {TAG_NAME} { yybegin(BEFORE_TAG_ATTRIBUTES); return XmlTokenType.XML_NAME; }
<END_TAG_NAME2> {TAG_NAME_FWT} { return XmlTokenType.XML_NAME; }
<START_TAG_NAME2> {TAG_NAME_FWT} { yybegin(TAG_CHARACTERS); return XmlTokenType.XML_NAME; }
<BEFORE_TAG_ATTRIBUTES, TAG_ATTRIBUTES, END_TAG_NAME2, TAG_CHARACTERS> ">" { yybegin(YYINITIAL); return XmlTokenType.XML_TAG_END; }
<BEFORE_TAG_ATTRIBUTES, TAG_ATTRIBUTES, TAG_CHARACTERS> ">" { yybegin(YYINITIAL); return XmlTokenType.XML_TAG_END; }
<BEFORE_TAG_ATTRIBUTES, TAG_ATTRIBUTES, TAG_CHARACTERS> "/>" { yybegin(YYINITIAL); return XmlTokenType.XML_EMPTY_ELEMENT_END; }
<BEFORE_TAG_ATTRIBUTES> {WHITE_SPACE_CHARS} { yybegin(TAG_ATTRIBUTES); return XmlTokenType.XML_WHITE_SPACE;}
<TAG_ATTRIBUTES> {ATTRIBUTE_NAME} { return XmlTokenType.XML_NAME; }
<TAG_ATTRIBUTES> "=" { yybegin(ATTRIBUTE_VALUE_START); return XmlTokenType.XML_EQ; }
<BEFORE_TAG_ATTRIBUTES, TAG_ATTRIBUTES, START_TAG_NAME, END_TAG_NAME, END_TAG_NAME2> [^] { yybegin(YYINITIAL); yypushback(1); break; }
<BEFORE_TAG_ATTRIBUTES, TAG_ATTRIBUTES, START_TAG_NAME, END_TAG_NAME> [^] { yybegin(YYINITIAL); yypushback(1); break; }
<TAG_CHARACTERS> [^] { return XmlTokenType.XML_TAG_CHARACTERS; }