<commit_before>#ifndef ALPINO_CORPUSREADER_HH
#define ALPINO_CORPUSREADER_HH

#include <cstddef>
#include <list>
#include <queue>
#include <string>

#include <boost/shared_ptr.hpp>

#include <AlpinoCorpus/CorpusInfo.hh>
#include <AlpinoCorpus/DLLDefines.hh>
#include <AlpinoCorpus/IterImpl.hh>
#include <AlpinoCorpus/LexItem.hh>
#include <AlpinoCorpus/util/Either.hh>
#include <AlpinoCorpus/util/NonCopyable.hh>

namespace alpinocorpus {

/**
 * The sort order for iterators.
 *
 * Note that this is currently just a hint to the iterator implementation.
 * Most iterators currently only support the order that is natural to the
 * underlying corpus.
 */
enum SortOrder {
    /**
     * Sort using the natural order, typically the sequence in which the
     * entries are stored in a treebank.
     */
    NaturalOrder,

    /**
     * Sort using numeric order.
     */
    NumericalOrder
};

/**
 * Abstract base class for corpus readers.
 *
 * A corpus is conceptually a mapping of names to XML documents.
 * Both are represented as strings.
 */
class ALPINO_CORPUS_EXPORT CorpusReader : private util::NonCopyable
{
  public:
    /** Forward iterator over entry names */
    class ALPINO_CORPUS_EXPORT EntryIterator
    : public std::iterator<std::input_iterator_tag, std::string, ptrdiff_t, std::string *, std::string>
    {
      public:
        EntryIterator();
        EntryIterator(IterImpl *p);<commit_msg>Remove iterator tag from EntryIterator.<commit_after>#ifndef ALPINO_CORPUSREADER_HH
#define ALPINO_CORPUSREADER_HH

#include <cstddef>
#include <list>
#include <queue>
#include <string>

#include <boost/shared_ptr.hpp>

#include <AlpinoCorpus/CorpusInfo.hh>
#include <AlpinoCorpus/DLLDefines.hh>
#include <AlpinoCorpus/IterImpl.hh>
#include <AlpinoCorpus/LexItem.hh>
#include <AlpinoCorpus/util/Either.hh>
#include <AlpinoCorpus/util/NonCopyable.hh>

namespace alpinocorpus {

/**
 * The sort order for iterators.
 *
 * Note that this is currently just a hint to the iterator implementation.
 * Most iterators currently only support the order that is natural to the
 * underlying corpus.
 */
enum SortOrder {
    /**
     * Sort using the natural order, typically the sequence in which the
     * entries are stored in a treebank.
     */
    NaturalOrder,

    /**
     * Sort using numeric order.
     */
    NumericalOrder
};

/**
 * Abstract base class for corpus readers.
 *
 * A corpus is conceptually a mapping of names to XML documents.
 * Both are represented as strings.
 */
class ALPINO_CORPUS_EXPORT CorpusReader : private util::NonCopyable
{
  public:
    /** Forward iterator over entry names */
    class ALPINO_CORPUS_EXPORT EntryIterator
    {
      public:
        EntryIterator();
        EntryIterator(IterImpl *p);
{'fraction_non_alphanumeric': 0.09352256186317322, 'fraction_numerical': 0.0, 'mean_word_length': 3.7560553633217992, 'pattern_counts': {'":': 0, '<': 26, '<?xml version=': 0, '>': 26, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4874852', 'n_tokens_mistral': 883, 'n_tokens_neox': 850, 'n_words': 257}