
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __java_util_Scanner__
#define __java_util_Scanner__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>

extern "Java"
{
  namespace java
  {
    namespace math
    {
        class BigDecimal;
        class BigInteger;
    }
    namespace nio
    {
      namespace channels
      {
          class ReadableByteChannel;
      }
    }
    namespace text
    {
        class DecimalFormat;
        class DecimalFormatSymbols;
        class NumberFormat;
    }
  }
}

class java::util::Scanner : public ::java::lang::Object
{

public:
  Scanner(::java::io::File *);
  Scanner(::java::io::File *, ::java::lang::String *);
  Scanner(::java::io::InputStream *);
  Scanner(::java::io::InputStream *, ::java::lang::String *);
  Scanner(::java::lang::Readable *);
  Scanner(::java::nio::channels::ReadableByteChannel *);
  Scanner(::java::nio::channels::ReadableByteChannel *, ::java::lang::String *);
  Scanner(::java::lang::String *);
  virtual void close();
  virtual ::java::util::regex::Pattern * delimiter();
  virtual ::java::lang::String * findInLine(::java::util::regex::Pattern *);
  virtual ::java::lang::String * findInLine(::java::lang::String *);
  virtual ::java::lang::String * findWithinHorizon(::java::util::regex::Pattern *, jint);
  virtual ::java::lang::String * findWithinHorizon(::java::lang::String *, jint);
  virtual jboolean hasNext();
  virtual jboolean hasNext(::java::util::regex::Pattern *);
  virtual jboolean hasNext(::java::lang::String *);
  virtual jboolean hasNextBigDecimal();
  virtual jboolean hasNextBigInteger();
  virtual jboolean hasNextBigInteger(jint);
  virtual jboolean hasNextBoolean();
  virtual jboolean hasNextByte();
  virtual jboolean hasNextByte(jint);
  virtual jboolean hasNextDouble();
  virtual jboolean hasNextFloat();
  virtual jboolean hasNextInt();
  virtual jboolean hasNextInt(jint);
  virtual jboolean hasNextLine();
  virtual jboolean hasNextLong();
  virtual jboolean hasNextLong(jint);
  virtual jboolean hasNextShort();
  virtual jboolean hasNextShort(jint);
  virtual ::java::io::IOException * ioException();
  virtual jboolean isUseLocale();
  virtual ::java::util::Locale * locale();
  virtual ::java::util::regex::MatchResult * match();
  virtual ::java::lang::String * Scanner$next();
  virtual ::java::lang::String * next(::java::util::regex::Pattern *);
  virtual ::java::lang::String * next(::java::lang::String *);
  virtual ::java::math::BigDecimal * nextBigDecimal();
  virtual ::java::math::BigInteger * nextBigInteger();
  virtual ::java::math::BigInteger * nextBigInteger(jint);
  virtual jboolean nextBoolean();
  virtual jbyte nextByte();
  virtual jbyte nextByte(jint);
  virtual jdouble nextDouble();
  virtual jfloat nextFloat();
  virtual jint nextInt();
  virtual jint nextInt(jint);
  virtual ::java::lang::String * nextLine();
  virtual jlong nextLong();
  virtual jlong nextLong(jint);
  virtual jshort nextShort();
  virtual jshort nextShort(jint);
  virtual jint radix();
  virtual void remove();
  virtual void setUseLocale(jboolean);
  virtual ::java::util::Scanner * skip(::java::util::regex::Pattern *);
  virtual ::java::util::Scanner * skip(::java::lang::String *);
  virtual ::java::lang::String * toString();
  virtual ::java::util::Scanner * useDelimiter(::java::util::regex::Pattern *);
  virtual ::java::util::Scanner * useDelimiter(::java::lang::String *);
  virtual ::java::util::Scanner * useLocale(::java::util::Locale *);
  virtual ::java::util::Scanner * useRadix(jint);
private:
  ::java::lang::String * myApplyLocale(::java::lang::String *, jint);
  ::java::lang::String * myApplyLocaleBD(::java::lang::String *);
  ::java::math::BigDecimal * myBigDecimal(jboolean);
  ::java::lang::String * myConvert(::java::lang::String *);
  ::java::lang::String * myCoreNext(jboolean, ::java::util::regex::Pattern *);
  void myFillBuffer();
  jboolean myFillBuffer_loop(::java::util::regex::Matcher *, jint, jboolean);
  ::java::lang::String * myFindPInStr(::java::util::regex::Pattern *, ::java::lang::String *, jint);
  ::java::lang::String * myNext(::java::util::regex::Pattern *, jboolean);
  ::java::math::BigInteger * myNextBigInteger(jint, jboolean, ::java::lang::String *);
  jboolean myNextBoolean(jboolean);
  jbyte myNextByte(jint, jboolean);
  jdouble myNextDouble(jboolean);
  jint myNextInt(jint, jboolean);
  ::java::lang::String * myNextLine(jboolean);
  jlong myNextLong(jint, jboolean);
  jshort myNextShort(jint, jboolean);
  ::java::lang::String * myPrepareForNext(::java::util::regex::Pattern *, jboolean);
  jboolean shallUseLastFound(::java::util::regex::Pattern *);
public:
  virtual ::java::lang::Object * next();
private:
  static ::java::lang::String * NOT_LONG;
  static ::java::lang::String * ERR_PREFIX;
  static ::java::lang::String * NOT_INT;
  static ::java::lang::String * NOT_DOUBLE;
  static ::java::lang::String * NOT_BYTE;
  static ::java::lang::String * NOT_BOOLEAN;
  static ::java::lang::String * IS_NOT;
  static ::java::lang::String * DEFAULT_PATTERN_S;
  static ::java::util::regex::Pattern * DEFAULT_PATTERN;
  static ::java::lang::String * BIG_INTEGER;
  static ::java::lang::String * NEW_LINE;
  ::java::io::IOException * __attribute__((aligned(__alignof__( ::java::lang::Object)))) lastIOException;
  ::java::io::InputStream * bIS;
  const jint MaxBufferLen;
  const jint MIN_BUF_LEN;
  const jint MAX_PREFIX;
  ::java::lang::String * actBuffer;
  jint currentRadix;
  ::java::util::Locale * actLocale;
  ::java::util::regex::Pattern * p;
  jint actPos;
  JArray< jbyte > * tmpBuffer;
  ::java::lang::String * charsetName;
  ::java::util::regex::Matcher * myMatcher;
  ::java::util::regex::MatchResult * actResult;
  ::java::lang::Readable * readableSource;
  ::java::nio::channels::ReadableByteChannel * rbcSource;
  jboolean isClosed;
  ::java::lang::String * lastFound;
  jboolean lastFoundPresent;
  jint lastNextPos;
  jint lastPatternHash;
  jint last_RegionStart;
  jint last_RegionEnd;
  jboolean last_anchor;
  jboolean last_transparent;
  ::java::util::regex::MatchResult * lastResult;
  jint procesedChars;
  jboolean needInput;
  jboolean skipped;
  jboolean doSkipp;
  jboolean matchValid;
  ::java::text::NumberFormat * actFormat;
  ::java::text::DecimalFormat * df;
  jboolean useLocale__;
  ::java::text::DecimalFormatSymbols * dfs;
public:
  static ::java::lang::Class class$;
};

#endif // __java_util_Scanner__
