diff options
Diffstat (limited to 'tiger-compiler/src/ast/record-exp.cc')
| -rw-r--r-- | tiger-compiler/src/ast/record-exp.cc | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tiger-compiler/src/ast/record-exp.cc b/tiger-compiler/src/ast/record-exp.cc new file mode 100644 index 0000000..6ca817a --- /dev/null +++ b/tiger-compiler/src/ast/record-exp.cc @@ -0,0 +1,30 @@ +/** + ** \file ast/record-exp.cc + ** \brief Implementation of ast::RecordExp. + */ + +#include <ast/record-exp.hh> +#include <ast/visitor.hh> +#include <misc/algorithm.hh> + +namespace ast +{ + RecordExp::RecordExp(const Location& location, + NameTy* type_name, + fieldinits_type* fields) + : Exp(location) + , type_name_(type_name) + , fields_(fields) + {} + + RecordExp::~RecordExp() + { + delete type_name_; + misc::deep_clear(*fields_); + delete fields_; + } + + void RecordExp::accept(ConstVisitor& v) const { v(*this); } + + void RecordExp::accept(Visitor& v) { v(*this); } +} // namespace ast |
