blob: a15d6af30293561e5b35e5a29e00998d97fe55b9 [file] [log] [blame]
swissChili923bd532021-12-08 22:48:58 -08001#include "PPrint.h"
swissChili323883d2022-02-20 16:35:23 -08002
3#include <QTextStream>
4
5void sout(QString string)
6{
7 QTextStream(stdout) << string << '\n';
8}
9
swissChiliece1ac82022-02-25 11:20:42 -080010QString pprint(ParseResult val, const Parser &parser, PPrint::Style style)
swissChili323883d2022-02-20 16:35:23 -080011{
12 if (val)
13 {
14 return "\033[32mOK\033[0m";
15 }
16
swissChiliece1ac82022-02-25 11:20:42 -080017 QString newline = (style == PPrint::ANSI ? "\n" : "<br>");
18
19 QString highlighted = parser.line(val.pos().line - 1) + newline;
swissChili323883d2022-02-20 16:35:23 -080020
21 for (int i = 1; i < val.pos().lineOffset; i++)
22 {
swissChiliece1ac82022-02-25 11:20:42 -080023 if (style == PPrint::ANSI)
24 highlighted += " ";
25 else
26 highlighted += "&nbsp;";
swissChili323883d2022-02-20 16:35:23 -080027 }
swissChili323883d2022-02-20 16:35:23 -080028
swissChiliece1ac82022-02-25 11:20:42 -080029 if (style == PPrint::ANSI)
30 {
31 highlighted += "\033[31m^~~\033[0m";
32 }
33 else if (style == PPrint::HTML)
34 {
35 highlighted += "<font color=\"red\">^~~</font>";
36 }
37
38 return val.message() + " at " + val.pos() + newline + highlighted;
swissChili323883d2022-02-20 16:35:23 -080039}
swissChili918557c2022-02-20 20:16:34 -080040
41void eout(QString string)
42{
43 QTextStream(stderr) << string << '\n';
44}
swissChilid845a142022-02-25 15:46:35 -080045
46QString pprint(QList<Token> val)
47{
48 return pprintDense(val);
49}
50
51QString pprint(QList<AstNode> val)
52{
53 return pprintDense(val);
54}