From 8b6d2731fdab36456caef798f6dea7b3abd3458f Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Wed, 29 Apr 2015 17:18:34 +0200 Subject: [PATCH] Cleanup (deprecated JavaDoc lexers dropped) --- .../src/com/intellij/lexer/JavaDocLexer.java | 24 - .../com/intellij/lexer/DocCommentLexer.java | 172 ----- .../src/com/intellij/lexer/_JavaDocLexer.java | 689 ------------------ 3 files changed, 885 deletions(-) delete mode 100644 java/java-psi-api/src/com/intellij/lexer/JavaDocLexer.java delete mode 100644 platform/core-api/src/com/intellij/lexer/DocCommentLexer.java delete mode 100644 platform/core-api/src/com/intellij/lexer/_JavaDocLexer.java diff --git a/java/java-psi-api/src/com/intellij/lexer/JavaDocLexer.java b/java/java-psi-api/src/com/intellij/lexer/JavaDocLexer.java deleted file mode 100644 index 72176faecc60..000000000000 --- a/java/java-psi-api/src/com/intellij/lexer/JavaDocLexer.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright 2000-2013 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.lexer; - -/** @deprecated use com.intellij.lang.java.JavaDocLexer (to remove in IDEA 14) */ -@SuppressWarnings("UnusedDeclaration") -public class JavaDocLexer extends DocCommentLexer { - public JavaDocLexer(final boolean isJdk15Enabled) { - super(JavaDocTokenTypes.INSTANCE, isJdk15Enabled); - } -} diff --git a/platform/core-api/src/com/intellij/lexer/DocCommentLexer.java b/platform/core-api/src/com/intellij/lexer/DocCommentLexer.java deleted file mode 100644 index 7ea6da53b105..000000000000 --- a/platform/core-api/src/com/intellij/lexer/DocCommentLexer.java +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Copyright 2000-2013 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.lexer; - -import com.intellij.psi.tree.IElementType; -import com.intellij.util.text.CharArrayUtil; -import org.jetbrains.annotations.NotNull; - -import java.io.IOException; - -/** @deprecated use com.intellij.lang.java.JavaDocLexer (to remove in IDEA 14) */ -public class DocCommentLexer extends MergingLexerAdapter { - public DocCommentLexer(final DocCommentTokenTypes tokenTypes, final boolean isJdk15Enabled) { - super(new AsteriskStripperLexer(new _JavaDocLexer(isJdk15Enabled, tokenTypes), tokenTypes), - tokenTypes.spaceCommentsTokenSet()); - } - - private static class AsteriskStripperLexer extends LexerBase { - private final _JavaDocLexer myFlex; - private final DocCommentTokenTypes myTokenTypes; - private CharSequence myBuffer; - private int myBufferIndex; - private int myBufferEndOffset; - private int myTokenEndOffset; - private int myState; - private IElementType myTokenType; - private boolean myAfterLineBreak; - private boolean myInLeadingSpace; - - public AsteriskStripperLexer(final _JavaDocLexer flex, final DocCommentTokenTypes tokenTypes) { - myFlex = flex; - myTokenTypes = tokenTypes; - } - - @Override - public final void start(@NotNull CharSequence buffer, int startOffset, int endOffset, int initialState) { - myBuffer = buffer; - myBufferIndex = startOffset; - myBufferEndOffset = endOffset; - myTokenType = null; - myTokenEndOffset = startOffset; - myFlex.reset(myBuffer, startOffset, endOffset, initialState); - } - - @Override - public int getState() { - return myState; - } - - @NotNull - @Override - public CharSequence getBufferSequence() { - return myBuffer; - } - - @Override - public int getBufferEnd() { - return myBufferEndOffset; - } - - @Override - public final IElementType getTokenType() { - locateToken(); - return myTokenType; - } - - @Override - public final int getTokenStart() { - locateToken(); - return myBufferIndex; - } - - @Override - public final int getTokenEnd() { - locateToken(); - return myTokenEndOffset; - } - - - @Override - public final void advance() { - locateToken(); - myTokenType = null; - } - - protected final void locateToken() { - if (myTokenType != null) return; - _locateToken(); - - if (myTokenType == myTokenTypes.space()) { - myAfterLineBreak = CharArrayUtil.containLineBreaks(myBuffer, getTokenStart(), getTokenEnd()); - } - } - - private void _locateToken() { - if (myTokenEndOffset == myBufferEndOffset) { - myTokenType = null; - myBufferIndex = myBufferEndOffset; - return; - } - - myBufferIndex = myTokenEndOffset; - - if (myAfterLineBreak) { - myAfterLineBreak = false; - while (myTokenEndOffset < myBufferEndOffset && myBuffer.charAt(myTokenEndOffset) == '*' && - (myTokenEndOffset + 1 >= myBufferEndOffset || myBuffer.charAt(myTokenEndOffset + 1) != '/')) { - myTokenEndOffset++; - } - - myInLeadingSpace = true; - if (myBufferIndex < myTokenEndOffset) { - myTokenType = myTokenTypes.commentLeadingAsterisks(); - return; - } - } - - if (myInLeadingSpace) { - myInLeadingSpace = false; - boolean lf = false; - while (myTokenEndOffset < myBufferEndOffset && Character.isWhitespace(myBuffer.charAt(myTokenEndOffset))) { - if (myBuffer.charAt(myTokenEndOffset) == '\n') lf = true; - myTokenEndOffset++; - } - - final int state = myFlex.yystate(); - if (state == _JavaDocLexer.COMMENT_DATA || - myTokenEndOffset < myBufferEndOffset && (myBuffer.charAt(myTokenEndOffset) == '@' || - myBuffer.charAt(myTokenEndOffset) == '{' || - myBuffer.charAt(myTokenEndOffset) == '\"' || - myBuffer.charAt(myTokenEndOffset) == '<')) { - myFlex.yybegin(_JavaDocLexer.COMMENT_DATA_START); - } - - if (myBufferIndex < myTokenEndOffset) { - myTokenType = lf || state == _JavaDocLexer.PARAM_TAG_SPACE || state == _JavaDocLexer.TAG_DOC_SPACE || state == _JavaDocLexer.INLINE_TAG_NAME || state == _JavaDocLexer.DOC_TAG_VALUE_IN_PAREN - ? myTokenTypes.space() - : myTokenTypes.commentData(); - - return; - } - } - - flexLocateToken(); - } - - private void flexLocateToken() { - try { - myState = myFlex.yystate(); - myFlex.goTo(myBufferIndex); - myTokenType = myFlex.advance(); - myTokenEndOffset = myFlex.getTokenEnd(); - } - catch (IOException e) { - // Can't be - } - } - } -} diff --git a/platform/core-api/src/com/intellij/lexer/_JavaDocLexer.java b/platform/core-api/src/com/intellij/lexer/_JavaDocLexer.java deleted file mode 100644 index bd9afb823570..000000000000 --- a/platform/core-api/src/com/intellij/lexer/_JavaDocLexer.java +++ /dev/null @@ -1,689 +0,0 @@ -/* - * Copyright 2000-2013 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. - */ - -/* The following code was generated by JFlex 1.4.1 on 15.09.08 21:08 */ - -/* It's an automatically generated code. Do not modify it. */ -package com.intellij.lexer; - -import com.intellij.psi.tree.IElementType; - -/** - * @deprecated use com.intellij.lang.java.JavaDocLexer (to remove in IDEA 14) - * - * This class is a scanner generated by - * JFlex 1.4.1 - * on 15.09.08 21:08 from the specification file - * C:/JetBrains/IDEA/tools/lexer/_JavaDocLexer.flex - */ -class _JavaDocLexer implements FlexLexer { - /** initial size of the lookahead buffer */ - private static final int ZZ_BUFFERSIZE = 16384; - - /** lexical states */ - public static final int INLINE_TAG_NAME = 8; - public static final int PARAM_TAG_SPACE = 4; - public static final int COMMENT_DATA = 2; - public static final int DOC_TAG_VALUE = 5; - public static final int COMMENT_DATA_START = 1; - public static final int TAG_DOC_SPACE = 3; - public static final int YYINITIAL = 0; - public static final int DOC_TAG_VALUE_IN_PAREN = 6; - public static final int DOC_TAG_VALUE_IN_LTGT = 7; - - /** - * 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"+ - "\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"; - - /** - * Translates characters to character classes - */ - private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED); - - /** - * Translates DFA states to action switch labels. - */ - 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"+ - "\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"; - - private static int [] zzUnpackAction() { - int [] result = new int[41]; - int offset = 0; - offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); - return result; - } - - private static int zzUnpackAction(String packed, int offset, int [] result) { - int i = 0; /* index in packed string */ - int j = offset; /* index in unpacked array */ - int l = packed.length(); - while (i < l) { - int count = packed.charAt(i++); - int value = packed.charAt(i++); - do result[j++] = value; while (--count > 0); - } - return j; - } - - - /** - * Translates a state to a row index in the transition table - */ - 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\u01fa\0\u0210\0\u0226\0\u023c"+ - "\0\u01ce"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[41]; - int offset = 0; - offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); - return result; - } - - private static int zzUnpackRowMap(String packed, int offset, int [] result) { - int i = 0; /* index in packed string */ - int j = offset; /* index in unpacked array */ - int l = packed.length(); - while (i < l) { - int high = packed.charAt(i++) << 16; - result[j++] = high | packed.charAt(i++); - } - return j; - } - - /** - * The transition table of the DFA - */ - 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\12\0\1\41\22\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"; - - private static int [] zzUnpackTrans() { - int [] result = new int[594]; - int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); - return result; - } - - private static int zzUnpackTrans(String packed, int offset, int [] result) { - int i = 0; /* index in packed string */ - int j = offset; /* index in unpacked array */ - int l = packed.length(); - while (i < l) { - int count = packed.charAt(i++); - int value = packed.charAt(i++); - value--; - do result[j++] = value; while (--count > 0); - } - return j; - } - - - /* error codes */ - private static final int ZZ_UNKNOWN_ERROR = 0; - private static final int ZZ_NO_MATCH = 1; - private static final int ZZ_PUSHBACK_2BIG = 2; - private static final char[] EMPTY_BUFFER = new char[0]; - private static final int YYEOF = -1; - private static java.io.Reader zzReader = null; // Fake - - /* error messages for the codes above */ - private static final String ZZ_ERROR_MSG[] = { - "Unkown internal scanner error", - "Error: could not match input", - "Error: pushback value was too large" - }; - - /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState - */ - 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\7\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[41]; - int offset = 0; - offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); - return result; - } - - private static int zzUnpackAttribute(String packed, int offset, int [] result) { - int i = 0; /* index in packed string */ - int j = offset; /* index in unpacked array */ - int l = packed.length(); - while (i < l) { - int count = packed.charAt(i++); - int value = packed.charAt(i++); - do result[j++] = value; while (--count > 0); - } - return j; - } - - /** the current state of the DFA */ - private int zzState; - - /** the current lexical state */ - private int zzLexicalState = YYINITIAL; - - /** this buffer contains the current text to be matched and is - the source of the yytext() string */ - private CharSequence zzBuffer = ""; - - /** this buffer may contains the current text array to be matched when it is cheap to acquire it */ - private char[] zzBufferArray; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the textposition at the last state to be included in yytext */ - private int zzPushbackPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /** denotes if the user-EOF-code has already been executed */ - private boolean zzEOFDone; - - /* user code: */ - private boolean myJdk15Enabled; - private DocCommentTokenTypes myTokenTypes; - - public _JavaDocLexer(boolean isJdk15Enabled, DocCommentTokenTypes tokenTypes) { - this((java.io.Reader)null); - myJdk15Enabled = isJdk15Enabled; - myTokenTypes = tokenTypes; - } - - public boolean checkAhead(char c) { - if (zzMarkedPos >= zzBuffer.length()) return false; - return zzBuffer.charAt(zzMarkedPos) == c; - } - - public void goTo(int offset) { - zzCurrentPos = zzMarkedPos = zzStartRead = offset; - zzPushbackPos = 0; - zzAtEOF = offset < zzEndRead; - } - - - _JavaDocLexer(java.io.Reader in) { - this.zzReader = in; - } - - /** - * Creates a new scanner. - * There is also java.io.Reader version of this constructor. - * - * @param in the java.io.Inputstream to read input from. - */ - _JavaDocLexer(java.io.InputStream in) { - this(new java.io.InputStreamReader(in)); - } - - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table - */ - private static char [] zzUnpackCMap(String packed) { - char [] map = new char[0x10000]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < 1250) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - @Override - public final int getTokenStart(){ - return zzStartRead; - } - - @Override - public final int getTokenEnd(){ - return getTokenStart() + yylength(); - } - - @Override - public void reset(CharSequence buffer, int start, int end,int initialState){ - zzBuffer = buffer; - zzBufferArray = com.intellij.util.text.CharArrayUtil.fromSequenceWithoutCopying(buffer); - zzCurrentPos = zzMarkedPos = zzStartRead = start; - zzPushbackPos = 0; - zzAtEOF = false; - zzAtBOL = true; - zzEndRead = end; - yybegin(initialState); - } - - /** - * Refills the input buffer. - * - * @return false, iff there was new input. - * - * @exception java.io.IOException if any I/O-Error occurs - */ - private boolean zzRefill() throws java.io.IOException { - return true; - } - - - /** - * Returns the current lexical state. - */ - @Override - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override - public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final CharSequence yytext() { - return zzBuffer.subSequence(zzStartRead, zzMarkedPos); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBufferArray != null ? zzBufferArray[zzStartRead+pos]:zzBuffer.charAt(zzStartRead+pos); - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Contains user EOF-code, which will be executed exactly once, - * when the end of file is reached - */ - private void zzDoEOF() { - if (!zzEOFDone) { - zzEOFDone = true; - - } - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - @Override - public IElementType advance() throws java.io.IOException { - int zzInput; - int zzAction; - - // cached fields: - int zzCurrentPosL; - int zzMarkedPosL; - int zzEndReadL = zzEndRead; - CharSequence zzBufferL = zzBuffer; - char[] zzBufferArrayL = zzBufferArray; - char [] zzCMapL = ZZ_CMAP; - - int [] zzTransL = ZZ_TRANS; - int [] zzRowMapL = ZZ_ROWMAP; - int [] zzAttrL = ZZ_ATTRIBUTE; - - while (true) { - zzMarkedPosL = zzMarkedPos; - - zzAction = -1; - - zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; - - zzState = zzLexicalState; - - - zzForAction: { - while (true) { - - if (zzCurrentPosL < zzEndReadL) - zzInput = zzBufferArrayL != null ? zzBufferArrayL[zzCurrentPosL++]:zzBufferL.charAt(zzCurrentPosL++); - else if (zzAtEOF) { - zzInput = YYEOF; - break zzForAction; - } - else { - // store back cached positions - zzCurrentPos = zzCurrentPosL; - zzMarkedPos = zzMarkedPosL; - boolean eof = zzRefill(); - // get translated positions and possibly new buffer - zzCurrentPosL = zzCurrentPos; - zzMarkedPosL = zzMarkedPos; - zzBufferL = zzBuffer; - zzEndReadL = zzEndRead; - if (eof) { - zzInput = YYEOF; - break zzForAction; - } - else { - zzInput = zzBufferArrayL != null ? zzBufferArrayL[zzCurrentPosL++]:zzBufferL.charAt(zzCurrentPosL++); - } - } - int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ]; - if (zzNext == -1) break zzForAction; - zzState = zzNext; - - int zzAttributes = zzAttrL[zzState]; - if ( (zzAttributes & 1) == 1 ) { - zzAction = zzState; - zzMarkedPosL = zzCurrentPosL; - if ( (zzAttributes & 8) == 8 ) break zzForAction; - } - - } - } - - // store back cached position - zzMarkedPos = zzMarkedPosL; - - switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 12: - { return myTokenTypes.tagValueSharp(); - } - case 21: break; - case 16: - { yybegin(COMMENT_DATA); return myTokenTypes.tagValueGT(); - } - case 22: break; - case 3: - { return myTokenTypes.space(); - } - case 23: break; - case 6: - { return myTokenTypes.commentData(); - } - case 24: break; - case 7: - { if (checkAhead('<') || checkAhead('\"')) yybegin(COMMENT_DATA); - else if (checkAhead('\u007b') ) yybegin(COMMENT_DATA); //lbrace - there's some error in JLex when typing lbrace directly - else yybegin(DOC_TAG_VALUE); - - return myTokenTypes.space(); - } - case 25: break; - case 4: - { if (checkAhead('@')){ - yybegin(INLINE_TAG_NAME); - return myTokenTypes.inlineTagStart(); - } - else{ - yybegin(COMMENT_DATA); - return myTokenTypes.inlineTagStart(); - } - } - case 26: break; - case 5: - { yybegin(COMMENT_DATA); return myTokenTypes.inlineTagEnd(); - } - case 27: break; - case 19: - { yybegin(COMMENT_DATA_START); return myTokenTypes.commentStart(); - } - case 28: break; - case 8: - { yybegin(DOC_TAG_VALUE); return myTokenTypes.space(); - } - case 29: break; - case 14: - { if (myJdk15Enabled) {yybegin(DOC_TAG_VALUE_IN_LTGT); return myTokenTypes.tagValueLT();} else { yybegin(COMMENT_DATA); return myTokenTypes.commentData(); } - } - case 30: break; - case 10: - { return myTokenTypes.tagValueToken(); - } - case 31: break; - case 18: - { yybegin(TAG_DOC_SPACE); return myTokenTypes.tagName(); - } - case 32: break; - case 9: - { yybegin(COMMENT_DATA); return myTokenTypes.space(); - } - case 33: break; - case 20: - { yybegin(PARAM_TAG_SPACE); return myTokenTypes.tagName(); - } - case 34: break; - case 1: - { return myTokenTypes.badCharacter(); - } - case 35: break; - case 15: - { yybegin(DOC_TAG_VALUE); return myTokenTypes.tagValueRParen(); - } - case 36: break; - case 11: - { yybegin(DOC_TAG_VALUE_IN_PAREN); return myTokenTypes.tagValueLParen(); - } - case 37: break; - case 13: - { return myTokenTypes.tagValueComma(); - } - case 38: break; - case 2: - { yybegin(COMMENT_DATA); return myTokenTypes.commentData(); - } - case 39: break; - case 17: - { return myTokenTypes.commentEnd(); - } - case 40: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - zzDoEOF(); - return null; - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - -}