Lines Matching refs:info

112       auto &info = NodeInfos[node];
113 if (info.Creator) {
118 info.Creator = creationRule;
126 auto &info = NodeInfos[node];
127 if (info.Override) {
132 info.Override = overrideRule;
140 auto &info = NodeInfos[node];
141 if (info.ReadHelper) {
146 info.ReadHelper = helperRule;
163 auto &info = CasedTypeInfos[type];
164 if (info.KindRule) {
169 info.KindRule = kindRule;
196 [&](HasProperties node, const NodeInfo &info) {
197 for (Property prop : info.Properties) {
209 const NodeInfo &info)>
229 auto info = ReaderWriterInfo::forReader<NodeClass>();
230 emitNodeReaderWriterClass<NodeClass>(info);
235 auto info = ReaderWriterInfo::forWriter<NodeClass>();
236 emitNodeReaderWriterClass<NodeClass>(info);
240 void emitNodeReaderWriterClass(const ReaderWriterInfo &info);
244 const ReaderWriterInfo &info);
247 const ReaderWriterInfo &info);
258 void emitBasicReaderWriterFile(const ReaderWriterInfo &info);
259 void emitDispatcherTemplate(const ReaderWriterInfo &info);
260 void emitPackUnpackOptionalTemplate(const ReaderWriterInfo &info);
261 void emitBasicReaderWriterTemplate(const ReaderWriterInfo &info);
265 const ReaderWriterInfo &info);
357 void ASTPropsEmitter::emitNodeReaderWriterClass(const ReaderWriterInfo &info) {
358 StringRef suffix = info.ClassSuffix;
359 StringRef var = info.HelperVariable;
363 "class Abstract" << info.HierarchyName << suffix << " {\n"
368 Out << " Abstract" << info.HierarchyName << suffix
374 Out << " " << info.ResultType << " " << info.MethodPrefix << "(";
375 if (info.IsReader)
378 Out << "const " << info.HierarchyName << " *node";
381 if (info.IsReader)
388 Out << " case " << info.HierarchyName << "::" << node.getId() << ":\n"
389 " return " << info.MethodPrefix << node.getClassName() << "(";
390 if (!info.IsReader)
403 emitNodeReaderWriterMethod(node, info);
413 const ReaderWriterInfo &info) {
415 Out << " " << info.ResultType << " "
416 << info.MethodPrefix << node.getClassName() << "(";
417 if (!info.IsReader)
420 if (info.IsReader)
421 Out << " auto &ctx = " << info.HelperVariable << ".getASTContext();\n";
423 emitPropertiedReaderWriterBody(node, info);
430 const ReaderWriterInfo &info) {
440 if (info.IsReader) {
451 if (!info.IsReader && nodeInfo.ReadHelper) {
458 if (info.IsReader && creationCode.find(prop.getName()) == StringRef::npos)
465 if (info.IsReader)
466 emitReadOfProperty(info.HelperVariable, prop);
468 emitWriteOfProperty(info.HelperVariable, prop);
472 if (info.IsReader)
622 ASTPropsEmitter::emitDispatcherTemplate(const ReaderWriterInfo &info) {
624 StringRef dispatcherPrefix = (info.IsReader ? "Read" : "Write");
633 StringRef var = info.HelperVariable;
637 Out << " template <class Basic" << info.ClassSuffix << ", class... Args>\n"
638 " static " << (info.IsReader ? cxxTypeName : "void") << " "
639 << info.MethodPrefix
640 << "(Basic" << info.ClassSuffix << " &" << var
643 << info.MethodPrefix << methodSuffix
655 if (!info.IsReader && type.isConstWhenWriting()) {
672 ASTPropsEmitter::emitPackUnpackOptionalTemplate(const ReaderWriterInfo &info) {
673 StringRef classPrefix = (info.IsReader ? "Unpack" : "Pack");
674 StringRef methodName = (info.IsReader ? "unpack" : "pack");
684 " static " << (info.IsReader ? "Optional<" : "") << typeName
685 << (info.IsReader ? "> " : " ") << methodName << "("
686 << (info.IsReader ? "" : "Optional<") << typeName
687 << (info.IsReader ? "" : ">") << " value) {\n"
694 StringRef code = (info.IsReader ? type.getUnpackOptionalCode()
700 if (type.isConstWhenWriting() && !info.IsReader)
707 ASTPropsEmitter::emitBasicReaderWriterTemplate(const ReaderWriterInfo &info) {
710 "class Basic" << info.ClassSuffix << "Base {\n";
711 if (info.IsReader)
714 " Basic" << info.ClassSuffix << "Base"
715 << (info.IsReader ? "(ASTContext &ctx) : C(ctx)" : "()")
718 if (info.IsReader)
727 Out << " " << (info.IsReader ? cxxTypeName : "void")
728 << " " << info.MethodPrefix << abstractTypeName << "(";
729 if (!info.IsReader)
754 emitCasedReaderWriterMethodBody(type, casedIter->second, info);
759 if (info.IsReader)
768 if (info.IsReader)
787 const ReaderWriterInfo &info) {
799 auto var = info.HelperVariable;
803 if (info.IsReader)
808 << info.MethodPrefix << "Object();\n";
814 if (info.IsReader) {
825 ReaderWriterInfo subInfo = info;
834 if (!info.IsReader)
843 void ASTPropsEmitter::emitBasicReaderWriterFile(const ReaderWriterInfo &info) {
844 emitDispatcherTemplate(info);
845 emitPackUnpackOptionalTemplate(info);
846 emitBasicReaderWriterTemplate(info);
855 auto info = ReaderWriterInfo::forReader<TypeNode>();
856 ASTPropsEmitter(records, out).emitBasicReaderWriterFile(info);
865 auto info = ReaderWriterInfo::forWriter<TypeNode>();
866 ASTPropsEmitter(records, out).emitBasicReaderWriterFile(info);