blob: b3470f2a5327048795d30857235d376ef8e85d20 [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"
8
9class Repl
10{
11public:
12 Repl();
13
14 void start();
15 char *prompt();
16
17protected:
18 QString readLine();
swissChilibd2a90d2021-12-09 10:36:14 -080019 void addHistory(QString line);
swissChili923bd532021-12-08 22:48:58 -080020 bool trySpecialCase(QString line);
21 bool tryEvaluate(QString line, QList<AstNode> *expr);
22
23 Evaluator _eval;
24
25 bool _running = true;
26};