blob: 3f2bdbecb15f6681db63121dc28a9d7ef635a689 [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);
swissChili323883d2022-02-20 16:35:23 -080022 ParseResult tryEvaluate(Parser &parser, QList<AstNode> *expr);
swissChili923bd532021-12-08 22:48:58 -080023
24 Evaluator _eval;
25
26 bool _running = true;
27};