Lines Matching refs:DirLang
51 const DirectiveLanguage &DirLang, in GenerateEnumClass() argument
74 << "llvm::" << DirLang.getCppNamespace() << "::" << Enum in GenerateEnumClass()
84 const DirectiveLanguage &DirLang, in GenerateEnumClauseVal() argument
107 if (DirLang.hasMakeEnumAvailableInNamespace()) { in GenerateEnumClauseVal()
111 << "llvm::" << DirLang.getCppNamespace() << "::" << EnumName in GenerateEnumClauseVal()
119 (llvm::Twine("llvm::StringRef get") + llvm::Twine(DirLang.getName()) + in GenerateEnumClauseVal()
185 static size_t GetMaxLeafCount(const DirectiveLanguage &DirLang) { in GetMaxLeafCount() argument
187 for (Record *R : DirLang.getDirectives()) { in GetMaxLeafCount()
197 const auto DirLang = DirectiveLanguage{Records}; in EmitDirectivesDecl()
198 if (DirLang.HasValidityErrors()) in EmitDirectivesDecl()
201 OS << "#ifndef LLVM_" << DirLang.getName() << "_INC\n"; in EmitDirectivesDecl()
202 OS << "#define LLVM_" << DirLang.getName() << "_INC\n"; in EmitDirectivesDecl()
205 if (DirLang.hasEnableBitmaskEnumInNamespace()) in EmitDirectivesDecl()
215 llvm::SplitString(DirLang.getCppNamespace(), Namespaces, "::"); in EmitDirectivesDecl()
219 if (DirLang.hasEnableBitmaskEnumInNamespace()) in EmitDirectivesDecl()
225 DirLang.getAssociations(), std::back_inserter(associations), in EmitDirectivesDecl()
229 /*Prefix=*/"", DirLang, /*ExportEnums=*/false); in EmitDirectivesDecl()
231 GenerateEnumClass(DirLang.getCategories(), OS, "Category", /*Prefix=*/"", in EmitDirectivesDecl()
232 DirLang, /*ExportEnums=*/false); in EmitDirectivesDecl()
235 GenerateEnumClass(DirLang.getDirectives(), OS, "Directive", in EmitDirectivesDecl()
236 DirLang.getDirectivePrefix(), DirLang, in EmitDirectivesDecl()
237 DirLang.hasMakeEnumAvailableInNamespace()); in EmitDirectivesDecl()
240 GenerateEnumClass(DirLang.getClauses(), OS, "Clause", in EmitDirectivesDecl()
241 DirLang.getClausePrefix(), DirLang, in EmitDirectivesDecl()
242 DirLang.hasMakeEnumAvailableInNamespace()); in EmitDirectivesDecl()
246 GenerateEnumClauseVal(DirLang.getClauses(), OS, DirLang, EnumHelperFuncs); in EmitDirectivesDecl()
251 OS << "Directive get" << DirLang.getName() in EmitDirectivesDecl()
254 OS << "llvm::StringRef get" << DirLang.getName() in EmitDirectivesDecl()
257 OS << "Clause get" << DirLang.getName() in EmitDirectivesDecl()
260 OS << "llvm::StringRef get" << DirLang.getName() << "ClauseName(Clause C);\n"; in EmitDirectivesDecl()
268 << GetMaxLeafCount(DirLang) << "; }\n"; in EmitDirectivesDecl()
282 OS << "#endif // LLVM_" << DirLang.getName() << "_INC\n"; in EmitDirectivesDecl()
288 const DirectiveLanguage &DirLang, in GenerateGetName() argument
291 OS << "llvm::StringRef llvm::" << DirLang.getCppNamespace() << "::get" in GenerateGetName()
292 << DirLang.getName() << Enum << "Name(" << Enum << " Kind) {\n"; in GenerateGetName()
305 OS << " llvm_unreachable(\"Invalid " << DirLang.getName() << " " << Enum in GenerateGetName()
313 const DirectiveLanguage &DirLang, StringRef Prefix, in GenerateGetKind() argument
327 OS << Enum << " llvm::" << DirLang.getCppNamespace() << "::get" in GenerateGetKind()
328 << DirLang.getName() << Enum << "Kind(llvm::StringRef Str) {\n"; in GenerateGetKind()
346 static void GenerateGetKindClauseVal(const DirectiveLanguage &DirLang, in GenerateGetKindClauseVal() argument
348 for (const auto &R : DirLang.getClauses()) { in GenerateGetKindClauseVal()
373 OS << EnumName << " llvm::" << DirLang.getCppNamespace() << "::get" in GenerateGetKindClauseVal()
385 OS << "llvm::StringRef llvm::" << DirLang.getCppNamespace() << "::get" in GenerateGetKindClauseVal()
386 << DirLang.getName() << EnumName in GenerateGetKindClauseVal()
387 << "Name(llvm::" << DirLang.getCppNamespace() << "::" << EnumName in GenerateGetKindClauseVal()
396 OS << " llvm_unreachable(\"Invalid " << DirLang.getName() << " " in GenerateGetKindClauseVal()
405 const DirectiveLanguage &DirLang, in GenerateCaseForVersionedClauses() argument
413 OS << " case " << DirLang.getClausePrefix() << ClauseFormattedName in GenerateCaseForVersionedClauses()
421 static std::string GetDirectiveName(const DirectiveLanguage &DirLang, in GetDirectiveName() argument
424 return (llvm::Twine("llvm::") + DirLang.getCppNamespace() + in GetDirectiveName()
425 "::" + DirLang.getDirectivePrefix() + Dir.getFormattedName()) in GetDirectiveName()
429 static std::string GetDirectiveType(const DirectiveLanguage &DirLang) { in GetDirectiveType() argument
430 return (llvm::Twine("llvm::") + DirLang.getCppNamespace() + "::Directive") in GetDirectiveType()
435 static void GenerateIsAllowedClause(const DirectiveLanguage &DirLang, in GenerateIsAllowedClause() argument
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()
448 for (const auto &D : DirLang.getDirectives()) { in GenerateIsAllowedClause()
451 OS << " case " << DirLang.getDirectivePrefix() << Dir.getFormattedName() in GenerateIsAllowedClause()
464 Dir.getName(), DirLang, Cases); in GenerateIsAllowedClause()
467 Dir.getName(), DirLang, Cases); in GenerateIsAllowedClause()
470 Dir.getName(), DirLang, Cases); in GenerateIsAllowedClause()
473 Dir.getName(), DirLang, Cases); in GenerateIsAllowedClause()
483 OS << " llvm_unreachable(\"Invalid " << DirLang.getName() in GenerateIsAllowedClause()
488 static void EmitLeafTable(const DirectiveLanguage &DirLang, raw_ostream &OS, in EmitLeafTable() argument
509 std::vector<Record *> Directives = DirLang.getDirectives(); in EmitLeafTable()
516 int MaxLeafCount = GetMaxLeafCount(DirLang); in EmitLeafTable()
578 std::string DirectiveType = GetDirectiveType(DirLang); in EmitLeafTable()
585 OS << " {" << GetDirectiveName(DirLang, Directives[Leaves[0]]); in EmitLeafTable()
590 OS << ' ' << GetDirectiveName(DirLang, Directives[Leaves[I]]) << ','; in EmitLeafTable()
618 static void GenerateGetDirectiveAssociation(const DirectiveLanguage &DirLang, in GenerateGetDirectiveAssociation() argument
631 std::vector<Record *> associations = DirLang.getAssociations(); in GenerateGetDirectiveAssociation()
658 DirLang.getCppNamespace() + "' ") in GenerateGetDirectiveAssociation()
723 for (Record *R : DirLang.getDirectives()) in GenerateGetDirectiveAssociation()
729 return (llvm::Twine("llvm::") + DirLang.getCppNamespace() + in GenerateGetDirectiveAssociation()
730 "::Directive::" + DirLang.getDirectivePrefix() + Formatted) in GenerateGetDirectiveAssociation()
735 std::string("llvm::") + DirLang.getCppNamespace().str() + "::Directive"; in GenerateGetDirectiveAssociation()
737 std::string("llvm::") + DirLang.getCppNamespace().str() + "::Association"; in GenerateGetDirectiveAssociation()
739 OS << AssociationTypeName << " llvm::" << DirLang.getCppNamespace() in GenerateGetDirectiveAssociation()
742 for (Record *R : DirLang.getDirectives()) { in GenerateGetDirectiveAssociation()
755 static void GenerateGetDirectiveCategory(const DirectiveLanguage &DirLang, in GenerateGetDirectiveCategory() argument
757 std::string LangNamespace = "llvm::" + DirLang.getCppNamespace().str(); in GenerateGetDirectiveCategory()
763 << GetDirectiveType(DirLang) << " Dir) {\n"; in GenerateGetDirectiveCategory()
766 for (Record *R : DirLang.getDirectives()) { in GenerateGetDirectiveCategory()
768 OS << " case " << GetDirectiveName(DirLang, R) << ":\n"; in GenerateGetDirectiveCategory()
781 const DirectiveLanguage &DirLang) { in GenerateClauseSet() argument
784 OS << " static " << DirLang.getClauseEnumSetClass() << " " << ClauseSetPrefix in GenerateClauseSet()
785 << DirLang.getDirectivePrefix() << Dir.getFormattedName() << " {\n"; in GenerateClauseSet()
789 OS << " llvm::" << DirLang.getCppNamespace() in GenerateClauseSet()
790 << "::Clause::" << DirLang.getClausePrefix() in GenerateClauseSet()
797 static void GenerateDirectiveClauseSets(const DirectiveLanguage &DirLang, in GenerateDirectiveClauseSets() argument
807 llvm::SplitString(DirLang.getCppNamespace(), Namespaces, "::"); in GenerateDirectiveClauseSets()
811 for (const auto &D : DirLang.getDirectives()) { in GenerateDirectiveClauseSets()
818 DirLang); in GenerateDirectiveClauseSets()
820 Dir, DirLang); in GenerateDirectiveClauseSets()
822 "allowedExclusiveClauses_", Dir, DirLang); in GenerateDirectiveClauseSets()
824 DirLang); in GenerateDirectiveClauseSets()
837 static void GenerateDirectiveClauseMap(const DirectiveLanguage &DirLang, in GenerateDirectiveClauseMap() argument
845 for (const auto &D : DirLang.getDirectives()) { in GenerateDirectiveClauseMap()
847 OS << " {llvm::" << DirLang.getCppNamespace() in GenerateDirectiveClauseMap()
848 << "::Directive::" << DirLang.getDirectivePrefix() in GenerateDirectiveClauseMap()
851 OS << " llvm::" << DirLang.getCppNamespace() << "::allowedClauses_" in GenerateDirectiveClauseMap()
852 << DirLang.getDirectivePrefix() << Dir.getFormattedName() << ",\n"; in GenerateDirectiveClauseMap()
853 OS << " llvm::" << DirLang.getCppNamespace() << "::allowedOnceClauses_" in GenerateDirectiveClauseMap()
854 << DirLang.getDirectivePrefix() << Dir.getFormattedName() << ",\n"; in GenerateDirectiveClauseMap()
855 OS << " llvm::" << DirLang.getCppNamespace() in GenerateDirectiveClauseMap()
856 << "::allowedExclusiveClauses_" << DirLang.getDirectivePrefix() in GenerateDirectiveClauseMap()
858 OS << " llvm::" << DirLang.getCppNamespace() << "::requiredClauses_" in GenerateDirectiveClauseMap()
859 << DirLang.getDirectivePrefix() << Dir.getFormattedName() << ",\n"; in GenerateDirectiveClauseMap()
872 static void GenerateFlangClauseParserClass(const DirectiveLanguage &DirLang, in GenerateFlangClauseParserClass() argument
879 for (const auto &C : DirLang.getClauses()) { in GenerateFlangClauseParserClass()
900 static void GenerateFlangClauseParserClassList(const DirectiveLanguage &DirLang, in GenerateFlangClauseParserClassList() argument
906 llvm::interleaveComma(DirLang.getClauses(), OS, [&](Record *C) { in GenerateFlangClauseParserClassList()
913 static void GenerateFlangClauseDump(const DirectiveLanguage &DirLang, in GenerateFlangClauseDump() argument
919 for (const auto &C : DirLang.getClauses()) { in GenerateFlangClauseDump()
921 OS << "NODE(" << DirLang.getFlangClauseBaseClass() << ", " in GenerateFlangClauseDump()
928 static void GenerateFlangClauseUnparse(const DirectiveLanguage &DirLang, in GenerateFlangClauseUnparse() argument
935 for (const auto &C : DirLang.getClauses()) { in GenerateFlangClauseUnparse()
939 OS << "void Unparse(const " << DirLang.getFlangClauseBaseClass() in GenerateFlangClauseUnparse()
946 OS << "void Unparse(const " << DirLang.getFlangClauseBaseClass() in GenerateFlangClauseUnparse()
960 OS << "void Unparse(const " << DirLang.getFlangClauseBaseClass() in GenerateFlangClauseUnparse()
972 OS << "void Before(const " << DirLang.getFlangClauseBaseClass() in GenerateFlangClauseUnparse()
980 static void GenerateFlangClauseCheckPrototypes(const DirectiveLanguage &DirLang, in GenerateFlangClauseCheckPrototypes() argument
986 for (const auto &C : DirLang.getClauses()) { in GenerateFlangClauseCheckPrototypes()
988 OS << "void Enter(const parser::" << DirLang.getFlangClauseBaseClass() in GenerateFlangClauseCheckPrototypes()
995 static void GenerateFlangClauseParserKindMap(const DirectiveLanguage &DirLang, in GenerateFlangClauseParserKindMap() argument
1001 for (const auto &C : DirLang.getClauses()) { in GenerateFlangClauseParserKindMap()
1004 << DirLang.getFlangClauseBaseClass() in GenerateFlangClauseParserKindMap()
1007 OS << " return llvm::" << DirLang.getCppNamespace() in GenerateFlangClauseParserKindMap()
1008 << "::Clause::" << DirLang.getClausePrefix() << Clause.getFormattedName() in GenerateFlangClauseParserKindMap()
1012 OS << "llvm_unreachable(\"Invalid " << DirLang.getName() in GenerateFlangClauseParserKindMap()
1023 static void GenerateFlangClausesParser(const DirectiveLanguage &DirLang, in GenerateFlangClausesParser() argument
1025 std::vector<Record *> Clauses = DirLang.getClauses(); in GenerateFlangClausesParser()
1032 unsigned lastClauseIndex = DirLang.getClauses().size() - 1; in GenerateFlangClausesParser()
1047 OS << " >> construct<" << DirLang.getFlangClauseBaseClass() in GenerateFlangClausesParser()
1048 << ">(construct<" << DirLang.getFlangClauseBaseClass() in GenerateFlangClausesParser()
1102 static void EmitDirectivesFlangImpl(const DirectiveLanguage &DirLang, 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()
1124 static void GenerateClauseClassMacro(const DirectiveLanguage &DirLang, in GenerateClauseClassMacro() argument
1142 OS << " CLAUSE(" << DirLang.getClausePrefix() in GenerateClauseClassMacro()
1144 OS << " CLAUSE_CLASS(" << DirLang.getClausePrefix() in GenerateClauseClassMacro()
1147 OS << " CLAUSE(" << DirLang.getClausePrefix() in GenerateClauseClassMacro()
1149 OS << " CLAUSE_NO_CLASS(" << DirLang.getClausePrefix() << "##Name, #Name)\n"; in GenerateClauseClassMacro()
1151 OS << " CLAUSE(" << DirLang.getClausePrefix() in GenerateClauseClassMacro()
1153 OS << " CLAUSE_CLASS(" << DirLang.getClausePrefix() in GenerateClauseClassMacro()
1156 OS << " CLAUSE(" << DirLang.getClausePrefix() in GenerateClauseClassMacro()
1158 OS << " CLAUSE_NO_CLASS(" << DirLang.getClausePrefix() << "##Name, Str)\n"; in GenerateClauseClassMacro()
1161 for (const auto &R : DirLang.getClauses()) { in GenerateClauseClassMacro()
1193 void EmitDirectivesBasicImpl(const DirectiveLanguage &DirLang, in EmitDirectivesBasicImpl() argument
1200 GenerateGetKind(DirLang.getDirectives(), OS, "Directive", DirLang, in EmitDirectivesBasicImpl()
1201 DirLang.getDirectivePrefix(), /*ImplicitAsUnknown=*/false); in EmitDirectivesBasicImpl()
1204 GenerateGetName(DirLang.getDirectives(), OS, "Directive", DirLang, in EmitDirectivesBasicImpl()
1205 DirLang.getDirectivePrefix()); in EmitDirectivesBasicImpl()
1208 GenerateGetKind(DirLang.getClauses(), OS, "Clause", DirLang, in EmitDirectivesBasicImpl()
1209 DirLang.getClausePrefix(), in EmitDirectivesBasicImpl()
1213 GenerateGetName(DirLang.getClauses(), OS, "Clause", DirLang, in EmitDirectivesBasicImpl()
1214 DirLang.getClausePrefix()); 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()
1235 const auto DirLang = DirectiveLanguage{Records}; in EmitDirectivesImpl()
1236 if (DirLang.HasValidityErrors()) in EmitDirectivesImpl()
1239 EmitDirectivesFlangImpl(DirLang, OS); in EmitDirectivesImpl()
1241 GenerateClauseClassMacro(DirLang, OS); in EmitDirectivesImpl()
1243 EmitDirectivesBasicImpl(DirLang, OS); in EmitDirectivesImpl()