FLANG
Public Types | Public Member Functions | Static Public Member Functions | List of all members
Fortran::semantics::ProgramTree Class Reference

Public Types

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

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 &)
 

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