diff options
author | John Hodge (sonata) <tpg@mutabah.net> | 2015-01-21 20:30:20 +0800 |
---|---|---|
committer | John Hodge (sonata) <tpg@mutabah.net> | 2015-01-21 20:30:20 +0800 |
commit | 8d1acfa3993e64b0266365379602799350855f3f (patch) | |
tree | 8ebd1c2c02a322714d2ea64776ac504f955d5fd6 /src/ast/expr.hpp | |
parent | 15284f127f4c622bf4d67d8d8c44e1799f84e7cb (diff) | |
download | mrust-8d1acfa3993e64b0266365379602799350855f3f.tar.gz |
Type propagation coming along
Diffstat (limited to 'src/ast/expr.hpp')
-rw-r--r-- | src/ast/expr.hpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/ast/expr.hpp b/src/ast/expr.hpp index ad2f906d..f1d16af0 100644 --- a/src/ast/expr.hpp +++ b/src/ast/expr.hpp @@ -293,6 +293,23 @@ struct ExprNode_Field: SERIALISABLE_PROTOTYPES(); }; +// Pointer dereference +struct ExprNode_Deref: + public ExprNode +{ + ::std::unique_ptr<ExprNode> m_value; + + ExprNode_Deref() {} + ExprNode_Deref(::std::unique_ptr<ExprNode> value): + m_value( ::std::move(value) ) + { + } + + virtual void visit(NodeVisitor& nv) override; + + SERIALISABLE_PROTOTYPES(); +}; + // Type cast ('as') struct ExprNode_Cast: public ExprNode @@ -369,6 +386,7 @@ public: virtual void visit(ExprNode_NamedValue& node); virtual void visit(ExprNode_Field& node); + virtual void visit(ExprNode_Deref& node); virtual void visit(ExprNode_Cast& node); virtual void visit(ExprNode_BinOp& node); }; |