package easyio;
import java.io.*;
import java.util.*;

public class EasyReader {
    private StreamTokenizer myTokenizer;
    private Reader myReader;	// keep around to close the file
    private String myFileName;

  
    public EasyReader(String filename) {
	myFileName = filename;
	initialize();
    }
 
    public boolean EOF( ) {
	if (myTokenizer == null || myTokenizer.ttype == StreamTokenizer.TT_EOF)
	    return true;
	else
	    return false;
    }
    
    public void advance( ) {
	try {
	    int code = myTokenizer.nextToken();    
	}catch (Exception e) {
	    System.err.println(e);
	}
    }
    
    public void close( ) {
	try {
	    if (myReader != null)
		myReader.close();
	} catch (Exception e) {
	    System.err.println(e);
	}
	myReader = null;
	myTokenizer = null;
    }
   
    public Double getDouble( ) {
	Double returnValue = null;
	if (myTokenizer != null && myTokenizer.ttype == StreamTokenizer.TT_NUMBER)
	    returnValue = new Double(myTokenizer.nval);
	advance();
	return returnValue;
    }
        
    public String getFilename( ) {
	return myFileName;
    }
    
    public Integer getInteger( ){
	Double d = getDouble();
	if (d == null)
	    return null;
	return new Integer(d.intValue());
    }
    
    public String getString( ) {
	String returnValue = null;
	if (myTokenizer != null && myTokenizer.ttype == StreamTokenizer.TT_WORD)
	    returnValue = myTokenizer.sval; 
	advance();   
	return returnValue;
    }   
    
    public Object getToken( ) {
	Object returnValue = null;
	if (myTokenizer != null && myTokenizer.ttype == StreamTokenizer.TT_WORD)
	    returnValue = myTokenizer.sval;
	else if (myTokenizer != null && myTokenizer.ttype == StreamTokenizer.TT_NUMBER)
	    returnValue = new Double(myTokenizer.nval);
	advance();
	return returnValue;
    }
    
    private void initialize( ) {
	try {
	    myReader = new BufferedReader(new FileReader(myFileName));
	    myTokenizer = new StreamTokenizer(myReader);
	    advance();
	} catch (Exception e) {
	    System.err.println(e);
	    myReader = null;
	    myTokenizer = null;
	}
    }

}

