FLANG
Classes | Public Member Functions | List of all members
Fortran::semantics::ModuleVisitor Class Reference
Inheritance diagram for Fortran::semantics::ModuleVisitor:
Fortran::semantics::ScopeHandler Fortran::semantics::ImplicitRulesVisitor Fortran::semantics::DeclTypeSpecVisitor Fortran::semantics::AttrsVisitor Fortran::semantics::BaseVisitor Fortran::semantics::ResolveNamesVisitor

Public Member Functions

bool Pre (const parser::AccessStmt &)
 
bool Pre (const parser::Only &)
 
bool Pre (const parser::Rename::Names &)
 
bool Pre (const parser::Rename::Operators &)
 
bool Pre (const parser::UseStmt &)
 
void Post (const parser::UseStmt &)
 
void BeginModule (const parser::Name &, bool isSubmodule)
 
bool BeginSubmodule (const parser::Name &, const parser::ParentIdentifier &)
 
void ApplyDefaultAccess ()
 
SymbolAddGenericUse (GenericDetails &, const SourceName &, const Symbol &)
 
void AddAndCheckModuleUse (SourceName, bool isIntrinsic)
 
void CollectUseRenames (const parser::UseStmt &)
 
void ClearUseRenames ()
 
void ClearUseOnly ()
 
void ClearModuleUses ()
 
- Public Member Functions inherited from Fortran::semantics::ScopeHandler
ScopecurrScope ()
 
ScopeGetHostProcedure ()
 
ScopeInclusiveScope ()
 
ScopeNonDerivedTypeScope ()
 
void PushScope (Scope::Kind kind, Symbol *symbol)
 
void PushScope (Scope &scope)
 
void PopScope ()
 
void SetScope (Scope &)
 
template<typename T >
bool Pre (const parser::Statement< T > &x)
 
template<typename T >
void Post (const parser::Statement< T > &)
 
void SayAlreadyDeclared (const parser::Name &, Symbol &)
 
void SayAlreadyDeclared (const SourceName &, Symbol &)
 
void SayAlreadyDeclared (const SourceName &, const SourceName &)
 
void SayWithReason (const parser::Name &, Symbol &, MessageFixedText &&, Message &&)
 
template<typename... A>
MessageSayWithDecl (const parser::Name &, Symbol &, MessageFixedText &&, A &&...args)
 
void SayLocalMustBeVariable (const parser::Name &, Symbol &)
 
MessageSayDerivedType (const SourceName &, MessageFixedText &&, const Scope &)
 
MessageSay2 (const SourceName &, MessageFixedText &&, const SourceName &, MessageFixedText &&)
 
MessageSay2 (const SourceName &, MessageFixedText &&, Symbol &, MessageFixedText &&)
 
MessageSay2 (const parser::Name &, MessageFixedText &&, Symbol &, MessageFixedText &&)
 
SymbolFindSymbol (const parser::Name &)
 
SymbolFindSymbol (const Scope &, const parser::Name &)
 
SymbolFindInScope (const Scope &, const parser::Name &)
 
SymbolFindInScope (const Scope &, const SourceName &)
 
template<typename T >
SymbolFindInScope (const T &name)
 
SymbolFindInTypeOrParents (const Scope &, const parser::Name &)
 
SymbolFindInTypeOrParents (const parser::Name &)
 
SymbolFindInScopeOrBlockConstructs (const Scope &, SourceName)
 
SymbolFindSeparateModuleProcedureInterface (const parser::Name &)
 
void EraseSymbol (const parser::Name &)
 
void EraseSymbol (const Symbol &symbol)
 
SymbolCopySymbol (const SourceName &, const Symbol &)
 
SymbolMakeSymbol (Scope &, const SourceName &, Attrs)
 
SymbolMakeSymbol (const SourceName &, Attrs=Attrs{})
 
SymbolMakeSymbol (const parser::Name &, Attrs=Attrs{})
 
SymbolMakeHostAssocSymbol (const parser::Name &, const Symbol &)
 
template<typename D >
common::IfNoLvalue< Symbol &, D > MakeSymbol (const parser::Name &name, D &&details)
 
template<typename D >
common::IfNoLvalue< Symbol &, D > MakeSymbol (const parser::Name &name, const Attrs &attrs, D &&details)
 
template<typename D >
common::IfNoLvalue< Symbol &, D > MakeSymbol (const SourceName &name, const Attrs &attrs, D &&details)
 
void MakeExternal (Symbol &)
 
bool CheckDuplicatedAttr (SourceName, Symbol &, Attr)
 
