================ @@ -69,6 +69,29 @@ OpenACCDirectiveKindEx getOpenACCDirectiveKind(Token Tok) { .Default(OpenACCDirectiveKindEx::Invalid); } +// Translate single-token string representations to the OpenCC Clause Kind. +OpenACCClauseKind getOpenACCClauseKind(Token Tok) { + // auto is a keyword in some language modes, so make sure we parse it + // correctly. + if (Tok.is(tok::kw_auto)) + return OpenACCClauseKind::Auto; + + if (!Tok.is(tok::identifier)) + return OpenACCClauseKind::Invalid; + + return llvm::StringSwitch<OpenACCClauseKind>( + Tok.getIdentifierInfo()->getName()) + .Case("finalize", OpenACCClauseKind::Finalize) + .Case("if_present", OpenACCClauseKind::IfPresent) + .Case("seq", OpenACCClauseKind::Seq) + .Case("independent", OpenACCClauseKind::Independent) + .Case("auto", OpenACCClauseKind::Auto) + .Case("worker", OpenACCClauseKind::Worker) + .Case("vector", OpenACCClauseKind::Vector) + .Case("nohost", OpenACCClauseKind::NoHost) + .Default(OpenACCClauseKind::Invalid); +} ---------------- erichkeane wrote:
Sure! Done. https://github.com/llvm/llvm-project/pull/75052 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits