#ifndef MKF_GROUP_HPP_INCLUDED
#define MKF_GROUP_HPP_INCLUDED


#include"mkf_element.hpp"




struct
Block
{
  const int  separator;

  std::vector<Element>  elements;

  Block(int  sep): separator(sep){}

};


using BlockList = std::vector<Block>;


class
Group
{
protected:
  BlockList  blocks;

  void  scan(const char*&  p, int  close);

public:
  Group();
  Group(const char*&  p, int  close);
  Group(const Group&   rhs);
  Group(      Group&&  rhs);


  void  clear();

  void  append(Element&&  el, int  sep);

  const BlockList&  get_list() const;

  void  print() const;

};




#endif




