From 3cc222dbe45296ba81fb4a6dc6c8df7075ddbee7 Mon Sep 17 00:00:00 2001 From: martin dobrev Date: Sat, 8 Sep 2018 12:24:03 +0300 Subject: Implement List and Identifier expressions. --- JSImpl/src/Expression.h | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'JSImpl/src/Expression.h') 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 m_Values; +}; -- cgit v1.3.1-23-gd82d