summaryrefslogtreecommitdiff
path: root/tiger-compiler/src/ast/function-dec.cc
diff options
context:
space:
mode:
Diffstat (limited to 'tiger-compiler/src/ast/function-dec.cc')
-rw-r--r--tiger-compiler/src/ast/function-dec.cc33
1 files changed, 33 insertions, 0 deletions
diff --git a/tiger-compiler/src/ast/function-dec.cc b/tiger-compiler/src/ast/function-dec.cc
new file mode 100644
index 0000000..c45ca0d
--- /dev/null
+++ b/tiger-compiler/src/ast/function-dec.cc
@@ -0,0 +1,33 @@
+/**
+ ** \file ast/function-dec.cc
+ ** \brief Implementation of ast::FunctionDec.
+ */
+
+#include <ast/function-dec.hh>
+#include <ast/visitor.hh>
+
+namespace ast
+{
+ FunctionDec::FunctionDec(const Location& location,
+ misc::symbol name,
+ VarChunk* formals,
+ NameTy* result,
+ Exp* body)
+ : Dec(location, name)
+ , TypeConstructor()
+ , formals_(formals)
+ , result_(result)
+ , body_(body)
+ {}
+
+ FunctionDec::~FunctionDec()
+ {
+ delete formals_;
+ delete result_;
+ delete body_;
+ }
+
+ void FunctionDec::accept(ConstVisitor& v) const { v(*this); }
+
+ void FunctionDec::accept(Visitor& v) { v(*this); }
+} // namespace ast