FLANG
Fortran::semantics::ProgramTree Class Reference

Public Types

using EntryStmtList = std::list<common::Reference<const parser::EntryStmt>>
using GenericSpecList

Public Member Functions

 ENUM_CLASS (Kind, Program, Function, Subroutine, MpSubprogram, Module, Submodule, BlockData) using Stmt
 ProgramTree (const parser::Name &name, const parser::SpecificationPart &spec, const parser::ExecutionPart *exec=nullptr)
const parser::Namename () const
Kind GetKind () const
const Stmt & stmt () const
bool isSpecificationPartResolved () const
void set_isSpecificationPartResolved (bool yes=true)
const parser::ParentIdentifierGetParentId () const
const parser::SpecificationPartspec () const
const parser::ExecutionPart * exec () const
std::list< ProgramTree > & children ()
const std::list< ProgramTree > & children () const
const EntryStmtList & entryStmts () const
const GenericSpecList & genericSpecs () const
Symbol::Flag GetSubpFlag () const
bool IsModule () const
bool HasModulePrefix () const
Scopescope () const
void set_scope (Scope &)
const parser::LanguageBindingSpecbindingSpec () const
ProgramTreeset_bindingSpec (const parser::LanguageBindingSpec *spec)
void AddChild (ProgramTree &&)
void AddEntry (const parser::EntryStmt &)
void AddGeneric (const parser::GenericSpec &)
template<typename T>
ProgramTreeset_stmt (const parser::Statement< T > &stmt)
template<typename T>
ProgramTreeset_endStmt (const parser::Statement< T > &stmt)

Static Public Member Functions

static ProgramTreeBuild (const parser::ProgramUnit &, SemanticsContext &)
static std::optional< ProgramTreeBuild (const parser::MainProgram &, SemanticsContext &)
static std::optional< ProgramTreeBuild (const parser::FunctionSubprogram &, SemanticsContext &)
static std::optional< ProgramTreeBuild (const parser::SubroutineSubprogram &, SemanticsContext &)
static std::optional< ProgramTreeBuild (const parser::SeparateModuleSubprogram &, SemanticsContext &)
static std::optional< ProgramTreeBuild (const parser::Module &, SemanticsContext &)
static std::optional< ProgramTreeBuild (const parser::Submodule &, SemanticsContext &)
static std::optional< ProgramTreeBuild (const parser::BlockData &, SemanticsContext &)
static std::optional< ProgramTreeBuild (const parser::CompilerDirective &, SemanticsContext &)
static std::optional< ProgramTreeBuild (const parser::OpenACCRoutineConstruct &, SemanticsContext &)

Member Typedef Documentation

◆ GenericSpecList

using Fortran::semantics::ProgramTree::GenericSpecList
Initial value:
std::list<common::Reference<const parser::GenericSpec>>

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