mirror of
https://github.com/apple/pkl.git
synced 2026-08-06 20:28:41 +02:00
Use EnumSet internal for Token type checks (#1803)
This commit is contained in:
@@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.pkl.parser;
|
package org.pkl.parser;
|
||||||
|
|
||||||
|
import java.util.EnumSet;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
public enum Token {
|
public enum Token {
|
||||||
@@ -135,16 +136,16 @@ public enum Token {
|
|||||||
STRING_END,
|
STRING_END,
|
||||||
STRING_PART;
|
STRING_PART;
|
||||||
|
|
||||||
|
private static final EnumSet<Token> modifiers =
|
||||||
|
EnumSet.of(EXTERNAL, ABSTRACT, OPEN, LOCAL, HIDDEN, FIXED, CONST);
|
||||||
|
|
||||||
public boolean isModifier() {
|
public boolean isModifier() {
|
||||||
return switch (this) {
|
return modifiers.contains(this);
|
||||||
case EXTERNAL, ABSTRACT, OPEN, LOCAL, HIDDEN, FIXED, CONST -> true;
|
|
||||||
default -> false;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isKeyword() {
|
private static final EnumSet<Token> keywords =
|
||||||
return switch (this) {
|
EnumSet.of(
|
||||||
case ABSTRACT,
|
ABSTRACT,
|
||||||
AMENDS,
|
AMENDS,
|
||||||
AS,
|
AS,
|
||||||
CLASS,
|
CLASS,
|
||||||
@@ -189,46 +190,25 @@ public enum Token {
|
|||||||
DELETE,
|
DELETE,
|
||||||
CASE,
|
CASE,
|
||||||
SWITCH,
|
SWITCH,
|
||||||
VARARG ->
|
VARARG);
|
||||||
true;
|
|
||||||
default -> false;
|
public boolean isKeyword() {
|
||||||
};
|
return keywords.contains(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static final EnumSet<Token> operators =
|
||||||
|
EnumSet.of(
|
||||||
|
POW, STAR, DIV, INT_DIV, MOD, PLUS, MINUS, GT, GTE, LT, LTE, IS, AS, EQUAL, NOT_EQUAL,
|
||||||
|
AND, OR, PIPE, COALESCE, DOT, QDOT, LBRACK);
|
||||||
|
|
||||||
public boolean isOperator() {
|
public boolean isOperator() {
|
||||||
return switch (this) {
|
return operators.contains(this);
|
||||||
case POW,
|
|
||||||
STAR,
|
|
||||||
DIV,
|
|
||||||
INT_DIV,
|
|
||||||
MOD,
|
|
||||||
PLUS,
|
|
||||||
MINUS,
|
|
||||||
GT,
|
|
||||||
GTE,
|
|
||||||
LT,
|
|
||||||
LTE,
|
|
||||||
IS,
|
|
||||||
AS,
|
|
||||||
EQUAL,
|
|
||||||
NOT_EQUAL,
|
|
||||||
AND,
|
|
||||||
OR,
|
|
||||||
PIPE,
|
|
||||||
COALESCE,
|
|
||||||
DOT,
|
|
||||||
QDOT,
|
|
||||||
LBRACK ->
|
|
||||||
true;
|
|
||||||
default -> false;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static final EnumSet<Token> affixes = EnumSet.of(LINE_COMMENT, BLOCK_COMMENT, SEMICOLON);
|
||||||
|
|
||||||
public boolean isAffix() {
|
public boolean isAffix() {
|
||||||
return switch (this) {
|
return affixes.contains(this);
|
||||||
case LINE_COMMENT, BLOCK_COMMENT, SEMICOLON -> true;
|
|
||||||
default -> false;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String text() {
|
public String text() {
|
||||||
|
|||||||
Reference in New Issue
Block a user