aboutsummaryrefslogtreecommitdiffstats
path: root/javaparser-core/src/main/java/com/github/javaparser/TokenTypes.java
diff options
context:
space:
mode:
Diffstat (limited to 'javaparser-core/src/main/java/com/github/javaparser/TokenTypes.java')
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/TokenTypes.java239
1 files changed, 239 insertions, 0 deletions
diff --git a/javaparser-core/src/main/java/com/github/javaparser/TokenTypes.java b/javaparser-core/src/main/java/com/github/javaparser/TokenTypes.java
new file mode 100644
index 000000000..8b90aa755
--- /dev/null
+++ b/javaparser-core/src/main/java/com/github/javaparser/TokenTypes.java
@@ -0,0 +1,239 @@
+package com.github.javaparser;
+
+import static com.github.javaparser.GeneratedJavaParserConstants.*;
+import static com.github.javaparser.utils.Utils.EOL;
+
+/**
+ * Complements GeneratedJavaParserConstants
+ */
+public class TokenTypes {
+ public static boolean isWhitespace(int kind) {
+ return getCategory(kind).isWhitespace();
+ }
+
+ /**
+ * @deprecated use isEndOfLineToken
+ */
+ @Deprecated
+ public static boolean isEndOfLineCharacter(int kind) {
+ return isEndOfLineToken(kind);
+ }
+
+ public static boolean isEndOfLineToken(int kind) {
+ return getCategory(kind).isEndOfLine();
+ }
+
+ public static boolean isWhitespaceOrComment(int kind) {
+ return getCategory(kind).isWhitespaceOrComment();
+ }
+
+ public static boolean isSpaceOrTab(int kind) {
+ return getCategory(kind).isWhitespaceButNotEndOfLine();
+ }
+
+ public static boolean isComment(int kind) {
+ return getCategory(kind).isComment();
+ }
+
+ /**
+ * @deprecated use eolTokenKind
+ */
+ @Deprecated
+ public static int eolToken() {
+ return eolTokenKind();
+ }
+
+ /**
+ * @return the kind of EOL token to use on the platform you're running on.
+ */
+ public static int eolTokenKind() {
+ if (EOL.equals("\n")) {
+ return UNIX_EOL;
+ }
+ if (EOL.equals("\r\n")) {
+ return WINDOWS_EOL;
+ }
+ if (EOL.equals("\r")) {
+ return OLD_MAC_EOL;
+ }
+ throw new AssertionError("Unknown EOL character sequence");
+ }
+
+ /**
+ * @return the token kind for a single space.
+ */
+ public static int spaceTokenKind() {
+ return SPACE;
+ }
+
+ /**
+ * @deprecated use spaceTokenKind
+ */
+ @Deprecated
+ public static int spaceToken() {
+ return spaceTokenKind();
+ }
+
+ /**
+ * Category of a token, a little more detailed than
+ * <a href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-3.5">The JLS</a>.
+ */
+ public static JavaToken.Category getCategory(int kind) {
+ switch (kind) {
+ case WINDOWS_EOL:
+ case UNIX_EOL:
+ case OLD_MAC_EOL:
+ return JavaToken.Category.EOL;
+ case EOF:
+ case SPACE:
+ case CTRL_Z:
+ return JavaToken.Category.WHITESPACE_NO_EOL;
+ case SINGLE_LINE_COMMENT:
+ case JAVADOC_COMMENT:
+ case MULTI_LINE_COMMENT:
+ return JavaToken.Category.COMMENT;
+ case ABSTRACT:
+ case ASSERT:
+ case BOOLEAN:
+ case BREAK:
+ case BYTE:
+ case CASE:
+ case CATCH:
+ case CHAR:
+ case CLASS:
+ case CONST:
+ case CONTINUE:
+ case _DEFAULT:
+ case DO:
+ case DOUBLE:
+ case ELSE:
+ case ENUM:
+ case EXTENDS:
+ case FALSE:
+ case FINAL:
+ case FINALLY:
+ case FLOAT:
+ case FOR:
+ case GOTO:
+ case IF:
+ case IMPLEMENTS:
+ case IMPORT:
+ case INSTANCEOF:
+ case INT:
+ case INTERFACE:
+ case LONG:
+ case NATIVE:
+ case NEW:
+ case NULL:
+ case PACKAGE:
+ case PRIVATE:
+ case PROTECTED:
+ case PUBLIC:
+ case RETURN:
+ case SHORT:
+ case STATIC:
+ case STRICTFP:
+ case SUPER:
+ case SWITCH:
+ case SYNCHRONIZED:
+ case THIS:
+ case THROW:
+ case THROWS:
+ case TRANSIENT:
+ case TRUE:
+ case TRY:
+ case VOID:
+ case VOLATILE:
+ case WHILE:
+ case REQUIRES:
+ case TO:
+ case WITH:
+ case OPEN:
+ case OPENS:
+ case USES:
+ case MODULE:
+ case EXPORTS:
+ case PROVIDES:
+ case TRANSITIVE:
+ return JavaToken.Category.KEYWORD;
+ case LONG_LITERAL:
+ case INTEGER_LITERAL:
+ case DECIMAL_LITERAL:
+ case HEX_LITERAL:
+ case OCTAL_LITERAL:
+ case BINARY_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case DECIMAL_FLOATING_POINT_LITERAL:
+ case DECIMAL_EXPONENT:
+ case HEXADECIMAL_FLOATING_POINT_LITERAL:
+ case HEXADECIMAL_EXPONENT:
+ case CHARACTER_LITERAL:
+ case STRING_LITERAL:
+ return JavaToken.Category.LITERAL;
+ case IDENTIFIER:
+ return JavaToken.Category.IDENTIFIER;
+ case LPAREN:
+ case RPAREN:
+ case LBRACE:
+ case RBRACE:
+ case LBRACKET:
+ case RBRACKET:
+ case SEMICOLON:
+ case COMMA:
+ case DOT:
+ case AT:
+ return JavaToken.Category.SEPARATOR;
+ case ASSIGN:
+ case LT:
+ case BANG:
+ case TILDE:
+ case HOOK:
+ case COLON:
+ case EQ:
+ case LE:
+ case GE:
+ case NE:
+ case SC_OR:
+ case SC_AND:
+ case INCR:
+ case DECR:
+ case PLUS:
+ case MINUS:
+ case STAR:
+ case SLASH:
+ case BIT_AND:
+ case BIT_OR:
+ case XOR:
+ case REM:
+ case LSHIFT:
+ case PLUSASSIGN:
+ case MINUSASSIGN:
+ case STARASSIGN:
+ case SLASHASSIGN:
+ case ANDASSIGN:
+ case ORASSIGN:
+ case XORASSIGN:
+ case REMASSIGN:
+ case LSHIFTASSIGN:
+ case RSIGNEDSHIFTASSIGN:
+ case RUNSIGNEDSHIFTASSIGN:
+ case ELLIPSIS:
+ case ARROW:
+ case DOUBLECOLON:
+ case RUNSIGNEDSHIFT:
+ case RSIGNEDSHIFT:
+ case GT:
+ return JavaToken.Category.OPERATOR;
+ // The following are tokens that are only used internally by the lexer
+ case ENTER_JAVADOC_COMMENT:
+ case ENTER_MULTILINE_COMMENT:
+ case COMMENT_CONTENT:
+ case HEX_DIGITS:
+ case LETTER:
+ case UNICODE_ESCAPE:
+ case PART_LETTER:
+ default:
+ throw new AssertionError("Invalid token kind " + kind);
+ }
+ }
+}