diff options
Diffstat (limited to 'tools/slang-cpp-extractor/slang-cpp-extractor-main.cpp')
| -rw-r--r-- | tools/slang-cpp-extractor/slang-cpp-extractor-main.cpp | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/tools/slang-cpp-extractor/slang-cpp-extractor-main.cpp b/tools/slang-cpp-extractor/slang-cpp-extractor-main.cpp index f5724b7b6..9dd05ac78 100644 --- a/tools/slang-cpp-extractor/slang-cpp-extractor-main.cpp +++ b/tools/slang-cpp-extractor/slang-cpp-extractor-main.cpp @@ -1889,6 +1889,9 @@ SlangResult CPPExtractorApp::calcHeader(CPPExtractor& extractor, StringBuilder& typeIndex++; } + _indent(1, out); + out << "CountOf\n"; + out << "};\n\n"; } @@ -1968,7 +1971,7 @@ SlangResult CPPExtractorApp::calcHeader(CPPExtractor& extractor, StringBuilder& // Output all of the definitions for each type for (Node* node : nodes) { - out << "#define SLANG_" << reflectTypeName << "_" << node->m_name.Content << "(x, param) "; + out << "#define " << m_options.m_prefixMark << reflectTypeName << "_" << node->m_name.Content << "(x, param) "; // Output the X macro part _indent(1, out); @@ -2027,6 +2030,7 @@ SlangResult CPPExtractorApp::calcHeader(CPPExtractor& extractor, StringBuilder& } } + // Now pop the scope in revers for (Index j = baseScopePath.getCount() - 1; j >= 0; j--) { @@ -2035,6 +2039,27 @@ SlangResult CPPExtractorApp::calcHeader(CPPExtractor& extractor, StringBuilder& } } + // Do macros by origin + + out << "// Origin macros\n\n"; + + for (SourceOrigin* origin : extractor.getSourceOrigins()) + { + out << "#define " << m_options.m_prefixMark << "ORIGIN_" << origin->m_macroOrigin << "_" << reflectTypeName << "(x, param) \\\n"; + + for (Node* node : origin->m_nodes) + { + if (!(node->m_isReflected && node->isClassLike())) + { + continue; + } + + _indent(1, out); + out << "x(" << node->m_name.Content << ", param) \\\n"; + } + out << "/* */\n\n"; + } + return SLANG_OK; } |
