|
void | ResolveSpecificsInGeneric (Symbol &, bool isEndOfSpecificationPart) |
void | DeclaredPossibleSpecificProc (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 &) |
bool | ConvertToUseError (Symbol &, const SourceName &, const Symbol &used) |
DeferredDeclarationState * | GetDeferredDeclarationState (bool add=false) |
void | SkipImplicitTyping (bool skip) |
void | NoteEarlyDeclaredDummyArgument (Symbol &symbol) |
bool | IsEarlyDeclaredDummyArgument (Symbol &symbol) |
void | ForgetEarlyDeclaredDummyArgument (Symbol &symbol) |
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) |
|
using | ImplicitNoneNameSpec = parser::ImplicitStmt::ImplicitNoneNameSpec |
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) |