diff --git a/RegExpSupport/RegExpSupport.iml b/RegExpSupport/RegExpSupport.iml
index a94309f991db..fb5964f4c81a 100644
--- a/RegExpSupport/RegExpSupport.iml
+++ b/RegExpSupport/RegExpSupport.iml
@@ -6,6 +6,7 @@
+
diff --git a/RegExpSupport/src/org/intellij/lang/regexp/_RegExLexer.java b/RegExpSupport/gen/org/intellij/lang/regexp/_RegExLexer.java
similarity index 99%
rename from RegExpSupport/src/org/intellij/lang/regexp/_RegExLexer.java
rename to RegExpSupport/gen/org/intellij/lang/regexp/_RegExLexer.java
index 701745789208..c4c4f4d9a02a 100644
--- a/RegExpSupport/src/org/intellij/lang/regexp/_RegExLexer.java
+++ b/RegExpSupport/gen/org/intellij/lang/regexp/_RegExLexer.java
@@ -1,4 +1,4 @@
-/* The following code was generated by JFlex 1.4.3 on 2/9/13 3:43 PM */
+/* The following code was generated by JFlex 1.4.3 on 4/26/14 1:54 PM */
/* It's an automatically generated code. Do not modify it. */
package org.intellij.lang.regexp;
@@ -15,8 +15,8 @@ import com.intellij.psi.StringEscapesTokenTypes;
/**
* This class is a scanner generated by
* JFlex 1.4.3
- * on 2/9/13 3:43 PM from the specification file
- * C:/work/IDEA/tools/lexer/../../community/RegExpSupport/src/org/intellij/lang/regexp/regexp-lexer.flex
+ * on 4/26/14 1:54 PM from the specification file
+ * /Users/ignatov/src/ultimate/tools/lexer/../../community/RegExpSupport/src/org/intellij/lang/regexp/regexp-lexer.flex
*/
class _RegExLexer implements FlexLexer {
/** initial size of the lookahead buffer */
@@ -683,96 +683,93 @@ class _RegExLexer implements FlexLexer {
{ return RegExpTT.STAR;
}
case 82: break;
- case 28:
- { if (allowNestedCharacterClasses) {
- yypushstate(CLASS2);
- return RegExpTT.CLASS_BEGIN;
- }
- return RegExpTT.CHARACTER;
- }
- case 83: break;
case 59:
{ yybegin(PY_COND_REF); return RegExpTT.PYTHON_COND_REF;
}
- case 84: break;
+ case 83: break;
case 48:
{ return RegExpTT.CHAR_CLASS;
}
- case 85: break;
+ case 84: break;
case 35:
{ handleOptions(); return RegExpTT.OPTIONS_OFF;
}
+ case 85: break;
+ case 55:
+ { yypopstate(); return RegExpTT.QUOTE_END;
+ }
case 86: break;
+ case 34:
+ { yybegin(YYINITIAL); return RegExpTT.GROUP_END;
+ }
+ case 87: break;
+ case 5:
+ { return RegExpTT.GROUP_BEGIN;
+ }
+ case 88: break;
+ case 36:
+ { yybegin(YYINITIAL); return RegExpTT.COLON;
+ }
+ case 89: break;
+ case 6:
+ { return RegExpTT.GROUP_END;
+ }
+ case 90: break;
+ case 25:
+ { assert false : yytext();
+ }
+ case 91: break;
+ case 18:
+ { return commentMode ? com.intellij.psi.TokenType.WHITE_SPACE : RegExpTT.CHARACTER;
+ }
+ case 92: break;
+ case 45:
+ { return commentMode ? RegExpTT.CHARACTER : RegExpTT.REDUNDANT_ESCAPE;
+ }
+ case 93: break;
+ case 23:
+ { return RegExpTT.NAME;
+ }
+ case 94: break;
+ case 73:
+ { if (allowOctalNoLeadingZero) return RegExpTT.OCT_CHAR;
+ return yystate() != CLASS2 ? RegExpTT.BACKREF : RegExpTT.ESC_CHARACTER;
+ }
+ case 95: break;
+ case 29:
+ { yypopstate(); return RegExpTT.CLASS_END;
+ }
+ case 96: break;
+ case 33:
+ { yybegin(YYINITIAL); return RegExpTT.BAD_CHARACTER;
+ }
+ case 97: break;
+ case 51:
+ { yypushstate(QUOTED); return RegExpTT.QUOTE_BEGIN;
+ }
+ case 98: break;
+ case 21:
+ { return RegExpTT.NUMBER;
+ }
+ case 99: break;
+ case 4:
+ { return RegExpTT.DOT;
+ }
+ case 100: break;
+ case 71:
+ { return RegExpTT.NEG_LOOKBEHIND;
+ }
+ case 101: break;
+ case 43:
+ { return (allowOctalNoLeadingZero ? RegExpTT.OCT_CHAR : RegExpTT.BAD_OCT_VALUE);
+ }
+ case 102: break;
case 40:
// lookahead expression with fixed base length
zzMarkedPos = zzStartRead + 1;
{ yypushstate(CLASS1);
return RegExpTT.CLASS_BEGIN;
}
- case 87: break;
- case 55:
- { yypopstate(); return RegExpTT.QUOTE_END;
- }
- case 88: break;
- case 34:
- { yybegin(YYINITIAL); return RegExpTT.GROUP_END;
- }
- case 89: break;
- case 5:
- { return RegExpTT.GROUP_BEGIN;
- }
- case 90: break;
- case 36:
- { yybegin(YYINITIAL); return RegExpTT.COLON;
- }
- case 91: break;
- case 6:
- { return RegExpTT.GROUP_END;
- }
- case 92: break;
- case 25:
- { assert false : yytext();
- }
- case 93: break;
- case 18:
- { return commentMode ? com.intellij.psi.TokenType.WHITE_SPACE : RegExpTT.CHARACTER;
- }
- case 94: break;
- case 45:
- { return commentMode ? RegExpTT.CHARACTER : RegExpTT.REDUNDANT_ESCAPE;
- }
- case 95: break;
- case 23:
- { return RegExpTT.NAME;
- }
- case 96: break;
- case 29:
- { yypopstate(); return RegExpTT.CLASS_END;
- }
- case 97: break;
- case 33:
- { yybegin(YYINITIAL); return RegExpTT.BAD_CHARACTER;
- }
- case 98: break;
- case 51:
- { yypushstate(QUOTED); return RegExpTT.QUOTE_BEGIN;
- }
- case 99: break;
- case 21:
- { return RegExpTT.NUMBER;
- }
- case 100: break;
- case 4:
- { return RegExpTT.DOT;
- }
- case 101: break;
- case 71:
- { return RegExpTT.NEG_LOOKBEHIND;
- }
- case 102: break;
- case 43:
- { return (allowOctalNoLeadingZero ? RegExpTT.OCT_CHAR : RegExpTT.BAD_OCT_VALUE);
- }
case 103: break;
case 62:
{ return RegExpTT.NEG_LOOKAHEAD;
@@ -790,66 +787,66 @@ class _RegExLexer implements FlexLexer {
{ yybegin(QUOTED_NAMED_GROUP); return RegExpTT.RUBY_QUOTED_NAMED_GROUP;
}
case 107: break;
+ case 28:
+ { if (allowNestedCharacterClasses) {
+ yypushstate(CLASS2);
+ return RegExpTT.CLASS_BEGIN;
+ }
+ return RegExpTT.CHARACTER;
+ }
+ case 108: break;
case 19:
{ if (commentMode) { yypushstate(COMMENT); return RegExpTT.COMMENT; } else return RegExpTT.CHARACTER;
}
- case 108: break;
+ case 109: break;
case 50:
{ yypushstate(PROP); return RegExpTT.PROPERTY;
}
- case 109: break;
+ case 110: break;
+ case 8:
+ { yypushstate(CLASS2);
+ return RegExpTT.CLASS_BEGIN;
+ }
+ case 111: break;
case 70:
{ return RegExpTT.POS_LOOKBEHIND;
}
- case 110: break;
+ case 112: break;
case 42:
{ return yystate() != CLASS2 ? RegExpTT.BACKREF : RegExpTT.ESC_CHARACTER;
}
- case 111: break;
+ case 113: break;
case 72:
{ return RegExpTT.HEX_CHAR;
}
- case 112: break;
+ case 114: break;
case 1:
{ handleOptions(); return RegExpTT.OPTIONS_ON;
}
- case 113: break;
+ case 115: break;
case 58:
{ return allowNestedCharacterClasses ? RegExpTT.ANDAND : RegExpTT.CHARACTER;
}
- case 114: break;
+ case 116: break;
case 2:
{ yypopstate(); return RegExpTT.COMMENT;
}
- case 115: break;
+ case 117: break;
case 17:
{ return RegExpTT.MINUS;
}
- case 116: break;
+ case 118: break;
case 46:
{ return RegExpTT.ESC_CTRL_CHARACTER;
}
- case 117: break;
+ case 119: break;
case 32:
{ yypopstate(); yypushstate(EMBRACED); return RegExpTT.LBRACE;
}
- case 118: break;
- case 57:
- { if (!allowNestedCharacterClasses) return RegExpTT.CHARACTER;
- return RegExpTT.REDUNDANT_ESCAPE;
- }
- case 119: break;
+ case 120: break;
case 13:
{ return RegExpTT.QUEST;
}
- case 120: break;
- case 20:
- { if (allowDanglingMetacharacters) {
- yypopstate(); yypushback(1);
- } else {
- return RegExpTT.BAD_CHARACTER;
- }
- }
case 121: break;
case 54:
{ return (allowHexDigitClass ? RegExpTT.CHAR_CLASS : StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN);
@@ -863,114 +860,10 @@ class _RegExLexer implements FlexLexer {
{ return RegExpTT.OCT_CHAR;
}
case 124: break;
- case 73:
- { if (allowOctalNoLeadingZero) return RegExpTT.OCT_CHAR;
- return yystate() != CLASS2 ? RegExpTT.BACKREF : RegExpTT.ESC_CHARACTER;
- }
- case 125: break;
case 38:
{ yybegin(YYINITIAL); return RegExpTT.QUOTE;
}
- case 126: break;
- case 31:
- { yypopstate(); yypushback(1);
- }
- case 127: break;
- case 27:
- { yybegin(CLASS1); return RegExpTT.CARET;
- }
- case 128: break;
- case 37:
- { yybegin(YYINITIAL); return RegExpTT.GT;
- }
- case 129: break;
- case 68:
- { yybegin(PY_NAMED_GROUP_REF); return RegExpTT.PYTHON_NAMED_GROUP_REF;
- }
- case 130: break;
- case 16:
- { return RegExpTT.UNION;
- }
- case 131: break;
- case 3:
- { return RegExpTT.CHARACTER;
- }
- case 132: break;
- case 63:
- { yybegin(NAMED_GROUP); return RegExpTT.RUBY_NAMED_GROUP;
- }
- case 133: break;
- case 39:
- { yybegin(OPTIONS); return RegExpTT.SET_OPTIONS;
- }
- case 134: break;
- case 26:
- { yybegin(CLASS2); return RegExpTT.CHARACTER;
- }
- case 135: break;
- case 67:
- { if (xmlSchemaMode) { yypushback(1); return RegExpTT.CHAR_CLASS; } else return RegExpTT.CTRL;
- }
- case 136: break;
- case 30:
- { return commentMode ? com.intellij.psi.TokenType.WHITE_SPACE : RegExpTT.ESC_CHARACTER;
- }
- case 137: break;
- case 12:
- { return RegExpTT.DOLLAR;
- }
- case 138: break;
- case 49:
- { if (xmlSchemaMode) return RegExpTT.CHAR_CLASS; else return StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN;
- }
- case 139: break;
- case 41:
- { return RegExpTT.REDUNDANT_ESCAPE;
- }
- case 140: break;
- case 47:
- { return yystate() != CLASS2 ? RegExpTT.BOUNDARY : RegExpTT.ESC_CHARACTER;
- }
- case 141: break;
- case 8:
- { yypushstate(CLASS2);
- return RegExpTT.CLASS_BEGIN;
- }
- case 142: break;
- case 22:
- { yypopstate(); return RegExpTT.RBRACE;
- }
- case 143: break;
- case 53:
- { return StringEscapesTokenTypes.INVALID_UNICODE_ESCAPE_TOKEN;
- }
- case 144: break;
- case 52:
- { return RegExpTT.BAD_HEX_VALUE;
- }
- case 145: break;
- case 9:
- { return StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN;
- }
- case 146: break;
- case 11:
- { return RegExpTT.CARET;
- }
- case 147: break;
- case 44:
- { return RegExpTT.ESC_CHARACTER;
- }
- case 148: break;
- case 56:
- // lookahead expression with fixed base length
- zzMarkedPos = zzStartRead + 1;
- { if (allowNestedCharacterClasses) {
- yypushstate(CLASS1);
- return RegExpTT.CLASS_BEGIN;
- }
- return RegExpTT.CHARACTER;
- }
- case 149: break;
+ case 125: break;
case 65:
// lookahead expression with fixed base length
zzMarkedPos = zzStartRead + 1;
@@ -982,6 +875,113 @@ class _RegExLexer implements FlexLexer {
}
return RegExpTT.CLASS_BEGIN;
}
+ case 126: break;
+ case 20:
+ { if (allowDanglingMetacharacters) {
+ yypopstate(); yypushback(1);
+ } else {
+ return RegExpTT.BAD_CHARACTER;
+ }
+ }
+ case 127: break;
+ case 31:
+ { yypopstate(); yypushback(1);
+ }
+ case 128: break;
+ case 27:
+ { yybegin(CLASS1); return RegExpTT.CARET;
+ }
+ case 129: break;
+ case 56:
+ // lookahead expression with fixed base length
+ zzMarkedPos = zzStartRead + 1;
+ { if (allowNestedCharacterClasses) {
+ yypushstate(CLASS1);
+ return RegExpTT.CLASS_BEGIN;
+ }
+ return RegExpTT.CHARACTER;
+ }
+ case 130: break;
+ case 57:
+ { if (!allowNestedCharacterClasses) return RegExpTT.CHARACTER;
+ return RegExpTT.REDUNDANT_ESCAPE;
+ }
+ case 131: break;
+ case 37:
+ { yybegin(YYINITIAL); return RegExpTT.GT;
+ }
+ case 132: break;
+ case 68:
+ { yybegin(PY_NAMED_GROUP_REF); return RegExpTT.PYTHON_NAMED_GROUP_REF;
+ }
+ case 133: break;
+ case 16:
+ { return RegExpTT.UNION;
+ }
+ case 134: break;
+ case 3:
+ { return RegExpTT.CHARACTER;
+ }
+ case 135: break;
+ case 63:
+ { yybegin(NAMED_GROUP); return RegExpTT.RUBY_NAMED_GROUP;
+ }
+ case 136: break;
+ case 39:
+ { yybegin(OPTIONS); return RegExpTT.SET_OPTIONS;
+ }
+ case 137: break;
+ case 26:
+ { yybegin(CLASS2); return RegExpTT.CHARACTER;
+ }
+ case 138: break;
+ case 67:
+ { if (xmlSchemaMode) { yypushback(1); return RegExpTT.CHAR_CLASS; } else return RegExpTT.CTRL;
+ }
+ case 139: break;
+ case 30:
+ { return commentMode ? com.intellij.psi.TokenType.WHITE_SPACE : RegExpTT.ESC_CHARACTER;
+ }
+ case 140: break;
+ case 12:
+ { return RegExpTT.DOLLAR;
+ }
+ case 141: break;
+ case 49:
+ { if (xmlSchemaMode) return RegExpTT.CHAR_CLASS; else return StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN;
+ }
+ case 142: break;
+ case 41:
+ { return RegExpTT.REDUNDANT_ESCAPE;
+ }
+ case 143: break;
+ case 47:
+ { return yystate() != CLASS2 ? RegExpTT.BOUNDARY : RegExpTT.ESC_CHARACTER;
+ }
+ case 144: break;
+ case 22:
+ { yypopstate(); return RegExpTT.RBRACE;
+ }
+ case 145: break;
+ case 53:
+ { return StringEscapesTokenTypes.INVALID_UNICODE_ESCAPE_TOKEN;
+ }
+ case 146: break;
+ case 52:
+ { return RegExpTT.BAD_HEX_VALUE;
+ }
+ case 147: break;
+ case 9:
+ { return StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN;
+ }
+ case 148: break;
+ case 11:
+ { return RegExpTT.CARET;
+ }
+ case 149: break;
+ case 44:
+ { return RegExpTT.ESC_CHARACTER;
+ }
case 150: break;
default:
if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {