Finish pattern matcher
diff --git a/VarContext.h b/VarContext.h
index afa1b9a..3da8b9d 100644
--- a/VarContext.h
+++ b/VarContext.h
@@ -8,9 +8,12 @@
     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 Token &value);
+    void add(char t, const QString &name, const QList<Token> &value);
+
     char exists(const QString &name);
-    Token operator [](const QString &name);
+    Token singleVar(const QString &name);
+    QList<Token> expressionVar(const QString &name);
 
 private:
     struct Var {
@@ -18,6 +21,7 @@
 
         char t = 0;
         Token value;
+        QList<Token> expressionValue;
     };
 
     QMap<QString, Var> _vars;