FLANG

Public Member Functions | Protected Attributes | List of all members
Fortran::semantics::SubprogramVisitor Class Reference
Inheritance diagram for Fortran::semantics::SubprogramVisitor:

## Public Member Functions
bool | HandleStmtFunction (const parser::StmtFunctionStmt &)
bool | Pre (const parser::SubroutineStmt &)
void | Post (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 &)
void | Post (const parser::ImplicitPart &)
bool | BeginSubprogram (const parser::Name &, Symbol::Flag, bool hasModulePrefix=false)
bool | BeginMpSubprogram (const parser::Name &)
void | PushBlockDataScope (const parser::Name &)
void | EndSubprogram ()
Public Member Functions inherited from Fortran::semantics::ScopeHandler
Scope & | currScope ()
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 &&, MessageFixedText &&)
void | SayWithDecl (const parser::Name &, Symbol &, MessageFixedText &&)
void | SayLocalMustBeVariable (const parser::Name &, Symbol &)
void | SayDerivedType (const SourceName &, MessageFixedText &&, const Scope &)
void | Say2 (const SourceName &, MessageFixedText &&, const SourceName &, MessageFixedText &&)
void | Say2 (const SourceName &, MessageFixedText &&, Symbol &, MessageFixedText &&)
void | 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 &)
Symbol * | FindInTypeOrParents (const Scope &, const parser::Name &)
Symbol * | FindInTypeOrParents (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{})
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 &)
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 &)
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 &)
ImplicitRules & | implicitRules ()
const ImplicitRules & | implicitRules () const
bool | isImplicitNoneType () const
bool | isImplicitNoneExternal () const
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 &)
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 &)
void | Post (const parser::LanguageBindingSpec &)
bool | Pre (const parser::IntentSpec &)
bool | Pre (const parser::Pass &)
Public Member Functions inherited from Fortran::semantics::AttrsVisitor
bool | BeginAttrs ()
Attrs | GetAttrs ()
Attrs | EndAttrs ()
bool | SetPassNameOn (Symbol &)
bool | SetBindNameOn (Symbol &)
void | Post (const parser::LanguageBindingSpec &)
bool | Pre (const parser::IntentSpec &)
bool | Pre (const parser::Pass &)
bool | CheckAndSet (Attr)
Public Member Functions inherited from Fortran::semantics::BaseVisitor
| 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
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 | EvaluateConvertedExpr (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)
Public Member Functions inherited from Fortran::semantics::InterfaceVisitor
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

## Protected Attributes
bool | badStmtFuncFound_ {false}
bool | inExecutionPart_ {false}
Protected Attributes inherited from Fortran::semantics::AttrsVisitor
std::optional< Attrs > | attrs_
Protected Attributes inherited from Fortran::semantics::BaseVisitor
ImplicitRulesMap * | implicitRulesMap_ {nullptr}

## Additional Inherited Members
Public Types inherited from Fortran::semantics::ImplicitRulesVisitor
using | ImplicitNoneNameSpec = parser::ImplicitStmt::ImplicitNoneNameSpec
Protected Member Functions inherited from Fortran::semantics::ScopeHandler
void | ApplyImplicitRules (Symbol &)
const DeclTypeSpec * | GetImplicitType (Symbol &)
bool | ConvertToObjectEntity (Symbol &)
bool | ConvertToProcEntity (Symbol &)
const DeclTypeSpec & | MakeNumericType (TypeCategory, const std::optional< parser::KindSelector > &)
const DeclTypeSpec & | MakeLogicalType (const std::optional< parser::KindSelector > &)
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)
template<typename T >
const DeclTypeSpec * | ProcessTypeSpec (const T &x, bool allowForward=false)
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)
Protected Member Functions inherited from Fortran::semantics::AttrsVisitor
Attr | AccessSpecToAttr (const parser::AccessSpec &x)
Attr | IntentSpecToAttr (const parser::IntentSpec &x)
Protected Member Functions inherited from Fortran::semantics::InterfaceVisitor
GenericDetails & | GetGenericDetails ()
void | CheckGenericProcedures (Symbol &)

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

- lib/Semantics/resolve-names.cpp