Website Summary Files Commits Branches @commit @diff @stats
path: root / JSImpl / src / Expression.h
diff options
context:
space:
mode:
Commit3cc222dbe45296ba81fb4a6dc6c8df7075ddbee7 (patch)
Author
 martin dobrev <martindobrev0@gmail.com>
2018-09-08 12:24:03 +0300
Committer
 martin dobrev <martindobrev0@gmail.com>
2018-09-08 12:24:03 +0300
Filesb5989bc293c6a7a99debb50562d9714d71e651a3 /JSImpl/src/Expression.h
IPL-3cc222dbe45296ba81fb4a6dc6c8df7075ddbee7.tar
IPL-3cc222dbe45296ba81fb4a6dc6c8df7075ddbee7.tar.gz
IPL-3cc222dbe45296ba81fb4a6dc6c8df7075ddbee7.zip
Parentb91b7d3820deb7e0aed536141cd79e7a8c4ca8c9 (diff)
Implement List and Identifier expressions.
1 files changed, 23 insertions, 1 deletions
-rw-r--r--JSImpl/src/Expression.h24
diff --git a/JSImpl/src/Expression.h b/JSImpl/src/Expression.h
index c16157a..3b68522 100644
--- a/JSImpl/src/Expression.h
+++ b/JSImpl/src/Expression.h
@@ -60,7 +60,7 @@ public:
LiteralExpression(double);
LiteralExpression(IPLString&);
LiteralExpression(bool);
- LiteralExpression(LiteralType type);
+ LiteralExpression(TokenType type);
virtual void Print(std::ostream& os);
private:
double m_NumValue;
@@ -69,3 +69,25 @@ private:
LiteralType m_Type;
};
+
+class IdentifierExpression : public Expression
+{
+public:
+ IdentifierExpression(IPLString name, ExpressionPtr value);
+ virtual ~IdentifierExpression() {}
+ virtual void Print(std::ostream& os);
+private:
+ IPLString m_Name;
+ ExpressionPtr m_Value;
+};
+
+class ListExpression : public Expression
+{
+public:
+ ListExpression() {};
+ void Push(ExpressionPtr value) { m_Values.push_back(value); };
+ virtual ~ListExpression() {}
+ virtual void Print(std::ostream& os);
+private:
+ IPLVector<ExpressionPtr> m_Values;
+};