#pragma once

#include <QString>
#include <QList>

#include "Token.h"
#include "AstNode.h"

template <typename T>
QString pprint(T val);

template <>
QString pprint<Token>(Token val);

template <>
QString pprint<AstNode>(AstNode val);

template <typename T>
QString pprint(QList<T> val)
{
	QStringList out;

	for (const T &v : val)
		out.append(static_cast<QString>(v));

	return out.join(" ");
}

template <typename T>
QString pprint(T val)
{
	return static_cast<QString>(val);
}
