Java 8: 'none' isn't a keyword yet

This commit is contained in:
Roman Shevchenko
2012-05-14 13:43:15 +04:00
parent c583fbbeb6
commit 70470e66f7
6 changed files with 517 additions and 536 deletions
@@ -30,7 +30,6 @@ import java.util.Set;
public class JavaLexer extends LexerBase {
private static final HashTable[] TABLES = new HashTable[]{
new HashTable(LanguageLevel.JDK_1_8),
new HashTable(LanguageLevel.JDK_1_5),
new HashTable(LanguageLevel.JDK_1_4),
new HashTable(LanguageLevel.JDK_1_3)
@@ -118,9 +117,6 @@ public class JavaLexer extends LexerBase {
add("assert", JavaTokenType.ASSERT_KEYWORD);
if (level.isAtLeast(LanguageLevel.JDK_1_5)) {
add("enum", JavaTokenType.ENUM_KEYWORD);
if (level.isAtLeast(LanguageLevel.JDK_1_8)) {
add("none", JavaTokenType.NONE_KEYWORD);
}
}
}
add("abstract", JavaTokenType.ABSTRACT_KEYWORD);
@@ -12,13 +12,11 @@ import com.intellij.psi.tree.IElementType;
%{
private boolean myAssertKeyword;
private boolean myEnumKeyword;
private boolean myNoneKeyword;
public _JavaLexer(LanguageLevel level) {
this((java.io.Reader)null);
myAssertKeyword = level.isAtLeast(LanguageLevel.JDK_1_4);
myEnumKeyword = level.isAtLeast(LanguageLevel.JDK_1_5);
myNoneKeyword = level.isAtLeast(LanguageLevel.JDK_1_8);
}
public void goTo(int offset) {
@@ -154,7 +152,6 @@ ESCAPE_SEQUENCE=\\[^\r\n]
<YYINITIAL> "try" { return JavaTokenType.TRY_KEYWORD; }
<YYINITIAL> "volatile" { return JavaTokenType.VOLATILE_KEYWORD; }
<YYINITIAL> "throws" { return JavaTokenType.THROWS_KEYWORD; }
<YYINITIAL> "none" { return myNoneKeyword ? JavaTokenType.NONE_KEYWORD : JavaTokenType.IDENTIFIER; }
<YYINITIAL> {IDENTIFIER} { return JavaTokenType.IDENTIFIER; }
File diff suppressed because it is too large Load Diff
@@ -38,7 +38,7 @@ public interface ElementType extends JavaTokenType, JavaDocTokenType,
INT_KEYWORD, INTERFACE_KEYWORD, LONG_KEYWORD, NATIVE_KEYWORD, NEW_KEYWORD, PACKAGE_KEYWORD, PRIVATE_KEYWORD, PUBLIC_KEYWORD,
SHORT_KEYWORD, SUPER_KEYWORD, SWITCH_KEYWORD, STRICTFP_KEYWORD, SYNCHRONIZED_KEYWORD, THIS_KEYWORD, THROW_KEYWORD, PROTECTED_KEYWORD,
TRANSIENT_KEYWORD, RETURN_KEYWORD, VOID_KEYWORD, STATIC_KEYWORD, WHILE_KEYWORD, TRY_KEYWORD, VOLATILE_KEYWORD, THROWS_KEYWORD,
ENUM_KEYWORD, NONE_KEYWORD);
ENUM_KEYWORD);
TokenSet OPERATION_BIT_SET = TokenSet.create(
EQ, GT, LT, EXCL, TILDE, QUEST, COLON, PLUS, MINUS, ASTERISK, DIV, AND, OR, XOR,