bool CheckDuplicatedAttrs (SourceName, Symbol &, Attrs)
 
void SetExplicitAttr (Symbol &symbol, Attr attr) const
 
void SetExplicitAttrs (Symbol &symbol, Attrs attrs) const
 
void SetImplicitAttr (Symbol &symbol, Attr attr) const
 
void SetCUDADataAttr (SourceName, Symbol &, std::optional< common::CUDADataAttr >)
 
void Post (const parser::ParameterStmt &)
 
void Post (const parser::ImplicitSpec &)
 
void Post (const parser::IntrinsicTypeSpec::DoublePrecision &)
 
void Post (const parser::IntrinsicTypeSpec::DoubleComplex &)
 
void Post (const parser::DeclarationTypeSpec::ClassStar &)
 
void Post (const parser::DeclarationTypeSpec::TypeStar &)
 
void Post (const parser::TypeGuardStmt &)
 
void Post (const parser::TypeSpec &)
 
void Post (const parser::LanguageBindingSpec &)
 
bool Pre (const parser::ImplicitStmt &)
 
bool Pre (const parser::LetterSpec &)
 
bool Pre (const parser::ImplicitSpec &)
 
bool Pre (const parser::TypeGuardStmt &)
 
bool Pre (const parser::IntentSpec &)
 
bool Pre (const parser::Pass &)
 
bool Pre (const common::CUDADataAttr)
 
- Public Member Functions inherited from Fortran::semantics::ImplicitRulesVisitor
void Post (const parser::ParameterStmt &)
 
bool Pre (const parser::ImplicitStmt &)
 
bool Pre (const parser::LetterSpec &)
 
bool Pre (const parser::ImplicitSpec &)
 
void Post (const parser::ImplicitSpec &)
 
const DeclTypeSpecGetType (SourceName name, bool respectImplicitNoneType=true)
 
bool isImplicitNoneType () const
 
bool isImplicitNoneType (const Scope &scope) const
 
bool isImplicitNoneExternal () const
 
void set_inheritFromParent (bool x)
 
void Post (const parser::IntrinsicTypeSpec::DoublePrecision &)
 
void Post (const parser::IntrinsicTypeSpec::DoubleComplex &)
 
void Post (const parser::DeclarationTypeSpec::ClassStar &)
 
void Post (const parser::DeclarationTypeSpec::TypeStar &)
 
void Post (const parser::TypeGuardStmt &)
 
void Post (const parser::TypeSpec &)
 
void Post (const parser::LanguageBindingSpec &)
 
bool Pre (const parser::TypeGuardStmt &)
 
bool Pre (const parser::IntentSpec &)
 
bool Pre (const parser::Pass &)
 
bool Pre (const common::CUDADataAttr)
 
- Public Member Functions inherited from Fortran::semantics::DeclTypeSpecVisitor
void Post (const parser::IntrinsicTypeSpec::DoublePrecision &)
 
void Post (const parser::IntrinsicTypeSpec::DoubleComplex &)
 
void Post (const parser::DeclarationTypeSpec::ClassStar &)
 
void Post (const parser::DeclarationTypeSpec::TypeStar &)
 
bool Pre (const parser::TypeGuardStmt &)
 
void Post (const parser::TypeGuardStmt &)
 
void Post (const parser::TypeSpec &)
 
template<typename T >
const DeclTypeSpecProcessTypeSpec (const T &x, bool allowForward=false)
 
void Post (const parser::LanguageBindingSpec &)
 
bool Pre (const parser::IntentSpec &)
 
bool Pre (const parser::Pass &)
 
bool Pre (const common::CUDADataAttr)
 
- Public Member Functions inherited from Fortran::semantics::AttrsVisitor
bool BeginAttrs ()
 
Attrs GetAttrs ()
 
std::optional< common::CUDADataAttr > cudaDataAttr ()
 
Attrs EndAttrs ()
 
bool SetPassNameOn (Symbol &)
 
void SetBindNameOn (Symbol &)
 
void Post (const parser::LanguageBindingSpec &)
 
bool Pre (const parser::IntentSpec &)
 
bool Pre (const parser::Pass &)
 
bool CheckAndSet (Attr)
 
bool Pre (const common::CUDADataAttr)
 
- Public Member Functions inherited from Fortran::semantics::BaseVisitor
 BaseVisitor (SemanticsContext &c, ResolveNamesVisitor &v, ImplicitRulesMap &rules)
 
template<typename T >
void Walk (const T &)
 
