|
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) |
|
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::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 |
|
|
using | ImplicitNoneNameSpec = parser::ImplicitStmt::ImplicitNoneNameSpec |
|
Protected Types inherited from Fortran::semantics::GenericHandler |
using | ProcedureKind = parser::ProcedureStmt::Kind |
|
using | SpecificProcMapType = std::multimap< Symbol *, std::pair< const parser::Name *, ProcedureKind > > |
|
using | GenericProcMapType = std::multimap< SourceName, Symbol * > |
|
Protected Member Functions inherited from Fortran::semantics::ScopeHandler |
FuncResultStack & | funcResultStack () |
|
void | ApplyImplicitRules (Symbol &, bool allowForwardReference=false) |
|
bool | ImplicitlyTypeForwardRef (Symbol &) |
|
void | AcquireIntrinsicProcedureFlags (Symbol &) |
|
const DeclTypeSpec * | GetImplicitType (Symbol &, bool respectImplicitNoneType=true) |
|
void | CheckEntryDummyUse (SourceName, Symbol *) |
|
bool | ConvertToObjectEntity (Symbol &) |
|
bool | ConvertToProcEntity (Symbol &, std::optional< SourceName >=std::nullopt) |
|
const DeclTypeSpec & | MakeNumericType (TypeCategory, const std::optional< parser::KindSelector > &) |
|
const DeclTypeSpec & | MakeNumericType (TypeCategory, int) |
|
const DeclTypeSpec & | MakeLogicalType (const std::optional< parser::KindSelector > &) |
|
const DeclTypeSpec & | MakeLogicalType (int) |
|
void | NotePossibleBadForwardRef (const parser::Name &) |
|
std::optional< SourceName > | HadForwardRef (const Symbol &) const |
|
bool | CheckPossibleBadForwardRef (const Symbol &) |
|
DeferredDeclarationState * | GetDeferredDeclarationState (bool add=false) |
|
void | SkipImplicitTyping (bool skip) |
|
void | BeginScope (const Scope &) |
|
void | SetScope (const Scope &) |
|
bool | allowForwardReferenceToDerivedType () const |
|
void | set_allowForwardReferenceToDerivedType (bool yes) |
|
const DeclTypeSpec * | GetDeclTypeSpec () |
|
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) |
|
Attr | AccessSpecToAttr (const parser::AccessSpec &x) |
|
Attr | IntentSpecToAttr (const parser::IntentSpec &x) |
|
Symbol & | GetGenericSymbol () |
|
void | CheckGenericProcedures (Symbol &) |
|
Protected Member Functions inherited from Fortran::semantics::GenericHandler |
void | ResolveSpecificsInGeneric (Symbol &, bool isEndOfSpecificationPart) |
|
void | DeclaredPossibleSpecificProc (Symbol &) |
|