don't perform any additional parsing on the contents of the {@code} tag in javadoc (IDEA-95956)

This commit is contained in:
Dmitry Jemerov
2015-01-21 13:47:36 +01:00
parent 6349e5cb35
commit 256fd71176
7 changed files with 221 additions and 125 deletions
@@ -1,6 +1,22 @@
/* The following code was generated by JFlex 1.4.3 on 4/26/14 2:03 PM */
/*
* Copyright 2000-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* It's an automatically generated code. Do not modify it. */
/* The following code was generated by JFlex 1.4.3 on 1/21/15 12:57 PM */
/* It's an automatically generated code. Do not modify it. */
package com.intellij.lang.java.lexer;
import com.intellij.lexer.DocCommentTokenTypes;
@@ -12,14 +28,15 @@ import com.intellij.psi.tree.IElementType;
/**
* This class is a scanner generated by
* <a href="http://www.jflex.de/">JFlex</a> 1.4.3
* on 4/26/14 2:03 PM from the specification file
* <tt>/Users/ignatov/src/ultimate/tools/lexer/../../community/java/java-psi-impl/src/com/intellij/lang/java/lexer/_JavaDocLexer.flex</tt>
* on 1/21/15 12:57 PM from the specification file
* <tt>/Users/yole/jetbrains/IDEA/tools/lexer/../../community/java/java-psi-impl/src/com/intellij/lang/java/lexer/_JavaDocLexer.flex</tt>
*/
class _JavaDocLexer implements FlexLexer {
/** initial size of the lookahead buffer */
private static final int ZZ_BUFFERSIZE = 16384;
/** lexical states */
public static final int CODE_TAG = 18;
public static final int INLINE_TAG_NAME = 16;
public static final int PARAM_TAG_SPACE = 8;
public static final int COMMENT_DATA = 4;
@@ -38,76 +55,76 @@ class _JavaDocLexer 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
8, 8, 9, 9
};
/**
* Translates characters to character classes
*/
private static final String ZZ_CMAP_PACKED =
"\11\0\1\2\1\1\1\0\1\2\1\1\22\0\1\2\2\0\1\13"+
"\11\0\1\2\1\32\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\13\4\1\21\2\4\1\16"+
"\1\4\1\20\10\4\1\24\1\0\1\25\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";
"\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";
/**
* Translates characters to character classes
@@ -120,13 +137,13 @@ class _JavaDocLexer implements FlexLexer {
private static final int [] ZZ_ACTION = zzUnpackAction();
private static final String ZZ_ACTION_PACKED_0 =
"\11\0\3\1\1\2\1\3\2\2\1\4\1\5\1\6"+
"\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\2\22"+
"\1\23\3\22\1\24";
"\1\17\1\12\1\20\1\1\1\0\1\21\1\0\3\22"+
"\1\23\5\22\1\24\1\25";
private static int [] zzUnpackAction() {
int [] result = new int[41];
int [] result = new int[46];
int offset = 0;
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
return result;
@@ -151,15 +168,15 @@ class _JavaDocLexer implements FlexLexer {
private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
private static final String ZZ_ROWMAP_PACKED_0 =
"\0\0\0\26\0\54\0\102\0\130\0\156\0\204\0\232"+
"\0\260\0\306\0\334\0\362\0\306\0\u0108\0\362\0\u011e"+
"\0\306\0\306\0\u0134\0\u014a\0\u0160\0\u0176\0\u018c\0\306"+
"\0\306\0\306\0\306\0\306\0\u01a2\0\306\0\u011e\0\u01b8"+
"\0\306\0\362\0\u01ce\0\u01e4\0\306\0\u01fa\0\u0210\0\u0226"+
"\0\u01ce";
"\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";
private static int [] zzUnpackRowMap() {
int [] result = new int[41];
int [] result = new int[46];
int offset = 0;
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
return result;
@@ -182,26 +199,35 @@ class _JavaDocLexer implements FlexLexer {
private static final int [] ZZ_TRANS = zzUnpackTrans();
private static final String ZZ_TRANS_PACKED_0 =
"\6\12\1\13\1\14\16\12\1\15\2\16\4\15\1\17"+
"\5\15\1\20\6\15\1\21\1\22\1\15\1\16\1\23"+
"\4\15\1\17\14\15\1\21\1\22\1\12\2\24\4\12"+
"\1\14\15\12\1\22\1\12\2\25\4\12\1\14\16\12"+
"\1\15\2\26\2\27\2\15\1\17\1\27\1\30\1\15"+
"\1\31\1\32\1\15\4\27\1\33\2\15\1\22\1\12"+
"\2\16\2\27\2\12\1\14\1\27\1\12\1\34\1\12"+
"\1\32\1\12\4\27\10\12\1\35\2\12\1\14\6\12"+
"\4\35\1\12\1\36\11\12\1\14\5\12\1\37\10\12"+
"\35\0\1\40\24\0\1\41\1\42\17\0\2\16\27\0"+
"\1\43\11\0\1\44\3\43\6\0\1\23\24\0\2\24"+
"\24\0\2\25\24\0\2\26\26\0\2\27\3\0\1\27"+
"\5\0\4\27\7\0\3\35\10\0\4\35\13\0\1\45"+
"\21\0\3\43\10\0\4\43\7\0\3\43\10\0\1\43"+
"\1\46\2\43\7\0\3\43\10\0\2\43\1\47\1\43"+
"\7\0\3\43\10\0\1\43\1\50\2\43\7\0\3\43"+
"\10\0\3\43\1\51\4\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"+
"\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"+
"\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\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"+
"\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";
private static int [] zzUnpackTrans() {
int [] result = new int[572];
int [] result = new int[837];
int offset = 0;
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
return result;
@@ -242,12 +268,12 @@ class _JavaDocLexer implements FlexLexer {
private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
private static final String ZZ_ATTRIBUTE_PACKED_0 =
"\11\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\2\1\1\11"+
"\4\1";
"\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";
private static int [] zzUnpackAttribute() {
int [] result = new int[41];
int [] result = new int[46];
int offset = 0;
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
return result;
@@ -351,7 +377,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 < 1250) {
while (i < 1260) {
int count = packed.charAt(i++);
char value = packed.charAt(i++);
do map[j++] = value; while (--count > 0);
@@ -576,23 +602,23 @@ class _JavaDocLexer implements FlexLexer {
case 12:
{ return myTokenTypes.tagValueSharp();
}
case 21: break;
case 22: break;
case 16:
{ yybegin(COMMENT_DATA); return myTokenTypes.tagValueGT();
}
case 22: break;
case 23: break;
case 3:
{ return myTokenTypes.space();
}
case 23: break;
case 24: break;
case 6:
{ return myTokenTypes.commentData();
}
case 24: break;
case 25: break;
case 5:
{ yybegin(COMMENT_DATA); return myTokenTypes.inlineTagEnd();
}
case 25: break;
case 26: break;
case 4:
{ if (checkAhead('@')) {
yybegin(INLINE_TAG_NAME);
@@ -603,11 +629,11 @@ class _JavaDocLexer implements FlexLexer {
return myTokenTypes.inlineTagStart();
}
}
case 26: break;
case 27: break;
case 19:
{ yybegin(COMMENT_DATA_START); return myTokenTypes.commentStart();
}
case 27: break;
case 28: break;
case 14:
{ if (myJdk15Enabled) {
yybegin(DOC_TAG_VALUE_IN_LTGT);
@@ -618,58 +644,62 @@ class _JavaDocLexer implements FlexLexer {
return myTokenTypes.commentData();
}
}
case 28: break;
case 29: break;
case 8:
{ yybegin(DOC_TAG_VALUE); return myTokenTypes.space();
}
case 29: break;
case 30: break;
case 10:
{ return myTokenTypes.tagValueToken();
}
case 30: break;
case 31: break;
case 18:
{ yybegin(TAG_DOC_SPACE); return myTokenTypes.tagName();
}
case 31: break;
case 32: break;
case 9:
{ yybegin(COMMENT_DATA); return myTokenTypes.space();
}
case 32: break;
case 20:
case 33: break;
case 21:
{ yybegin(PARAM_TAG_SPACE); return myTokenTypes.tagName();
}
case 33: break;
case 34: break;
case 7:
{ if (checkAhead('<') || checkAhead('\"')) yybegin(COMMENT_DATA);
else if (checkAhead('\u007b') ) yybegin(COMMENT_DATA); // lbrace - there's a error in JLex when typing lbrace directly
else yybegin(DOC_TAG_VALUE);
return myTokenTypes.space();
}
case 34: break;
case 35: break;
case 1:
{ return myTokenTypes.badCharacter();
}
case 35: break;
case 36: break;
case 15:
{ yybegin(DOC_TAG_VALUE); return myTokenTypes.tagValueRParen();
}
case 36: break;
case 37: break;
case 11:
{ yybegin(DOC_TAG_VALUE_IN_PAREN); return myTokenTypes.tagValueLParen();
}
case 37: break;
case 38: break;
case 20:
{ yybegin(CODE_TAG); return myTokenTypes.tagName();
}
case 39: break;
case 13:
{ return myTokenTypes.tagValueComma();
}
case 38: break;
case 40: break;
case 2:
{ yybegin(COMMENT_DATA); return myTokenTypes.commentData();
}
case 39: break;
case 41: break;
case 17:
{ return myTokenTypes.commentEnd();
}
case 40: break;
case 42: break;
default:
if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
zzAtEOF = true;
@@ -1,4 +1,4 @@
/* It's an automatically generated code. Do not modify it. */
/* It's an automatically generated code. Do not modify it. */
package com.intellij.lang.java.lexer;
import com.intellij.lexer.DocCommentTokenTypes;
@@ -46,6 +46,7 @@ import com.intellij.psi.tree.IElementType;
%state DOC_TAG_VALUE_IN_PAREN
%state DOC_TAG_VALUE_IN_LTGT
%state INLINE_TAG_NAME
%state CODE_TAG
WHITE_DOC_SPACE_CHAR=[\ \t\f\n\r]
WHITE_DOC_SPACE_NO_LR=[\ \t\f]
@@ -94,10 +95,11 @@ IDENTIFIER={ALPHA}({ALPHA}|{DIGIT}|[":.-"])*
return myTokenTypes.inlineTagStart();
}
}
<INLINE_TAG_NAME> "@code" { yybegin(CODE_TAG); return myTokenTypes.tagName(); }
<INLINE_TAG_NAME> "@"{IDENTIFIER} { yybegin(TAG_DOC_SPACE); return myTokenTypes.tagName(); }
<COMMENT_DATA_START, COMMENT_DATA, TAG_DOC_SPACE, DOC_TAG_VALUE> "}" { yybegin(COMMENT_DATA); return myTokenTypes.inlineTagEnd(); }
<COMMENT_DATA_START, COMMENT_DATA, TAG_DOC_SPACE, DOC_TAG_VALUE, CODE_TAG> "}" { yybegin(COMMENT_DATA); return myTokenTypes.inlineTagEnd(); }
<COMMENT_DATA_START, COMMENT_DATA, DOC_TAG_VALUE> . { yybegin(COMMENT_DATA); return myTokenTypes.commentData(); }
<COMMENT_DATA_START, COMMENT_DATA, DOC_TAG_VALUE, CODE_TAG> . { yybegin(COMMENT_DATA); return myTokenTypes.commentData(); }
<COMMENT_DATA_START> "@"{IDENTIFIER} { yybegin(TAG_DOC_SPACE); return myTokenTypes.tagName(); }
<TAG_DOC_SPACE> {WHITE_DOC_SPACE_CHAR}+ {
@@ -0,0 +1,7 @@
abstract class AutoconfigurationHelper {
/**
* This method is an equivalent to {@code generalMethod((Object[]) null)}.
*/
public void specificMethod() {
}
}
@@ -0,0 +1,4 @@
/**
* This method is an equivalent to {@code generalMethod((Object[]) null)}.
*/
public class X{}
@@ -0,0 +1,32 @@
PsiJavaFile:CodeTag.java
PsiImportList
<empty list>
PsiClass:X
PsiDocComment
PsiDocToken:DOC_COMMENT_START('/**')
PsiWhiteSpace('\n ')
PsiDocToken:DOC_COMMENT_LEADING_ASTERISKS('*')
PsiDocToken:DOC_COMMENT_DATA(' This method is an equivalent to ')
PsiInlineDocTag:@code
PsiDocToken:DOC_INLINE_TAG_START('{')
PsiDocToken:DOC_TAG_NAME('@code')
PsiDocToken:DOC_COMMENT_DATA(' generalMethod((Object[]) null)')
PsiDocToken:DOC_INLINE_TAG_END('}')
PsiDocToken:DOC_COMMENT_DATA('.')
PsiWhiteSpace('\n ')
PsiDocToken:DOC_COMMENT_END('*/')
PsiWhiteSpace('\n')
PsiModifierList:public
PsiKeyword:public('public')
PsiWhiteSpace(' ')
PsiKeyword:class('class')
PsiWhiteSpace(' ')
PsiIdentifier:X('X')
PsiTypeParameterList
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
@@ -1,3 +1,18 @@
/*
* Copyright 2000-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.intellij.codeInsight.daemon;
import com.intellij.JavaTestUtil;
@@ -110,6 +125,10 @@ public class JavadocHighlightingTest extends LightDaemonAnalyzerTestCase {
public void testMissingReturnDescription() throws Exception { doTest(); }
public void testDoubleParenthesesInCode() throws Exception {
doTest();
}
private void doTestWithLangLevel(final LanguageLevel langLevel) throws Exception {
LanguageLevelProjectExtension.getInstance(getProject()).setLanguageLevel(langLevel);
doTest();
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2013 JetBrains s.r.o.
* Copyright 2000-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -80,6 +80,8 @@ public class JavadocParsingTest extends JavaParsingTestCase {
public void testTypeParam() { doTest(true); }
public void testParameterlessTag() { doTest(true); }
public void testCodeTag() { doTest(true); }
public void testIDEADEV_41403() { doTest(true); }
}