FLANG
|
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::Name & | name () const |
Kind | GetKind () const |
const Stmt & | stmt () const |
bool | isSpecificationPartResolved () const |
void | set_isSpecificationPartResolved (bool yes=true) |
const parser::ParentIdentifier & | GetParentId () const |
const parser::SpecificationPart & | spec () 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 |
Scope * | scope () const |
void | set_scope (Scope &) |
const parser::LanguageBindingSpec * | bindingSpec () const |
ProgramTree & | set_bindingSpec (const parser::LanguageBindingSpec *spec) |
void | AddChild (ProgramTree &&) |
void | AddEntry (const parser::EntryStmt &) |
void | AddGeneric (const parser::GenericSpec &) |
template<typename T > | |
ProgramTree & | set_stmt (const parser::Statement< T > &stmt) |
template<typename T > | |
ProgramTree & | set_endStmt (const parser::Statement< T > &stmt) |
Static Public Member Functions | |
static ProgramTree & | Build (const parser::ProgramUnit &, SemanticsContext &) |
static std::optional< ProgramTree > | Build (const parser::MainProgram &, SemanticsContext &) |
static std::optional< ProgramTree > | Build (const parser::FunctionSubprogram &, SemanticsContext &) |
static std::optional< ProgramTree > | Build (const parser::SubroutineSubprogram &, SemanticsContext &) |
static std::optional< ProgramTree > | Build (const parser::SeparateModuleSubprogram &, SemanticsContext &) |
static std::optional< ProgramTree > | Build (const parser::Module &, SemanticsContext &) |
static std::optional< ProgramTree > | Build (const parser::Submodule &, SemanticsContext &) |
static std::optional< ProgramTree > | Build (const parser::BlockData &, SemanticsContext &) |
static std::optional< ProgramTree > | Build (const parser::CompilerDirective &, SemanticsContext &) |
static std::optional< ProgramTree > | Build (const parser::OpenACCRoutineConstruct &, SemanticsContext &) |