MessageHandlermessageHandler ()
 
const std::optional< SourceName > & currStmtSource ()
 
SemanticsContextcontext () const
 
evaluate::FoldingContextGetFoldingContext () const
 
bool IsIntrinsic (const SourceName &name, std::optional< Symbol::Flag > flag) const
 
bool InModuleFile () const
 
void MakePlaceholder (const parser::Name &, MiscDetails::Kind)
 
template<typename T >
common::IfNoLvalue< T, T > FoldExpr (T &&expr)
 
template<typename T >
MaybeExpr EvaluateExpr (const T &expr)
 
template<typename T >
MaybeExpr EvaluateNonPointerInitializer (const Symbol &symbol, const T &expr, parser::CharBlock source)
 
template<typename T >
MaybeIntExpr EvaluateIntExpr (const T &expr)
 
template<typename T >
MaybeSubscriptIntExpr EvaluateSubscriptIntExpr (const T &expr)
 
template<typename... A>
MessageSay (A &&...args)
 
template<typename... A>
MessageSay (const parser::Name &name, MessageFixedText &&text, const A &...args)
 

Additional Inherited Members

- Public Types inherited from Fortran::semantics::ImplicitRulesVisitor
using ImplicitNoneNameSpec = parser::ImplicitStmt::ImplicitNoneNameSpec
 
- Protected Member Functions inherited from Fortran::semantics::ScopeHandler
FuncResultStackfuncResultStack ()
 
void ApplyImplicitRules (Symbol &, bool allowForwardReference=false)
 
bool ImplicitlyTypeForwardRef (Symbol &)
 
void AcquireIntrinsicProcedureFlags (Symbol &)
 
const DeclTypeSpecGetImplicitType (Symbol &, bool respectImplicitNoneType=true)
 
void CheckEntryDummyUse (SourceName, Symbol *)
 
bool ConvertToObjectEntity (Symbol &)
 
bool ConvertToProcEntity (Symbol &, std::optional< SourceName >=std::nullopt)
 
const DeclTypeSpecMakeNumericType (TypeCategory, const std::optional< parser::KindSelector > &)
 
const DeclTypeSpecMakeNumericType (TypeCategory, int)
 
const DeclTypeSpecMakeLogicalType (const std::optional< parser::KindSelector > &)
 
const DeclTypeSpecMakeLogicalType (int)
 
void NotePossibleBadForwardRef (const parser::Name &)
 
std::optional< SourceNameHadForwardRef (const Symbol &) const
 
bool CheckPossibleBadForwardRef (const Symbol &)
 
DeferredDeclarationStateGetDeferredDeclarationState (bool add=false)
 
void SkipImplicitTyping (bool skip)
 
- Protected Member Functions inherited from Fortran::semantics::ImplicitRulesVisitor
void BeginScope (const Scope &)
 
void SetScope (const Scope &)
 
- Protected Member Functions inherited from Fortran::semantics::DeclTypeSpecVisitor
bool allowForwardReferenceToDerivedType () const
 
void set_allowForwardReferenceToDerivedType (bool yes)
 
const DeclTypeSpecGetDeclTypeSpec ()
 
void BeginDeclTypeSpec ()
 
void EndDeclTypeSpec ()
 
void SetDeclTypeSpec (const DeclTypeSpec &)
 
void SetDeclTypeSpecCategory (DeclTypeSpec::Category)
 
DeclTypeSpec::Category GetDeclTypeSpecCategory () const
 
KindExpr GetKindParamExpr (TypeCategory, const std::optional< parser::KindSelector > &)
 
void CheckForAbstractType (const Symbol &typeSymbol)
 
- Protected Member Functions inherited from Fortran::semantics::AttrsVisitor
Attr AccessSpecToAttr (const parser::AccessSpec &x)
 
Attr IntentSpecToAttr (const parser::IntentSpec &x)
 
- Protected Attributes inherited from Fortran::semantics::ScopeHandler
bool inSpecificationPart_ {false}
 
bool deferImplicitTyping_ {false}
 
bool skipImplicitTyping_ {false}
 
bool inEquivalenceStmt_ {false}
 
struct Fortran::semantics::ScopeHandler::SpecificationPartState specPartState_
 
- Protected Attributes inherited from Fortran::semantics::AttrsVisitor
std::optional< Attrs > attrs_
 
std::optional< common::CUDADataAttr > cudaDataAttr_
 
- Protected Attributes inherited from Fortran::semantics::BaseVisitor
ImplicitRulesMap * implicitRulesMap_ {nullptr}
 

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