/*
 * Symbol.java  
 *
 * Copyright 2001
 * College of Computer Science
 * Northeastern University
 * Boston, MA  02115
 *
 * This software may be used for educational purposes as long as
 * this copyright notice is retained intact at the top of all files.
 *
 * Should this software be modified, the words "Modified from 
 * Original" must be included as a comment below this notice.
 *
 * All publication rights are retained.  This software or its 
 * documentation may not be published in any media either in whole
 * or in part without explicit permission.
 *
 * Contact information:
 *   Richard Rasala    rasala@ccs.neu.edu
 *   Viera Proulx      vkp@ccs.neu.edu
 *   Jeff Raab         jmr@ccs.neu.edu
 *   Jennifer McDonald jenimac@ccs.neu.edu
 * 
 * Telephone:          617-373-2462
 *
 * This software was created with support from Northeastern 
 * University and from NSF grant DUE-9950829.
 */
import edu.neu.ccs.*;
import java.text.ParseException;

public class Symbol implements Stringable {

	char symbol;
	
	public Symbol() {
		symbol = 'E';
	}

	public Symbol(String data) 
				  throws ParseException{
		fromStringData(data);	
	}
	
	public Symbol(char c) {
		symbol = c;
	}
	
	public Symbol(Symbol s) {
		symbol = s.value();
	}
	
	public void fromStringData(String data) {
		symbol = data.charAt(0);
	}
	
	public String toStringData() {
		return String.valueOf(symbol);
	}
	
	public char value() {
		return symbol;
	}

	public boolean is(Symbol s) {
		return (symbol == s.value());
	}
	
	public static Symbol epsilon() {
		return new Symbol('E');
	}
}
