diff options
Diffstat (limited to 'node/ExprNode.hh')
| -rw-r--r-- | node/ExprNode.hh | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/node/ExprNode.hh b/node/ExprNode.hh index bf24f4d..aeb3ef8 100644 --- a/node/ExprNode.hh +++ b/node/ExprNode.hh @@ -84,6 +84,26 @@ class ArrayAccessNode : public ExprNode { std::shared_ptr<ExprNode> rhs_; }; +class DereferenceNode : public ExprNode { + public: + DereferenceNode(Context* context, std::shared_ptr<ExprNode> lhs); + virtual Value CodeGen() override; + + protected: + std::shared_ptr<ExprNode> lhs_; +}; + +class MemberAccessNode : public ExprNode { + public: + MemberAccessNode(Context* context, std::shared_ptr<ExprNode> lhs, + std::string&& rhs); + virtual Value CodeGen() override; + + protected: + std::shared_ptr<ExprNode> lhs_; + std::string rhs_; +}; + class IdentifierNode : public ExprNode { public: IdentifierNode(Context* context, const std::string& name); |
