Lines Matching refs:OS

34   IfDefScope(StringRef Name, raw_ostream &OS) : Name(Name), OS(OS) {  in IfDefScope()  argument
35 OS << "#ifdef " << Name << "\n" in IfDefScope()
39 ~IfDefScope() { OS << "\n#endif // " << Name << "\n\n"; } in ~IfDefScope()
43 raw_ostream &OS; member in __anon4d8ebcf40111::IfDefScope
50 raw_ostream &OS, StringRef Enum, StringRef Prefix, in GenerateEnumClass() argument
53 OS << "\n"; in GenerateEnumClass()
54 OS << "enum class " << Enum << " {\n"; in GenerateEnumClass()
57 OS << " " << Prefix << Rec.getFormattedName() << ",\n"; in GenerateEnumClass()
59 OS << "};\n"; in GenerateEnumClass()
60 OS << "\n"; in GenerateEnumClass()
61 OS << "static constexpr std::size_t " << Enum in GenerateEnumClass()
70 OS << "\n"; in GenerateEnumClass()
73 OS << "constexpr auto " << Prefix << Rec.getFormattedName() << " = " in GenerateEnumClass()
83 raw_ostream &OS, in GenerateEnumClauseVal() argument
99 OS << "\n"; in GenerateEnumClauseVal()
100 OS << "enum class " << EnumName << " {\n"; in GenerateEnumClauseVal()
103 OS << " " << CV->getName() << "=" << CVal.getValue() << ",\n"; in GenerateEnumClauseVal()
105 OS << "};\n"; in GenerateEnumClauseVal()
108 OS << "\n"; in GenerateEnumClauseVal()
110 OS << "constexpr auto " << CV->getName() << " = " in GenerateEnumClauseVal()
196 static void EmitDirectivesDecl(RecordKeeper &Records, raw_ostream &OS) { in EmitDirectivesDecl() argument
201 OS << "#ifndef LLVM_" << DirLang.getName() << "_INC\n"; in EmitDirectivesDecl()
202 OS << "#define LLVM_" << DirLang.getName() << "_INC\n"; in EmitDirectivesDecl()
203 OS << "\n#include \"llvm/ADT/ArrayRef.h\"\n"; in EmitDirectivesDecl()
206 OS << "#include \"llvm/ADT/BitmaskEnum.h\"\n"; in EmitDirectivesDecl()
208 OS << "#include <cstddef>\n"; // for size_t in EmitDirectivesDecl()
209 OS << "\n"; in EmitDirectivesDecl()
210 OS << "namespace llvm {\n"; in EmitDirectivesDecl()
211 OS << "class StringRef;\n"; in EmitDirectivesDecl()
217 OS << "namespace " << Ns << " {\n"; in EmitDirectivesDecl()
220 OS << "\nLLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE();\n"; in EmitDirectivesDecl()
228 GenerateEnumClass(associations, OS, "Association", in EmitDirectivesDecl()
231 GenerateEnumClass(DirLang.getCategories(), OS, "Category", /*Prefix=*/"", in EmitDirectivesDecl()
235 GenerateEnumClass(DirLang.getDirectives(), OS, "Directive", in EmitDirectivesDecl()
240 GenerateEnumClass(DirLang.getClauses(), OS, "Clause", in EmitDirectivesDecl()
246 GenerateEnumClauseVal(DirLang.getClauses(), OS, DirLang, EnumHelperFuncs); in EmitDirectivesDecl()
249 OS << "\n"; in EmitDirectivesDecl()
250 OS << "// Enumeration helper functions\n"; in EmitDirectivesDecl()
251 OS << "Directive get" << DirLang.getName() in EmitDirectivesDecl()
253 OS << "\n"; in EmitDirectivesDecl()
254 OS << "llvm::StringRef get" << DirLang.getName() in EmitDirectivesDecl()
256 OS << "\n"; in EmitDirectivesDecl()
257 OS << "Clause get" << DirLang.getName() in EmitDirectivesDecl()
259 OS << "\n"; in EmitDirectivesDecl()
260 OS << "llvm::StringRef get" << DirLang.getName() << "ClauseName(Clause C);\n"; in EmitDirectivesDecl()
261 OS << "\n"; in EmitDirectivesDecl()
262 OS << "/// Return true if \\p C is a valid clause for \\p D in version \\p " in EmitDirectivesDecl()
264 OS << "bool isAllowedClauseForDirective(Directive D, " in EmitDirectivesDecl()
266 OS << "\n"; in EmitDirectivesDecl()
267 OS << "constexpr std::size_t getMaxLeafCount() { return " in EmitDirectivesDecl()
269 OS << "Association getDirectiveAssociation(Directive D);\n"; in EmitDirectivesDecl()
270 OS << "Category getDirectiveCategory(Directive D);\n"; in EmitDirectivesDecl()
272 OS << EnumHelperFuncs; in EmitDirectivesDecl()
273 OS << "\n"; in EmitDirectivesDecl()
278 OS << "} // namespace " << Ns << "\n"; in EmitDirectivesDecl()
280 OS << "} // namespace llvm\n"; in EmitDirectivesDecl()
282 OS << "#endif // LLVM_" << DirLang.getName() << "_INC\n"; in EmitDirectivesDecl()
287 raw_ostream &OS, StringRef Enum, in GenerateGetName() argument
290 OS << "\n"; in GenerateGetName()
291 OS << "llvm::StringRef llvm::" << DirLang.getCppNamespace() << "::get" in GenerateGetName()
293 OS << " switch (Kind) {\n"; in GenerateGetName()
296 OS << " case " << Prefix << Rec.getFormattedName() << ":\n"; in GenerateGetName()
297 OS << " return \""; in GenerateGetName()
299 OS << Rec.getName(); in GenerateGetName()
301 OS << Rec.getAlternativeName(); in GenerateGetName()
302 OS << "\";\n"; in GenerateGetName()
304 OS << " }\n"; // switch in GenerateGetName()
305 OS << " llvm_unreachable(\"Invalid " << DirLang.getName() << " " << Enum in GenerateGetName()
307 OS << "}\n"; in GenerateGetName()
312 raw_ostream &OS, StringRef Enum, in GenerateGetKind() argument
326 OS << "\n"; in GenerateGetKind()
327 OS << Enum << " llvm::" << DirLang.getCppNamespace() << "::get" in GenerateGetKind()
329 OS << " return llvm::StringSwitch<" << Enum << ">(Str)\n"; in GenerateGetKind()
334 OS << " .Case(\"" << Rec.getName() << "\"," << Prefix in GenerateGetKind()
337 OS << " .Case(\"" << Rec.getName() << "\"," << Prefix in GenerateGetKind()
341 OS << " .Default(" << Prefix << DefaultRec.getFormattedName() << ");\n"; in GenerateGetKind()
342 OS << "}\n"; in GenerateGetKind()
347 raw_ostream &OS) { in GenerateGetKindClauseVal() argument
372 OS << "\n"; in GenerateGetKindClauseVal()
373 OS << EnumName << " llvm::" << DirLang.getCppNamespace() << "::get" in GenerateGetKindClauseVal()
375 OS << " return llvm::StringSwitch<" << EnumName << ">(Str)\n"; in GenerateGetKindClauseVal()
378 OS << " .Case(\"" << CVal.getFormattedName() << "\"," << CV->getName() in GenerateGetKindClauseVal()
381 OS << " .Default(" << DefaultName << ");\n"; in GenerateGetKindClauseVal()
382 OS << "}\n"; in GenerateGetKindClauseVal()
384 OS << "\n"; in GenerateGetKindClauseVal()
385 OS << "llvm::StringRef llvm::" << DirLang.getCppNamespace() << "::get" in GenerateGetKindClauseVal()
389 OS << " switch (x) {\n"; in GenerateGetKindClauseVal()
392 OS << " case " << CV->getName() << ":\n"; in GenerateGetKindClauseVal()
393 OS << " return \"" << CVal.getFormattedName() << "\";\n"; in GenerateGetKindClauseVal()
395 OS << " }\n"; // switch in GenerateGetKindClauseVal()
396 OS << " llvm_unreachable(\"Invalid " << DirLang.getName() << " " in GenerateGetKindClauseVal()
398 OS << "}\n"; in GenerateGetKindClauseVal()
404 raw_ostream &OS, StringRef DirectiveName, in GenerateCaseForVersionedClauses() argument
413 OS << " case " << DirLang.getClausePrefix() << ClauseFormattedName in GenerateCaseForVersionedClauses()
415 OS << " return " << VerClause.getMinVersion() in GenerateCaseForVersionedClauses()
436 raw_ostream &OS) { in GenerateIsAllowedClause() argument
437 OS << "\n"; in GenerateIsAllowedClause()
438 OS << "bool llvm::" << DirLang.getCppNamespace() in GenerateIsAllowedClause()
441 OS << " assert(unsigned(D) <= llvm::" << DirLang.getCppNamespace() in GenerateIsAllowedClause()
443 OS << " assert(unsigned(C) <= llvm::" << DirLang.getCppNamespace() in GenerateIsAllowedClause()
446 OS << " switch (D) {\n"; in GenerateIsAllowedClause()
451 OS << " case " << DirLang.getDirectivePrefix() << Dir.getFormattedName() in GenerateIsAllowedClause()
457 OS << " return false;\n"; in GenerateIsAllowedClause()
459 OS << " switch (C) {\n"; in GenerateIsAllowedClause()
463 GenerateCaseForVersionedClauses(Dir.getAllowedClauses(), OS, in GenerateIsAllowedClause()
466 GenerateCaseForVersionedClauses(Dir.getAllowedOnceClauses(), OS, in GenerateIsAllowedClause()
469 GenerateCaseForVersionedClauses(Dir.getAllowedExclusiveClauses(), OS, in GenerateIsAllowedClause()
472 GenerateCaseForVersionedClauses(Dir.getRequiredClauses(), OS, in GenerateIsAllowedClause()
475 OS << " default:\n"; in GenerateIsAllowedClause()
476 OS << " return false;\n"; in GenerateIsAllowedClause()
477 OS << " }\n"; // End of clauses switch in GenerateIsAllowedClause()
479 OS << " break;\n"; in GenerateIsAllowedClause()
482 OS << " }\n"; // End of directives switch in GenerateIsAllowedClause()
483 OS << " llvm_unreachable(\"Invalid " << DirLang.getName() in GenerateIsAllowedClause()
485 OS << "}\n"; // End of function isAllowedClauseForDirective in GenerateIsAllowedClause()
488 static void EmitLeafTable(const DirectiveLanguage &DirLang, raw_ostream &OS, in EmitLeafTable() argument
579 OS << "\nstatic_assert(sizeof(" << DirectiveType << ") == sizeof(int));\n"; in EmitLeafTable()
581 OS << "[[maybe_unused]] static const " << DirectiveType << ' ' << TableName in EmitLeafTable()
585 OS << " {" << GetDirectiveName(DirLang, Directives[Leaves[0]]); in EmitLeafTable()
586 OS << ", static_cast<" << DirectiveType << ">(" << Leaves[1] << "),"; in EmitLeafTable()
590 OS << ' ' << GetDirectiveName(DirLang, Directives[Leaves[I]]) << ','; in EmitLeafTable()
592 OS << " static_cast<" << DirectiveType << ">(-1),"; in EmitLeafTable()
594 OS << "},\n"; in EmitLeafTable()
596 OS << "};\n\n"; in EmitLeafTable()
602 OS << "[[maybe_unused]] static auto " << TableName in EmitLeafTable()
608 OS << "[[maybe_unused]] static const int " << TableName << "Ordering[] = {\n"; in EmitLeafTable()
609 OS << " "; in EmitLeafTable()
614 OS << ' ' << Idx << ','; in EmitLeafTable()
615 OS << "\n};\n"; in EmitLeafTable()
619 raw_ostream &OS) { in GenerateGetDirectiveAssociation() argument
726 OS << '\n'; in GenerateGetDirectiveAssociation()
739 OS << AssociationTypeName << " llvm::" << DirLang.getCppNamespace() in GenerateGetDirectiveAssociation()
741 OS << " switch (Dir) {\n"; in GenerateGetDirectiveAssociation()
745 OS << " case " << getQualifiedName(Dir.getFormattedName()) << ":\n"; in GenerateGetDirectiveAssociation()
746 OS << " return " << AssociationTypeName in GenerateGetDirectiveAssociation()
750 OS << " } // switch (Dir)\n"; in GenerateGetDirectiveAssociation()
751 OS << " llvm_unreachable(\"Unexpected directive\");\n"; in GenerateGetDirectiveAssociation()
752 OS << "}\n"; in GenerateGetDirectiveAssociation()
756 raw_ostream &OS) { in GenerateGetDirectiveCategory() argument
761 OS << '\n'; in GenerateGetDirectiveCategory()
762 OS << CategoryTypeName << ' ' << LangNamespace << "::getDirectiveCategory(" in GenerateGetDirectiveCategory()
764 OS << " switch (Dir) {\n"; in GenerateGetDirectiveCategory()
768 OS << " case " << GetDirectiveName(DirLang, R) << ":\n"; in GenerateGetDirectiveCategory()
769 OS << " return " << CategoryNamespace in GenerateGetDirectiveCategory()
772 OS << " } // switch (Dir)\n"; in GenerateGetDirectiveCategory()
773 OS << " llvm_unreachable(\"Unexpected directive\");\n"; in GenerateGetDirectiveCategory()
774 OS << "}\n"; in GenerateGetDirectiveCategory()
779 raw_ostream &OS, StringRef ClauseSetPrefix, in GenerateClauseSet() argument
783 OS << "\n"; in GenerateClauseSet()
784 OS << " static " << DirLang.getClauseEnumSetClass() << " " << ClauseSetPrefix in GenerateClauseSet()
789 OS << " llvm::" << DirLang.getCppNamespace() in GenerateClauseSet()
793 OS << " };\n"; in GenerateClauseSet()
798 raw_ostream &OS) { in GenerateDirectiveClauseSets() argument
800 IfDefScope Scope("GEN_FLANG_DIRECTIVE_CLAUSE_SETS", OS); in GenerateDirectiveClauseSets()
802 OS << "\n"; in GenerateDirectiveClauseSets()
803 OS << "namespace llvm {\n"; in GenerateDirectiveClauseSets()
809 OS << "namespace " << Ns << " {\n"; in GenerateDirectiveClauseSets()
814 OS << "\n"; in GenerateDirectiveClauseSets()
815 OS << " // Sets for " << Dir.getName() << "\n"; in GenerateDirectiveClauseSets()
817 GenerateClauseSet(Dir.getAllowedClauses(), OS, "allowedClauses_", Dir, in GenerateDirectiveClauseSets()
819 GenerateClauseSet(Dir.getAllowedOnceClauses(), OS, "allowedOnceClauses_", in GenerateDirectiveClauseSets()
821 GenerateClauseSet(Dir.getAllowedExclusiveClauses(), OS, in GenerateDirectiveClauseSets()
823 GenerateClauseSet(Dir.getRequiredClauses(), OS, "requiredClauses_", Dir, in GenerateDirectiveClauseSets()
829 OS << "} // namespace " << Ns << "\n"; in GenerateDirectiveClauseSets()
831 OS << "} // namespace llvm\n"; in GenerateDirectiveClauseSets()
838 raw_ostream &OS) { in GenerateDirectiveClauseMap() argument
840 IfDefScope Scope("GEN_FLANG_DIRECTIVE_CLAUSE_MAP", OS); in GenerateDirectiveClauseMap()
842 OS << "\n"; in GenerateDirectiveClauseMap()
843 OS << "{\n"; in GenerateDirectiveClauseMap()
847 OS << " {llvm::" << DirLang.getCppNamespace() in GenerateDirectiveClauseMap()
850 OS << " {\n"; in GenerateDirectiveClauseMap()
851 OS << " llvm::" << DirLang.getCppNamespace() << "::allowedClauses_" in GenerateDirectiveClauseMap()
853 OS << " llvm::" << DirLang.getCppNamespace() << "::allowedOnceClauses_" in GenerateDirectiveClauseMap()
855 OS << " llvm::" << DirLang.getCppNamespace() in GenerateDirectiveClauseMap()
858 OS << " llvm::" << DirLang.getCppNamespace() << "::requiredClauses_" in GenerateDirectiveClauseMap()
860 OS << " }\n"; in GenerateDirectiveClauseMap()
861 OS << " },\n"; in GenerateDirectiveClauseMap()
864 OS << "}\n"; in GenerateDirectiveClauseMap()
873 raw_ostream &OS) { in GenerateFlangClauseParserClass() argument
875 IfDefScope Scope("GEN_FLANG_CLAUSE_PARSER_CLASSES", OS); in GenerateFlangClauseParserClass()
877 OS << "\n"; in GenerateFlangClauseParserClass()
882 OS << "WRAPPER_CLASS(" << Clause.getFormattedParserClassName() << ", "; in GenerateFlangClauseParserClass()
884 OS << "std::optional<std::list<" << Clause.getFlangClass() << ">>"; in GenerateFlangClauseParserClass()
886 OS << "std::optional<" << Clause.getFlangClass() << ">"; in GenerateFlangClauseParserClass()
888 OS << "std::list<" << Clause.getFlangClass() << ">"; in GenerateFlangClauseParserClass()
890 OS << Clause.getFlangClass(); in GenerateFlangClauseParserClass()
893 OS << "EMPTY_CLASS(" << Clause.getFormattedParserClassName(); in GenerateFlangClauseParserClass()
895 OS << ");\n"; in GenerateFlangClauseParserClass()
901 raw_ostream &OS) { in GenerateFlangClauseParserClassList() argument
903 IfDefScope Scope("GEN_FLANG_CLAUSE_PARSER_CLASSES_LIST", OS); in GenerateFlangClauseParserClassList()
905 OS << "\n"; in GenerateFlangClauseParserClassList()
906 llvm::interleaveComma(DirLang.getClauses(), OS, [&](Record *C) { in GenerateFlangClauseParserClassList()
908 OS << Clause.getFormattedParserClassName() << "\n"; in GenerateFlangClauseParserClassList()
914 raw_ostream &OS) { in GenerateFlangClauseDump() argument
916 IfDefScope Scope("GEN_FLANG_DUMP_PARSE_TREE_CLAUSES", OS); in GenerateFlangClauseDump()
918 OS << "\n"; in GenerateFlangClauseDump()
921 OS << "NODE(" << DirLang.getFlangClauseBaseClass() << ", " in GenerateFlangClauseDump()
929 raw_ostream &OS) { in GenerateFlangClauseUnparse() argument
931 IfDefScope Scope("GEN_FLANG_CLAUSE_UNPARSE", OS); in GenerateFlangClauseUnparse()
933 OS << "\n"; in GenerateFlangClauseUnparse()
939 OS << "void Unparse(const " << DirLang.getFlangClauseBaseClass() in GenerateFlangClauseUnparse()
941 OS << " Word(\"" << Clause.getName().upper() << "\");\n"; in GenerateFlangClauseUnparse()
943 OS << " Walk(\"(\", x.v, \")\");\n"; in GenerateFlangClauseUnparse()
944 OS << "}\n"; in GenerateFlangClauseUnparse()
946 OS << "void Unparse(const " << DirLang.getFlangClauseBaseClass() in GenerateFlangClauseUnparse()
948 OS << " Word(\"" << Clause.getName().upper() << "\");\n"; in GenerateFlangClauseUnparse()
949 OS << " Put(\"(\");\n"; in GenerateFlangClauseUnparse()
950 OS << " if (x.v.has_value())\n"; in GenerateFlangClauseUnparse()
952 OS << " Walk(x.v, \",\");\n"; in GenerateFlangClauseUnparse()
954 OS << " Walk(x.v);\n"; in GenerateFlangClauseUnparse()
955 OS << " else\n"; in GenerateFlangClauseUnparse()
956 OS << " Put(\"" << Clause.getDefaultValue() << "\");\n"; in GenerateFlangClauseUnparse()
957 OS << " Put(\")\");\n"; in GenerateFlangClauseUnparse()
958 OS << "}\n"; in GenerateFlangClauseUnparse()
960 OS << "void Unparse(const " << DirLang.getFlangClauseBaseClass() in GenerateFlangClauseUnparse()
962 OS << " Word(\"" << Clause.getName().upper() << "\");\n"; in GenerateFlangClauseUnparse()
963 OS << " Put(\"(\");\n"; in GenerateFlangClauseUnparse()
965 OS << " Walk(x.v, \",\");\n"; in GenerateFlangClauseUnparse()
967 OS << " Walk(x.v);\n"; in GenerateFlangClauseUnparse()
968 OS << " Put(\")\");\n"; in GenerateFlangClauseUnparse()
969 OS << "}\n"; in GenerateFlangClauseUnparse()
972 OS << "void Before(const " << DirLang.getFlangClauseBaseClass() in GenerateFlangClauseUnparse()
981 raw_ostream &OS) { in GenerateFlangClauseCheckPrototypes() argument
983 IfDefScope Scope("GEN_FLANG_CLAUSE_CHECK_ENTER", OS); in GenerateFlangClauseCheckPrototypes()
985 OS << "\n"; in GenerateFlangClauseCheckPrototypes()
988 OS << "void Enter(const parser::" << DirLang.getFlangClauseBaseClass() in GenerateFlangClauseCheckPrototypes()
996 raw_ostream &OS) { in GenerateFlangClauseParserKindMap() argument
998 IfDefScope Scope("GEN_FLANG_CLAUSE_PARSER_KIND_MAP", OS); in GenerateFlangClauseParserKindMap()
1000 OS << "\n"; in GenerateFlangClauseParserKindMap()
1003 OS << "if constexpr (std::is_same_v<A, parser::" in GenerateFlangClauseParserKindMap()
1006 OS << ">)\n"; in GenerateFlangClauseParserKindMap()
1007 OS << " return llvm::" << DirLang.getCppNamespace() in GenerateFlangClauseParserKindMap()
1012 OS << "llvm_unreachable(\"Invalid " << DirLang.getName() in GenerateFlangClauseParserKindMap()
1024 raw_ostream &OS) { in GenerateFlangClausesParser() argument
1029 IfDefScope Scope("GEN_FLANG_CLAUSES_PARSER", OS); in GenerateFlangClausesParser()
1030 OS << "\n"; in GenerateFlangClausesParser()
1033 OS << "TYPE_PARSER(\n"; in GenerateFlangClausesParser()
1037 OS << " \"" << Clause.getName() << "\""; in GenerateFlangClausesParser()
1039 OS << " (" in GenerateFlangClausesParser()
1042 OS << " || \"" << alias << "\"_tok"; in GenerateFlangClausesParser()
1044 OS << ")"; in GenerateFlangClausesParser()
1047 OS << " >> construct<" << DirLang.getFlangClauseBaseClass() in GenerateFlangClausesParser()
1051 OS << "))"; in GenerateFlangClausesParser()
1053 OS << " ||"; in GenerateFlangClausesParser()
1054 OS << "\n"; in GenerateFlangClausesParser()
1060 OS << "maybe("; in GenerateFlangClausesParser()
1061 OS << "parenthesized("; in GenerateFlangClausesParser()
1063 OS << "nonemptyList("; in GenerateFlangClausesParser()
1066 OS << "\"" << Clause.getPrefix() << ":\" >> "; in GenerateFlangClausesParser()
1082 OS << Parser; in GenerateFlangClausesParser()
1084 OS << " || " << Parser; in GenerateFlangClausesParser()
1086 OS << ")"; in GenerateFlangClausesParser()
1087 OS << ")"; // close parenthesized(. in GenerateFlangClausesParser()
1090 OS << ")"; in GenerateFlangClausesParser()
1091 OS << "))"; in GenerateFlangClausesParser()
1093 OS << " ||"; in GenerateFlangClausesParser()
1094 OS << "\n"; in GenerateFlangClausesParser()
1097 OS << ")\n"; in GenerateFlangClausesParser()
1103 raw_ostream &OS) { in EmitDirectivesFlangImpl() argument
1105 GenerateDirectiveClauseSets(DirLang, OS); in EmitDirectivesFlangImpl()
1107 GenerateDirectiveClauseMap(DirLang, OS); in EmitDirectivesFlangImpl()
1109 GenerateFlangClauseParserClass(DirLang, OS); in EmitDirectivesFlangImpl()
1111 GenerateFlangClauseParserClassList(DirLang, OS); in EmitDirectivesFlangImpl()
1113 GenerateFlangClauseDump(DirLang, OS); in EmitDirectivesFlangImpl()
1115 GenerateFlangClauseUnparse(DirLang, OS); in EmitDirectivesFlangImpl()
1117 GenerateFlangClauseCheckPrototypes(DirLang, OS); in EmitDirectivesFlangImpl()
1119 GenerateFlangClauseParserKindMap(DirLang, OS); in EmitDirectivesFlangImpl()
1121 GenerateFlangClausesParser(DirLang, OS); in EmitDirectivesFlangImpl()
1125 raw_ostream &OS) { in GenerateClauseClassMacro() argument
1127 IfDefScope Scope("GEN_CLANG_CLAUSE_CLASS", OS); in GenerateClauseClassMacro()
1129 OS << "\n"; in GenerateClauseClassMacro()
1131 OS << "#ifndef CLAUSE\n"; in GenerateClauseClassMacro()
1132 OS << "#define CLAUSE(Enum, Str, Implicit)\n"; in GenerateClauseClassMacro()
1133 OS << "#endif\n"; in GenerateClauseClassMacro()
1134 OS << "#ifndef CLAUSE_CLASS\n"; in GenerateClauseClassMacro()
1135 OS << "#define CLAUSE_CLASS(Enum, Str, Class)\n"; in GenerateClauseClassMacro()
1136 OS << "#endif\n"; in GenerateClauseClassMacro()
1137 OS << "#ifndef CLAUSE_NO_CLASS\n"; in GenerateClauseClassMacro()
1138 OS << "#define CLAUSE_NO_CLASS(Enum, Str)\n"; in GenerateClauseClassMacro()
1139 OS << "#endif\n"; in GenerateClauseClassMacro()
1140 OS << "\n"; in GenerateClauseClassMacro()
1141 OS << "#define __CLAUSE(Name, Class) \\\n"; in GenerateClauseClassMacro()
1142 OS << " CLAUSE(" << DirLang.getClausePrefix() in GenerateClauseClassMacro()
1144 OS << " CLAUSE_CLASS(" << DirLang.getClausePrefix() in GenerateClauseClassMacro()
1146 OS << "#define __CLAUSE_NO_CLASS(Name) \\\n"; in GenerateClauseClassMacro()
1147 OS << " CLAUSE(" << DirLang.getClausePrefix() in GenerateClauseClassMacro()
1149 OS << " CLAUSE_NO_CLASS(" << DirLang.getClausePrefix() << "##Name, #Name)\n"; in GenerateClauseClassMacro()
1150 OS << "#define __IMPLICIT_CLAUSE_CLASS(Name, Str, Class) \\\n"; in GenerateClauseClassMacro()
1151 OS << " CLAUSE(" << DirLang.getClausePrefix() in GenerateClauseClassMacro()
1153 OS << " CLAUSE_CLASS(" << DirLang.getClausePrefix() in GenerateClauseClassMacro()
1155 OS << "#define __IMPLICIT_CLAUSE_NO_CLASS(Name, Str) \\\n"; in GenerateClauseClassMacro()
1156 OS << " CLAUSE(" << DirLang.getClausePrefix() in GenerateClauseClassMacro()
1158 OS << " CLAUSE_NO_CLASS(" << DirLang.getClausePrefix() << "##Name, Str)\n"; in GenerateClauseClassMacro()
1159 OS << "\n"; in GenerateClauseClassMacro()
1165 OS << "__IMPLICIT_CLAUSE_NO_CLASS(" << C.getFormattedName() << ", \"" in GenerateClauseClassMacro()
1168 OS << "__CLAUSE_NO_CLASS(" << C.getFormattedName() << ")\n"; in GenerateClauseClassMacro()
1172 OS << "__IMPLICIT_CLAUSE_CLASS(" << C.getFormattedName() << ", \"" in GenerateClauseClassMacro()
1175 OS << "__CLAUSE(" << C.getFormattedName() << ", " << C.getClangClass() in GenerateClauseClassMacro()
1181 OS << "\n"; in GenerateClauseClassMacro()
1182 OS << "#undef __IMPLICIT_CLAUSE_NO_CLASS\n"; in GenerateClauseClassMacro()
1183 OS << "#undef __IMPLICIT_CLAUSE_CLASS\n"; in GenerateClauseClassMacro()
1184 OS << "#undef __CLAUSE_NO_CLASS\n"; in GenerateClauseClassMacro()
1185 OS << "#undef __CLAUSE\n"; in GenerateClauseClassMacro()
1186 OS << "#undef CLAUSE_NO_CLASS\n"; in GenerateClauseClassMacro()
1187 OS << "#undef CLAUSE_CLASS\n"; in GenerateClauseClassMacro()
1188 OS << "#undef CLAUSE\n"; in GenerateClauseClassMacro()
1194 raw_ostream &OS) { in EmitDirectivesBasicImpl() argument
1195 IfDefScope Scope("GEN_DIRECTIVES_IMPL", OS); in EmitDirectivesBasicImpl()
1197 OS << "\n#include \"llvm/Support/ErrorHandling.h\"\n"; in EmitDirectivesBasicImpl()
1200 GenerateGetKind(DirLang.getDirectives(), OS, "Directive", DirLang, in EmitDirectivesBasicImpl()
1204 GenerateGetName(DirLang.getDirectives(), OS, "Directive", DirLang, in EmitDirectivesBasicImpl()
1208 GenerateGetKind(DirLang.getClauses(), OS, "Clause", DirLang, in EmitDirectivesBasicImpl()
1213 GenerateGetName(DirLang.getClauses(), OS, "Clause", DirLang, in EmitDirectivesBasicImpl()
1217 GenerateGetKindClauseVal(DirLang, OS); in EmitDirectivesBasicImpl()
1220 GenerateIsAllowedClause(DirLang, OS); in EmitDirectivesBasicImpl()
1223 GenerateGetDirectiveAssociation(DirLang, OS); in EmitDirectivesBasicImpl()
1226 GenerateGetDirectiveCategory(DirLang, OS); in EmitDirectivesBasicImpl()
1229 EmitLeafTable(DirLang, OS, "LeafConstructTable"); in EmitDirectivesBasicImpl()
1234 static void EmitDirectivesImpl(RecordKeeper &Records, raw_ostream &OS) { in EmitDirectivesImpl() argument
1239 EmitDirectivesFlangImpl(DirLang, OS); in EmitDirectivesImpl()
1241 GenerateClauseClassMacro(DirLang, OS); in EmitDirectivesImpl()
1243 EmitDirectivesBasicImpl(DirLang, OS); in EmitDirectivesImpl()