diff options
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.java | 239 |
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); + } + } +} |