|
| ResolveNamesVisitor (SemanticsContext &context, ImplicitRulesMap &rules, Scope &top) |
|
Scope & | topScope () const |
|
template<typename T > |
bool | Pre (const T &) |
|
template<typename T > |
void | Post (const T &) |
|
bool | Pre (const parser::SpecificationPart &) |
|
bool | Pre (const parser::Program &) |
|
void | Post (const parser::Program &) |
|
bool | Pre (const parser::ImplicitStmt &) |
|
void | Post (const parser::PointerObject &) |
|
void | Post (const parser::AllocateObject &) |
|
bool | Pre (const parser::PointerAssignmentStmt &) |
|
void | Post (const parser::Designator &) |
|
void | Post (const parser::SubstringInquiry &) |
|
template<typename A , typename B > |
void | Post (const parser::LoopBounds< A, B > &x) |
|
void | Post (const parser::ProcComponentRef &) |
|
bool | Pre (const parser::FunctionReference &) |
|
bool | Pre (const parser::CallStmt &) |
|
bool | Pre (const parser::ImportStmt &) |
|
void | Post (const parser::TypeGuardStmt &) |
|
bool | Pre (const parser::StmtFunctionStmt &) |
|
bool | Pre (const parser::DefinedOpName &) |
|
bool | Pre (const parser::ProgramUnit &) |
|
void | Post (const parser::AssignStmt &) |
|
void | Post (const parser::AssignedGotoStmt &) |
|
void | Post (const parser::CompilerDirective &) |
|
bool | Pre (const parser::MainProgram &) |
|
bool | Pre (const parser::FunctionSubprogram &) |
|
bool | Pre (const parser::SubroutineSubprogram &) |
|
bool | Pre (const parser::SeparateModuleSubprogram &) |
|
bool | Pre (const parser::Module &) |
|
bool | Pre (const parser::Submodule &) |
|
bool | Pre (const parser::BlockData &) |
|
void | NoteExecutablePartCall (Symbol::Flag, SourceName, bool hasCUDAChevrons) |
|
void | Post (const parser::OpenACCBlockConstruct &) |
|
void | Post (const parser::OpenACCCombinedConstruct &) |
|
void | Post (const parser::AccBeginBlockDirective &) |
|
void | Post (const parser::AccEndBlockDirective &) |
|
void | Post (const parser::AccBeginLoopDirective &x) |
|
bool | Pre (const parser::OpenACCBlockConstruct &) |
|
bool | Pre (const parser::OpenACCCombinedConstruct &) |
|
bool | Pre (const parser::AccBeginBlockDirective &x) |
|
bool | Pre (const parser::AccEndBlockDirective &x) |
|
bool | Pre (const parser::AccBeginLoopDirective &x) |
|
void | Post (const parser::ArraySpec &) |
|
void | Post (const parser::ComponentArraySpec &) |
|
void | Post (const parser::CoarraySpec &) |
|
void | Post (const parser::AttrSpec &) |
|
void | Post (const parser::ComponentAttrSpec &) |
|
void | Post (const parser::DoConstruct &) |
|
void | Post (const parser::ForallConstruct &) |
|
void | Post (const parser::ForallStmt &) |
|
void | Post (const parser::Selector &) |
|
void | Post (const parser::AssociateStmt &) |
|
void | Post (const parser::EndAssociateStmt &) |
|
void | Post (const parser::SelectTypeStmt &) |
|
void | Post (const parser::SelectRankStmt &) |
|
void | Post (const parser::SelectTypeConstruct &) |
|
void | Post (const parser::SelectTypeConstruct::TypeCase &) |
|
void | Post (const parser::SelectRankConstruct::RankCase &) |
|
void | Post (const parser::TypeGuardStmt::Guard &) |
|
void | Post (const parser::SelectRankCaseStmt::Rank &) |
|
void | Post (const parser::EndChangeTeamStmt &) |
|
void | Post (const parser::CoarrayAssociation &) |
|
void | Post (const parser::SelectRankConstruct &) |
|
void | Post (const parser::MaskedElsewhereStmt &x) |
|
void | Post (const parser::ElsewhereStmt &x) |
|
void | Post (const parser::EndWhereStmt &x) |
|
void | Post (const parser::EndForallStmt &x) |
|
void | Post (const parser::EndCriticalStmt &x) |
|
void | Post (const parser::EndDoStmt &x) |
|
void | Post (const parser::ElseIfStmt &x) |
|
void | Post (const parser::ElseStmt &x) |
|
void | Post (const parser::EndIfStmt &x) |
|
void | Post (const parser::CaseStmt &x) |
|
void | Post (const parser::EndSelectStmt &x) |
|
void | Post (const parser::SelectRankCaseStmt &x) |
|
void | Post (const parser::TypeGuardStmt &x) |
|
void | Post (const parser::CycleStmt &x) |
|
void | Post (const parser::ExitStmt &x) |
|
bool | Pre (const parser::ConcurrentHeader &) |
|
bool | Pre (const parser::LocalitySpec::Local &) |
|
bool | Pre (const parser::LocalitySpec::LocalInit &) |
|
bool | Pre (const parser::LocalitySpec::Reduce &) |
|
bool | Pre (const parser::LocalitySpec::Shared &) |
|
bool | Pre (const parser::AcSpec &) |
|
bool | Pre (const parser::AcImpliedDo &) |
|
bool | Pre (const parser::DataImpliedDo &) |
|
bool | Pre (const parser::DataIDoObject &) |
|
bool | Pre (const parser::DataStmtObject &) |
|
bool | Pre (const parser::DataStmtValue &) |
|
bool | Pre (const parser::DoConstruct &) |
|
bool | Pre (const parser::ForallConstruct &) |
|
bool | Pre (const parser::ForallStmt &) |
|
bool | Pre (const parser::BlockConstruct &) |
|
bool | Pre (const parser::Association &) |
|
bool | Pre (const parser::SelectTypeConstruct &) |
|
bool | Pre (const parser::SelectTypeConstruct::TypeCase &) |
|
bool | Pre (const parser::SelectRankConstruct::RankCase &) |
|
bool | Pre (const parser::TypeGuardStmt::Guard &) |
|
bool | Pre (const parser::ChangeTeamStmt &) |
|
bool | Pre (const parser::WhereConstructStmt &x) |
|
bool | Pre (const parser::ForallConstructStmt &x) |
|
bool | Pre (const parser::CriticalStmt &x) |
|
bool | Pre (const parser::LabelDoStmt &) |
|
bool | Pre (const parser::NonLabelDoStmt &x) |
|
bool | Pre (const parser::IfThenStmt &x) |
|
bool | Pre (const parser::SelectCaseStmt &x) |
|
bool | Pre (const parser::SelectRankConstruct &) |
|
bool | Pre (const parser::SelectRankStmt &x) |
|
bool | Pre (const parser::SelectTypeStmt &x) |
|
void | Post (const parser::EntityDecl &) |
|
void | Post (const parser::ObjectDecl &) |
|
void | Post (const parser::PointerDecl &) |
|
void | Post (const parser::BindStmt &) |
|
void | Post (const parser::EnumDef &) |
|
void | Post (const parser::AllocatableStmt &) |
|
void | Post (const parser::TargetStmt &) |
|
void | Post (const parser::DimensionStmt::Declaration &) |
|
void | Post (const parser::CodimensionDecl &) |
|
void | Post (const parser::TypeDeclarationStmt &) |
|
void | Post (const parser::IntegerTypeSpec &) |
|
void | Post (const parser::UnsignedTypeSpec &) |
|
void | Post (const parser::IntrinsicTypeSpec::Real &) |
|
void | Post (const parser::IntrinsicTypeSpec::Complex &) |
|
void | Post (const parser::IntrinsicTypeSpec::Logical &) |
|
void | Post (const parser::IntrinsicTypeSpec::Character &) |
|
void | Post (const parser::CharSelector::LengthAndKind &) |
|
void | Post (const parser::CharLength &) |
|
void | Post (const parser::LengthSelector &) |
|
void | Post (const parser::VectorTypeSpec &) |
|
void | Post (const parser::DeclarationTypeSpec::Type &) |
|
void | Post (const parser::DeclarationTypeSpec::Class &) |
|
void | Post (const parser::DeclarationTypeSpec::Record &) |
|
void | Post (const parser::DerivedTypeSpec &) |
|
void | Post (const parser::DerivedTypeStmt &) |
|
void | Post (const parser::TypeParamDefStmt &) |
|
void | Post (const parser::ComponentDefStmt &) |
|
void | Post (const parser::ComponentDecl &) |
|
void | Post (const parser::FillDecl &) |
|
void | Post (const parser::ProcedureDeclarationStmt &) |
|
void | Post (const parser::ProcComponentDefStmt &) |
|
void | Post (const parser::ProcInterface &) |
|
void | Post (const parser::ProcDecl &) |
|
void | Post (const parser::TypeBoundProcedurePart &) |
|
void | Post (const parser::ContainsStmt &) |
|
void | Post (const parser::TypeBoundProcBinding &) |
|
void | Post (const parser::TypeBoundProcedureStmt::WithoutInterface &) |
|
void | Post (const parser::TypeBoundProcedureStmt::WithInterface &) |
|
void | Post (const parser::StructureField &) |
|
void | Post (const parser::AllocateStmt &) |
|
void | Post (const parser::CommonBlockObject &) |
|
void | Post (const parser::BasedPointer &) |
|
void | Post (const parser::ArraySpec &) |
|
void | Post (const parser::ComponentArraySpec &) |
|
void | Post (const parser::CoarraySpec &) |
|
void | Post (const parser::AttrSpec &) |
|
void | Post (const parser::ComponentAttrSpec &) |
|
template<typename T > |
void | Post (const parser::Statement< T > &) |
|
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::Initialization &) |
|
bool | Pre (const parser::BindStmt &) |
|
bool | Pre (const parser::BindEntity &) |
|
bool | Pre (const parser::OldParameterStmt &) |
|
bool | Pre (const parser::NamedConstantDef &) |
|
bool | Pre (const parser::NamedConstant &) |
|
bool | Pre (const parser::Enumerator &) |
|
bool | Pre (const parser::AccessSpec &) |
|
bool | Pre (const parser::AsynchronousStmt &) |
|
bool | Pre (const parser::ContiguousStmt &) |
|
bool | Pre (const parser::ExternalStmt &) |
|
bool | Pre (const parser::IntentStmt &) |
|
bool | Pre (const parser::IntrinsicStmt &) |
|
bool | Pre (const parser::OptionalStmt &) |
|
bool | Pre (const parser::ProtectedStmt &) |
|
bool | Pre (const parser::ValueStmt &) |
|
bool | Pre (const parser::VolatileStmt &) |
|
bool | Pre (const parser::AllocatableStmt &) |
|
bool | Pre (const parser::TargetStmt &) |
|
bool | Pre (const parser::CUDAAttributesStmt &) |
|
bool | Pre (const parser::TypeDeclarationStmt &) |
|
bool | Pre (const parser::KindParam &) |
|
bool | Pre (const parser::VectorTypeSpec &) |
|
bool | Pre (const parser::DeclarationTypeSpec::Type &) |
|
bool | Pre (const parser::DeclarationTypeSpec::Class &) |
|
bool | Pre (const parser::DerivedTypeDef &) |
|
bool | Pre (const parser::DerivedTypeStmt &) |
|
bool | Pre (const parser::TypeParamDefStmt &) |
|
bool | Pre (const parser::TypeAttrSpec::Extends &) |
|
bool | Pre (const parser::PrivateStmt &) |
|
bool | Pre (const parser::SequenceStmt &) |
|
bool | Pre (const parser::ComponentDefStmt &) |
|
bool | Pre (const parser::ProcedureDeclarationStmt &) |
|
bool | Pre (const parser::DataComponentDefStmt &) |
|
bool | Pre (const parser::ProcComponentDefStmt &) |
|
bool | Pre (const parser::ProcPointerInit &) |
|
bool | Pre (const parser::TypeBoundProcedurePart &) |
|
bool | Pre (const parser::TypeBoundProcBinding &) |
|
bool | Pre (const parser::FinalProcedureStmt &) |
|
bool | Pre (const parser::TypeBoundGenericStmt &) |
|
bool | Pre (const parser::StructureDef &) |
|
bool | Pre (const parser::Union::UnionStmt &) |
|
bool | Pre (const parser::StructureField &) |
|
bool | Pre (const parser::AllocateStmt &) |
|
bool | Pre (const parser::StructureConstructor &) |
|
bool | Pre (const parser::NamelistStmt::Group &) |
|
bool | Pre (const parser::IoControlSpec &) |
|
bool | Pre (const parser::CommonStmt::Block &) |
|
bool | Pre (const parser::CommonBlockObject &) |
|
bool | Pre (const parser::EquivalenceStmt &) |
|
bool | Pre (const parser::SaveStmt &) |
|
bool | Pre (const parser::BasedPointer &) |
|
template<typename T > |
bool | Pre (const parser::Statement< T > &x) |
|
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) |
|
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) |
|
void | Post (const parser::InterfaceStmt &) |
|
void | Post (const parser::EndInterfaceStmt &) |
|
void | Post (const parser::GenericStmt &) |
|
bool | Pre (const parser::InterfaceStmt &) |
|
bool | Pre (const parser::GenericSpec &) |
|
bool | Pre (const parser::ProcedureStmt &) |
|
bool | Pre (const parser::GenericStmt &) |
|
void | Post (const parser::UseStmt &) |
|
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::OpenMPBlockConstruct &) |
|
void | Post (const parser::OmpBeginBlockDirective &) |
|
void | Post (const parser::OmpEndBlockDirective &) |
|
void | Post (const parser::OpenMPLoopConstruct &) |
|
void | Post (const parser::OmpBeginLoopDirective &) |
|
void | Post (const parser::OmpEndLoopDirective &) |
|
void | Post (const parser::OpenMPSectionsConstruct &) |
|
void | Post (const parser::OmpBeginSectionsDirective &) |
|
void | Post (const parser::OmpEndSectionsDirective &) |
|
void | Post (const parser::OmpCriticalDirective &) |
|
void | Post (const parser::OmpEndCriticalDirective &) |
|
void | Post (const parser::OpenMPThreadprivate &) |
|
void | Post (const parser::OpenMPDeclareTargetConstruct &) |
|
void | Post (const parser::OpenMPDeclarativeAllocate &) |
|
void | Post (const parser::OpenMPDeclarativeConstruct &) |
|
void | Post (const parser::OpenMPDepobjConstruct &x) |
|
void | Post (const parser::OpenMPAtomicConstruct &) |
|
void | Post (const parser::OmpClause &x) |
|
bool | Pre (const parser::OpenMPRequiresConstruct &x) |
|
bool | Pre (const parser::OmpSimpleStandaloneDirective &x) |
|
bool | Pre (const parser::OpenMPBlockConstruct &) |
|
bool | Pre (const parser::OmpBeginBlockDirective &x) |
|
bool | Pre (const parser::OmpEndBlockDirective &x) |
|
bool | Pre (const parser::OpenMPLoopConstruct &) |
|
bool | Pre (const parser::OmpBeginLoopDirective &x) |
|
bool | Pre (const parser::OpenMPDeclareMapperConstruct &) |
|
bool | Pre (const parser::OmpMapClause &) |
|
bool | Pre (const parser::OmpEndLoopDirective &x) |
|
bool | Pre (const parser::OpenMPSectionsConstruct &) |
|
bool | Pre (const parser::OmpBeginSectionsDirective &x) |
|
bool | Pre (const parser::OmpEndSectionsDirective &x) |
|
bool | Pre (const parser::OmpCriticalDirective &x) |
|
bool | Pre (const parser::OmpEndCriticalDirective &x) |
|
bool | Pre (const parser::OpenMPThreadprivate &) |
|
bool | Pre (const parser::OpenMPDeclareTargetConstruct &) |
|
bool | Pre (const parser::OpenMPDeclarativeAllocate &) |
|
bool | Pre (const parser::OpenMPDeclarativeConstruct &x) |
|
bool | Pre (const parser::OpenMPDepobjConstruct &x) |
|
bool | Pre (const parser::OpenMPAtomicConstruct &x) |
|
bool | Pre (const parser::OmpClause &x) |
|
template<typename T > |
void | Post (const parser::Statement< T > &) |
|
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 &) |
|
template<typename T > |
bool | Pre (const parser::Statement< T > &x) |
|
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) |
|
void | Post (const parser::FunctionStmt &) |
|
void | Post (const parser::EntryStmt &) |
|
void | Post (const parser::InterfaceBody::Subroutine &) |
|
void | Post (const parser::InterfaceBody::Function &) |
|
void | Post (const parser::PrefixSpec::Launch_Bounds &) |
|
void | Post (const parser::PrefixSpec::Cluster_Dims &) |
|
bool | Pre (const parser::SubroutineStmt &) |
|
bool | Pre (const parser::FunctionStmt &) |
|
bool | Pre (const parser::EntryStmt &) |
|
bool | Pre (const parser::InterfaceBody::Subroutine &) |
|
bool | Pre (const parser::InterfaceBody::Function &) |
|
bool | Pre (const parser::Suffix &) |
|
bool | Pre (const parser::PrefixSpec &) |
|
bool | Pre (const parser::PrefixSpec::Attributes &) |
|
Public Member Functions inherited from Fortran::semantics::ScopeHandler |
Scope & | currScope () |
|
Scope * | GetHostProcedure () |
|
Scope & | InclusiveScope () |
|
Scope & | NonDerivedTypeScope () |
|
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> |
Message & | SayWithDecl (const parser::Name &, Symbol &, MessageFixedText &&, A &&...args) |
|
void | SayLocalMustBeVariable (const parser::Name &, Symbol &) |
|
Message & | SayDerivedType (const SourceName &, MessageFixedText &&, const Scope &) |
|
Message & | Say2 (const SourceName &, MessageFixedText &&, const SourceName &, MessageFixedText &&) |
|
Message & | Say2 (const SourceName &, MessageFixedText &&, Symbol &, MessageFixedText &&) |
|
Message & | Say2 (const parser::Name &, MessageFixedText &&, Symbol &, MessageFixedText &&) |
|
Symbol * | FindSymbol (const parser::Name &) |
|
Symbol * | FindSymbol (const Scope &, const parser::Name &) |
|
Symbol * | FindInScope (const Scope &, const parser::Name &) |
|
Symbol * | FindInScope (const Scope &, const SourceName &) |
|
template<typename T > |
Symbol * | FindInScope (const T &name) |
|
Symbol * | FindInTypeOrParents (const Scope &, const parser::Name &) |
|
Symbol * | FindInTypeOrParents (const parser::Name &) |
|
Symbol * | FindInScopeOrBlockConstructs (const Scope &, SourceName) |
|
Symbol * | FindSeparateModuleProcedureInterface (const parser::Name &) |
|
void | EraseSymbol (const parser::Name &) |
|
void | EraseSymbol (const Symbol &symbol) |
|
Symbol & | CopySymbol (const SourceName &, const Symbol &) |
|
Symbol & | MakeSymbol (Scope &, const SourceName &, Attrs) |
|
Symbol & | MakeSymbol (const SourceName &, Attrs=Attrs{}) |
|
Symbol & | MakeSymbol (const parser::Name &, Attrs=Attrs{}) |
|
Symbol & | MakeHostAssocSymbol (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) |
|
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 DeclTypeSpec * | GetType (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) |
|
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 DeclTypeSpec * | ProcessTypeSpec (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) |
|
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) |
|
| BaseVisitor (SemanticsContext &c, ResolveNamesVisitor &v, ImplicitRulesMap &rules) |
|
template<typename T > |
void | Walk (const T &) |
|
MessageHandler & | messageHandler () |
|
const std::optional< SourceName > & | currStmtSource () |
|
SemanticsContext & | context () const |
|
evaluate::FoldingContext & | GetFoldingContext () 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> |
Message & | Say (A &&...args) |
|
template<typename... A> |
Message & | Say (const parser::Name &name, MessageFixedText &&text, const A &...args) |
|
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 () |
|
Symbol & | AddGenericUse (GenericDetails &, const SourceName &, const Symbol &) |
|
void | AddAndCheckModuleUse (SourceName, bool isIntrinsic) |
|
void | CollectUseRenames (const parser::UseStmt &) |
|
void | ClearUseRenames () |
|
void | ClearUseOnly () |
|
void | ClearModuleUses () |
|
bool | HandleStmtFunction (const parser::StmtFunctionStmt &) |
|
bool | Pre (const parser::SubroutineStmt &) |
|
bool | Pre (const parser::FunctionStmt &) |
|
void | Post (const parser::FunctionStmt &) |
|
bool | Pre (const parser::EntryStmt &) |
|
void | Post (const parser::EntryStmt &) |
|
bool | Pre (const parser::InterfaceBody::Subroutine &) |
|
void | Post (const parser::InterfaceBody::Subroutine &) |
|
bool | Pre (const parser::InterfaceBody::Function &) |
|
void | Post (const parser::InterfaceBody::Function &) |
|
bool | Pre (const parser::Suffix &) |
|
bool | Pre (const parser::PrefixSpec &) |
|
bool | Pre (const parser::PrefixSpec::Attributes &) |
|
void | Post (const parser::PrefixSpec::Launch_Bounds &) |
|
void | Post (const parser::PrefixSpec::Cluster_Dims &) |
|
bool | BeginSubprogram (const parser::Name &, Symbol::Flag, bool hasModulePrefix=false, const parser::LanguageBindingSpec *=nullptr, const ProgramTree::EntryStmtList *=nullptr) |
|
bool | BeginMpSubprogram (const parser::Name &) |
|
void | PushBlockDataScope (const parser::Name &) |
|
void | EndSubprogram (std::optional< parser::CharBlock > stmtSource=std::nullopt, const std::optional< parser::LanguageBindingSpec > *=nullptr, const ProgramTree::EntryStmtList *=nullptr) |
|
bool | Pre (const parser::InterfaceStmt &) |
|
void | Post (const parser::InterfaceStmt &) |
|
void | Post (const parser::EndInterfaceStmt &) |
|
bool | Pre (const parser::GenericSpec &) |
|
bool | Pre (const parser::ProcedureStmt &) |
|
bool | Pre (const parser::GenericStmt &) |
|
void | Post (const parser::GenericStmt &) |
|
bool | inInterfaceBlock () const |
|
bool | isGeneric () const |
|
bool | isAbstract () const |
|
bool | Pre (const parser::ConcurrentHeader &) |
|
bool | Pre (const parser::LocalitySpec::Local &) |
|
bool | Pre (const parser::LocalitySpec::LocalInit &) |
|
bool | Pre (const parser::LocalitySpec::Reduce &) |
|
bool | Pre (const parser::LocalitySpec::Shared &) |
|
bool | Pre (const parser::AcSpec &) |
|
bool | Pre (const parser::AcImpliedDo &) |
|
bool | Pre (const parser::DataImpliedDo &) |
|
bool | Pre (const parser::DataIDoObject &) |
|
bool | Pre (const parser::DataStmtObject &) |
|
bool | Pre (const parser::DataStmtValue &) |
|
bool | Pre (const parser::DoConstruct &) |
|
void | Post (const parser::DoConstruct &) |
|
bool | Pre (const parser::ForallConstruct &) |
|
void | Post (const parser::ForallConstruct &) |
|
bool | Pre (const parser::ForallStmt &) |
|
void | Post (const parser::ForallStmt &) |
|
bool | Pre (const parser::BlockConstruct &) |
|
void | Post (const parser::Selector &) |
|
void | Post (const parser::AssociateStmt &) |
|
void | Post (const parser::EndAssociateStmt &) |
|
bool | Pre (const parser::Association &) |
|
void | Post (const parser::SelectTypeStmt &) |
|
void | Post (const parser::SelectRankStmt &) |
|
bool | Pre (const parser::SelectTypeConstruct &) |
|
void | Post (const parser::SelectTypeConstruct &) |
|
bool | Pre (const parser::SelectTypeConstruct::TypeCase &) |
|
void | Post (const parser::SelectTypeConstruct::TypeCase &) |
|
bool | Pre (const parser::SelectRankConstruct::RankCase &) |
|
void | Post (const parser::SelectRankConstruct::RankCase &) |
|
bool | Pre (const parser::TypeGuardStmt::Guard &) |
|
void | Post (const parser::TypeGuardStmt::Guard &) |
|
void | Post (const parser::SelectRankCaseStmt::Rank &) |
|
bool | Pre (const parser::ChangeTeamStmt &) |
|
void | Post (const parser::EndChangeTeamStmt &) |
|
void | Post (const parser::CoarrayAssociation &) |
|
bool | Pre (const parser::WhereConstructStmt &x) |
|
bool | Pre (const parser::ForallConstructStmt &x) |
|
bool | Pre (const parser::CriticalStmt &x) |
|
bool | Pre (const parser::LabelDoStmt &) |
|
bool | Pre (const parser::NonLabelDoStmt &x) |
|
bool | Pre (const parser::IfThenStmt &x) |
|
bool | Pre (const parser::SelectCaseStmt &x) |
|
bool | Pre (const parser::SelectRankConstruct &) |
|
void | Post (const parser::SelectRankConstruct &) |
|
bool | Pre (const parser::SelectRankStmt &x) |
|
bool | Pre (const parser::SelectTypeStmt &x) |
|
void | Post (const parser::MaskedElsewhereStmt &x) |
|
void | Post (const parser::ElsewhereStmt &x) |
|
void | Post (const parser::EndWhereStmt &x) |
|
void | Post (const parser::EndForallStmt &x) |
|
void | Post (const parser::EndCriticalStmt &x) |
|
void | Post (const parser::EndDoStmt &x) |
|
void | Post (const parser::ElseIfStmt &x) |
|
void | Post (const parser::ElseStmt &x) |
|
void | Post (const parser::EndIfStmt &x) |
|
void | Post (const parser::CaseStmt &x) |
|
void | Post (const parser::EndSelectStmt &x) |
|
void | Post (const parser::SelectRankCaseStmt &x) |
|
void | Post (const parser::TypeGuardStmt &x) |
|
void | Post (const parser::CycleStmt &x) |
|
void | Post (const parser::ExitStmt &x) |
|
void | HandleImpliedAsynchronousInScope (const parser::Block &) |
|
bool | Pre (const parser::Initialization &) |
|
void | Post (const parser::EntityDecl &) |
|
void | Post (const parser::ObjectDecl &) |
|
void | Post (const parser::PointerDecl &) |
|
bool | Pre (const parser::BindStmt &) |
|
void | Post (const parser::BindStmt &) |
|
bool | Pre (const parser::BindEntity &) |
|
bool | Pre (const parser::OldParameterStmt &) |
|
bool | Pre (const parser::NamedConstantDef &) |
|
bool | Pre (const parser::NamedConstant &) |
|
void | Post (const parser::EnumDef &) |
|
bool | Pre (const parser::Enumerator &) |
|
bool | Pre (const parser::AccessSpec &) |
|
bool | Pre (const parser::AsynchronousStmt &) |
|
bool | Pre (const parser::ContiguousStmt &) |
|
bool | Pre (const parser::ExternalStmt &) |
|
bool | Pre (const parser::IntentStmt &) |
|
bool | Pre (const parser::IntrinsicStmt &) |
|
bool | Pre (const parser::OptionalStmt &) |
|
bool | Pre (const parser::ProtectedStmt &) |
|
bool | Pre (const parser::ValueStmt &) |
|
bool | Pre (const parser::VolatileStmt &) |
|
bool | Pre (const parser::AllocatableStmt &) |
|
void | Post (const parser::AllocatableStmt &) |
|
bool | Pre (const parser::TargetStmt &) |
|
bool | Pre (const parser::CUDAAttributesStmt &) |
|
void | Post (const parser::TargetStmt &) |
|
void | Post (const parser::DimensionStmt::Declaration &) |
|
void | Post (const parser::CodimensionDecl &) |
|
bool | Pre (const parser::TypeDeclarationStmt &) |
|
void | Post (const parser::TypeDeclarationStmt &) |
|
void | Post (const parser::IntegerTypeSpec &) |
|
void | Post (const parser::UnsignedTypeSpec &) |
|
void | Post (const parser::IntrinsicTypeSpec::Real &) |
|
void | Post (const parser::IntrinsicTypeSpec::Complex &) |
|
void | Post (const parser::IntrinsicTypeSpec::Logical &) |
|
void | Post (const parser::IntrinsicTypeSpec::Character &) |
|
void | Post (const parser::CharSelector::LengthAndKind &) |
|
void | Post (const parser::CharLength &) |
|
void | Post (const parser::LengthSelector &) |
|
bool | Pre (const parser::KindParam &) |
|
bool | Pre (const parser::VectorTypeSpec &) |
|
void | Post (const parser::VectorTypeSpec &) |
|
bool | Pre (const parser::DeclarationTypeSpec::Type &) |
|
void | Post (const parser::DeclarationTypeSpec::Type &) |
|
bool | Pre (const parser::DeclarationTypeSpec::Class &) |
|
void | Post (const parser::DeclarationTypeSpec::Class &) |
|
void | Post (const parser::DeclarationTypeSpec::Record &) |
|
void | Post (const parser::DerivedTypeSpec &) |
|
bool | Pre (const parser::DerivedTypeDef &) |
|
bool | Pre (const parser::DerivedTypeStmt &) |
|
void | Post (const parser::DerivedTypeStmt &) |
|
bool | Pre (const parser::TypeParamDefStmt &) |
|
void | Post (const parser::TypeParamDefStmt &) |
|
bool | Pre (const parser::TypeAttrSpec::Extends &) |
|
bool | Pre (const parser::PrivateStmt &) |
|
bool | Pre (const parser::SequenceStmt &) |
|
bool | Pre (const parser::ComponentDefStmt &) |
|
void | Post (const parser::ComponentDefStmt &) |
|
void | Post (const parser::ComponentDecl &) |
|
void | Post (const parser::FillDecl &) |
|
bool | Pre (const parser::ProcedureDeclarationStmt &) |
|
void | Post (const parser::ProcedureDeclarationStmt &) |
|
bool | Pre (const parser::DataComponentDefStmt &) |
|
bool | Pre (const parser::ProcComponentDefStmt &) |
|
void | Post (const parser::ProcComponentDefStmt &) |
|
bool | Pre (const parser::ProcPointerInit &) |
|
void | Post (const parser::ProcInterface &) |
|
void | Post (const parser::ProcDecl &) |
|
bool | Pre (const parser::TypeBoundProcedurePart &) |
|
void | Post (const parser::TypeBoundProcedurePart &) |
|
void | Post (const parser::ContainsStmt &) |
|
bool | Pre (const parser::TypeBoundProcBinding &) |
|
void | Post (const parser::TypeBoundProcBinding &) |
|
void | Post (const parser::TypeBoundProcedureStmt::WithoutInterface &) |
|
void | Post (const parser::TypeBoundProcedureStmt::WithInterface &) |
|
bool | Pre (const parser::FinalProcedureStmt &) |
|
bool | Pre (const parser::TypeBoundGenericStmt &) |
|
bool | Pre (const parser::StructureDef &) |
|
bool | Pre (const parser::Union::UnionStmt &) |
|
bool | Pre (const parser::StructureField &) |
|
void | Post (const parser::StructureField &) |
|
bool | Pre (const parser::AllocateStmt &) |
|
void | Post (const parser::AllocateStmt &) |
|
bool | Pre (const parser::StructureConstructor &) |
|
bool | Pre (const parser::NamelistStmt::Group &) |
|
bool | Pre (const parser::IoControlSpec &) |
|
bool | Pre (const parser::CommonStmt::Block &) |
|
bool | Pre (const parser::CommonBlockObject &) |
|
void | Post (const parser::CommonBlockObject &) |
|
bool | Pre (const parser::EquivalenceStmt &) |
|
bool | Pre (const parser::SaveStmt &) |
|
bool | Pre (const parser::BasedPointer &) |
|
void | Post (const parser::BasedPointer &) |
|
void | PointerInitialization (const parser::Name &, const parser::InitialDataTarget &) |
|
void | PointerInitialization (const parser::Name &, const parser::ProcPointerInit &) |
|
void | NonPointerInitialization (const parser::Name &, const parser::ConstantExpr &) |
|
void | CheckExplicitInterface (const parser::Name &) |
|
void | CheckBindings (const parser::TypeBoundProcedureStmt::WithoutInterface &) |
|
const parser::Name * | ResolveDesignator (const parser::Designator &) |
|
int | GetVectorElementKind (TypeCategory category, const std::optional< parser::KindSelector > &kind) |
|
void | Post (const parser::ArraySpec &) |
|
void | Post (const parser::ComponentArraySpec &) |
|
void | Post (const parser::CoarraySpec &) |
|
void | Post (const parser::AttrSpec &) |
|
void | Post (const parser::ComponentAttrSpec &) |
|
template<typename T > |
void | Post (const parser::Statement< T > &) |
|
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 &) |
|
template<typename T > |
bool | Pre (const parser::Statement< T > &x) |
|
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) |
|
void | Post (const parser::ArraySpec &) |
|
void | Post (const parser::ComponentArraySpec &) |
|
void | Post (const parser::CoarraySpec &) |
|
void | Post (const parser::AttrSpec &) |
|
void | Post (const parser::ComponentAttrSpec &) |
|
void | AddOmpSourceRange (const parser::CharBlock &) |
|
bool | Pre (const parser::OpenMPRequiresConstruct &x) |
|
bool | Pre (const parser::OmpSimpleStandaloneDirective &x) |
|
bool | Pre (const parser::OpenMPBlockConstruct &) |
|
void | Post (const parser::OpenMPBlockConstruct &) |
|
bool | Pre (const parser::OmpBeginBlockDirective &x) |
|
void | Post (const parser::OmpBeginBlockDirective &) |
|
bool | Pre (const parser::OmpEndBlockDirective &x) |
|
void | Post (const parser::OmpEndBlockDirective &) |
|
bool | Pre (const parser::OpenMPLoopConstruct &) |
|
void | Post (const parser::OpenMPLoopConstruct &) |
|
bool | Pre (const parser::OmpBeginLoopDirective &x) |
|
bool | Pre (const parser::OpenMPDeclareMapperConstruct &) |
|
bool | Pre (const parser::OmpMapClause &) |
|
void | Post (const parser::OmpBeginLoopDirective &) |
|
bool | Pre (const parser::OmpEndLoopDirective &x) |
|
void | Post (const parser::OmpEndLoopDirective &) |
|
bool | Pre (const parser::OpenMPSectionsConstruct &) |
|
void | Post (const parser::OpenMPSectionsConstruct &) |
|
bool | Pre (const parser::OmpBeginSectionsDirective &x) |
|
void | Post (const parser::OmpBeginSectionsDirective &) |
|
bool | Pre (const parser::OmpEndSectionsDirective &x) |
|
void | Post (const parser::OmpEndSectionsDirective &) |
|
bool | Pre (const parser::OmpCriticalDirective &x) |
|
void | Post (const parser::OmpCriticalDirective &) |
|
bool | Pre (const parser::OmpEndCriticalDirective &x) |
|
void | Post (const parser::OmpEndCriticalDirective &) |
|
bool | Pre (const parser::OpenMPThreadprivate &) |
|
void | Post (const parser::OpenMPThreadprivate &) |
|
bool | Pre (const parser::OpenMPDeclareTargetConstruct &) |
|
void | Post (const parser::OpenMPDeclareTargetConstruct &) |
|
bool | Pre (const parser::OpenMPDeclarativeAllocate &) |
|
void | Post (const parser::OpenMPDeclarativeAllocate &) |
|
bool | Pre (const parser::OpenMPDeclarativeConstruct &x) |
|
void | Post (const parser::OpenMPDeclarativeConstruct &) |
|
bool | Pre (const parser::OpenMPDepobjConstruct &x) |
|
void | Post (const parser::OpenMPDepobjConstruct &x) |
|
bool | Pre (const parser::OpenMPAtomicConstruct &x) |
|
void | Post (const parser::OpenMPAtomicConstruct &) |
|
bool | Pre (const parser::OmpClause &x) |
|
void | Post (const parser::OmpClause &x) |
|
void | AddAccSourceRange (const parser::CharBlock &) |
|
bool | Pre (const parser::OpenACCBlockConstruct &) |
|
void | Post (const parser::OpenACCBlockConstruct &) |
|
bool | Pre (const parser::OpenACCCombinedConstruct &) |
|
void | Post (const parser::OpenACCCombinedConstruct &) |
|
bool | Pre (const parser::AccBeginBlockDirective &x) |
|
void | Post (const parser::AccBeginBlockDirective &) |
|
bool | Pre (const parser::AccEndBlockDirective &x) |
|
void | Post (const parser::AccEndBlockDirective &) |
|
bool | Pre (const parser::AccBeginLoopDirective &x) |
|
void | Post (const parser::AccBeginLoopDirective &x) |
|