// See the file "COPYING" in the main distribution directory for copyright.

#pragma once

#include <cstdint>
#include <vector>

namespace zeek::detail
	{

using int_list = std::vector<std::intptr_t>;

class CCL
	{
public:
	CCL();
	~CCL();

	void Add(int sym);
	void Negate();
	bool IsNegated() { return negated != 0; }
	int Index() { return index; }

	void Sort();

	int_list* Syms() { return syms; }

	void ReplaceSyms(int_list* new_syms)
		{
		delete syms;
		syms = new_syms;
		}

protected:
	int_list* syms;
	int negated;
	int index;
	};

	} // namespace zeek::detail
