From 967be9e750221ab2ab783f95df79bb26d290a45e Mon Sep 17 00:00:00 2001 From: Martial Simon Date: Mon, 15 Sep 2025 01:07:58 +0200 Subject: add: added projects --- tiger-compiler/src/ast/chunk-list.cc | 58 ++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 tiger-compiler/src/ast/chunk-list.cc (limited to 'tiger-compiler/src/ast/chunk-list.cc') diff --git a/tiger-compiler/src/ast/chunk-list.cc b/tiger-compiler/src/ast/chunk-list.cc new file mode 100644 index 0000000..6a530c4 --- /dev/null +++ b/tiger-compiler/src/ast/chunk-list.cc @@ -0,0 +1,58 @@ +/** + ** \file ast/chunk-list.cc + ** \brief Implementation of ast::ChunkList. + */ + +#include +#include +#include +#include + +namespace ast +{ + ChunkList::iterator ChunkList::begin() { return chunks_.begin(); } + + ChunkList::iterator ChunkList::end() { return chunks_.end(); } + + ChunkList::const_iterator ChunkList::begin() const { return chunks_.begin(); } + + ChunkList::const_iterator ChunkList::end() const { return chunks_.end(); } + + void ChunkList::push_front(ChunkInterface* d) + { + chunks_.emplace_front(d); + location_.begin = d->location_get().begin; + } + + void ChunkList::emplace_back(ChunkInterface* d) + { + chunks_.emplace_back(d); + location_.end = d->location_get().end; + } + + void ChunkList::splice_front(ChunkList& ds) + { + chunks_.splice(chunks_.begin(), ds.chunks_get()); + } + + void ChunkList::splice_back(ChunkList& ds) + { + chunks_.splice(chunks_.end(), ds.chunks_get()); + } + + ChunkList::ChunkList(const Location& location) + : Ast(location) + {} + + ChunkList::ChunkList(const Location& location, + const ChunkList::list_type& chunks) + : Ast(location) + , chunks_(chunks) + {} + + ChunkList::~ChunkList() { misc::deep_clear(chunks_); } + + void ChunkList::accept(ConstVisitor& v) const { v(*this); } + + void ChunkList::accept(Visitor& v) { v(*this); } +} // namespace ast -- cgit v1.2.3