Lines Matching refs:N

50     for (NodeType &N : AllTypes) {  in Hierarchy()
51 llvm::sort(N.Derived, [](const NodeType *L, const NodeType *R) { in Hierarchy()
55 assert(N.Record->isSubClassOf("Alternatives") || in Hierarchy()
56 N.Record->isSubClassOf("External") || N.Derived.empty()); in Hierarchy()
57 assert(!N.Record->isSubClassOf("Alternatives") || !N.Derived.empty()); in Hierarchy()
104 const Hierarchy::NodeType &firstConcrete(const Hierarchy::NodeType &N) { in firstConcrete() argument
105 return N.Derived.empty() ? N : firstConcrete(*N.Derived.front()); in firstConcrete()
107 const Hierarchy::NodeType &lastConcrete(const Hierarchy::NodeType &N) { in lastConcrete() argument
108 return N.Derived.empty() ? N : lastConcrete(*N.Derived.back()); in lastConcrete()
148 H.visit([&](const Hierarchy::NodeType &N) { in EmitClangSyntaxNodeList() argument
150 if (N.Base == nullptr) in EmitClangSyntaxNodeList()
152 if (N.Derived.empty()) in EmitClangSyntaxNodeList()
153 OS << formatv("CONCRETE_NODE({0},{1})\n", N.name(), N.Base->name()); in EmitClangSyntaxNodeList()
155 OS << formatv("ABSTRACT_NODE({0},{1},{2},{3})\n", N.name(), in EmitClangSyntaxNodeList()
156 N.Base->name(), firstConcrete(N).name(), in EmitClangSyntaxNodeList()
157 lastConcrete(N).name()); in EmitClangSyntaxNodeList()
196 H.visit([&](const Hierarchy::NodeType &N) { in EmitClangSyntaxNodeClasses() argument
197 OS << "class " << N.name() << ";\n"; in EmitClangSyntaxNodeClasses()
201 H.visit([&](const Hierarchy::NodeType &N) { in EmitClangSyntaxNodeClasses() argument
202 if (N.Record->isSubClassOf("External")) in EmitClangSyntaxNodeClasses()
204 printDoc(N.Record->getValueAsString("documentation"), OS); in EmitClangSyntaxNodeClasses()
205 OS << formatv("class {0}{1} : public {2} {{\n", N.name(), in EmitClangSyntaxNodeClasses()
206 N.Derived.empty() ? " final" : "", N.Base->name()); in EmitClangSyntaxNodeClasses()
209 if (N.Derived.empty()) in EmitClangSyntaxNodeClasses()
210 OS << formatv("public:\n {0}() : {1}(NodeKind::{0}) {{}\n", N.name(), in EmitClangSyntaxNodeClasses()
211 N.Base->name()); in EmitClangSyntaxNodeClasses()
214 N.name(), N.Base->name()); in EmitClangSyntaxNodeClasses()
216 if (N.Record->isSubClassOf("Sequence")) { in EmitClangSyntaxNodeClasses()
218 for (const auto &C : N.Record->getValueAsListOfDefs("children")) { in EmitClangSyntaxNodeClasses()