summaryrefslogtreecommitdiff
path: root/src/ast/expr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ast/expr.cpp')
-rw-r--r--src/ast/expr.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/ast/expr.cpp b/src/ast/expr.cpp
index 0ed99e3f..9740a4d9 100644
--- a/src/ast/expr.cpp
+++ b/src/ast/expr.cpp
@@ -53,6 +53,7 @@ SERIALISE_TYPE(Expr::, "Expr", {
_(ExprNode_Block)
else _(ExprNode_Macro)
else _(ExprNode_Return)
+ else _(ExprNode_Const)
else _(ExprNode_LetBinding)
else _(ExprNode_Assign)
else _(ExprNode_CallPath)
@@ -112,8 +113,17 @@ NODE(ExprNode_Return, {
os << "return " << *m_value;
})
+NODE(ExprNode_Const, {
+ s.item(m_name);
+ s.item(m_type);
+ s.item(m_value);
+},{
+ os << "const " << m_name << ": " << m_type << " = " << *m_value;
+})
+
NODE(ExprNode_LetBinding, {
s.item(m_pat);
+ s.item(m_type);
s.item(m_value);
},{
os << "let " << m_pat << ": " << m_type << " = " << *m_value;
@@ -398,6 +408,10 @@ NV(ExprNode_Return,
{
visit(node.m_value);
})
+NV(ExprNode_Const,
+{
+ visit(node.m_value);
+})
NV(ExprNode_LetBinding,
{
// TODO: Handle recurse into Let pattern