Lines Matching refs:parser
18 ProgramTree &node, const parser::SpecificationPart &spec) {
19 const auto &implicitPart{std::get<parser::ImplicitPart>(spec.t)};
20 for (const parser::ImplicitPartStmt &stmt : implicitPart.v) {
22 parser::Statement<common::Indirection<parser::EntryStmt>>>(
28 std::get<std::list<parser::DeclarationConstruct>>(spec.t)) {
30 parser::Statement<common::Indirection<parser::EntryStmt>>>(
38 ProgramTree &node, const parser::ExecutionPart &exec) {
41 parser::Statement<common::Indirection<parser::EntryStmt>>>(
51 ProgramTree &node, const parser::SpecificationPart &spec) {
53 std::get<std::list<parser::DeclarationConstruct>>(spec.t)) {
55 std::get_if<parser::SpecificationConstruct>(&decl.u)}) {
57 parser::Statement<common::Indirection<parser::GenericStmt>>>(
59 const parser::GenericStmt &genericStmt{generic->statement.value()};
60 const auto &genericSpec{std::get<parser::GenericSpec>(genericStmt.t)};
63 std::get_if<common::Indirection<parser::InterfaceBlock>>(
65 const parser::InterfaceBlock &interfaceBlock{interface->value()};
66 const parser::InterfaceStmt &interfaceStmt{
67 std::get<parser::Statement<parser::InterfaceStmt>>(interfaceBlock.t)
70 std::get_if<std::optional<parser::GenericSpec>>(&interfaceStmt.u)};
81 const parser::Name &name, SemanticsContext &context, const T &x) {
82 const auto &spec{std::get<parser::SpecificationPart>(x.t)};
83 const auto &exec{std::get<parser::ExecutionPart>(x.t)};
85 std::get<std::optional<parser::InternalSubprogramPart>>(x.t)};
92 std::get<std::list<parser::InternalSubprogram>>(subps->t)) {
106 const parser::Name &name, SemanticsContext &, const parser::BlockData &x) {
107 const auto &spec{std::get<parser::SpecificationPart>(x.t)};
113 const parser::Name &name, SemanticsContext &context, const T &x) {
114 const auto &spec{std::get<parser::SpecificationPart>(x.t)};
115 const auto &subps{std::get<std::optional<parser::ModuleSubprogramPart>>(x.t)};
120 std::get<std::list<parser::ModuleSubprogram>>(subps->t)) {
134 const parser::ProgramUnit &x, SemanticsContext &context) {
145 const parser::MainProgram &x, SemanticsContext &context) {
147 std::get<std::optional<parser::Statement<parser::ProgramStmt>>>(x.t)};
148 const auto &end{std::get<parser::Statement<parser::EndProgramStmt>>(x.t)};
149 static parser::Name emptyName;
157 const parser::FunctionSubprogram &x, SemanticsContext &context) {
158 const auto &stmt{std::get<parser::Statement<parser::FunctionStmt>>(x.t)};
159 const auto &end{std::get<parser::Statement<parser::EndFunctionStmt>>(x.t)};
160 const auto &name{std::get<parser::Name>(stmt.statement.t)};
161 const parser::LanguageBindingSpec *bindingSpec{};
163 std::get<std::optional<parser::Suffix>>(stmt.statement.t)}) {
175 const parser::SubroutineSubprogram &x, SemanticsContext &context) {
176 const auto &stmt{std::get<parser::Statement<parser::SubroutineStmt>>(x.t)};
177 const auto &end{std::get<parser::Statement<parser::EndSubroutineStmt>>(x.t)};
178 const auto &name{std::get<parser::Name>(stmt.statement.t)};
179 const parser::LanguageBindingSpec *bindingSpec{};
180 if (const auto &binding{std::get<std::optional<parser::LanguageBindingSpec>>(
191 const parser::SeparateModuleSubprogram &x, SemanticsContext &context) {
192 const auto &stmt{std::get<parser::Statement<parser::MpSubprogramStmt>>(x.t)};
194 std::get<parser::Statement<parser::EndMpSubprogramStmt>>(x.t)};
200 const parser::Module &x, SemanticsContext &context) {
201 const auto &stmt{std::get<parser::Statement<parser::ModuleStmt>>(x.t)};
202 const auto &end{std::get<parser::Statement<parser::EndModuleStmt>>(x.t)};
208 const parser::Submodule &x, SemanticsContext &context) {
209 const auto &stmt{std::get<parser::Statement<parser::SubmoduleStmt>>(x.t)};
210 const auto &end{std::get<parser::Statement<parser::EndSubmoduleStmt>>(x.t)};
211 const auto &name{std::get<parser::Name>(stmt.statement.t)};
216 const parser::BlockData &x, SemanticsContext &context) {
217 const auto &stmt{std::get<parser::Statement<parser::BlockDataStmt>>(x.t)};
218 const auto &end{std::get<parser::Statement<parser::EndBlockDataStmt>>(x.t)};
219 static parser::Name emptyName;
227 const parser::CompilerDirective &x, SemanticsContext &context) {
235 const parser::OpenACCRoutineConstruct &, SemanticsContext &) {
239 const parser::ParentIdentifier &ProgramTree::GetParentId() const {
241 std::get<const parser::Statement<parser::SubmoduleStmt> *>(stmt_)};
242 return std::get<parser::ParentIdentifier>(stmt->statement.t);
257 const parser::Statement<parser::MpSubprogramStmt> *>(stmt_)) {
260 using ListType = std::list<parser::PrefixSpec>;
263 [](const parser::Statement<parser::FunctionStmt> *x) {
266 [](const parser::Statement<parser::SubroutineStmt> *x) {
274 if (std::holds_alternative<parser::PrefixSpec::Module>(prefix.u)) {
285 [](const parser::Statement<parser::ProgramStmt> *) {
288 [](const parser::Statement<parser::FunctionStmt> *) {
291 [](const parser::Statement<parser::SubroutineStmt> *) {
294 [](const parser::Statement<parser::MpSubprogramStmt> *) {
297 [](const parser::Statement<parser::ModuleStmt> *) {
300 [](const parser::Statement<parser::SubmoduleStmt> *) {
303 [](const parser::Statement<parser::BlockDataStmt> *) {
320 void ProgramTree::AddEntry(const parser::EntryStmt &entryStmt) {
324 void ProgramTree::AddGeneric(const parser::GenericSpec &generic) {