|
TaxonomyLoader.java
|
// FILE. . . . . /home/hak/hlt/src/hlt/osfv1/io/TaxonomyLoader.java // EDIT BY . . . Hassan Ait-Kaci // ON MACHINE. . Hak-Laptop // STARTED ON. . Mon Sep 02 15:36:47 2013
This class is used to load an encoded taxonomy from a file. It
consists in a simple tokenizer for reading the contents of an encoded
taxonomy that was saved in the specific format defined by the
save method in the osf.exec.Taxonomy class.
|
package hlt.osf.io;
import java.io.IOException;
import java.io.Reader;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.FileNotFoundException;
import hlt.language.util.Span;
import hlt.language.util.Location;
import hlt.language.io.StreamTokenizer;
import hlt.language.io.IO;
import hlt.language.tools.Misc;
// import hlt.language.tools.Debug;
public class TaxonomyLoader
{
private String _file;
private FileReader _reader;
private StreamTokenizer _st;
private int _tokenType;
private int _intValue;
private String _symbolValue;
private int _rank = -1;
private boolean _eof = false;
public final static byte EOF = StreamTokenizer.TT_EOF;
public final static byte EOL = StreamTokenizer.TT_EOL;
public final static byte WORD = StreamTokenizer.TT_WORD;
public final static byte NUMBER = StreamTokenizer.TT_NUMBER;
public final int tokenType ()
{
return _tokenType;
}
public final int intValue ()
{
return _intValue;
}
public final String symbolValue ()
{
return _symbolValue;
}
public final boolean eof ()
{
return _eof;
}
public TaxonomyLoader (String file) throws FileNotFoundException
{
_file = file;
_reader = new FileReader(file);
setReader(_reader);
}
public final void setReader (Reader reader)
{
_st = new StreamTokenizer(reader);
_st.eolIsSignificant(true);
_st.quoteChar('\'');
_st.quoteChar('"');
_st.wordChars("-_@");
// Debug.setDebugFlag(true);
}
public final Reader getReader ()
{
return _reader;
}
public final int lineNumber ()
{
return _st.lineno();
}
public final Location tokenStart ()
{
return _st.tokenStart();
}
public final Location tokenEnd ()
{
return _st.tokenEnd();
}
public final void error () throws BadTokenException
{
throw new BadTokenException((new Span(tokenStart(),tokenEnd())).toString());
}
final void eol ()
{
_rank++;
}
final void setEof ()
{
_eof = true;
}
public final void close () throws IOException
{
_reader.close();
}
/* ************************************************************************ */
public final boolean nextToken () throws IOException
{
_tokenType = _st.nextToken();
// if (Debug.flagIsOn())
// {
// System.out.println("Stream tokenizer's current state: "+_st);
// }
switch (_tokenType)
{
case StreamTokenizer.TT_SPECIAL:
return nextToken();
case StreamTokenizer.TT_EOF:
// if (Debug.flagIsOn())
// System.out.println("READ END OF FILE");
setEof();
break;
case StreamTokenizer.TT_EOL:
eol();
break;
case StreamTokenizer.TT_NUMBER:
_intValue = (int)_st.nval;
break;
case '"': case '\'':
_tokenType = StreamTokenizer.TT_WORD;
case StreamTokenizer.TT_WORD:
_symbolValue = _st.sval;
break;
default:
return false;
}
return true;
}
}
This file was generated on Thu Oct 03 16:37:26 CEST 2013 from file TaxonomyLoader.java
by the hlt.language.tools.Hilite Java tool written by Hassan Aït-Kaci