blob: 3a00379e5bd952727fc34aab2c79bf2bc0b7c5a8 [file] [log] [blame]
swissChili923bd532021-12-08 22:48:58 -08001#pragma once
2
3#include <QString>
4#include <QList>
5
6#include "Token.h"
7#include "AstNode.h"
8
9template <typename T>
10QString pprint(T val);
11
12template <>
13QString pprint<Token>(Token val);
14
15template <>
16QString pprint<AstNode>(AstNode val);
17
18template <typename T>
19QString pprint(QList<T> val)
20{
21 QStringList out;
22
23 for (const T &v : val)
24 out.append(static_cast<QString>(v));
25
26 return out.join(" ");
27}
28
29template <typename T>
30QString pprint(T val)
31{
32 return static_cast<QString>(val);
33}