Lines Matching defs:node

36   /// The name of the node hierarchy.  Not actually sensitive to IsReader,
103 HasProperties node = property.getClass();
104 NodeInfos[node].Properties.push_back(property);
110 HasProperties node = creationRule.getClass();
112 auto &info = NodeInfos[node];
115 "multiple creator rules for \"" + node.getName()
124 HasProperties node = overrideRule.getClass();
126 auto &info = NodeInfos[node];
129 "multiple override rules for \"" + node.getName()
138 HasProperties node = helperRule.getClass();
140 auto &info = NodeInfos[node];
143 "multiple write helper rules for \"" + node.getName()
196 [&](HasProperties node, const NodeInfo &info) {
208 llvm::function_ref<void (HasProperties node,
243 void emitNodeReaderWriterMethod(NodeClass node,
246 void emitPropertiedReaderWriterBody(HasProperties node,
277 void validateNode(HasProperties node, const NodeInfo &nodeInfo);
302 [&](HasProperties node,
313 // derived node, so use it as the error.
372 // Emit a method that dispatches on a kind to the appropriate node-specific
378 Out << "const " << info.HierarchyName << " *node";
384 Out << "node->" << NodeClass::getASTIdAccessorName() << "()";
386 visitASTNodeHierarchy<NodeClass>(Records, [&](NodeClass node, NodeClass _) {
387 if (node.isAbstract()) return;
388 Out << " case " << info.HierarchyName << "::" << node.getId() << ":\n"
389 " return " << info.MethodPrefix << node.getClassName() << "(";
391 Out << "static_cast<const " << node.getClassName()
392 << " *>(node)";
399 // Emit node-specific methods for all the concrete nodes.
401 [&](NodeClass node, NodeClass base) {
402 if (node.isAbstract()) return;
403 emitNodeReaderWriterMethod(node, info);
410 /// Emit a reader method for the given concrete AST node class.
412 void ASTPropsEmitter::emitNodeReaderWriterMethod(NodeClass node,
416 << info.MethodPrefix << node.getClassName() << "(";
418 Out << "const " << node.getClassName() << " *node";
423 emitPropertiedReaderWriterBody(node, info);
429 void ASTPropsEmitter::emitPropertiedReaderWriterBody(HasProperties node,
431 // Find the information for this node.
432 auto it = NodeInfos.find(node);
434 PrintFatalError(node.getLoc(),
436 + node.getName() + "\"");
443 PrintFatalError(node.getLoc(),
445 + node.getName() + "\"");
456 visitAllProperties(node, nodeInfo, [&](Property prop) {
460 "creation code for " + node.getName()
504 /// Emit code to read the given property in a node-reader method.
558 /// Emit code to write the given property in a node-writer method.
753 enterMethod("node");