All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.fudaa.ebli.graphe.Lecteur Maven / Gradle / Ivy

The newest version!
/*
 * @creation     1999-07-29
 * @modification $Date: 2006-09-19 14:55:45 $
 * @license      GNU General Public License 2
 * @copyright    (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
 * @mail         [email protected]
 */
package org.fudaa.ebli.graphe;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.StreamTokenizer;
import java.util.Stack;
/**
 * GDF Lecteur.
 *
 * @version      $Revision: 1.8 $ $Date: 2006-09-19 14:55:45 $ by $Author: deniger $
 * @author       Guillaume Desnoix
 */
public class Lecteur {
  private StreamTokenizer st_;
  private Stack pile_;
  /**
   * @deprecated use Lecteur(Reader) instead.
   */
  public Lecteur(final InputStream _is) {
    this(new InputStreamReader(_is));
  }
  public Lecteur(final Reader _reader) {
    st_= new StreamTokenizer(new BufferedReader(_reader));
    st_.resetSyntax();
    st_.eolIsSignificant(false);
    st_.quoteChar('"');
    st_.quoteChar('\'');
    st_.slashSlashComments(true);
    st_.slashStarComments(true);
    st_.wordChars('a', 'z');
    st_.wordChars('A', 'Z');
    st_.wordChars('0', '9');
    st_.wordChars('_', '_');
    st_.wordChars('.', '.');
    st_.wordChars('+', '+');
    st_.wordChars('-', '-');
    st_.wordChars('[', '[');
    st_.wordChars(']', ']');
    st_.whitespaceChars(' ', ' ');
    st_.whitespaceChars('\t', '\t');
    st_.whitespaceChars('\n', '\n');
    st_.whitespaceChars('\r', '\r');
    pile_= new Stack();
  }
  public String get() {
    String r= "";
    if (pile_.empty()) {
      try {
        st_.nextToken();
        // System.err.println(">>>"+st_.ttype+" "+st_.sval);
        switch (st_.ttype) {
          case StreamTokenizer.TT_EOF :
            r= "";
            break;
          case StreamTokenizer.TT_WORD :
            r= st_.sval;
            break;
          case StreamTokenizer.TT_NUMBER :
            r= "" + st_.nval;
            break;
          case '"' :
            r= st_.sval;
            break;
          case '\'' :
            r= "" + st_.sval;
            break;
          default :
            r= "" + (char)st_.ttype;
            break;
        }
      } catch (final Exception e) {
        System.err.println("Erreur: " + e);
      }
    } else {
      r= (String)pile_.pop();
    }
    return r;
  }
  void put(final String _s) {
    pile_.push(_s);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy