FLANG
Classes | Public Types | Public Member Functions | Protected Member Functions | Friends | List of all members
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 &&)
 

Protected Member Functions

int IntegerTypeSpecKind (const parser::IntegerTypeSpec &)
 

Friends

class ArgumentAnalyzer
 

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