TokenType.java
/*
* Copyright 2017-2022 original authors
*
* 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
*
* https://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 io.micronaut.expressions.parser.token;
import io.micronaut.core.annotation.Internal;
/**
* List of supported token types.
*
* @author Sergey Gavrilov
* @since 4.0.0
*/
@Internal
public enum TokenType {
WHITESPACE,
IDENTIFIER,
BEAN_CONTEXT,
ENVIRONMENT,
THIS,
TYPE_IDENTIFIER,
EXPRESSION_CONTEXT_REF,
DOT,
SAFE_NAV,
ELVIS,
COMMA,
COLON,
L_PAREN,
R_PAREN,
L_CURLY,
R_CURLY,
L_SQUARE,
R_SQUARE,
QMARK,
NOT,
// MATH OPERATORS
POW,
PLUS,
MINUS,
MUL,
DIV,
MOD,
INCREMENT,
DECREMENT,
// LITERALS
DOUBLE,
FLOAT,
INT,
LONG,
STRING,
BOOL,
NULL,
// LOGICAL OPERATORS
OR,
AND,
// RELATIONAL OPERATORS
EQ,
NE,
GT,
GTE,
LT,
LTE,
INSTANCEOF,
MATCHES,
EMPTY;
public boolean isOneOf(TokenType... others) {
for (TokenType comparedType: others) {
if (comparedType == this) {
return true;
}
}
return false;
}
}