Lines Matching refs:parser
17 ProgramTree &node, const parser::SpecificationPart &spec) { in GetEntryStmts()
18 const auto &implicitPart{std::get<parser::ImplicitPart>(spec.t)}; in GetEntryStmts()
19 for (const parser::ImplicitPartStmt &stmt : implicitPart.v) { in GetEntryStmts()
21 parser::Statement<common::Indirection<parser::EntryStmt>>>( in GetEntryStmts()
27 std::get<std::list<parser::DeclarationConstruct>>(spec.t)) { in GetEntryStmts()
29 parser::Statement<common::Indirection<parser::EntryStmt>>>( in GetEntryStmts()
37 ProgramTree &node, const parser::ExecutionPart &exec) { in GetEntryStmts()
40 parser::Statement<common::Indirection<parser::EntryStmt>>>( in GetEntryStmts()
50 ProgramTree &node, const parser::SpecificationPart &spec) { in GetGenerics()
52 std::get<std::list<parser::DeclarationConstruct>>(spec.t)) { in GetGenerics()
54 std::get_if<parser::SpecificationConstruct>(&decl.u)}) { in GetGenerics()
56 parser::Statement<common::Indirection<parser::GenericStmt>>>( in GetGenerics()
58 const parser::GenericStmt &genericStmt{generic->statement.value()}; in GetGenerics()
59 const auto &genericSpec{std::get<parser::GenericSpec>(genericStmt.t)}; in GetGenerics()
62 std::get_if<common::Indirection<parser::InterfaceBlock>>( in GetGenerics()
64 const parser::InterfaceBlock &interfaceBlock{interface->value()}; in GetGenerics()
65 const parser::InterfaceStmt &interfaceStmt{ in GetGenerics()
66 std::get<parser::Statement<parser::InterfaceStmt>>(interfaceBlock.t) in GetGenerics()
69 std::get_if<std::optional<parser::GenericSpec>>(&interfaceStmt.u)}; in GetGenerics()
79 static ProgramTree BuildSubprogramTree(const parser::Name &name, const T &x) { in BuildSubprogramTree()
80 const auto &spec{std::get<parser::SpecificationPart>(x.t)}; in BuildSubprogramTree()
81 const auto &exec{std::get<parser::ExecutionPart>(x.t)}; in BuildSubprogramTree()
83 std::get<std::optional<parser::InternalSubprogramPart>>(x.t)}; in BuildSubprogramTree()
90 std::get<std::list<parser::InternalSubprogram>>(subps->t)) { in BuildSubprogramTree()
100 const parser::Name &name, const parser::BlockData &x) { in BuildSubprogramTree()
101 const auto &spec{std::get<parser::SpecificationPart>(x.t)}; in BuildSubprogramTree()
106 static ProgramTree BuildModuleTree(const parser::Name &name, const T &x) { in BuildModuleTree()
107 const auto &spec{std::get<parser::SpecificationPart>(x.t)}; in BuildModuleTree()
108 const auto &subps{std::get<std::optional<parser::ModuleSubprogramPart>>(x.t)}; in BuildModuleTree()
113 std::get<std::list<parser::ModuleSubprogram>>(subps->t)) { in BuildModuleTree()
122 ProgramTree ProgramTree::Build(const parser::ProgramUnit &x) { in Build()
126 ProgramTree ProgramTree::Build(const parser::MainProgram &x) { in Build()
128 std::get<std::optional<parser::Statement<parser::ProgramStmt>>>(x.t)}; in Build()
129 const auto &end{std::get<parser::Statement<parser::EndProgramStmt>>(x.t)}; in Build()
130 static parser::Name emptyName; in Build()
136 ProgramTree ProgramTree::Build(const parser::FunctionSubprogram &x) { in Build()
137 const auto &stmt{std::get<parser::Statement<parser::FunctionStmt>>(x.t)}; in Build()
138 const auto &end{std::get<parser::Statement<parser::EndFunctionStmt>>(x.t)}; in Build()
139 const auto &name{std::get<parser::Name>(stmt.statement.t)}; in Build()
140 const parser::LanguageBindingSpec *bindingSpec{}; in Build()
142 std::get<std::optional<parser::Suffix>>(stmt.statement.t)}) { in Build()
153 ProgramTree ProgramTree::Build(const parser::SubroutineSubprogram &x) { in Build()
154 const auto &stmt{std::get<parser::Statement<parser::SubroutineStmt>>(x.t)}; in Build()
155 const auto &end{std::get<parser::Statement<parser::EndSubroutineStmt>>(x.t)}; in Build()
156 const auto &name{std::get<parser::Name>(stmt.statement.t)}; in Build()
157 const parser::LanguageBindingSpec *bindingSpec{}; in Build()
158 if (const auto &binding{std::get<std::optional<parser::LanguageBindingSpec>>( in Build()
168 ProgramTree ProgramTree::Build(const parser::SeparateModuleSubprogram &x) { in Build()
169 const auto &stmt{std::get<parser::Statement<parser::MpSubprogramStmt>>(x.t)}; in Build()
171 std::get<parser::Statement<parser::EndMpSubprogramStmt>>(x.t)}; in Build()
176 ProgramTree ProgramTree::Build(const parser::Module &x) { in Build()
177 const auto &stmt{std::get<parser::Statement<parser::ModuleStmt>>(x.t)}; in Build()
178 const auto &end{std::get<parser::Statement<parser::EndModuleStmt>>(x.t)}; in Build()
183 ProgramTree ProgramTree::Build(const parser::Submodule &x) { in Build()
184 const auto &stmt{std::get<parser::Statement<parser::SubmoduleStmt>>(x.t)}; in Build()
185 const auto &end{std::get<parser::Statement<parser::EndSubmoduleStmt>>(x.t)}; in Build()
186 const auto &name{std::get<parser::Name>(stmt.statement.t)}; in Build()
190 ProgramTree ProgramTree::Build(const parser::BlockData &x) { in Build()
191 const auto &stmt{std::get<parser::Statement<parser::BlockDataStmt>>(x.t)}; in Build()
192 const auto &end{std::get<parser::Statement<parser::EndBlockDataStmt>>(x.t)}; in Build()
193 static parser::Name emptyName; in Build()
199 ProgramTree ProgramTree::Build(const parser::CompilerDirective &) { in Build()
203 const parser::ParentIdentifier &ProgramTree::GetParentId() const { in GetParentId()
205 std::get<const parser::Statement<parser::SubmoduleStmt> *>(stmt_)}; in GetParentId()
206 return std::get<parser::ParentIdentifier>(stmt->statement.t); in GetParentId()
220 using ListType = std::list<parser::PrefixSpec>; in HasModulePrefix()
223 [](const parser::Statement<parser::FunctionStmt> *x) { in HasModulePrefix()
226 [](const parser::Statement<parser::SubroutineStmt> *x) { in HasModulePrefix()
234 if (std::holds_alternative<parser::PrefixSpec::Module>(prefix.u)) { in HasModulePrefix()
245 [](const parser::Statement<parser::ProgramStmt> *) { in GetKind()
248 [](const parser::Statement<parser::FunctionStmt> *) { in GetKind()
251 [](const parser::Statement<parser::SubroutineStmt> *) { in GetKind()
254 [](const parser::Statement<parser::MpSubprogramStmt> *) { in GetKind()
257 [](const parser::Statement<parser::ModuleStmt> *) { in GetKind()
260 [](const parser::Statement<parser::SubmoduleStmt> *) { in GetKind()
263 [](const parser::Statement<parser::BlockDataStmt> *) { in GetKind()
280 void ProgramTree::AddEntry(const parser::EntryStmt &entryStmt) { in AddEntry()
284 void ProgramTree::AddGeneric(const parser::GenericSpec &generic) { in AddGeneric()