summaryrefslogtreecommitdiff
path: root/node/ExprNode.hh
diff options
context:
space:
mode:
Diffstat (limited to 'node/ExprNode.hh')
-rw-r--r--node/ExprNode.hh20
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);