blob: 6e5ea1370c57cdf7a6d9c46470372bc8a9318f28 [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);