diff --git a/RegExpSupport/src/org/intellij/lang/regexp/_RegExLexer.java b/RegExpSupport/src/org/intellij/lang/regexp/_RegExLexer.java index b789ad5a697e..89ccdee550b8 100644 --- a/RegExpSupport/src/org/intellij/lang/regexp/_RegExLexer.java +++ b/RegExpSupport/src/org/intellij/lang/regexp/_RegExLexer.java @@ -14,8 +14,6 @@ * limitations under the License. */ -/* The following code was generated by JFlex 1.4.1 on 23.09.09 18:11 */ - /* It's an automatically generated code. Do not modify it. */ package org.intellij.lang.regexp; @@ -30,8 +28,8 @@ import com.intellij.psi.StringEscapesTokenTypes; /** * This class is a scanner generated by * JFlex 1.4.1 - * on 23.09.09 18:11 from the specification file - * C:/JetBrains/IDEA/svnPlugins/RegExpSupport/src/org/intellij/lang/regexp/regexp-lexer.flex + * on 04.11.09 17:54 from the specification file + * RegExpSupport/src/org/intellij/lang/regexp/regexp-lexer.flex */ class _RegExLexer implements FlexLexer { /** initial size of the lookahead buffer */ @@ -51,12 +49,12 @@ class _RegExLexer implements FlexLexer { * Translates characters to character classes */ private static final String ZZ_CMAP_PACKED = - "\10\0\2\50\1\13\1\0\1\50\1\57\22\0\1\60\1\54\1\0"+ - "\1\56\1\15\1\0\1\47\1\0\1\4\1\5\1\17\1\20\1\46"+ - "\1\42\1\3\1\0\1\2\7\41\2\1\1\51\1\0\1\55\1\53"+ - "\1\52\1\16\1\0\1\24\1\24\1\30\1\27\1\36\1\34\1\25"+ + "\10\0\2\51\1\13\1\0\1\51\1\60\22\0\1\44\1\55\1\0"+ + "\1\57\1\15\1\0\1\50\1\0\1\4\1\5\1\17\1\20\1\47"+ + "\1\42\1\3\1\0\1\2\7\41\2\1\1\52\1\0\1\56\1\54"+ + "\1\53\1\16\1\0\1\24\1\24\1\30\1\27\1\36\1\34\1\25"+ "\1\43\1\32\6\43\1\33\1\35\1\43\1\26\3\43\1\26\1\26"+ - "\1\43\1\25\1\10\1\12\1\11\1\14\1\44\1\0\1\23\1\24"+ + "\1\43\1\25\1\10\1\12\1\11\1\14\1\45\1\0\1\23\1\24"+ "\1\31\1\27\1\23\1\23\2\43\1\32\4\43\1\22\1\43\1\33"+ "\1\43\1\22\1\26\1\22\1\40\1\43\1\26\1\37\1\43\1\25"+ "\1\6\1\21\1\7\54\0\1\43\12\0\1\43\4\0\1\43\5\0"+ @@ -65,43 +63,43 @@ class _RegExLexer implements FlexLexer { "\1\43\1\0\24\43\1\0\54\43\1\0\46\43\1\0\5\43\4\0"+ "\202\43\10\0\105\43\1\0\46\43\2\0\2\43\6\0\20\43\41\0"+ "\46\43\2\0\1\43\7\0\47\43\110\0\33\43\5\0\3\43\56\0"+ - "\32\43\5\0\13\43\25\0\12\45\4\0\2\43\1\0\143\43\1\0"+ - "\1\43\17\0\2\43\7\0\2\43\12\45\3\43\2\0\1\43\20\0"+ + "\32\43\5\0\13\43\25\0\12\46\4\0\2\43\1\0\143\43\1\0"+ + "\1\43\17\0\2\43\7\0\2\43\12\46\3\43\2\0\1\43\20\0"+ "\1\43\1\0\36\43\35\0\3\43\60\0\46\43\13\0\1\43\u0152\0"+ - "\66\43\3\0\1\43\22\0\1\43\7\0\12\43\4\0\12\45\25\0"+ + "\66\43\3\0\1\43\22\0\1\43\7\0\12\43\4\0\12\46\25\0"+ "\10\43\2\0\2\43\2\0\26\43\1\0\7\43\1\0\1\43\3\0"+ - "\4\43\3\0\1\43\36\0\2\43\1\0\3\43\4\0\12\45\2\43"+ + "\4\43\3\0\1\43\36\0\2\43\1\0\3\43\4\0\12\46\2\43"+ "\23\0\6\43\4\0\2\43\2\0\26\43\1\0\7\43\1\0\2\43"+ - "\1\0\2\43\1\0\2\43\37\0\4\43\1\0\1\43\7\0\12\45"+ + "\1\0\2\43\1\0\2\43\37\0\4\43\1\0\1\43\7\0\12\46"+ "\2\0\3\43\20\0\11\43\1\0\3\43\1\0\26\43\1\0\7\43"+ "\1\0\2\43\1\0\5\43\3\0\1\43\22\0\1\43\17\0\2\43"+ - "\4\0\12\45\25\0\10\43\2\0\2\43\2\0\26\43\1\0\7\43"+ + "\4\0\12\46\25\0\10\43\2\0\2\43\2\0\26\43\1\0\7\43"+ "\1\0\2\43\1\0\5\43\3\0\1\43\36\0\2\43\1\0\3\43"+ - "\4\0\12\45\1\0\1\43\21\0\1\43\1\0\6\43\3\0\3\43"+ + "\4\0\12\46\1\0\1\43\21\0\1\43\1\0\6\43\3\0\3\43"+ "\1\0\4\43\3\0\2\43\1\0\1\43\1\0\2\43\3\0\2\43"+ - "\3\0\3\43\3\0\10\43\1\0\3\43\55\0\11\45\25\0\10\43"+ + "\3\0\3\43\3\0\10\43\1\0\3\43\55\0\11\46\25\0\10\43"+ "\1\0\3\43\1\0\27\43\1\0\12\43\1\0\5\43\46\0\2\43"+ - "\4\0\12\45\25\0\10\43\1\0\3\43\1\0\27\43\1\0\12\43"+ - "\1\0\5\43\3\0\1\43\40\0\1\43\1\0\2\43\4\0\12\45"+ + "\4\0\12\46\25\0\10\43\1\0\3\43\1\0\27\43\1\0\12\43"+ + "\1\0\5\43\3\0\1\43\40\0\1\43\1\0\2\43\4\0\12\46"+ "\25\0\10\43\1\0\3\43\1\0\27\43\1\0\20\43\46\0\2\43"+ - "\4\0\12\45\25\0\22\43\3\0\30\43\1\0\11\43\1\0\1\43"+ - "\2\0\7\43\72\0\60\43\1\0\2\43\14\0\7\43\11\0\12\45"+ + "\4\0\12\46\25\0\22\43\3\0\30\43\1\0\11\43\1\0\1\43"+ + "\2\0\7\43\72\0\60\43\1\0\2\43\14\0\7\43\11\0\12\46"+ "\47\0\2\43\1\0\1\43\2\0\2\43\1\0\1\43\2\0\1\43"+ "\6\0\4\43\1\0\7\43\1\0\3\43\1\0\1\43\1\0\1\43"+ "\2\0\2\43\1\0\4\43\1\0\2\43\11\0\1\43\2\0\5\43"+ - "\1\0\1\43\11\0\12\45\2\0\2\43\42\0\1\43\37\0\12\45"+ + "\1\0\1\43\11\0\12\46\2\0\2\43\42\0\1\43\37\0\12\46"+ "\26\0\10\43\1\0\42\43\35\0\4\43\164\0\42\43\1\0\5\43"+ - "\1\0\2\43\25\0\12\45\6\0\6\43\112\0\46\43\12\0\51\43"+ + "\1\0\2\43\25\0\12\46\6\0\6\43\112\0\46\43\12\0\51\43"+ "\7\0\132\43\5\0\104\43\5\0\122\43\6\0\7\43\1\0\77\43"+ "\1\0\1\43\1\0\4\43\2\0\7\43\1\0\1\43\1\0\4\43"+ "\2\0\47\43\1\0\1\43\1\0\4\43\2\0\37\43\1\0\1\43"+ "\1\0\4\43\2\0\7\43\1\0\1\43\1\0\4\43\2\0\7\43"+ "\1\0\7\43\1\0\27\43\1\0\37\43\1\0\1\43\1\0\4\43"+ - "\2\0\7\43\1\0\47\43\1\0\23\43\16\0\11\45\56\0\125\43"+ + "\2\0\7\43\1\0\47\43\1\0\23\43\16\0\11\46\56\0\125\43"+ "\14\0\u026c\43\2\0\10\43\12\0\32\43\5\0\113\43\25\0\15\43"+ "\1\0\4\43\16\0\22\43\16\0\22\43\16\0\15\43\1\0\3\43"+ - "\17\0\64\43\43\0\1\43\4\0\1\43\3\0\12\45\46\0\12\45"+ - "\6\0\130\43\10\0\51\43\127\0\35\43\51\0\12\45\36\43\2\0"+ + "\17\0\64\43\43\0\1\43\4\0\1\43\3\0\12\46\46\0\12\46"+ + "\6\0\130\43\10\0\51\43\127\0\35\43\51\0\12\46\36\43\2\0"+ "\5\43\u038b\0\154\43\224\0\234\43\4\0\132\43\6\0\26\43\2\0"+ "\6\43\2\0\46\43\2\0\6\43\2\0\10\43\1\0\1\43\1\0"+ "\1\43\1\0\1\43\1\0\37\43\2\0\65\43\1\0\7\43\1\0"+ @@ -116,7 +114,7 @@ class _RegExLexer implements FlexLexer { "\7\43\14\0\5\43\5\0\1\43\1\0\12\43\1\0\15\43\1\0"+ "\5\43\1\0\1\43\1\0\2\43\1\0\2\43\1\0\154\43\41\0"+ "\u016b\43\22\0\100\43\2\0\66\43\50\0\14\43\164\0\5\43\1\0"+ - "\207\43\23\0\12\45\7\0\32\43\6\0\32\43\13\0\131\43\3\0"+ + "\207\43\23\0\12\46\7\0\32\43\6\0\32\43\13\0\131\43\3\0"+ "\6\43\2\0\6\43\2\0\6\43\2\0\3\43\43\0"; /** @@ -136,13 +134,13 @@ class _RegExLexer implements FlexLexer { "\1\27\1\30\1\31\1\32\1\33\1\34\1\3\1\35"+ "\1\36\1\35\1\37\1\40\1\1\1\41\1\42\1\2"+ "\1\43\1\44\1\45\1\46\1\47\1\50\1\51\1\52"+ - "\1\53\2\54\1\55\1\11\1\56\1\57\1\60\1\61"+ - "\1\62\1\63\1\64\1\65\2\0\1\66\1\67\2\57"+ - "\2\60\1\70\1\71\1\0\1\66\1\57\1\72\2\60"+ - "\1\73\1\66\3\60\1\74"; + "\1\53\1\54\2\55\1\56\1\11\1\57\1\60\1\61"+ + "\1\62\1\63\1\64\1\65\1\66\2\0\1\67\1\70"+ + "\2\60\2\61\1\71\1\72\1\0\1\67\1\60\1\73"+ + "\2\61\1\74\1\67\3\61\1\75"; private static int [] zzUnpackAction() { - int [] result = new int[88]; + int [] result = new int[89]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -173,14 +171,15 @@ class _RegExLexer implements FlexLexer { "\0\u0188\0\u024c\0\u0188\0\u027d\0\u0188\0\u02ae\0\u0188\0\u0188"+ "\0\u0188\0\u0188\0\u0188\0\u02df\0\u0188\0\u0188\0\u01ea\0\u0188"+ "\0\u0188\0\u0310\0\u0341\0\u0188\0\u0188\0\u0372\0\u0188\0\u0188"+ - "\0\u03a3\0\u03d4\0\u0188\0\u0188\0\u0188\0\u0188\0\u0188\0\u0405"+ - "\0\u0188\0\u0188\0\u0188\0\u0436\0\u0467\0\u0188\0\u0188\0\u0188"+ - "\0\u0188\0\u0188\0\u0498\0\u04c9\0\u04fa\0\u0188\0\u052b\0\u055c"+ - "\0\u058d\0\u05be\0\u0188\0\u0188\0\u05ef\0\u0620\0\u0188\0\u0188"+ - "\0\u0651\0\u0682\0\u0188\0\u0188\0\u06b3\0\u06e4\0\u0188\0\u0188"; + "\0\u03a3\0\u03d4\0\u0188\0\u0188\0\u0188\0\u0188\0\u0188\0\u0188"+ + "\0\u0405\0\u0188\0\u0188\0\u0188\0\u0436\0\u0467\0\u0188\0\u0188"+ + "\0\u0188\0\u0188\0\u0188\0\u0498\0\u04c9\0\u04fa\0\u0188\0\u052b"+ + "\0\u055c\0\u058d\0\u05be\0\u0188\0\u0188\0\u05ef\0\u0620\0\u0188"+ + "\0\u0188\0\u0651\0\u0682\0\u0188\0\u0188\0\u06b3\0\u06e4\0\u0188"+ + "\0\u0188"; private static int [] zzUnpackRowMap() { - int [] result = new int[88]; + int [] result = new int[89]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -205,36 +204,37 @@ class _RegExLexer implements FlexLexer { private static final String ZZ_TRANS_PACKED_0 = "\3\11\1\12\1\13\1\14\1\15\1\11\1\16\1\11"+ "\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26"+ - "\20\11\1\27\5\11\1\20\5\11\1\30\1\20\1\31"+ - "\12\11\1\32\1\0\45\11\1\33\2\34\4\33\1\35"+ - "\12\33\17\36\1\34\1\33\1\36\1\33\1\34\1\37"+ - "\12\33\11\40\1\41\1\40\1\0\45\40\6\11\1\15"+ - "\1\11\1\16\1\42\1\17\1\43\1\21\25\11\1\27"+ - "\4\11\1\44\1\43\6\11\1\43\1\11\6\45\1\46"+ + "\20\11\1\27\1\11\1\30\4\11\1\20\5\11\1\31"+ + "\1\20\12\11\1\32\1\0\45\11\1\33\2\34\4\33"+ + "\1\35\12\33\17\36\1\34\1\33\1\36\2\33\1\34"+ + "\1\37\11\33\11\40\1\41\1\40\1\0\45\40\6\11"+ + "\1\15\1\11\1\16\1\42\1\17\1\43\1\21\25\11"+ + "\1\27\5\11\1\44\1\43\6\11\1\43\6\45\1\46"+ "\1\45\1\47\1\45\1\17\46\45\5\50\1\51\14\50"+ - "\17\52\1\50\1\53\1\52\5\50\1\54\7\50\13\10"+ - "\1\55\43\10\1\55\1\10\77\0\1\56\53\0\1\57"+ - "\47\0\1\60\1\61\1\62\4\63\1\60\1\63\1\60"+ - "\1\63\1\60\6\63\2\64\2\65\2\66\1\67\1\70"+ - "\1\67\1\71\1\72\1\73\1\72\1\74\1\75\1\61"+ - "\1\63\1\72\15\60\36\0\1\76\23\0\2\34\36\0"+ - "\1\34\3\0\1\34\14\0\2\36\17\0\20\36\1\0"+ - "\3\36\62\0\1\77\33\0\17\52\2\0\1\52\37\0"+ - "\17\53\2\0\1\53\66\0\2\100\1\101\1\102\1\103"+ - "\1\104\3\0\2\61\36\0\1\61\21\0\1\105\36\0"+ - "\1\105\17\0\61\106\1\107\2\110\20\107\2\110\2\107"+ - "\3\110\2\107\1\110\1\107\1\110\2\107\1\110\17\107"+ - "\1\111\2\112\20\111\2\112\2\111\3\112\2\111\1\112"+ - "\1\111\1\112\2\111\1\112\17\111\53\0\1\113\1\114"+ - "\4\0\5\115\1\0\53\115\2\0\1\116\36\0\1\116"+ - "\17\0\62\117\2\120\20\117\2\120\2\117\3\120\2\117"+ - "\1\120\1\117\1\120\2\117\1\120\17\117\62\121\2\122"+ - "\20\121\2\122\2\121\3\122\2\121\1\122\1\121\1\122"+ - "\2\121\1\122\17\121\5\115\1\123\53\115\2\0\1\124"+ - "\36\0\1\124\17\0\62\125\2\126\20\125\2\126\2\125"+ - "\3\126\2\125\1\126\1\125\1\126\2\125\1\126\17\125"+ - "\62\127\2\130\20\127\2\130\2\127\3\130\2\127\1\130"+ - "\1\127\1\130\2\127\1\130\17\127"; + "\17\52\1\50\1\53\1\52\6\50\1\54\6\50\13\10"+ + "\1\55\44\10\1\55\77\0\1\56\53\0\1\57\47\0"+ + "\1\60\1\61\1\62\4\63\1\60\1\63\1\60\1\63"+ + "\1\64\6\63\2\65\2\66\2\67\1\70\1\71\1\70"+ + "\1\72\1\73\1\74\1\73\1\75\1\76\1\61\1\63"+ + "\1\73\1\64\4\60\1\64\6\60\1\64\36\0\1\77"+ + "\23\0\2\34\36\0\1\34\4\0\1\34\13\0\2\36"+ + "\17\0\20\36\1\0\1\36\1\0\2\36\62\0\1\100"+ + "\32\0\17\52\2\0\1\52\37\0\17\53\2\0\1\53"+ + "\67\0\2\101\1\102\1\103\1\104\1\105\2\0\2\61"+ + "\36\0\1\61\21\0\1\106\36\0\1\106\17\0\61\107"+ + "\1\110\2\111\20\110\2\111\2\110\3\111\2\110\1\111"+ + "\1\110\1\111\2\110\1\111\17\110\1\112\2\113\20\112"+ + "\2\113\2\112\3\113\2\112\1\113\1\112\1\113\2\112"+ + "\1\113\17\112\54\0\1\114\1\115\3\0\5\116\1\0"+ + "\53\116\2\0\1\117\36\0\1\117\17\0\62\120\2\121"+ + "\20\120\2\121\2\120\3\121\2\120\1\121\1\120\1\121"+ + "\2\120\1\121\17\120\62\122\2\123\20\122\2\123\2\122"+ + "\3\123\2\122\1\123\1\122\1\123\2\122\1\123\17\122"+ + "\5\116\1\124\53\116\2\0\1\125\36\0\1\125\17\0"+ + "\62\126\2\127\20\126\2\127\2\126\3\127\2\126\1\127"+ + "\1\126\1\127\2\126\1\127\17\126\62\130\2\131\20\130"+ + "\2\131\2\130\3\131\2\130\1\131\1\130\1\131\2\130"+ + "\1\131\17\130"; private static int [] zzUnpackTrans() { int [] result = new int[1813]; @@ -281,12 +281,12 @@ class _RegExLexer implements FlexLexer { "\6\0\2\1\2\11\1\1\2\11\1\3\1\1\12\11"+ "\1\1\1\11\1\1\1\11\1\1\5\11\1\1\2\11"+ "\1\3\2\11\2\1\2\11\1\1\1\15\1\11\2\1"+ - "\5\11\1\1\3\11\2\1\5\11\2\0\1\1\1\11"+ + "\6\11\1\1\3\11\2\1\5\11\2\0\1\1\1\11"+ "\4\1\2\11\1\0\1\1\2\11\2\1\2\11\2\1"+ "\2\11"; private static int [] zzUnpackAttribute() { - int [] result = new int[88]; + int [] result = new int[89]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -431,14 +431,7 @@ class _RegExLexer implements FlexLexer { // For Demetra compatibility public void reset(CharSequence buffer, int initialState){ - zzBuffer = buffer; - zzBufferArray = null; - zzCurrentPos = zzMarkedPos = zzStartRead = 0; - zzPushbackPos = 0; - zzAtEOF = false; - zzAtBOL = true; - zzEndRead = buffer.length(); - yybegin(initialState); + reset(buffer, 0, buffer.length(), initialState); } /** @@ -650,243 +643,247 @@ class _RegExLexer implements FlexLexer { case 7: { if (yystate() != CLASS2) yypushstate(EMBRACED); return RegExpTT.LBRACE; } - case 61: break; + case 62: break; case 6: { return RegExpTT.GROUP_END; } - case 62: break; + case 63: break; case 36: { yypushstate(CLASS1); return RegExpTT.CLASS_BEGIN; } - case 63: break; + case 64: break; case 14: { return RegExpTT.STAR; } - case 64: break; + case 65: break; case 40: { return RegExpTT.ESC_CHARACTER; } - case 65: break; + case 66: break; case 28: { return commentMode ? com.intellij.psi.TokenType.WHITE_SPACE : RegExpTT.ESC_CHARACTER; } - case 66: break; + case 67: break; + case 41: + { return commentMode ? RegExpTT.CHARACTER : RegExpTT.REDUNDANT_ESCAPE; + } + case 68: break; case 37: { return RegExpTT.REDUNDANT_ESCAPE; } - case 67: break; + case 69: break; case 24: { return RegExpTT.COMMA; } - case 68: break; - case 56: + case 70: break; + case 57: { return RegExpTT.POS_LOOKBEHIND; } - case 69: break; + case 71: break; case 39: { return RegExpTT.BAD_OCT_VALUE; } - case 70: break; + case 72: break; case 10: { return commentMode ? com.intellij.psi.TokenType.WHITE_SPACE : RegExpTT.CTRL_CHARACTER; } - case 71: break; + case 73: break; case 30: { yypopstate(); yypushstate(EMBRACED); return RegExpTT.LBRACE; } - case 72: break; - case 48: + case 74: break; + case 49: { return StringEscapesTokenTypes.INVALID_UNICODE_ESCAPE_TOKEN; } - case 73: break; - case 57: + case 75: break; + case 58: { return RegExpTT.NEG_LOOKBEHIND; } - case 74: break; - case 60: + case 76: break; + case 61: { return RegExpTT.UNICODE_CHAR; } - case 75: break; - case 55: + case 77: break; + case 56: { if (xmlSchemaMode) { yypushback(1); return RegExpTT.CHAR_CLASS; } else return RegExpTT.CTRL; } - case 76: break; + case 78: break; case 35: { yybegin(OPTIONS); return RegExpTT.SET_OPTIONS; } - case 77: break; + case 79: break; case 12: { return RegExpTT.DOLLAR; } - case 78: break; - case 49: + case 80: break; + case 50: { yypopstate(); return RegExpTT.QUOTE_END; } - case 79: break; - case 52: + case 81: break; + case 53: { return RegExpTT.POS_LOOKAHEAD; } - case 80: break; + case 82: break; case 22: { yypopstate(); return RegExpTT.RBRACE; } - case 81: break; + case 83: break; case 3: { return RegExpTT.CHARACTER; } - case 82: break; - case 53: + case 84: break; + case 54: { return RegExpTT.NEG_LOOKAHEAD; } - case 83: break; - case 41: + case 85: break; + case 42: { return RegExpTT.ESC_CTRL_CHARACTER; } - case 84: break; + case 86: break; case 23: { return RegExpTT.NAME; } - case 85: break; - case 50: + case 87: break; + case 51: { return RegExpTT.ANDAND; } - case 86: break; + case 88: break; case 13: { return RegExpTT.QUEST; } - case 87: break; - case 43: + case 89: break; + case 44: { return RegExpTT.CHAR_CLASS; } - case 88: break; + case 90: break; case 17: { return RegExpTT.MINUS; } - case 89: break; - case 59: + case 91: break; + case 60: { return RegExpTT.COMMENT; } - case 90: break; + case 92: break; case 38: { return yystate() != CLASS2 ? RegExpTT.BACKREF : RegExpTT.ESC_CHARACTER; } - case 91: break; + case 93: break; case 16: { return RegExpTT.UNION; } - case 92: break; - case 44: + case 94: break; + case 45: { if (xmlSchemaMode) return RegExpTT.CHAR_CLASS; else return StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN; } - case 93: break; - case 54: + case 95: break; + case 55: { return RegExpTT.OCT_CHAR; } - case 94: break; + case 96: break; case 4: { return RegExpTT.DOT; } - case 95: break; + case 97: break; case 32: { yybegin(YYINITIAL); return RegExpTT.GROUP_END; } - case 96: break; + case 98: break; case 21: { return RegExpTT.NUMBER; } - case 97: break; - case 45: + case 99: break; + case 46: { yypushstate(PROP); return RegExpTT.PROPERTY; } - case 98: break; - case 19: + case 100: break; + case 18: { return commentMode ? com.intellij.psi.TokenType.WHITE_SPACE : RegExpTT.CHARACTER; } - case 99: break; + case 101: break; case 33: { handleOptions(); return RegExpTT.OPTIONS_OFF; } - case 100: break; + case 102: break; case 34: { yybegin(YYINITIAL); return RegExpTT.COLON; } - case 101: break; + case 103: break; case 25: { assert false : yytext(); } - case 102: break; + case 104: break; case 27: { yypopstate(); return RegExpTT.CLASS_END; } - case 103: break; + case 105: break; case 11: { return RegExpTT.CARET; } - case 104: break; + case 106: break; case 1: { handleOptions(); return RegExpTT.OPTIONS_ON; } - case 105: break; + case 107: break; case 29: { yypopstate(); yypushback(1); } - case 106: break; - case 42: + case 108: break; + case 43: { return yystate() != CLASS2 ? RegExpTT.BOUNDARY : RegExpTT.ESC_CHARACTER; } - case 107: break; - case 18: + case 109: break; + case 19: { if (commentMode) { yypushstate(COMMENT); return RegExpTT.COMMENT; } else return RegExpTT.CHARACTER; } - case 108: break; - case 58: + case 110: break; + case 59: { return RegExpTT.HEX_CHAR; } - case 109: break; + case 111: break; case 20: { return RegExpTT.BAD_CHARACTER; } - case 110: break; + case 112: break; case 5: { return RegExpTT.GROUP_BEGIN; } - case 111: break; + case 113: break; case 8: { yypushstate(CLASS2); return RegExpTT.CLASS_BEGIN; } - case 112: break; - case 51: + case 114: break; + case 52: { return RegExpTT.NON_CAPT_GROUP; } - case 113: break; + case 115: break; case 9: { return StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN; } - case 114: break; - case 47: + case 116: break; + case 48: { return RegExpTT.BAD_HEX_VALUE; } - case 115: break; + case 117: break; case 2: { yypopstate(); return RegExpTT.COMMENT; } - case 116: break; - case 46: + case 118: break; + case 47: { yypushstate(QUOTED); return RegExpTT.QUOTE_BEGIN; } - case 117: break; + case 119: break; case 26: { yybegin(CLASS2); return RegExpTT.CHARACTER; } - case 118: break; + case 120: break; case 15: { return RegExpTT.PLUS; } - case 119: break; + case 121: break; case 31: { yybegin(YYINITIAL); return RegExpTT.BAD_CHARACTER; } - case 120: break; + case 122: break; default: if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { zzAtEOF = true; diff --git a/RegExpSupport/src/org/intellij/lang/regexp/regexp-lexer.flex b/RegExpSupport/src/org/intellij/lang/regexp/regexp-lexer.flex index d2784722c228..dcd94c284ed0 100644 --- a/RegExpSupport/src/org/intellij/lang/regexp/regexp-lexer.flex +++ b/RegExpSupport/src/org/intellij/lang/regexp/regexp-lexer.flex @@ -138,6 +138,7 @@ HEX_CHAR=[0-9a-fA-F] {ESCAPE} {CONTROL} { return RegExpTT.ESC_CTRL_CHARACTER; } {ESCAPE} [:letter:] { return StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN; } +{ESCAPE} [\n\b\t\r\f ] { return commentMode ? RegExpTT.CHARACTER : RegExpTT.REDUNDANT_ESCAPE; } {ESCAPE} {ANY} { return RegExpTT.REDUNDANT_ESCAPE; } {ESCAPE} { return StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN; } diff --git a/RegExpSupport/testData/RETest.xml b/RegExpSupport/testData/RETest.xml index 7578aebfabb8..e0c7c3163d86 100644 --- a/RegExpSupport/testData/RETest.xml +++ b/RegExpSupport/testData/RETest.xml @@ -979,4 +979,15 @@ OK + + + + (?x)a\ b\ c + OK + + + \ b]]> + OK + +