FLANG
Fortran::evaluate::ExpressionAnalyzer Class Reference

Public Types

using MaybeExpr = std::optional<Expr<SomeType>>

Public Member Functions

 ExpressionAnalyzer (semantics::SemanticsContext &sc)
 ExpressionAnalyzer (semantics::SemanticsContext &sc, FoldingContext &fc)
 ExpressionAnalyzer (const ExpressionAnalyzer &)=default
semantics::SemanticsContextcontext () const
bool inWhereBody () const
void set_inWhereBody (bool yes=true)
bool inDataStmtObject () const
void set_inDataStmtObject (bool yes=true)
FoldingContextGetFoldingContext () const
parser::ContextualMessagesGetContextualMessages ()
template<typename... A>
parser::MessageSay (A &&...args)
template<typename FeatureOrUsageWarning, typename... A>
parser::MessageWarn (FeatureOrUsageWarning warning, parser::CharBlock at, A &&...args)
template<typename FeatureOrUsageWarning, typename... A>
parser::MessageWarn (FeatureOrUsageWarning warning, A &&...args)
template<typename T, typename... A>
parser::MessageSayAt (const T &parsed, A &&...args)
int GetDefaultKind (common::TypeCategory)
DynamicType GetDefaultKindOfType (common::TypeCategory)
bool CheckIntrinsicKind (TypeCategory, std::int64_t kind)
bool CheckIntrinsicSize (TypeCategory, std::int64_t size)
bool AddImpliedDo (parser::CharBlock, int kind)
void RemoveImpliedDo (parser::CharBlock)
std::optional< int > IsImpliedDo (parser::CharBlock) const
common::Restorer< bool > DoNotUseSavedTypedExprs ()
Expr< SubscriptIntegerAnalyzeKindSelector (common::TypeCategory category, const std::optional< parser::KindSelector > &)
MaybeExpr Analyze (const parser::Expr &)
MaybeExpr Analyze (const parser::Variable &)
MaybeExpr Analyze (const parser::Selector &)
MaybeExpr Analyze (const parser::Designator &)
MaybeExpr Analyze (const parser::DataStmtValue &)
MaybeExpr Analyze (const parser::AllocateObject &)
MaybeExpr Analyze (const parser::PointerObject &)
template<typename A>
MaybeExpr Analyze (const common::Indirection< A > &x)
template<typename A>
MaybeExpr Analyze (const std::optional< A > &x)
template<typename A>
MaybeExpr Analyze (const parser::Scalar< A > &x)
template<typename A>
MaybeExpr Analyze (const parser::Constant< A > &x)
template<typename A>
MaybeExpr Analyze (const parser::Integer< A > &x)
template<typename A>
MaybeExpr Analyze (const parser::Logical< A > &x)
template<typename A>
MaybeExpr Analyze (const parser::DefaultChar< A > &x)
MaybeExpr Analyze (const parser::Name &)
MaybeExpr Analyze (const parser::DataRef &dr)
MaybeExpr Analyze (const parser::StructureComponent &)
MaybeExpr Analyze (const parser::SignedIntLiteralConstant &)
MaybeExpr Analyze (const parser::SignedRealLiteralConstant &)
MaybeExpr Analyze (const parser::SignedComplexLiteralConstant &)
MaybeExpr Analyze (const parser::StructureConstructor &)
MaybeExpr Analyze (const parser::InitialDataTarget &)
MaybeExpr Analyze (const parser::NullInit &)
MaybeExpr Analyze (const parser::StmtFunctionStmt &)
void Analyze (const parser::CallStmt &)
const AssignmentAnalyze (const parser::AssignmentStmt &)
const AssignmentAnalyze (const parser::PointerAssignmentStmt &)
MaybeExpr Designate (DataRef &&)
void CheckForWholeAssumedSizeArray (parser::CharBlock, const Symbol *)
common::Restorer< bool > AllowWholeAssumedSizeArray (bool yes=true)

Protected Member Functions

int IntegerTypeSpecKind (const parser::IntegerTypeSpec &)

Friends

class ArgumentAnalyzer

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