Lines Matching refs:parser

22 using namespace parser::literals;
41 void Post(parser::Name &);
42 void Post(parser::SpecificationPart &);
43 bool Pre(parser::ExecutionPart &);
44 void Post(parser::IoUnit &);
45 void Post(parser::ReadStmt &);
46 void Post(parser::WriteStmt &);
50 bool Pre(parser::EquivalenceStmt &) { return false; } in Pre()
51 bool Pre(parser::Keyword &) { return false; } in Pre()
52 bool Pre(parser::EntryStmt &) { return false; } in Pre()
53 bool Pre(parser::CompilerDirective &) { return false; } in Pre()
56 bool Pre(parser::EndBlockDataStmt &) { return false; } in Pre()
57 bool Pre(parser::EndFunctionStmt &) { return false; } in Pre()
58 bool Pre(parser::EndInterfaceStmt &) { return false; } in Pre()
59 bool Pre(parser::EndModuleStmt &) { return false; } in Pre()
60 bool Pre(parser::EndMpSubprogramStmt &) { return false; } in Pre()
61 bool Pre(parser::EndProgramStmt &) { return false; } in Pre()
62 bool Pre(parser::EndSubmoduleStmt &) { return false; } in Pre()
63 bool Pre(parser::EndSubroutineStmt &) { return false; } in Pre()
64 bool Pre(parser::EndTypeStmt &) { return false; } in Pre()
68 parser::Statement<common::Indirection<parser::StmtFunctionStmt>>;
70 parser::Messages &messages_;
75 void RewriteMutator::Post(parser::Name &name) { in Post()
96 void RewriteMutator::Post(parser::SpecificationPart &x) { in Post()
97 auto &list{std::get<std::list<parser::DeclarationConstruct>>(x.t)}; in Post()
102 symbol{std::get<parser::Name>(stmt->statement.value().t).symbol}) { in Post()
120 bool RewriteMutator::Pre(parser::ExecutionPart &x) { in Pre()
126 parser::ExecutionPartConstruct{ in Pre()
127 parser::ExecutableConstruct{std::move(stmt)}}); in Pre()
135 void RewriteMutator::Post(parser::IoUnit &x) { in Post()
136 if (auto *var{std::get_if<parser::Variable>(&x.u)}) { in Post()
137 const parser::Name &last{parser::GetLastName(*var)}; in Post()
146 return parser::Expr{std::move(indirection)}; in Post()
150 x.u = parser::FileUnitNumber{ in Post()
151 parser::ScalarIntExpr{parser::IntExpr{std::move(expr)}}}; in Post()
163 std::holds_alternative<parser::Expr>(x.format->u)) { in FixMisparsedUntaggedNamelistName()
164 if (const parser::Name * name{parser::Unwrap<parser::Name>(x.format)}) { in FixMisparsedUntaggedNamelistName()
166 x.controls.emplace_front(parser::IoControlSpec{std::move(*name)}); in FixMisparsedUntaggedNamelistName()
177 void RewriteMutator::Post(parser::ReadStmt &x) { in Post()
179 if (auto *var{std::get_if<parser::Variable>(&x.iounit->u)}) { in Post()
180 const parser::Name &last{parser::GetLastName(*var)}; in Post()
185 return parser::Expr{std::move(indirection)}; in Post()
195 void RewriteMutator::Post(parser::WriteStmt &x) { in Post()
199 bool RewriteParseTree(SemanticsContext &context, parser::Program &program) { in RewriteParseTree()
201 parser::Walk(program, mutator); in RewriteParseTree()