a9c82bd5a5
Original-commit: flang-compiler/f18@3492e8d247 Reviewed-on: https://github.com/flang-compiler/f18/pull/49
24 lines
643 B
C++
24 lines
643 B
C++
#include "scope.h"
|
|
#include "symbol.h"
|
|
#include <memory>
|
|
|
|
namespace Fortran::semantics {
|
|
|
|
const Scope Scope::systemScope{Scope::systemScope, Scope::Kind::System};
|
|
Scope Scope::globalScope{Scope::systemScope, Scope::Kind::Global};
|
|
|
|
Scope &Scope::MakeScope(Kind kind) {
|
|
children_.emplace_back(*this, kind);
|
|
return children_.back();
|
|
}
|
|
|
|
std::ostream &operator<<(std::ostream &os, const Scope &scope) {
|
|
os << Scope::EnumToString(scope.kind()) << " scope: " << scope.children_.size()
|
|
<< " children\n";
|
|
for (const auto &sym : scope.symbols_) {
|
|
os << " " << sym.second << "\n";
|
|
}
|
|
return os;
|
|
}
|
|
|
|
} // namespace Fortran::semantics
|