//Készítette:   Gregorics Tibor
//Dátum:        2009.01.23.
//eha kód:      EHACODE.ELTE
//mail:         gt@inf.elte.hu
//csoport:      0.csoport
//Feladat:      3.beadandó/0.feladat
//              Bekezdéseket felsoroló objektum osztálya

#ifndef ENOR_H
#define ENOR_H

#include <fstream>
#include <string>
#include <sstream>

enum Status { abnorm, norm };

struct Bekezdes {
    bool jo;
    int sorsz;
    int db;
    int ossz;
};

// Bekezdés-felsoroló típusa
//  Típusértékek:   felsoroló objektumok
//  Reprezentáció:  szöveges állomány adatfolyam objektuma
//                  az éppen kiolvasott sor
//                  sor-olvasás státusza
//                  aktuális bekezdés adatai
//                  van-e még bekezdés jelzése
//  Műveletei:  felsoroló létrehozása
//              felsoroló műveletek
//              a szöveg következő sorának olvasása
class Enor{
    private:
        std::ifstream f;
        std::stringstream sor;
        Status st;
        Bekezdes akt;
        bool vege;
        void Read();

    public:
        Enor(const std::string &str);
        void First() {Read(); Next();}
        void Next();
        Bekezdes Current() const { return akt;}
        bool End() const { return vege;}
};

#endif
