1.1 --- a/src/share/classes/com/sun/tools/javac/parser/Token.java Thu Jul 24 11:12:41 2008 +0100 1.2 +++ b/src/share/classes/com/sun/tools/javac/parser/Token.java Thu Jul 24 19:06:57 2008 +0100 1.3 @@ -25,6 +25,9 @@ 1.4 1.5 package com.sun.tools.javac.parser; 1.6 1.7 +import java.util.ResourceBundle; 1.8 + 1.9 +import com.sun.tools.javac.api.Formattable; 1.10 1.11 /** An interface that defines codes for Java source tokens 1.12 * returned from lexical analysis. 1.13 @@ -34,7 +37,7 @@ 1.14 * This code and its internal interfaces are subject to change or 1.15 * deletion without notice.</b> 1.16 */ 1.17 -public enum Token { 1.18 +public enum Token implements Formattable { 1.19 EOF, 1.20 ERROR, 1.21 IDENTIFIER, 1.22 @@ -155,4 +158,41 @@ 1.23 } 1.24 1.25 public final String name; 1.26 + 1.27 + public String toString() { 1.28 + switch (this) { 1.29 + case IDENTIFIER: 1.30 + return "token.identifier"; 1.31 + case CHARLITERAL: 1.32 + return "token.character"; 1.33 + case STRINGLITERAL: 1.34 + return "token.string"; 1.35 + case INTLITERAL: 1.36 + return "token.integer"; 1.37 + case LONGLITERAL: 1.38 + return "token.long-integer"; 1.39 + case FLOATLITERAL: 1.40 + return "token.float"; 1.41 + case DOUBLELITERAL: 1.42 + return "token.double"; 1.43 + case ERROR: 1.44 + return "token.bad-symbol"; 1.45 + case EOF: 1.46 + return "token.end-of-input"; 1.47 + case DOT: case COMMA: case SEMI: case LPAREN: case RPAREN: 1.48 + case LBRACKET: case RBRACKET: case LBRACE: case RBRACE: 1.49 + return "'" + name + "'"; 1.50 + default: 1.51 + return name; 1.52 + } 1.53 + } 1.54 + 1.55 + public String getKind() { 1.56 + return "Token"; 1.57 + } 1.58 + 1.59 + public String toString(ResourceBundle bundle) { 1.60 + String s = toString(); 1.61 + return s.startsWith("token.") ? bundle.getString("compiler.misc." + s) : s; 1.62 + } 1.63 }