swissChili | 923bd53 | 2021-12-08 22:48:58 -0800 | [diff] [blame^] | 1 | #pragma once |
2 | |||||
3 | #include <QString> | ||||
4 | #include <QList> | ||||
5 | |||||
6 | #include "Token.h" | ||||
7 | #include "AstNode.h" | ||||
8 | |||||
9 | template <typename T> | ||||
10 | QString pprint(T val); | ||||
11 | |||||
12 | template <> | ||||
13 | QString pprint<Token>(Token val); | ||||
14 | |||||
15 | template <> | ||||
16 | QString pprint<AstNode>(AstNode val); | ||||
17 | |||||
18 | template <typename T> | ||||
19 | QString 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 | |||||
29 | template <typename T> | ||||
30 | QString pprint(T val) | ||||
31 | { | ||||
32 | return static_cast<QString>(val); | ||||
33 | } |