langtools/src/share/classes/com/sun/tools/javac/parser/Token.java
changeset 939 38e24969c7e9
parent 10 06bc494ca11e
child 1264 076a3cde30d5
equal deleted inserted replaced
938:13aae74ca013 939:38e24969c7e9
    23  * have any questions.
    23  * have any questions.
    24  */
    24  */
    25 
    25 
    26 package com.sun.tools.javac.parser;
    26 package com.sun.tools.javac.parser;
    27 
    27 
       
    28 import java.util.ResourceBundle;
       
    29 
       
    30 import com.sun.tools.javac.api.Formattable;
    28 
    31 
    29 /** An interface that defines codes for Java source tokens
    32 /** An interface that defines codes for Java source tokens
    30  *  returned from lexical analysis.
    33  *  returned from lexical analysis.
    31  *
    34  *
    32  *  <p><b>This is NOT part of any API supported by Sun Microsystems.  If
    35  *  <p><b>This is NOT part of any API supported by Sun Microsystems.  If
    33  *  you write code that depends on this, you do so at your own risk.
    36  *  you write code that depends on this, you do so at your own risk.
    34  *  This code and its internal interfaces are subject to change or
    37  *  This code and its internal interfaces are subject to change or
    35  *  deletion without notice.</b>
    38  *  deletion without notice.</b>
    36  */
    39  */
    37 public enum Token {
    40 public enum Token implements Formattable {
    38     EOF,
    41     EOF,
    39     ERROR,
    42     ERROR,
    40     IDENTIFIER,
    43     IDENTIFIER,
    41     ABSTRACT("abstract"),
    44     ABSTRACT("abstract"),
    42     ASSERT("assert"),
    45     ASSERT("assert"),
   153     Token(String name) {
   156     Token(String name) {
   154         this.name = name;
   157         this.name = name;
   155     }
   158     }
   156 
   159 
   157     public final String name;
   160     public final String name;
       
   161 
       
   162     public String toString() {
       
   163         switch (this) {
       
   164         case IDENTIFIER:
       
   165             return "token.identifier";
       
   166         case CHARLITERAL:
       
   167             return "token.character";
       
   168         case STRINGLITERAL:
       
   169             return "token.string";
       
   170         case INTLITERAL:
       
   171             return "token.integer";
       
   172         case LONGLITERAL:
       
   173             return "token.long-integer";
       
   174         case FLOATLITERAL:
       
   175             return "token.float";
       
   176         case DOUBLELITERAL:
       
   177             return "token.double";
       
   178         case ERROR:
       
   179             return "token.bad-symbol";
       
   180         case EOF:
       
   181             return "token.end-of-input";
       
   182         case DOT: case COMMA: case SEMI: case LPAREN: case RPAREN:
       
   183         case LBRACKET: case RBRACKET: case LBRACE: case RBRACE:
       
   184             return "'" + name + "'";
       
   185         default:
       
   186             return name;
       
   187         }
       
   188     }
       
   189 
       
   190     public String getKind() {
       
   191         return "Token";
       
   192     }
       
   193 
       
   194     public String toString(ResourceBundle bundle) {
       
   195         String s = toString();
       
   196         return s.startsWith("token.") ? bundle.getString("compiler.misc." + s) : s;
       
   197     }
   158 }
   198 }