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

#ifndef __gnu_java_util_regex_RETokenRepeated$TryAnotherResult__
#define __gnu_java_util_regex_RETokenRepeated$TryAnotherResult__

#pragma interface

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

extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace util
      {
        namespace regex
        {
            class REMatch;
            class RETokenRepeated$TryAnotherResult;
        }
      }
    }
  }
}

class gnu::java::util::regex::RETokenRepeated$TryAnotherResult : public ::java::lang::Object
{

  RETokenRepeated$TryAnotherResult();
public: // actually package-private
  RETokenRepeated$TryAnotherResult(::gnu::java::util::regex::RETokenRepeated$TryAnotherResult *);
  ::gnu::java::util::regex::REMatch * __attribute__((aligned(__alignof__( ::java::lang::Object)))) result;
  jint status;
  static const jint RESULT_FOUND = 1;
  static const jint TRY_FURTHER = 2;
  static const jint NOTHING_FOUND = 3;
  JArray< jint > * visited;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_java_util_regex_RETokenRepeated$TryAnotherResult__
