| /* |
| * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. |
| * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
| * |
| * This code is free software; you can redistribute it and/or modify it |
| * under the terms of the GNU General Public License version 2 only, as |
| * published by the Free Software Foundation. Sun designates this |
| * particular file as subject to the "Classpath" exception as provided |
| * by Sun in the LICENSE file that accompanied this code. |
| * |
| * This code is distributed in the hope that it will be useful, but WITHOUT |
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| * version 2 for more details (a copy is included in the LICENSE file that |
| * accompanied this code). |
| * |
| * You should have received a copy of the GNU General Public License version |
| * 2 along with this work; if not, write to the Free Software Foundation, |
| * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
| * |
| * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, |
| * CA 95054 USA or visit www.sun.com if you need additional information or |
| * have any questions. |
| */ |
| |
| package com.sun.tools.javac.parser; |
| |
| import java.util.ResourceBundle; |
| |
| import com.sun.tools.javac.api.Formattable; |
| |
| /** An interface that defines codes for Java source tokens |
| * returned from lexical analysis. |
| * |
| * <p><b>This is NOT part of any API supported by Sun Microsystems. If |
| * you write code that depends on this, you do so at your own risk. |
| * This code and its internal interfaces are subject to change or |
| * deletion without notice.</b> |
| */ |
| public enum Token implements Formattable { |
| EOF, |
| ERROR, |
| IDENTIFIER, |
| ABSTRACT("abstract"), |
| ASSERT("assert"), |
| BOOLEAN("boolean"), |
| BREAK("break"), |
| BYTE("byte"), |
| CASE("case"), |
| CATCH("catch"), |
| CHAR("char"), |
| CLASS("class"), |
| CONST("const"), |
| CONTINUE("continue"), |
| DEFAULT("default"), |
| DO("do"), |
| DOUBLE("double"), |
| ELSE("else"), |
| ENUM("enum"), |
| EXTENDS("extends"), |
| FINAL("final"), |
| FINALLY("finally"), |
| FLOAT("float"), |
| FOR("for"), |
| GOTO("goto"), |
| IF("if"), |
| IMPLEMENTS("implements"), |
| IMPORT("import"), |
| INSTANCEOF("instanceof"), |
| INT("int"), |
| INTERFACE("interface"), |
| LONG("long"), |
| NATIVE("native"), |
| NEW("new"), |
| PACKAGE("package"), |
| PRIVATE("private"), |
| PROTECTED("protected"), |
| PUBLIC("public"), |
| RETURN("return"), |
| SHORT("short"), |
| STATIC("static"), |
| STRICTFP("strictfp"), |
| SUPER("super"), |
| SWITCH("switch"), |
| SYNCHRONIZED("synchronized"), |
| THIS("this"), |
| THROW("throw"), |
| THROWS("throws"), |
| TRANSIENT("transient"), |
| TRY("try"), |
| VOID("void"), |
| VOLATILE("volatile"), |
| WHILE("while"), |
| INTLITERAL, |
| LONGLITERAL, |
| FLOATLITERAL, |
| DOUBLELITERAL, |
| CHARLITERAL, |
| STRINGLITERAL, |
| TRUE("true"), |
| FALSE("false"), |
| NULL("null"), |
| LPAREN("("), |
| RPAREN(")"), |
| LBRACE("{"), |
| RBRACE("}"), |
| LBRACKET("["), |
| RBRACKET("]"), |
| SEMI(";"), |
| COMMA(","), |
| DOT("."), |
| ELLIPSIS("..."), |
| EQ("="), |
| GT(">"), |
| LT("<"), |
| BANG("!"), |
| TILDE("~"), |
| QUES("?"), |
| COLON(":"), |
| EQEQ("=="), |
| LTEQ("<="), |
| GTEQ(">="), |
| BANGEQ("!="), |
| AMPAMP("&&"), |
| BARBAR("||"), |
| PLUSPLUS("++"), |
| SUBSUB("--"), |
| PLUS("+"), |
| SUB("-"), |
| STAR("*"), |
| SLASH("/"), |
| AMP("&"), |
| BAR("|"), |
| CARET("^"), |
| PERCENT("%"), |
| LTLT("<<"), |
| GTGT(">>"), |
| GTGTGT(">>>"), |
| PLUSEQ("+="), |
| SUBEQ("-="), |
| STAREQ("*="), |
| SLASHEQ("/="), |
| AMPEQ("&="), |
| BAREQ("|="), |
| CARETEQ("^="), |
| PERCENTEQ("%="), |
| LTLTEQ("<<="), |
| GTGTEQ(">>="), |
| GTGTGTEQ(">>>="), |
| MONKEYS_AT("@"), |
| CUSTOM; |
| |
| Token() { |
| this(null); |
| } |
| Token(String name) { |
| this.name = name; |
| } |
| |
| public final String name; |
| |
| public String toString() { |
| switch (this) { |
| case IDENTIFIER: |
| return "token.identifier"; |
| case CHARLITERAL: |
| return "token.character"; |
| case STRINGLITERAL: |
| return "token.string"; |
| case INTLITERAL: |
| return "token.integer"; |
| case LONGLITERAL: |
| return "token.long-integer"; |
| case FLOATLITERAL: |
| return "token.float"; |
| case DOUBLELITERAL: |
| return "token.double"; |
| case ERROR: |
| return "token.bad-symbol"; |
| case EOF: |
| return "token.end-of-input"; |
| case DOT: case COMMA: case SEMI: case LPAREN: case RPAREN: |
| case LBRACKET: case RBRACKET: case LBRACE: case RBRACE: |
| return "'" + name + "'"; |
| default: |
| return name; |
| } |
| } |
| |
| public String getKind() { |
| return "Token"; |
| } |
| |
| public String toString(ResourceBundle bundle) { |
| String s = toString(); |
| return s.startsWith("token.") ? bundle.getString("compiler.misc." + s) : s; |
| } |
| } |