blob: d1113a5dbb84fde899a8a5aef5bdcbe027bc7693 [file] [log] [blame]
/*
* Copyright (C) 2013 The Android Open Source Project
*
* 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
*
* http://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 com.android.jill.backend.jayce;
import javax.annotation.CheckForNull;
/**
* Tokens of Jayce.
*/
public enum Token {
EOF(null),
DOUBLE_QUOTE("\""),
LPARENTHESIS("("),
RPARENTHESIS(")"),
SHARP("#"),
LBRACKET("["),
RBRACKET("]"),
LCURLY_ADD("{+"),
LCURLY_REMOVE("{-"),
RCURLY("}"),
NULL("null"),
NUMBER_VALUE(null),
STRING_VALUE(null),
ABSENT_ARRAY_DIMENSION("absent-array-dimension"),
ADD_OPERATION("+"),
ALLOC("alloc"),
AND_OPERATION("&&"),
ANNOTATION("annotation-literal"),
ANNOTATION_METHOD("annotation-method"),
ANNOTATION_TYPE("annotation"),
ARRAY_LENGTH("array-length"),
ARRAY_LITERAL("array-literal"),
ARRAY_REF("array-ref"),
ASG_ADD_OPERATION("+="),
ASG_BIT_AND_OPERATION("&="),
ASG_BIT_OR_OPERATION("|="),
ASG_BIT_XOR_OPERATION("^="),
ASG_CONCAT_OPERATION("asg-concat"),
ASG_DIV_OPERATION("/="),
ASG_MOD_OPERATION("%="),
ASG_MUL_OPERATION("*="),
ASG_OPERATION("="),
ASG_SHL_OPERATION("<<="),
ASG_SHR_OPERATION(">>="),
ASG_SHRU_OPERATION(">>>="),
ASG_SUB_OPERATION("-="),
ASSERT_STATEMENT("assert"),
BIT_AND_OPERATION("&"),
BIT_OR_OPERATION("|"),
BIT_XOR_OPERATION("^"),
BLOCK("block"),
BOOLEAN_LITERAL("boolean"),
BREAK_STATEMENT("break"),
BYTE_LITERAL("byte"),
CASE_STATEMENT("case"),
CATCH_BLOCK("catch"),
CHAR_LITERAL("char"),
CLASS("class"),
CLASS_LITERAL("class-literal"),
CONCAT_OPERATION("concat"),
CONDITIONAL_EXPRESSION ("?"),
CONSTRUCTOR ("constructor"),
CONTINUE_STATEMENT("continue"),
DIV_OPERATION("/"),
DO_STATEMENT("do"),
DOUBLE_LITERAL("double"),
DYNAMIC_CAST_OPERATION("cast"),
ENUM("enum"),
ENUM_FIELD("enum-field"),
ENUM_LITERAL("enum-literal"),
EQ_OPERATION("=="),
EXCEPTION_RUNTIME_VALUE("ex-runtime-value"),
EXPRESSION_STATEMENT("expression-statement"),
FIELD("field"),
FIELD_INITIALIZER("field-intializer"),
FIELD_REF("field-ref"),
FLOAT_LITERAL("float"),
FOR_STATEMENT("for"),
GENERIC_SIGNATURE("generic-signature"),
GOTO("goto"),
GTE_OPERATION(">="),
GT_OPERATION(">"),
IF_STATEMENT("if"),
INSTANCE_OF("instanceof"),
INT_LITERAL("int"),
INTERFACE("interface"),
LABELED_STATEMENT("label"),
LOCAL("local"),
LOCAL_REF("local-ref"),
LOCK("lock"),
LONG_LITERAL("long"),
LTE_OPERATION("<="),
LT_OPERATION("<"),
METHOD("method"),
METHOD_BODY("body"),
METHOD_CALL("call"),
METHOD_LITERAL("method-literal"),
MOD_OPERATION("%"),
MUL_OPERATION("*"),
MULTI_EXPRESSION("multi-expression"),
NAME_VALUE_PAIR("name-value-pair"),
NEQ_OPERATION("!="),
NATIVE_METHOD_BODY("native-body"),
NEW_ARRAY("new-array"),
NEW_INSTANCE("new"),
NULL_LITERAL("null-literal"),
OR_OPERATION("||"),
PARAMETER("parameter"),
PARAMETER_REF("parameter-ref"),
POSTFIX_DEC_OPERATION("postfix-dec"),
POSTFIX_INC_OPERATION("postfix-inc"),
PREFIX_BIT_NOT_OPERATION("~"),
PREFIX_DEC_OPERATION("prefix-dec"),
PREFIX_INC_OPERATION("prefix-inc"),
PREFIX_NEG_OPERATION("neg"),
PREFIX_NOT_OPERATION("not"),
RESERVED("reserved"),
REINTERPRETCAST_OPERATION("reinterpret-cast"),
RETURN_STATEMENT("return"),
SHL_OPERATION("<<"),
SHORT_LITERAL("short"),
SHR_OPERATION(">>"),
SHRU_OPERATION(">>>"),
SIMPLE_NAME("simple-name"),
SUB_OPERATION("-"),
STRING_LITERAL("string"),
SWITCH_STATEMENT("switch"),
SYNCHRONIZED_BLOCK("synchronized-block"),
THIS_REF("this"),
THIS_REF_TYPE_INFO("this-type-info"),
THROW_STATEMENT("throw"),
THROWN_EXCEPTION("thrown-exception"),
TRY_STATEMENT("try"),
UNLOCK("unlock"),
WHILE_STATEMENT("while")
;
@CheckForNull
private String label;
private Token(@CheckForNull String text) {
this.label = text;
}
public int getId() {
return ordinal();
}
@CheckForNull
public String getText() {
return label;
}
}