//---------------------------------------------------------------------------

#ifndef kiss_parserH
#define kiss_parserH
//---------------------------------------------------------------------------
#include "lexan_kiss.h"
#include "hub/fsm.h"

class KissParserClient {
public:
  virtual void haveDescription(int, int, std::list<hub::StateTableRow>&, std::string& resetState, int stateCount, int productCount);
  virtual ~KissParserClient() {}
};

class KissParser {
private:
    KissParserClient *client_;

public:
    LexanKiss l;
    int token;

    void run (std::istream&, const std::string&);
    KissParser(KissParserClient *client): client_(client) {}
 };

#endif
