#pragma once
#include <list>
#include <ios>
#include "Impl.h"
#include <string>

class ImplList :
	public std::list<Impl*>
{
public:
	ImplList(const std::string line);
	ImplList(int Nargs) : std::list<Impl*>() {this->Nargs = Nargs;};
	ImplList(ImplList &c);
	ImplList(ImplList &c, BM excl);
	virtual ~ImplList(void);

	bool getValue(BM num, BM excl=0) const;
	std::string getValuesLine( void ) const;

	ImplList* tryMinimize( void );
	std::string toString( void ) const;
private:
	void Normalize( void );
	int Nargs;
};

