diff --git a/source/com/intellij/lexer/HtmlHighlightingLexer.java b/source/com/intellij/lexer/HtmlHighlightingLexer.java
index adca4a387d5a..b37052f65316 100644
--- a/source/com/intellij/lexer/HtmlHighlightingLexer.java
+++ b/source/com/intellij/lexer/HtmlHighlightingLexer.java
@@ -38,6 +38,7 @@ public class HtmlHighlightingLexer extends BaseHtmlLexer {
tokenType==XmlTokenType.XML_COMMENT_CHARACTERS && hasSeenTag()
) {
setEmbeddedLexer();
+ embeddedLexer.start(getBuffer(),HtmlHighlightingLexer.super.getTokenStart(),skipToTheEndOfTheEmbeddment());
}
}
}
@@ -62,7 +63,7 @@ public class HtmlHighlightingLexer extends BaseHtmlLexer {
int state = initialState >> EMBEDDED_LEXER_STATE_SHIFT;
LOG.assertTrue(hasSeenStyle() || hasSeenScript());
setEmbeddedLexer();
- embeddedLexer.start(buffer,startOffset,endOffset,state);
+ embeddedLexer.start(buffer,startOffset,skipToTheEndOfTheEmbeddment(),state);
} else {
embeddedLexer = null;
}
@@ -91,7 +92,6 @@ public class HtmlHighlightingLexer extends BaseHtmlLexer {
if (newLexer!=null) {
embeddedLexer = newLexer;
- embeddedLexer.start(getBuffer(),HtmlHighlightingLexer.super.getTokenStart(),skipToTheEndOfTheEmbeddment());
}
}
diff --git a/source/com/intellij/lexer/_HtmlLexer.java b/source/com/intellij/lexer/_HtmlLexer.java
index 9719a296a40d..3a45bb4eccc7 100644
--- a/source/com/intellij/lexer/_HtmlLexer.java
+++ b/source/com/intellij/lexer/_HtmlLexer.java
@@ -100,6 +100,7 @@ public class _HtmlLexer implements Lexer, Cloneable {
}
private boolean yy_eof_done = false;
+ public static final short PROCESSING_INSTRUCTION = 9;
public static final short END_TAG_NAME = 4;
public static final short START_TAG_NAME = 3;
public static final short ATTRIBUTE_VALUE_SQ = 8;
@@ -109,17 +110,18 @@ public class _HtmlLexer implements Lexer, Cloneable {
public static final short TAG_ATTRIBUTES = 5;
public static final short COMMENT = 2;
public static final short ATTRIBUTE_VALUE_START = 6;
- public static final short LAST_STATE = 9;
+ public static final short LAST_STATE = 10;
private static final int yy_state_dtrans[] = {
0,
- 59,
- 12,
- 71,
- 72,
- 73,
- 22,
- 27,
- 31
+ 64,
+ 13,
+ 76,
+ 77,
+ 78,
+ 23,
+ 28,
+ 32,
+ 34
};
private static final int YY_E_INTERNAL = 0;
private static final int YY_E_MATCH = 1;
@@ -212,6 +214,9 @@ private static int [][] unpackFromString(int size1, int size2, String st)
YY_NO_ANCHOR,
YY_NO_ANCHOR,
YY_NO_ANCHOR,
+ YY_NO_ANCHOR,
+ YY_NO_ANCHOR,
+ YY_NO_ANCHOR,
YY_NOT_ACCEPT,
YY_NO_ANCHOR,
YY_NO_ANCHOR,
@@ -221,6 +226,7 @@ private static int [][] unpackFromString(int size1, int size2, String st)
YY_NO_ANCHOR,
YY_NO_ANCHOR,
YY_NO_ANCHOR,
+ YY_NO_ANCHOR,
YY_NOT_ACCEPT,
YY_NO_ANCHOR,
YY_NO_ANCHOR,
@@ -234,6 +240,7 @@ private static int [][] unpackFromString(int size1, int size2, String st)
YY_NOT_ACCEPT,
YY_NO_ANCHOR,
YY_NOT_ACCEPT,
+ YY_NO_ANCHOR,
YY_NOT_ACCEPT,
YY_NOT_ACCEPT,
YY_NOT_ACCEPT,
@@ -261,31 +268,31 @@ private static int [][] unpackFromString(int size1, int size2, String st)
1, 2, 3, 0, 0, 0, 0, 4,
0, 0, 0, 0, 0, 5, 6, 7,
6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 8, 0, 9, 10, 11, 0,
- 0, 12, 13, 14, 15, 16, 12, 12,
- 17, 18, 12, 12, 19, 20, 12, 21,
- 22, 12, 12, 12, 23, 24, 12, 12,
- 12, 25, 12, 0, 26, 0, 0, 8,
- 0, 12, 13, 14, 15, 16, 12, 12,
- 17, 18, 12, 12, 19, 20, 12, 21,
- 22, 12, 12, 12, 23, 24, 12, 12,
- 12, 25, 12, 0, 0, 0, 0, 0
+ 6, 6, 8, 0, 9, 10, 11, 12,
+ 0, 13, 14, 15, 16, 17, 13, 13,
+ 18, 19, 13, 13, 20, 21, 13, 22,
+ 23, 13, 13, 13, 24, 25, 13, 13,
+ 13, 26, 13, 0, 27, 0, 0, 8,
+ 0, 13, 14, 15, 16, 17, 13, 13,
+ 18, 19, 13, 13, 20, 21, 13, 22,
+ 23, 13, 13, 13, 24, 25, 13, 13,
+ 13, 26, 13, 0, 0, 0, 0, 0
};
private static final int yy_rmap[] = {
0, 1, 2, 3, 4, 4, 4, 4,
- 4, 4, 4, 4, 5, 4, 6, 4,
- 4, 7, 4, 4, 4, 4, 8, 4,
- 4, 4, 4, 9, 4, 4, 10, 11,
- 4, 12, 13, 14, 15, 16, 17, 10,
- 18, 4, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 14, 20, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47
+ 4, 4, 4, 4, 4, 5, 4, 6,
+ 4, 4, 7, 4, 4, 4, 4, 8,
+ 4, 4, 4, 4, 9, 4, 4, 10,
+ 11, 4, 12, 4, 13, 14, 15, 16,
+ 17, 18, 10, 19, 4, 19, 20, 21,
+ 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 15, 22, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 48, 49, 50
};
- private static final int yy_nxt[][] = unpackFromString(48,27,
-"33,1,33:7,2,33:17,-1,1,-1:25,33,-1,34,33:4,4,33:4,-1:14,33:2,-1,43,33:4,-1,33:4,-1:14,33,-1:27,36:5,52,36:21,-1:5,14:2,-1,14,-1:3,14:14,-1:6,17:2,-1,17,-1:3,17:14,-1,38,1,38,23,24,38:2,54,38:3,25,38:15,39:3,28,39:22,45,39:3,-1,39:23,42:4,32,42:21,46,33,-1,33:7,3,33:18,-1,33:3,47,33:9,49,33:11,60:3,9,60:23,36:5,68,36:21,-1:11,21,-1:15,38,-1,38,-1:2,38:2,-1,38:3,-1,38:15,42:4,-1,42:22,33,-1,33:3,51,33:9,-1,33:11,61:4,9,61:22,39:3,29,30,39:22,42:3,40,41,42:22,33,-1,33:3,5,33:21,-1:23,62,-1:24,53,-1:29,63,-1:2,33,-1,33:3,-1,33:21,36:5,69,36:21,-1:14,55,-1:23,26,-1:38,56,-1:28,57,-1:23,58,-1:20,6,-1:10,7,1,7,35,44,7:6,8,7:5,48,7:4,50,7:4,-1:20,64,-1:19,65,-1:32,10,-1:26,66,-1:25,67,-1:22,11,-1:12,36:5,70,36:32,13,36:26,-1,36:15,7:8,14,7:3,14:14,7:9,14,15,7:2,14:14,7,16,1,16:5,37,17,18,19,20,17:14,16");
+ private static final int yy_nxt[][] = unpackFromString(51,28,
+"36,1,36:7,2,36:18,-1,1,-1:26,36,-1,37,36:4,4,36:4,5,-1:14,36:2,-1,47,36:4,-1,36:4,-1:15,36,-1:28,39:5,56,39:22,-1:5,15:2,-1,15,-1:4,15:14,-1:6,18:2,-1,18,-1:4,18:14,-1,41,1,41,24,25,41:2,58,41:3,26,41:16,42:3,29,42:23,49,42:3,-1,42:24,45:4,33,45:22,50,46:12,60,46:15,36,-1,36:7,3,36:19,-1,36:3,51,36:10,53,36:11,65:3,10,65:24,39:5,73,39:22,-1:11,22,-1:16,41,-1,41,-1:2,41:2,-1,41:3,-1,41:16,45:4,-1,45:23,46:12,-1,46:15,36,-1,36:3,55,36:10,-1,36:11,66:4,10,66:23,42:3,30,31,42:23,45:3,43,44,45:23,36,-1,36:3,6,36:22,-1:24,67,-1:25,57,-1:30,68,-1:2,36,-1,36:3,-1,36:22,39:5,74,39:22,-1:15,59,-1:23,27,-1:40,61,-1:14,35,-1:42,62,-1:24,63,-1:21,7,-1:10,8,1,8,38,48,8:6,9,8:6,52,8:4,54,8:4,-1:21,69,-1:20,70,-1:33,11,-1:27,71,-1:26,72,-1:23,12,-1:12,39:5,75,39:33,14,39:27,-1,39:16,8:8,15,8:4,15:14,8:9,15,16,8:3,15:14,8,17,1,17:5,40,18,19,20,21,17,18:14,17");
public void _locateToken ()
{
char yy_lookahead;
@@ -367,103 +374,103 @@ private static int [][] unpackFromString(int size1, int size2, String st)
case -5:
break;
case 5:
- { myTokenType = XmlTokenType.XML_COMMENT_START; yy_lexical_state = COMMENT; return; }
+ { myTokenType = XmlTokenType.XML_PI_START; yy_lexical_state = PROCESSING_INSTRUCTION; return; }
case -6:
break;
case 6:
- { myTokenType = XmlTokenType.XML_DOCTYPE_START; yy_lexical_state = DOC_TYPE; return; }
+ { myTokenType = XmlTokenType.XML_COMMENT_START; yy_lexical_state = COMMENT; return; }
case -7:
break;
case 7:
- { myTokenType = XmlTokenType.XML_BAD_CHARACTER; return; }
+ { myTokenType = XmlTokenType.XML_DOCTYPE_START; yy_lexical_state = DOC_TYPE; return; }
case -8:
break;
case 8:
- { myTokenType = XmlTokenType.XML_DOCTYPE_END; yy_lexical_state = YYINITIAL; return; }
+ { myTokenType = XmlTokenType.XML_BAD_CHARACTER; return; }
case -9:
break;
case 9:
- { myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN; return;}
+ { myTokenType = XmlTokenType.XML_DOCTYPE_END; yy_lexical_state = YYINITIAL; return; }
case -10:
break;
case 10:
- { myTokenType = XmlTokenType.XML_NAME; return; }
+ { myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN; return;}
case -11:
break;
case 11:
- { myTokenType = XmlTokenType.XML_DOCTYPE_PUBLIC; return; }
+ { myTokenType = XmlTokenType.XML_NAME; return; }
case -12:
break;
case 12:
- { myTokenType = XmlTokenType.XML_COMMENT_CHARACTERS; return; }
+ { myTokenType = XmlTokenType.XML_DOCTYPE_PUBLIC; return; }
case -13:
break;
case 13:
- { myTokenType = XmlTokenType.XML_COMMENT_END; yy_lexical_state = YYINITIAL; return; }
+ { myTokenType = XmlTokenType.XML_COMMENT_CHARACTERS; return; }
case -14:
break;
case 14:
- { myTokenType = XmlTokenType.XML_NAME; yy_lexical_state = TAG_ATTRIBUTES; return; }
+ { myTokenType = XmlTokenType.XML_COMMENT_END; yy_lexical_state = YYINITIAL; return; }
case -15:
break;
case 15:
- { yy_lexical_state = YYINITIAL; --yy_buffer_index; break; }
+ { myTokenType = XmlTokenType.XML_NAME; yy_lexical_state = TAG_ATTRIBUTES; return; }
case -16:
break;
case 16:
- { myTokenType = XmlTokenType.XML_DATA_CHARACTERS; return; }
+ { yy_lexical_state = YYINITIAL; --yy_buffer_index; break; }
case -17:
break;
case 17:
- { myTokenType = XmlTokenType.XML_NAME; return; }
+ { myTokenType = XmlTokenType.XML_DATA_CHARACTERS; return; }
case -18:
break;
case 18:
- { yy_lexical_state = YYINITIAL; --yy_buffer_index; }
+ { myTokenType = XmlTokenType.XML_NAME; return; }
case -19:
break;
case 19:
- { myTokenType = XmlTokenType.XML_EQ; yy_lexical_state = ATTRIBUTE_VALUE_START; return; }
+ { yy_lexical_state = YYINITIAL; --yy_buffer_index; }
case -20:
break;
case 20:
- { myTokenType = XmlTokenType.XML_TAG_END; yy_lexical_state = YYINITIAL; return; }
+ { myTokenType = XmlTokenType.XML_EQ; yy_lexical_state = ATTRIBUTE_VALUE_START; return; }
case -21:
break;
case 21:
- { myTokenType = XmlTokenType.XML_EMPTY_ELEMENT_END; yy_lexical_state = YYINITIAL; return; }
+ { myTokenType = XmlTokenType.XML_TAG_END; yy_lexical_state = YYINITIAL; return; }
case -22:
break;
case 22:
- { myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN; yy_lexical_state = TAG_ATTRIBUTES; return; }
+ { myTokenType = XmlTokenType.XML_EMPTY_ELEMENT_END; yy_lexical_state = YYINITIAL; return; }
case -23:
break;
case 23:
- { myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER; yy_lexical_state = ATTRIBUTE_VALUE_DQ; return; }
+ { myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN; yy_lexical_state = TAG_ATTRIBUTES; return; }
case -24:
break;
case 24:
- { myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER; yy_lexical_state = ATTRIBUTE_VALUE_SQ; return; }
+ { myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER; yy_lexical_state = ATTRIBUTE_VALUE_DQ; return; }
case -25:
break;
case 25:
- { myTokenType = XmlTokenType.XML_TAG_END; yy_lexical_state = YYINITIAL; return; }
+ { myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER; yy_lexical_state = ATTRIBUTE_VALUE_SQ; return; }
case -26:
break;
case 26:
- { myTokenType = XmlTokenType.XML_EMPTY_ELEMENT_END; yy_lexical_state = YYINITIAL; return; }
+ { myTokenType = XmlTokenType.XML_TAG_END; yy_lexical_state = YYINITIAL; return; }
case -27:
break;
case 27:
- { myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN; return; }
+ { myTokenType = XmlTokenType.XML_EMPTY_ELEMENT_END; yy_lexical_state = YYINITIAL; return; }
case -28:
break;
case 28:
- { myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_END_DELIMITER; yy_lexical_state = TAG_ATTRIBUTES; return; }
+ { myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN; return; }
case -29:
break;
case 29:
- { myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN; return; }
+ { myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_END_DELIMITER; yy_lexical_state = TAG_ATTRIBUTES; return; }
case -30:
break;
case 30:
@@ -475,72 +482,92 @@ private static int [][] unpackFromString(int size1, int size2, String st)
case -32:
break;
case 32:
- { myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_END_DELIMITER; yy_lexical_state = TAG_ATTRIBUTES; return; }
+ { myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN; return; }
case -33:
break;
case 33:
- { myTokenType = XmlTokenType.XML_DATA_CHARACTERS; return; }
+ { myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_END_DELIMITER; yy_lexical_state = TAG_ATTRIBUTES; return; }
case -34:
break;
- case 35:
- { myTokenType = XmlTokenType.XML_BAD_CHARACTER; return; }
+ case 34:
+ { myTokenType = XmlTokenType.XML_PI_TARGET; return; }
case -35:
break;
- case 36:
- { myTokenType = XmlTokenType.XML_COMMENT_CHARACTERS; return; }
+ case 35:
+ { myTokenType = XmlTokenType.XML_PI_END; yy_lexical_state = YYINITIAL; return; }
case -36:
break;
- case 37:
+ case 36:
{ myTokenType = XmlTokenType.XML_DATA_CHARACTERS; return; }
case -37:
break;
case 38:
- { myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN; yy_lexical_state = TAG_ATTRIBUTES; return; }
+ { myTokenType = XmlTokenType.XML_BAD_CHARACTER; return; }
case -38:
break;
case 39:
- { myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN; return; }
+ { myTokenType = XmlTokenType.XML_COMMENT_CHARACTERS; return; }
case -39:
break;
case 40:
- { myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN; return; }
+ { myTokenType = XmlTokenType.XML_DATA_CHARACTERS; return; }
case -40:
break;
case 41:
- { myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN; return; }
+ { myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN; yy_lexical_state = TAG_ATTRIBUTES; return; }
case -41:
break;
case 42:
{ myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN; return; }
case -42:
break;
- case 44:
- { myTokenType = XmlTokenType.XML_BAD_CHARACTER; return; }
+ case 43:
+ { myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN; return; }
case -43:
break;
- case 45:
+ case 44:
{ myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN; return; }
case -44:
break;
- case 46:
+ case 45:
{ myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN; return; }
case -45:
break;
- case 48:
- { myTokenType = XmlTokenType.XML_BAD_CHARACTER; return; }
+ case 46:
+ { myTokenType = XmlTokenType.XML_PI_TARGET; return; }
case -46:
break;
- case 50:
+ case 48:
{ myTokenType = XmlTokenType.XML_BAD_CHARACTER; return; }
case -47:
break;
+ case 49:
+ { myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN; return; }
+ case -48:
+ break;
+ case 50:
+ { myTokenType = XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN; return; }
+ case -49:
+ break;
case 52:
{ myTokenType = XmlTokenType.XML_BAD_CHARACTER; return; }
- case -48:
+ case -50:
break;
case 54:
{ myTokenType = XmlTokenType.XML_BAD_CHARACTER; return; }
- case -49:
+ case -51:
+ break;
+ case 56:
+ { myTokenType = XmlTokenType.XML_BAD_CHARACTER; return; }
+ case -52:
+ break;
+ case 58:
+ { myTokenType = XmlTokenType.XML_BAD_CHARACTER; return; }
+ case -53:
+ break;
+ case 60:
+ { myTokenType = XmlTokenType.XML_BAD_CHARACTER; return; }
+ case -54:
break;
default:
yy_error(YY_E_INTERNAL,false);