diff --git a/java/java-psi-impl/gen/com/intellij/lang/java/lexer/_JavaDocLexer.java b/java/java-psi-impl/gen/com/intellij/lang/java/lexer/_JavaDocLexer.java
index 5640413f8a63..6fcae3b167e2 100644
--- a/java/java-psi-impl/gen/com/intellij/lang/java/lexer/_JavaDocLexer.java
+++ b/java/java-psi-impl/gen/com/intellij/lang/java/lexer/_JavaDocLexer.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-/* The following code was generated by JFlex 1.4.3 on 1/21/15 12:57 PM */
+/* The following code was generated by JFlex 1.4.3 on 1/21/15 1:09 PM */
/* It's an automatically generated code. Do not modify it. */
package com.intellij.lang.java.lexer;
@@ -28,7 +28,7 @@ import com.intellij.psi.tree.IElementType;
/**
* This class is a scanner generated by
* JFlex 1.4.3
- * on 1/21/15 12:57 PM from the specification file
+ * on 1/21/15 1:09 PM from the specification file
* /Users/yole/jetbrains/IDEA/tools/lexer/../../community/java/java-psi-impl/src/com/intellij/lang/java/lexer/_JavaDocLexer.flex
*/
class _JavaDocLexer implements FlexLexer {
@@ -62,69 +62,70 @@ class _JavaDocLexer implements FlexLexer {
* Translates characters to character classes
*/
private static final String ZZ_CMAP_PACKED =
- "\11\0\1\2\1\32\1\0\1\2\1\1\22\0\1\2\2\0\1\13"+
+ "\11\0\1\2\1\35\1\0\1\2\1\1\22\0\1\2\2\0\1\13"+
"\1\4\3\0\1\11\1\12\1\7\1\0\1\14\1\5\1\3\1\6"+
"\12\3\1\5\1\0\1\22\1\0\1\23\1\0\1\15\32\4\1\10"+
"\1\0\1\10\1\0\1\4\1\0\1\17\1\4\1\25\1\27\1\30"+
- "\7\4\1\21\1\4\1\26\1\16\1\4\1\20\10\4\1\24\1\0"+
- "\1\31\44\0\4\4\4\0\1\4\12\0\1\4\4\0\1\4\5\0"+
- "\27\4\1\0\37\4\1\0\u013f\4\31\0\162\4\4\0\14\4\16\0"+
- "\5\4\11\0\1\4\213\0\1\4\13\0\1\4\1\0\3\4\1\0"+
- "\1\4\1\0\24\4\1\0\54\4\1\0\46\4\1\0\5\4\4\0"+
- "\202\4\10\0\105\4\1\0\46\4\2\0\2\4\6\0\20\4\41\0"+
- "\46\4\2\0\1\4\7\0\47\4\110\0\33\4\5\0\3\4\56\0"+
- "\32\4\5\0\13\4\43\0\2\4\1\0\143\4\1\0\1\4\17\0"+
- "\2\4\7\0\2\4\12\0\3\4\2\0\1\4\20\0\1\4\1\0"+
- "\36\4\35\0\3\4\60\0\46\4\13\0\1\4\u0152\0\66\4\3\0"+
- "\1\4\22\0\1\4\7\0\12\4\43\0\10\4\2\0\2\4\2\0"+
- "\26\4\1\0\7\4\1\0\1\4\3\0\4\4\3\0\1\4\36\0"+
- "\2\4\1\0\3\4\16\0\4\4\21\0\6\4\4\0\2\4\2\0"+
- "\26\4\1\0\7\4\1\0\2\4\1\0\2\4\1\0\2\4\37\0"+
- "\4\4\1\0\1\4\23\0\3\4\20\0\11\4\1\0\3\4\1\0"+
- "\26\4\1\0\7\4\1\0\2\4\1\0\5\4\3\0\1\4\22\0"+
- "\1\4\17\0\2\4\17\0\1\4\23\0\10\4\2\0\2\4\2\0"+
- "\26\4\1\0\7\4\1\0\2\4\1\0\5\4\3\0\1\4\36\0"+
- "\2\4\1\0\3\4\17\0\1\4\21\0\1\4\1\0\6\4\3\0"+
- "\3\4\1\0\4\4\3\0\2\4\1\0\1\4\1\0\2\4\3\0"+
- "\2\4\3\0\3\4\3\0\10\4\1\0\3\4\77\0\1\4\13\0"+
- "\10\4\1\0\3\4\1\0\27\4\1\0\12\4\1\0\5\4\46\0"+
- "\2\4\43\0\10\4\1\0\3\4\1\0\27\4\1\0\12\4\1\0"+
- "\5\4\3\0\1\4\40\0\1\4\1\0\2\4\43\0\10\4\1\0"+
- "\3\4\1\0\27\4\1\0\20\4\46\0\2\4\43\0\22\4\3\0"+
- "\30\4\1\0\11\4\1\0\1\4\2\0\7\4\72\0\60\4\1\0"+
- "\2\4\13\0\10\4\72\0\2\4\1\0\1\4\2\0\2\4\1\0"+
- "\1\4\2\0\1\4\6\0\4\4\1\0\7\4\1\0\3\4\1\0"+
- "\1\4\1\0\1\4\2\0\2\4\1\0\4\4\1\0\2\4\11\0"+
- "\1\4\2\0\5\4\1\0\1\4\25\0\2\4\42\0\1\4\77\0"+
- "\10\4\1\0\42\4\35\0\4\4\164\0\42\4\1\0\5\4\1\0"+
- "\2\4\45\0\6\4\112\0\46\4\12\0\51\4\7\0\132\4\5\0"+
- "\104\4\5\0\122\4\6\0\7\4\1\0\77\4\1\0\1\4\1\0"+
- "\4\4\2\0\7\4\1\0\1\4\1\0\4\4\2\0\47\4\1\0"+
- "\1\4\1\0\4\4\2\0\37\4\1\0\1\4\1\0\4\4\2\0"+
- "\7\4\1\0\1\4\1\0\4\4\2\0\7\4\1\0\7\4\1\0"+
- "\27\4\1\0\37\4\1\0\1\4\1\0\4\4\2\0\7\4\1\0"+
- "\47\4\1\0\23\4\105\0\125\4\14\0\u026c\4\2\0\10\4\12\0"+
- "\32\4\5\0\113\4\3\0\3\4\17\0\15\4\1\0\4\4\16\0"+
- "\22\4\16\0\22\4\16\0\15\4\1\0\3\4\17\0\64\4\43\0"+
- "\1\4\3\0\2\4\103\0\130\4\10\0\51\4\127\0\35\4\63\0"+
- "\36\4\2\0\5\4\u038b\0\154\4\224\0\234\4\4\0\132\4\6\0"+
- "\26\4\2\0\6\4\2\0\46\4\2\0\6\4\2\0\10\4\1\0"+
- "\1\4\1\0\1\4\1\0\1\4\1\0\37\4\2\0\65\4\1\0"+
- "\7\4\1\0\1\4\3\0\3\4\1\0\7\4\3\0\4\4\2\0"+
- "\6\4\4\0\15\4\5\0\3\4\1\0\7\4\102\0\2\4\23\0"+
- "\1\4\34\0\1\4\15\0\1\4\40\0\22\4\120\0\1\4\4\0"+
- "\1\4\2\0\12\4\1\0\1\4\3\0\5\4\6\0\1\4\1\0"+
- "\1\4\1\0\1\4\1\0\4\4\1\0\3\4\1\0\7\4\3\0"+
- "\3\4\5\0\5\4\26\0\44\4\u0e81\0\3\4\31\0\11\4\7\0"+
- "\5\4\2\0\5\4\4\0\126\4\6\0\3\4\1\0\137\4\5\0"+
- "\50\4\4\0\136\4\21\0\30\4\70\0\20\4\u0200\0\u19b6\4\112\0"+
- "\u51a6\4\132\0\u048d\4\u0773\0\u2ba4\4\u215c\0\u012e\4\2\0\73\4\225\0"+
- "\7\4\14\0\5\4\5\0\1\4\1\0\12\4\1\0\15\4\1\0"+
- "\5\4\1\0\1\4\1\0\2\4\1\0\2\4\1\0\154\4\41\0"+
- "\u016b\4\22\0\100\4\2\0\66\4\50\0\15\4\66\0\2\4\30\0"+
- "\3\4\31\0\1\4\6\0\5\4\1\0\207\4\7\0\1\4\34\0"+
- "\32\4\4\0\1\4\1\0\32\4\12\0\132\4\3\0\6\4\2\0"+
- "\6\4\2\0\6\4\2\0\3\4\3\0\2\4\3\0\2\4\31\0";
+ "\3\4\1\32\2\4\1\31\1\21\1\4\1\26\1\16\1\4\1\20"+
+ "\1\4\1\33\6\4\1\24\1\0\1\34\44\0\4\4\4\0\1\4"+
+ "\12\0\1\4\4\0\1\4\5\0\27\4\1\0\37\4\1\0\u013f\4"+
+ "\31\0\162\4\4\0\14\4\16\0\5\4\11\0\1\4\213\0\1\4"+
+ "\13\0\1\4\1\0\3\4\1\0\1\4\1\0\24\4\1\0\54\4"+
+ "\1\0\46\4\1\0\5\4\4\0\202\4\10\0\105\4\1\0\46\4"+
+ "\2\0\2\4\6\0\20\4\41\0\46\4\2\0\1\4\7\0\47\4"+
+ "\110\0\33\4\5\0\3\4\56\0\32\4\5\0\13\4\43\0\2\4"+
+ "\1\0\143\4\1\0\1\4\17\0\2\4\7\0\2\4\12\0\3\4"+
+ "\2\0\1\4\20\0\1\4\1\0\36\4\35\0\3\4\60\0\46\4"+
+ "\13\0\1\4\u0152\0\66\4\3\0\1\4\22\0\1\4\7\0\12\4"+
+ "\43\0\10\4\2\0\2\4\2\0\26\4\1\0\7\4\1\0\1\4"+
+ "\3\0\4\4\3\0\1\4\36\0\2\4\1\0\3\4\16\0\4\4"+
+ "\21\0\6\4\4\0\2\4\2\0\26\4\1\0\7\4\1\0\2\4"+
+ "\1\0\2\4\1\0\2\4\37\0\4\4\1\0\1\4\23\0\3\4"+
+ "\20\0\11\4\1\0\3\4\1\0\26\4\1\0\7\4\1\0\2\4"+
+ "\1\0\5\4\3\0\1\4\22\0\1\4\17\0\2\4\17\0\1\4"+
+ "\23\0\10\4\2\0\2\4\2\0\26\4\1\0\7\4\1\0\2\4"+
+ "\1\0\5\4\3\0\1\4\36\0\2\4\1\0\3\4\17\0\1\4"+
+ "\21\0\1\4\1\0\6\4\3\0\3\4\1\0\4\4\3\0\2\4"+
+ "\1\0\1\4\1\0\2\4\3\0\2\4\3\0\3\4\3\0\10\4"+
+ "\1\0\3\4\77\0\1\4\13\0\10\4\1\0\3\4\1\0\27\4"+
+ "\1\0\12\4\1\0\5\4\46\0\2\4\43\0\10\4\1\0\3\4"+
+ "\1\0\27\4\1\0\12\4\1\0\5\4\3\0\1\4\40\0\1\4"+
+ "\1\0\2\4\43\0\10\4\1\0\3\4\1\0\27\4\1\0\20\4"+
+ "\46\0\2\4\43\0\22\4\3\0\30\4\1\0\11\4\1\0\1\4"+
+ "\2\0\7\4\72\0\60\4\1\0\2\4\13\0\10\4\72\0\2\4"+
+ "\1\0\1\4\2\0\2\4\1\0\1\4\2\0\1\4\6\0\4\4"+
+ "\1\0\7\4\1\0\3\4\1\0\1\4\1\0\1\4\2\0\2\4"+
+ "\1\0\4\4\1\0\2\4\11\0\1\4\2\0\5\4\1\0\1\4"+
+ "\25\0\2\4\42\0\1\4\77\0\10\4\1\0\42\4\35\0\4\4"+
+ "\164\0\42\4\1\0\5\4\1\0\2\4\45\0\6\4\112\0\46\4"+
+ "\12\0\51\4\7\0\132\4\5\0\104\4\5\0\122\4\6\0\7\4"+
+ "\1\0\77\4\1\0\1\4\1\0\4\4\2\0\7\4\1\0\1\4"+
+ "\1\0\4\4\2\0\47\4\1\0\1\4\1\0\4\4\2\0\37\4"+
+ "\1\0\1\4\1\0\4\4\2\0\7\4\1\0\1\4\1\0\4\4"+
+ "\2\0\7\4\1\0\7\4\1\0\27\4\1\0\37\4\1\0\1\4"+
+ "\1\0\4\4\2\0\7\4\1\0\47\4\1\0\23\4\105\0\125\4"+
+ "\14\0\u026c\4\2\0\10\4\12\0\32\4\5\0\113\4\3\0\3\4"+
+ "\17\0\15\4\1\0\4\4\16\0\22\4\16\0\22\4\16\0\15\4"+
+ "\1\0\3\4\17\0\64\4\43\0\1\4\3\0\2\4\103\0\130\4"+
+ "\10\0\51\4\127\0\35\4\63\0\36\4\2\0\5\4\u038b\0\154\4"+
+ "\224\0\234\4\4\0\132\4\6\0\26\4\2\0\6\4\2\0\46\4"+
+ "\2\0\6\4\2\0\10\4\1\0\1\4\1\0\1\4\1\0\1\4"+
+ "\1\0\37\4\2\0\65\4\1\0\7\4\1\0\1\4\3\0\3\4"+
+ "\1\0\7\4\3\0\4\4\2\0\6\4\4\0\15\4\5\0\3\4"+
+ "\1\0\7\4\102\0\2\4\23\0\1\4\34\0\1\4\15\0\1\4"+
+ "\40\0\22\4\120\0\1\4\4\0\1\4\2\0\12\4\1\0\1\4"+
+ "\3\0\5\4\6\0\1\4\1\0\1\4\1\0\1\4\1\0\4\4"+
+ "\1\0\3\4\1\0\7\4\3\0\3\4\5\0\5\4\26\0\44\4"+
+ "\u0e81\0\3\4\31\0\11\4\7\0\5\4\2\0\5\4\4\0\126\4"+
+ "\6\0\3\4\1\0\137\4\5\0\50\4\4\0\136\4\21\0\30\4"+
+ "\70\0\20\4\u0200\0\u19b6\4\112\0\u51a6\4\132\0\u048d\4\u0773\0\u2ba4\4"+
+ "\u215c\0\u012e\4\2\0\73\4\225\0\7\4\14\0\5\4\5\0\1\4"+
+ "\1\0\12\4\1\0\15\4\1\0\5\4\1\0\1\4\1\0\2\4"+
+ "\1\0\2\4\1\0\154\4\41\0\u016b\4\22\0\100\4\2\0\66\4"+
+ "\50\0\15\4\66\0\2\4\30\0\3\4\31\0\1\4\6\0\5\4"+
+ "\1\0\207\4\7\0\1\4\34\0\32\4\4\0\1\4\1\0\32\4"+
+ "\12\0\132\4\3\0\6\4\2\0\6\4\2\0\6\4\2\0\3\4"+
+ "\3\0\2\4\3\0\2\4\31\0";
/**
* Translates characters to character classes
@@ -139,11 +140,11 @@ class _JavaDocLexer implements FlexLexer {
private static final String ZZ_ACTION_PACKED_0 =
"\12\0\3\1\1\2\1\3\2\2\1\4\1\5\1\6"+
"\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16"+
- "\1\17\1\12\1\20\1\1\1\0\1\21\1\0\3\22"+
- "\1\23\5\22\1\24\1\25";
+ "\1\17\1\12\1\20\1\1\1\0\1\21\1\0\4\22"+
+ "\1\23\7\22\1\24\1\22\1\25\2\22";
private static int [] zzUnpackAction() {
- int [] result = new int[46];
+ int [] result = new int[52];
int offset = 0;
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
return result;
@@ -168,15 +169,16 @@ class _JavaDocLexer implements FlexLexer {
private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
private static final String ZZ_ROWMAP_PACKED_0 =
- "\0\0\0\33\0\66\0\121\0\154\0\207\0\242\0\275"+
- "\0\330\0\363\0\u010e\0\u0129\0\u0144\0\u010e\0\u015f\0\u0144"+
- "\0\u017a\0\u010e\0\u010e\0\u0195\0\u01b0\0\u01cb\0\u01e6\0\u0201"+
- "\0\u010e\0\u010e\0\u010e\0\u010e\0\u010e\0\u021c\0\u010e\0\u0237"+
- "\0\u0252\0\u010e\0\u0144\0\u026d\0\u0288\0\u02a3\0\u010e\0\u02be"+
- "\0\u02d9\0\u02f4\0\u030f\0\u032a\0\u026d\0\u026d";
+ "\0\0\0\36\0\74\0\132\0\170\0\226\0\264\0\322"+
+ "\0\360\0\u010e\0\u012c\0\u014a\0\u0168\0\u012c\0\u0186\0\u0168"+
+ "\0\u01a4\0\u012c\0\u012c\0\u01c2\0\u01e0\0\u01fe\0\u021c\0\u023a"+
+ "\0\u012c\0\u012c\0\u012c\0\u012c\0\u012c\0\u0258\0\u012c\0\u0276"+
+ "\0\u0294\0\u012c\0\u0168\0\u02b2\0\u02d0\0\u02ee\0\u030c\0\u012c"+
+ "\0\u032a\0\u0348\0\u0366\0\u0384\0\u03a2\0\u03c0\0\u03de\0\u02b2"+
+ "\0\u03fc\0\u02b2\0\u041a\0\u0438";
private static int [] zzUnpackRowMap() {
- int [] result = new int[46];
+ int [] result = new int[52];
int offset = 0;
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
return result;
@@ -199,35 +201,41 @@ class _JavaDocLexer implements FlexLexer {
private static final int [] ZZ_TRANS = zzUnpackTrans();
private static final String ZZ_TRANS_PACKED_0 =
- "\6\13\1\14\1\15\23\13\1\16\2\17\4\16\1\20"+
- "\5\16\1\21\6\16\1\22\4\16\1\23\1\17\1\16"+
- "\1\17\1\24\4\16\1\20\14\16\1\22\4\16\1\23"+
- "\1\17\1\13\2\25\4\13\1\15\21\13\1\23\1\25"+
- "\1\13\2\26\4\13\1\15\22\13\1\26\1\16\2\27"+
+ "\6\13\1\14\1\15\26\13\1\16\2\17\4\16\1\20"+
+ "\5\16\1\21\6\16\1\22\7\16\1\23\1\17\1\16"+
+ "\1\17\1\24\4\16\1\20\14\16\1\22\7\16\1\23"+
+ "\1\17\1\13\2\25\4\13\1\15\24\13\1\23\1\25"+
+ "\1\13\2\26\4\13\1\15\25\13\1\26\1\16\2\27"+
"\2\30\2\16\1\20\1\30\1\31\1\16\1\32\1\33"+
- "\1\16\4\30\1\34\2\16\4\30\1\23\1\27\1\13"+
+ "\1\16\4\30\1\34\2\16\7\30\1\23\1\27\1\13"+
"\2\17\2\30\2\13\1\15\1\30\1\13\1\35\1\13"+
- "\1\33\1\13\4\30\3\13\4\30\1\13\1\17\4\13"+
+ "\1\33\1\13\4\30\3\13\7\30\1\13\1\17\4\13"+
"\1\36\2\13\1\15\6\13\4\36\1\13\1\37\1\13"+
- "\4\36\11\13\1\15\5\13\1\40\15\13\7\16\1\20"+
- "\21\16\1\23\1\13\42\0\1\41\31\0\1\42\1\43"+
- "\24\0\2\17\27\0\1\17\4\0\1\44\11\0\1\45"+
- "\3\44\3\0\4\44\4\0\1\24\31\0\2\25\27\0"+
- "\1\25\1\0\2\26\27\0\1\26\1\0\2\27\27\0"+
+ "\7\36\11\13\1\15\5\13\1\40\20\13\7\16\1\20"+
+ "\24\16\1\23\1\13\45\0\1\41\34\0\1\42\1\43"+
+ "\27\0\2\17\32\0\1\17\4\0\1\44\11\0\1\45"+
+ "\3\44\3\0\7\44\4\0\1\24\34\0\2\25\32\0"+
+ "\1\25\1\0\2\26\32\0\1\26\1\0\2\27\32\0"+
"\1\27\3\0\2\30\3\0\1\30\5\0\4\30\3\0"+
- "\4\30\5\0\3\36\10\0\4\36\3\0\4\36\6\0"+
- "\1\44\11\0\1\45\3\44\3\0\1\46\3\44\11\0"+
- "\1\47\26\0\3\44\10\0\4\44\3\0\4\44\5\0"+
- "\3\44\10\0\1\44\1\50\2\44\3\0\4\44\5\0"+
- "\3\44\10\0\4\44\3\0\1\44\1\51\2\44\5\0"+
- "\3\44\10\0\2\44\1\52\1\44\3\0\4\44\5\0"+
- "\3\44\10\0\4\44\3\0\2\44\1\53\1\44\5\0"+
- "\3\44\10\0\1\44\1\54\2\44\3\0\4\44\5\0"+
- "\3\44\10\0\4\44\3\0\3\44\1\55\5\0\3\44"+
- "\10\0\3\44\1\56\3\0\4\44\2\0";
+ "\7\30\5\0\3\36\10\0\4\36\3\0\7\36\6\0"+
+ "\1\44\11\0\1\45\3\44\3\0\1\46\3\44\1\47"+
+ "\2\44\11\0\1\50\31\0\3\44\10\0\4\44\3\0"+
+ "\7\44\5\0\3\44\10\0\1\44\1\51\2\44\3\0"+
+ "\7\44\5\0\3\44\10\0\4\44\3\0\1\44\1\52"+
+ "\5\44\5\0\3\44\10\0\4\44\3\0\5\44\1\53"+
+ "\1\44\5\0\3\44\10\0\2\44\1\54\1\44\3\0"+
+ "\7\44\5\0\3\44\10\0\4\44\3\0\2\44\1\55"+
+ "\4\44\5\0\3\44\10\0\4\44\3\0\6\44\1\56"+
+ "\5\0\3\44\10\0\1\44\1\57\2\44\3\0\7\44"+
+ "\5\0\3\44\10\0\4\44\3\0\3\44\1\60\3\44"+
+ "\5\0\3\44\10\0\4\44\3\0\3\44\1\61\3\44"+
+ "\5\0\3\44\10\0\3\44\1\62\3\0\7\44\5\0"+
+ "\3\44\10\0\2\44\1\63\1\44\3\0\7\44\5\0"+
+ "\3\44\10\0\1\44\1\64\2\44\3\0\7\44\5\0"+
+ "\3\44\10\0\4\44\3\0\4\44\1\60\2\44\2\0";
private static int [] zzUnpackTrans() {
- int [] result = new int[837];
+ int [] result = new int[1110];
int offset = 0;
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
return result;
@@ -269,11 +277,11 @@ class _JavaDocLexer implements FlexLexer {
private static final String ZZ_ATTRIBUTE_PACKED_0 =
"\12\0\1\11\2\1\1\11\3\1\2\11\5\1\5\11"+
- "\1\1\1\11\1\1\1\0\1\11\1\0\3\1\1\11"+
- "\7\1";
+ "\1\1\1\11\1\1\1\0\1\11\1\0\4\1\1\11"+
+ "\14\1";
private static int [] zzUnpackAttribute() {
- int [] result = new int[46];
+ int [] result = new int[52];
int offset = 0;
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
return result;
@@ -377,7 +385,7 @@ class _JavaDocLexer implements FlexLexer {
char [] map = new char[0x10000];
int i = 0; /* index in packed string */
int j = 0; /* index in unpacked array */
- while (i < 1260) {
+ while (i < 1270) {
int count = packed.charAt(i++);
char value = packed.charAt(i++);
do map[j++] = value; while (--count > 0);
diff --git a/java/java-psi-impl/src/com/intellij/lang/java/lexer/_JavaDocLexer.flex b/java/java-psi-impl/src/com/intellij/lang/java/lexer/_JavaDocLexer.flex
index 90281bb9e956..edf1a727686e 100644
--- a/java/java-psi-impl/src/com/intellij/lang/java/lexer/_JavaDocLexer.flex
+++ b/java/java-psi-impl/src/com/intellij/lang/java/lexer/_JavaDocLexer.flex
@@ -96,6 +96,7 @@ IDENTIFIER={ALPHA}({ALPHA}|{DIGIT}|[":.-"])*
}
}
"@code" { yybegin(CODE_TAG); return myTokenTypes.tagName(); }
+ "@literal" { yybegin(CODE_TAG); return myTokenTypes.tagName(); }
"@"{IDENTIFIER} { yybegin(TAG_DOC_SPACE); return myTokenTypes.tagName(); }
"}" { yybegin(COMMENT_DATA); return myTokenTypes.inlineTagEnd(); }
diff --git a/java/java-tests/testData/psi/parser-full/javadocParsing/LiteralTag.java b/java/java-tests/testData/psi/parser-full/javadocParsing/LiteralTag.java
new file mode 100644
index 000000000000..429d84450e10
--- /dev/null
+++ b/java/java-tests/testData/psi/parser-full/javadocParsing/LiteralTag.java
@@ -0,0 +1,6 @@
+/**
+ * You may want to call the {@literal works(String, Map} method.
+ * @see java.util.Map
+ * @see #works(String, java.util.Map)
+ */
+class X {}
diff --git a/java/java-tests/testData/psi/parser-full/javadocParsing/LiteralTag.txt b/java/java-tests/testData/psi/parser-full/javadocParsing/LiteralTag.txt
new file mode 100644
index 000000000000..8f249b92b0e4
--- /dev/null
+++ b/java/java-tests/testData/psi/parser-full/javadocParsing/LiteralTag.txt
@@ -0,0 +1,89 @@
+PsiJavaFile:LiteralTag.java
+ PsiImportList
+
+ PsiClass:X
+ PsiDocComment
+ PsiDocToken:DOC_COMMENT_START('/**')
+ PsiWhiteSpace('\n ')
+ PsiDocToken:DOC_COMMENT_LEADING_ASTERISKS('*')
+ PsiDocToken:DOC_COMMENT_DATA(' You may want to call the ')
+ PsiInlineDocTag:@literal
+ PsiDocToken:DOC_INLINE_TAG_START('{')
+ PsiDocToken:DOC_TAG_NAME('@literal')
+ PsiDocToken:DOC_COMMENT_DATA(' works(String, Map')
+ PsiDocToken:DOC_INLINE_TAG_END('}')
+ PsiDocToken:DOC_COMMENT_DATA(' method.')
+ PsiWhiteSpace('\n ')
+ PsiDocToken:DOC_COMMENT_LEADING_ASTERISKS('*')
+ PsiDocToken:DOC_COMMENT_DATA(' ')
+ PsiDocTag:@see
+ PsiDocToken:DOC_TAG_NAME('@see')
+ PsiWhiteSpace(' ')
+ PsiElement(DOC_REFERENCE_HOLDER)
+ PsiJavaCodeReferenceElement:java.util.Map
+ PsiJavaCodeReferenceElement:java.util
+ PsiJavaCodeReferenceElement:java
+ PsiIdentifier:java('java')
+ PsiReferenceParameterList
+
+ PsiJavaToken:DOT('.')
+ PsiIdentifier:util('util')
+ PsiReferenceParameterList
+
+ PsiJavaToken:DOT('.')
+ PsiIdentifier:Map('Map')
+ PsiReferenceParameterList
+
+ PsiWhiteSpace('\n ')
+ PsiDocToken:DOC_COMMENT_LEADING_ASTERISKS('*')
+ PsiDocToken:DOC_COMMENT_DATA(' ')
+ PsiDocTag:@see
+ PsiDocToken:DOC_TAG_NAME('@see')
+ PsiWhiteSpace(' ')
+ PsiElement(DOC_METHOD_OR_FIELD_REF)
+ PsiDocToken:DOC_TAG_VALUE_SHARP_TOKEN('#')
+ PsiDocToken:DOC_TAG_VALUE_TOKEN('works')
+ PsiDocToken:DOC_TAG_VALUE_LPAREN('(')
+ PsiElement(DOC_TAG_VALUE_ELEMENT)
+ PsiElement(DOC_TYPE_HOLDER)
+ PsiTypeElement:String
+ PsiJavaCodeReferenceElement:String
+ PsiIdentifier:String('String')
+ PsiReferenceParameterList
+
+ PsiDocToken:DOC_TAG_VALUE_COMMA(',')
+ PsiWhiteSpace(' ')
+ PsiElement(DOC_TYPE_HOLDER)
+ PsiTypeElement:java.util.Map
+ PsiJavaCodeReferenceElement:java.util.Map
+ PsiJavaCodeReferenceElement:java.util
+ PsiJavaCodeReferenceElement:java
+ PsiIdentifier:java('java')
+ PsiReferenceParameterList
+
+ PsiJavaToken:DOT('.')
+ PsiIdentifier:util('util')
+ PsiReferenceParameterList
+
+ PsiJavaToken:DOT('.')
+ PsiIdentifier:Map('Map')
+ PsiReferenceParameterList
+
+ PsiDocToken:DOC_TAG_VALUE_RPAREN(')')
+ PsiWhiteSpace('\n ')
+ PsiDocToken:DOC_COMMENT_END('*/')
+ PsiWhiteSpace('\n')
+ PsiModifierList:
+
+ PsiKeyword:class('class')
+ PsiWhiteSpace(' ')
+ PsiIdentifier:X('X')
+ PsiTypeParameterList
+
+ PsiReferenceList
+
+ PsiReferenceList
+
+ PsiWhiteSpace(' ')
+ PsiJavaToken:LBRACE('{')
+ PsiJavaToken:RBRACE('}')
\ No newline at end of file
diff --git a/java/java-tests/testSrc/com/intellij/lang/java/parser/JavadocParsingTest.java b/java/java-tests/testSrc/com/intellij/lang/java/parser/JavadocParsingTest.java
index 0357cf59b3a1..aa6b7c9aa7d1 100644
--- a/java/java-tests/testSrc/com/intellij/lang/java/parser/JavadocParsingTest.java
+++ b/java/java-tests/testSrc/com/intellij/lang/java/parser/JavadocParsingTest.java
@@ -82,6 +82,7 @@ public class JavadocParsingTest extends JavaParsingTestCase {
public void testParameterlessTag() { doTest(true); }
public void testCodeTag() { doTest(true); }
-
+ public void testLiteralTag() { doTest(true); }
+
public void testIDEADEV_41403() { doTest(true); }
}