blob: 5e580b3c78cf19321238c5db6941eb84035adb7b [file] [log] [blame]
#pragma once
#include <QMap>
#include <QDebug>
#include "Token.h"
class VarContext {
public:
VarContext() = default;
VarContext(VarContext const &other) noexcept;
void add(char t, const QString &name, const Token &value);
void add(char t, const QString &name, const QList<Token> &value);
char exists(const QString &name);
Token singleVar(const QString &name);
QList<Token> expressionVar(const QString &name);
friend QDebug &operator <<(QDebug &debug, const VarContext &ctx);
private:
struct Var {
Var() = default;
char t = 0;
Token value;
QList<Token> expressionValue;
};
QMap<QString, Var> _vars;
};
QDebug &operator <<(QDebug &debug, const VarContext &ctx);