FLANG

Public Types | Public Member Functions | Friends | List of all members
Fortran::semantics::Scope Class Reference

## Public Types
using | size_type = mapType::size_type
using | iterator = mapType::iterator
using | const_iterator = mapType::const_iterator

## Public Member Functions
| ENUM_CLASS (Kind, Global, Module, MainProgram, Subprogram, BlockData, DerivedType, Block, Forall, ImpliedDos) using ImportKind
| Scope (Scope &parent, Kind kind, Symbol *symbol)
| Scope (const Scope &)=delete
bool | operator== (const Scope &that) const
bool | operator!= (const Scope &that) const
Scope & | parent ()
const Scope & | parent () const
Kind | kind () const
bool | IsGlobal () const
bool | IsModule () const
bool | IsSubmodule () const
bool | IsDerivedType () const
bool | IsParameterizedDerivedType () const
Symbol * | symbol ()
const Symbol * | symbol () const
const Symbol * | GetSymbol () const
const Scope * | GetDerivedTypeParent () const
const Scope & | GetDerivedTypeBase () const
std::optional< SourceName > | GetName () const
bool | Contains (const Scope &) const
Scope & | MakeScope (Kind kind, Symbol *symbol=nullptr)
| Make a scope nested in this one.
iterator | begin ()
iterator | end ()
const_iterator | begin () const
const_iterator | end () const
const_iterator | cbegin () const
const_iterator | cend () const
SymbolVector | GetSymbols () const
MutableSymbolVector | GetSymbols ()
iterator | find (const SourceName &name)
const_iterator | find (const SourceName &name) const
size_type | erase (const SourceName &)
bool | empty () const
Symbol * | FindSymbol (const SourceName &) const
Symbol * | FindComponent (SourceName) const
std::pair< iterator, bool > | try_emplace (const SourceName &name, Attrs attrs=Attrs())
| Make a Symbol with unknown details.
template<typename D >
common::IfNoLvalue< std::pair< iterator, bool >, D > | try_emplace (const SourceName &name, D &&details)
| Make a Symbol with provided details.
template<typename D >
common::IfNoLvalue< std::pair< iterator, bool >, D > | try_emplace (const SourceName &name, Attrs attrs, D &&details)
| Make a Symbol with attrs and details.
Symbol * | CopySymbol (const Symbol &)
std::list< EquivalenceSet > & | equivalenceSets ()
const std::list< EquivalenceSet > & | equivalenceSets () const
void | add_equivalenceSet (EquivalenceSet &&)
const mapType & | crayPointers () const
void | add_crayPointer (const SourceName &, Symbol &)
mapType & | commonBlocks ()
const mapType & | commonBlocks () const
Symbol & | MakeCommonBlock (const SourceName &)
Symbol * | FindCommonBlock (const SourceName &)
template<typename D >
common::IfNoLvalue< Symbol &, D > | MakeSymbol (const SourceName &name, Attrs attrs, D &&details)
| Make a Symbol but don't add it to the scope.
std::list< Scope > & | children ()
const std::list< Scope > & | children () const
Scope * | FindSubmodule (const SourceName &) const
bool | AddSubmodule (const SourceName &, Scope &)
const DeclTypeSpec * | FindType (const DeclTypeSpec &) const
const DeclTypeSpec & | MakeNumericType (TypeCategory, KindExpr &&kind)
const DeclTypeSpec & | MakeLogicalType (KindExpr &&kind)
const DeclTypeSpec & | MakeCharacterType (ParamValue &&length, KindExpr &&kind=KindExpr{0})
DeclTypeSpec & | MakeDerivedType (DeclTypeSpec::Category, DerivedTypeSpec &&)
const DeclTypeSpec & | MakeTypeStarType ()
const DeclTypeSpec & | MakeClassStarType ()
void | set_chars (parser::CookedSource &)
std::size_t | size () const
void | set_size (std::size_t size)
std::size_t | alignment () const
void | set_alignment (std::size_t alignment)
ImportKind | GetImportKind () const
std::set< SourceName > | importNames () const
std::optional< parser::MessageFixedText > | SetImportKind (ImportKind)
void | add_importName (const SourceName &)
const DerivedTypeSpec * | derivedTypeSpec () const
DerivedTypeSpec * | derivedTypeSpec ()
void | set_derivedTypeSpec (DerivedTypeSpec &spec)
bool | hasSAVE () const
void | set_hasSAVE (bool yes=true)
const parser::CharBlock & | sourceRange () const
void | AddSourceRange (const parser::CharBlock &)
const Scope * | FindScope (parser::CharBlock) const
Scope * | FindScope (parser::CharBlock)
const DeclTypeSpec * | FindInstantiatedDerivedType (const DerivedTypeSpec &, DeclTypeSpec::Category=DeclTypeSpec::TypeDerived) const
bool | IsModuleFile () const
void | InstantiateDerivedTypes (SemanticsContext &)

## Friends
llvm::raw_ostream & | operator<< (llvm::raw_ostream &, const Scope &)

The documentation for this class was generated from the following files:

- include/flang/Semantics/scope.h
- lib/Semantics/scope.cpp