Lines Matching refs:parser

24 using namespace parser::literals;
30 CanonicalizationOfAcc(parser::Messages &messages) : messages_{messages} {} in CanonicalizationOfAcc()
32 void Post(parser::Block &block) { in Post()
34 if (auto *accLoop{parser::Unwrap<parser::OpenACCLoopConstruct>(*it)}) { in Post()
37 parser::Unwrap<parser::OpenACCCombinedConstruct>(*it)}) { in Post()
40 parser::Unwrap<parser::AccEndCombinedDirective>(*it)}) { in Post()
45 parser::ToUpperCaseLetters(endDir->v.source.ToString())); in Post()
58 std::get<parser::AccClauseList>(beginLoopDirective.t); in CheckTileClauseRestriction()
61 std::get_if<parser::AccClause::Tile>(&clause.u)) { in CheckTileClauseRestriction()
62 const parser::AccTileExprList &tileExprList = tileClause->v; in CheckTileClauseRestriction()
63 const std::list<parser::AccTileExpr> &listTileExpr = tileExprList.v; in CheckTileClauseRestriction()
66 const auto &outer{std::get<std::optional<parser::DoConstruct>>(x.t)}; in CheckTileClauseRestriction()
70 for (const parser::DoConstruct *loop{&*outer}; loop && tileArgNb > 0; in CheckTileClauseRestriction()
72 const auto &block{std::get<parser::Block>(loop->t)}; in CheckTileClauseRestriction()
74 loop = it != block.end() ? parser::Unwrap<parser::DoConstruct>(*it) in CheckTileClauseRestriction()
93 const auto &doCons{std::get<std::optional<parser::DoConstruct>>(x.t)}; in CheckDoConcurrentClauseRestriction()
99 std::get<parser::AccClauseList>(beginLoopDirective.t); in CheckDoConcurrentClauseRestriction()
101 if (std::holds_alternative<parser::AccClause::Collapse>(clause.u) || in CheckDoConcurrentClauseRestriction()
102 std::holds_alternative<parser::AccClause::Tile>(clause.u)) { in CheckDoConcurrentClauseRestriction()
110 void RewriteOpenACCLoopConstruct(parser::OpenACCLoopConstruct &x, in RewriteOpenACCLoopConstruct()
111 parser::Block &block, parser::Block::iterator it) { in RewriteOpenACCLoopConstruct()
123 parser::Block::iterator nextIt; in RewriteOpenACCLoopConstruct()
124 auto &beginDir{std::get<parser::AccBeginLoopDirective>(x.t)}; in RewriteOpenACCLoopConstruct()
125 auto &dir{std::get<parser::AccLoopDirective>(beginDir.t)}; in RewriteOpenACCLoopConstruct()
129 if (auto *doCons{parser::Unwrap<parser::DoConstruct>(*nextIt)}) { in RewriteOpenACCLoopConstruct()
132 std::get<std::optional<parser::DoConstruct>>(x.t) = in RewriteOpenACCLoopConstruct()
138 parser::ToUpperCaseLetters(dir.source.ToString())); in RewriteOpenACCLoopConstruct()
141 CheckDoConcurrentClauseRestriction<parser::OpenACCLoopConstruct, in RewriteOpenACCLoopConstruct()
142 parser::AccBeginLoopDirective>(x); in RewriteOpenACCLoopConstruct()
143 CheckTileClauseRestriction<parser::OpenACCLoopConstruct, in RewriteOpenACCLoopConstruct()
144 parser::AccBeginLoopDirective>(x); in RewriteOpenACCLoopConstruct()
151 parser::ToUpperCaseLetters(dir.source.ToString())); in RewriteOpenACCLoopConstruct()
154 void RewriteOpenACCCombinedConstruct(parser::OpenACCCombinedConstruct &x, in RewriteOpenACCCombinedConstruct()
155 parser::Block &block, parser::Block::iterator it) { in RewriteOpenACCCombinedConstruct()
169 parser::Block::iterator nextIt; in RewriteOpenACCCombinedConstruct()
170 auto &beginDir{std::get<parser::AccBeginCombinedDirective>(x.t)}; in RewriteOpenACCCombinedConstruct()
171 auto &dir{std::get<parser::AccCombinedDirective>(beginDir.t)}; in RewriteOpenACCCombinedConstruct()
175 if (auto *doCons{parser::Unwrap<parser::DoConstruct>(*nextIt)}) { in RewriteOpenACCCombinedConstruct()
178 std::get<std::optional<parser::DoConstruct>>(x.t) = in RewriteOpenACCCombinedConstruct()
184 parser::Unwrap<parser::AccEndCombinedDirective>(*nextIt)}) { in RewriteOpenACCCombinedConstruct()
185 std::get<std::optional<parser::AccEndCombinedDirective>>(x.t) = in RewriteOpenACCCombinedConstruct()
193 parser::ToUpperCaseLetters(dir.source.ToString())); in RewriteOpenACCCombinedConstruct()
196 CheckDoConcurrentClauseRestriction<parser::OpenACCCombinedConstruct, in RewriteOpenACCCombinedConstruct()
197 parser::AccBeginCombinedDirective>(x); in RewriteOpenACCCombinedConstruct()
198 CheckTileClauseRestriction<parser::OpenACCCombinedConstruct, in RewriteOpenACCCombinedConstruct()
199 parser::AccBeginCombinedDirective>(x); in RewriteOpenACCCombinedConstruct()
206 parser::ToUpperCaseLetters(dir.source.ToString())); in RewriteOpenACCCombinedConstruct()
209 parser::Messages &messages_;
212 bool CanonicalizeAcc(parser::Messages &messages, parser::Program &program) { in CanonicalizeAcc()