langtools/src/share/classes/com/sun/tools/javac/parser/Token.java
changeset 939 38e24969c7e9
parent 10 06bc494ca11e
child 1264 076a3cde30d5
--- a/langtools/src/share/classes/com/sun/tools/javac/parser/Token.java	Thu Jul 24 11:12:41 2008 +0100
+++ b/langtools/src/share/classes/com/sun/tools/javac/parser/Token.java	Thu Jul 24 19:06:57 2008 +0100
@@ -25,6 +25,9 @@
 
 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.
@@ -34,7 +37,7 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-public enum Token {
+public enum Token implements Formattable {
     EOF,
     ERROR,
     IDENTIFIER,
@@ -155,4 +158,41 @@
     }
 
     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;
+    }
 }