/**
 * LOGICAL-PARADOX.ORG
 * Copyright (C)2004 satoshi akabane(akabane@logical-paradox.org)
 *
 */
package org.logical_paradox.kinako.logic.parser;

import org.logical_paradox.common.fsm.Symbol;

/**
 * 入力記号
 * @author satoshi akabane@logical-paradox.org
 * @version $Revision: 1.1 $
 */
public class CharacterSymbol implements Symbol {
	/** 記号 */
	private char symbol;
	/** 入力記号の文字列表現 */
	private final String symbolString;
	/**
	 * コンストラクタ
	 * @param c 記号
	 */
	public CharacterSymbol(char c) {
		symbol = c;
		symbolString = "" + c;
	}
	/**
	 * 比較メソッド
	 * 必ず実装しなければならない
	 * @param o 比較対象
	 * @return true:おなじ / false:違う
	 */
	public boolean equals(Object o) {
		if(o == null || o instanceof CharacterSymbol == false) {
			return false;
		}
		return symbol == ((CharacterSymbol)o).symbol;
	}
	/**
	 * 入力記号を文字列に変換して返す
	 * @return 文字列
	 */
	public String toString() {
		return symbolString;
	}
}
