blob: 3da8b9d3d9022bbc4daea36ce570b0d8a61797f7 [file] [log] [blame]
swissChili7babd922021-12-02 22:46:48 -08001#pragma once
2
3#include <QMap>
4#include "Token.h"
5
6class VarContext {
7public:
8 VarContext() = default;
9 VarContext(VarContext const &other) noexcept;
10
swissChili3e98c062021-12-04 22:07:38 -080011 void add(char t, const QString &name, const Token &value);
12 void add(char t, const QString &name, const QList<Token> &value);
13
swissChili7babd922021-12-02 22:46:48 -080014 char exists(const QString &name);
swissChili3e98c062021-12-04 22:07:38 -080015 Token singleVar(const QString &name);
16 QList<Token> expressionVar(const QString &name);
swissChili7babd922021-12-02 22:46:48 -080017
18private:
19 struct Var {
20 Var() = default;
21
22 char t = 0;
23 Token value;
swissChili3e98c062021-12-04 22:07:38 -080024 QList<Token> expressionValue;
swissChili7babd922021-12-02 22:46:48 -080025 };
26
27 QMap<QString, Var> _vars;
28};