diff options
Diffstat (limited to 'src/ast/expr.hpp')
-rw-r--r-- | src/ast/expr.hpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/ast/expr.hpp b/src/ast/expr.hpp index ca655fe0..4c6d6b7c 100644 --- a/src/ast/expr.hpp +++ b/src/ast/expr.hpp @@ -90,6 +90,23 @@ struct ExprNode_Return: NODE_METHODS(); }; +struct ExprNode_Const: + public ExprNode +{ + ::std::string m_name; + TypeRef m_type; + unique_ptr<ExprNode> m_value; + + ExprNode_Const() {} + ExprNode_Const(::std::string name, TypeRef type, unique_ptr<ExprNode>&& value): + m_name( move(name) ), + m_type( move(type) ), + m_value( move(value) ) + { + } + + NODE_METHODS(); +}; struct ExprNode_LetBinding: public ExprNode { @@ -454,6 +471,7 @@ public: NT(ExprNode_Block); NT(ExprNode_Macro); NT(ExprNode_Return); + NT(ExprNode_Const); NT(ExprNode_LetBinding); NT(ExprNode_Assign); NT(ExprNode_CallPath); @@ -491,6 +509,7 @@ public: NT(ExprNode_Block); NT(ExprNode_Macro); NT(ExprNode_Return); + NT(ExprNode_Const); NT(ExprNode_LetBinding); NT(ExprNode_Assign); NT(ExprNode_CallPath); |