Lines Matching refs:N
51 for (NodeType &N : AllTypes) { in Hierarchy()
52 sort(N.Derived, [](const NodeType *L, const NodeType *R) { in Hierarchy()
56 assert(N.Rec->isSubClassOf("Alternatives") || in Hierarchy()
57 N.Rec->isSubClassOf("External") || N.Derived.empty()); in Hierarchy()
58 assert(!N.Rec->isSubClassOf("Alternatives") || !N.Derived.empty()); in Hierarchy()
105 const Hierarchy::NodeType &firstConcrete(const Hierarchy::NodeType &N) { in firstConcrete() argument
106 return N.Derived.empty() ? N : firstConcrete(*N.Derived.front()); in firstConcrete()
108 const Hierarchy::NodeType &lastConcrete(const Hierarchy::NodeType &N) { in lastConcrete() argument
109 return N.Derived.empty() ? N : lastConcrete(*N.Derived.back()); in lastConcrete()
149 H.visit([&](const Hierarchy::NodeType &N) { in EmitClangSyntaxNodeList() argument
151 if (N.Base == nullptr) in EmitClangSyntaxNodeList()
153 if (N.Derived.empty()) in EmitClangSyntaxNodeList()
154 OS << formatv("CONCRETE_NODE({0},{1})\n", N.name(), N.Base->name()); in EmitClangSyntaxNodeList()
156 OS << formatv("ABSTRACT_NODE({0},{1},{2},{3})\n", N.name(), in EmitClangSyntaxNodeList()
157 N.Base->name(), firstConcrete(N).name(), in EmitClangSyntaxNodeList()
158 lastConcrete(N).name()); in EmitClangSyntaxNodeList()
197 H.visit([&](const Hierarchy::NodeType &N) { in EmitClangSyntaxNodeClasses() argument
198 OS << "class " << N.name() << ";\n"; in EmitClangSyntaxNodeClasses()
202 H.visit([&](const Hierarchy::NodeType &N) { in EmitClangSyntaxNodeClasses() argument
203 if (N.Rec->isSubClassOf("External")) in EmitClangSyntaxNodeClasses()
205 printDoc(N.Rec->getValueAsString("documentation"), OS); in EmitClangSyntaxNodeClasses()
206 OS << formatv("class {0}{1} : public {2} {{\n", N.name(), in EmitClangSyntaxNodeClasses()
207 N.Derived.empty() ? " final" : "", N.Base->name()); in EmitClangSyntaxNodeClasses()
210 if (N.Derived.empty()) in EmitClangSyntaxNodeClasses()
211 OS << formatv("public:\n {0}() : {1}(NodeKind::{0}) {{}\n", N.name(), in EmitClangSyntaxNodeClasses()
212 N.Base->name()); in EmitClangSyntaxNodeClasses()
215 N.name(), N.Base->name()); in EmitClangSyntaxNodeClasses()
217 if (N.Rec->isSubClassOf("Sequence")) { in EmitClangSyntaxNodeClasses()
219 for (const auto &C : N.Rec->getValueAsListOfDefs("children")) { in EmitClangSyntaxNodeClasses()