package rebelsky.compiler.lexer;

/**
 * Unsigned integers for a simple tokenizer.
 *
 * @author Samuel A. Rebelsky
 * @version 1.0 of January 2004
 */
public class IntegerToken
  extends Token
{
  // +--------+------------------------------------------------------------
  // | Fields |
  // +--------+

  /** The value of the integer. */
  int value;

  // +--------------+------------------------------------------------------
  // | Constructors |
  // +--------------+

  /** 
   * Create a new integer token with specified value.
   */
  public IntegerToken(int value) {
    super(Token.INTEGER);
    this.value = value;
  } // IntegerToken(int)

  /**
   * Create a new integer by parsing a string.
   *
   * @exception NumberFormatException
   *  If the string cannot be parsed as an integer.
   */
  public IntegerToken(String original) 
    throws NumberFormatException
  {
    super(Token.INTEGER);
    this.value = Integer.parseInt(original);
  } // IntegerToken(String)

 
  // +-----------+---------------------------------------------------------
  // | Observers |
  // +-----------+

  /**
   * Get the value of this integer.
   */
  public int getValue() {
    return this.value;
  } // getValue()

  /**
   * Convert to a string for printing.
   */
  public String toString() {
    return "INT[" + this.value + "]";
  } // toString()

  /**
   * Compare to another integer token.
   */
  public boolean equals(IntegerToken other) {
    return this.value == other.value;
  } // equals(IntegerToken)

} // class IntegerToken

