blob: 10a922b5a556f53e7b80c66ff05c4a2ae06a1692 [file] [log] [blame]
swissChili923bd532021-12-08 22:48:58 -08001#pragma once
2
3#include <QString>
4#include <QList>
5
6#include "Evaluator.h"
7#include "AstNode.h"
swissChilic046cdf2021-12-09 19:59:51 -08008#include "Parser.h"
swissChili923bd532021-12-08 22:48:58 -08009
10class Repl
11{
12public:
13 Repl();
14
15 void start();
16 char *prompt();
17
18protected:
19 QString readLine();
swissChilibd2a90d2021-12-09 10:36:14 -080020 void addHistory(QString line);
swissChilic046cdf2021-12-09 19:59:51 -080021 ParseResult trySpecialCase(QString line);
22 ParseResult tryEvaluate(QString line, QList<AstNode> *expr);
swissChili923bd532021-12-08 22:48:58 -080023
24 Evaluator _eval;
25
26 bool _running = true;
27};