summaryrefslogtreecommitdiff
path: root/source/slang
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2020-10-22 08:46:12 -0400
committerGitHub <noreply@github.com>2020-10-22 08:46:12 -0400
commit10e1bae34733f1cdb5abc001666b1aafa1c1f406 (patch)
treead9571c071b7b7c2384cdd42426851d257fc5f7b /source/slang
parentc0943661e5441bfb996430c4f67fb4dddea9dfcf (diff)
Single pass C++ extraction (#1583)
* #include an absolute path didn't work - because paths were taken to always be relative. * Added CharUtil. Added TypeSet to extractor. First pass at being able to specify all headers for multiple output headers. * Fix includes for new C++ extractor convension. Update premake5 to use new extractor mechanisms. * Small improvements around StringUtil. * Split out NameConventionUtil. * Use a 'convert' to convert between convention types. * Fix output of build message for C++ extractor. Improve NameConventionUtil interface. * Improve comments. * Fix warning on gcc. * Fix clang warning. * Fix some typos in NameConventionUtil. * Small fix to premake5.lua * Fix generated includes. * Remove m_reflectType as no longer applicable with TypeSet. * Fix .gitignore for slang-generated-* files. Added getConvention to determine convention from slice. Add versions of split and convert that infer the from convention * Fix typo in spliting camel. * LineWhitespace -> HorizontalWhitespace * Improve CharUtil comments.
Diffstat (limited to 'source/slang')
-rw-r--r--source/slang/run-generators.vcxproj29
-rw-r--r--source/slang/run-generators.vcxproj.filters3
-rw-r--r--source/slang/slang-ast-base.h2
-rw-r--r--source/slang/slang-ast-decl.cpp2
-rw-r--r--source/slang/slang-ast-dump.cpp2
-rw-r--r--source/slang/slang-ast-reflect.cpp14
-rw-r--r--source/slang/slang-ast-reflect.h2
-rw-r--r--source/slang/slang-ast-substitutions.cpp2
-rw-r--r--source/slang/slang-ast-support-types.h9
-rw-r--r--source/slang/slang-ast-type.cpp2
-rw-r--r--source/slang/slang-ast-val.cpp2
-rw-r--r--source/slang/slang-diagnostics.cpp53
-rw-r--r--source/slang/slang-ref-object-reflect.cpp4
-rw-r--r--source/slang/slang-ref-object-reflect.h2
-rw-r--r--source/slang/slang-serialize-ast.cpp4
-rw-r--r--source/slang/slang-serialize-reflection.h2
-rw-r--r--source/slang/slang-visitor.h6
-rw-r--r--source/slang/slang.vcxproj14
-rw-r--r--source/slang/slang.vcxproj.filters42
19 files changed, 95 insertions, 101 deletions
diff --git a/source/slang/run-generators.vcxproj b/source/slang/run-generators.vcxproj
index 599f221b1..e38f9dc2d 100644
--- a/source/slang/run-generators.vcxproj
+++ b/source/slang/run-generators.vcxproj
@@ -156,7 +156,6 @@
<ItemGroup>
<ClInclude Include="..\..\prelude\slang-cpp-scalar-intrinsics.h" />
<ClInclude Include="..\..\prelude\slang-cpp-types.h" />
- <ClInclude Include="slang-ref-object-reflect.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\core\slang-string.cpp" />
@@ -229,24 +228,16 @@
</CustomBuild>
<CustomBuild Include="slang-ast-reflect.h">
<FileType>Document</FileType>
- <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"../../bin/windows-x86/debug/slang-cpp-extractor" -d %(RootDir)%(Directory) slang-ast-support-types.h -strip-prefix slang- -reflect-type Value -o slang-value-generated -output-fields -mark-suffix _VALUE_CLASS
-"../../bin/windows-x86/debug/slang-cpp-extractor" -d %(RootDir)%(Directory) slang-ast-support-types.h -strip-prefix slang- -reflect-type RefObject -o slang-ref-object-generated -output-fields -mark-suffix _OBJ_CLASS
-"../../bin/windows-x86/debug/slang-cpp-extractor" -d %(RootDir)%(Directory) slang-ast-base.h slang-ast-decl.h slang-ast-expr.h slang-ast-modifier.h slang-ast-stmt.h slang-ast-type.h slang-ast-val.h -strip-prefix slang-ast -reflect-type ASTNode -o slang-ast-generated -output-fields -mark-suffix _AST_CLASS</Command>
- <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"../../bin/windows-x64/debug/slang-cpp-extractor" -d %(RootDir)%(Directory) slang-ast-support-types.h -strip-prefix slang- -reflect-type Value -o slang-value-generated -output-fields -mark-suffix _VALUE_CLASS
-"../../bin/windows-x64/debug/slang-cpp-extractor" -d %(RootDir)%(Directory) slang-ast-support-types.h -strip-prefix slang- -reflect-type RefObject -o slang-ref-object-generated -output-fields -mark-suffix _OBJ_CLASS
-"../../bin/windows-x64/debug/slang-cpp-extractor" -d %(RootDir)%(Directory) slang-ast-base.h slang-ast-decl.h slang-ast-expr.h slang-ast-modifier.h slang-ast-stmt.h slang-ast-type.h slang-ast-val.h -strip-prefix slang-ast -reflect-type ASTNode -o slang-ast-generated -output-fields -mark-suffix _AST_CLASS</Command>
- <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"../../bin/windows-x86/release/slang-cpp-extractor" -d %(RootDir)%(Directory) slang-ast-support-types.h -strip-prefix slang- -reflect-type Value -o slang-value-generated -output-fields -mark-suffix _VALUE_CLASS
-"../../bin/windows-x86/release/slang-cpp-extractor" -d %(RootDir)%(Directory) slang-ast-support-types.h -strip-prefix slang- -reflect-type RefObject -o slang-ref-object-generated -output-fields -mark-suffix _OBJ_CLASS
-"../../bin/windows-x86/release/slang-cpp-extractor" -d %(RootDir)%(Directory) slang-ast-base.h slang-ast-decl.h slang-ast-expr.h slang-ast-modifier.h slang-ast-stmt.h slang-ast-type.h slang-ast-val.h -strip-prefix slang-ast -reflect-type ASTNode -o slang-ast-generated -output-fields -mark-suffix _AST_CLASS</Command>
- <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"../../bin/windows-x64/release/slang-cpp-extractor" -d %(RootDir)%(Directory) slang-ast-support-types.h -strip-prefix slang- -reflect-type Value -o slang-value-generated -output-fields -mark-suffix _VALUE_CLASS
-"../../bin/windows-x64/release/slang-cpp-extractor" -d %(RootDir)%(Directory) slang-ast-support-types.h -strip-prefix slang- -reflect-type RefObject -o slang-ref-object-generated -output-fields -mark-suffix _OBJ_CLASS
-"../../bin/windows-x64/release/slang-cpp-extractor" -d %(RootDir)%(Directory) slang-ast-base.h slang-ast-decl.h slang-ast-expr.h slang-ast-modifier.h slang-ast-stmt.h slang-ast-type.h slang-ast-val.h -strip-prefix slang-ast -reflect-type ASTNode -o slang-ast-generated -output-fields -mark-suffix _AST_CLASS</Command>
- <Outputs>../slangslang-value-generated.h;../slangslang-value-generated-macro.h;../slangslang-ref-object-generated.h;../slangslang-ref-object-generated-macro.h;../slangslang-ast-generated.h;../slangslang-ast-generated-macro.h</Outputs>
- <Message>slang-cpp-extractor ref-object %(Identity)</Message>
- <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">slang-ast-support-types.h;../../bin/windows-x86/debug/slang-cpp-extractor.exe;slang-ast-base.h;slang-ast-decl.h;slang-ast-expr.h;slang-ast-modifier.h;slang-ast-stmt.h;slang-ast-type.h;slang-ast-val.h</AdditionalInputs>
- <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">slang-ast-support-types.h;../../bin/windows-x64/debug/slang-cpp-extractor.exe;slang-ast-base.h;slang-ast-decl.h;slang-ast-expr.h;slang-ast-modifier.h;slang-ast-stmt.h;slang-ast-type.h;slang-ast-val.h</AdditionalInputs>
- <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">slang-ast-support-types.h;../../bin/windows-x86/release/slang-cpp-extractor.exe;slang-ast-base.h;slang-ast-decl.h;slang-ast-expr.h;slang-ast-modifier.h;slang-ast-stmt.h;slang-ast-type.h;slang-ast-val.h</AdditionalInputs>
- <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">slang-ast-support-types.h;../../bin/windows-x64/release/slang-cpp-extractor.exe;slang-ast-base.h;slang-ast-decl.h;slang-ast-expr.h;slang-ast-modifier.h;slang-ast-stmt.h;slang-ast-type.h;slang-ast-val.h</AdditionalInputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"../../bin/windows-x86/debug/slang-cpp-extractor" -d %(RootDir)%(Directory) slang-ast-support-types.h slang-ast-base.h slang-ast-decl.h slang-ast-expr.h slang-ast-modifier.h slang-ast-stmt.h slang-ast-type.h slang-ast-val.h -strip-prefix slang- -o slang-generated -output-fields -mark-suffix _CLASS</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"../../bin/windows-x64/debug/slang-cpp-extractor" -d %(RootDir)%(Directory) slang-ast-support-types.h slang-ast-base.h slang-ast-decl.h slang-ast-expr.h slang-ast-modifier.h slang-ast-stmt.h slang-ast-type.h slang-ast-val.h -strip-prefix slang- -o slang-generated -output-fields -mark-suffix _CLASS</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"../../bin/windows-x86/release/slang-cpp-extractor" -d %(RootDir)%(Directory) slang-ast-support-types.h slang-ast-base.h slang-ast-decl.h slang-ast-expr.h slang-ast-modifier.h slang-ast-stmt.h slang-ast-type.h slang-ast-val.h -strip-prefix slang- -o slang-generated -output-fields -mark-suffix _CLASS</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"../../bin/windows-x64/release/slang-cpp-extractor" -d %(RootDir)%(Directory) slang-ast-support-types.h slang-ast-base.h slang-ast-decl.h slang-ast-expr.h slang-ast-modifier.h slang-ast-stmt.h slang-ast-type.h slang-ast-val.h -strip-prefix slang- -o slang-generated -output-fields -mark-suffix _CLASS</Command>
+ <Outputs>slang-generated-obj.h;slang-generated-obj-macro.h;slang-generated-ast.h;slang-generated-ast-macro.h;slang-generated-value.h;slang-generated-value-macro.h</Outputs>
+ <Message>C++ Extractor %(Identity)</Message>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../bin/windows-x86/debug/slang-cpp-extractor.exe;slang-ast-support-types.h;slang-ast-base.h;slang-ast-decl.h;slang-ast-expr.h;slang-ast-modifier.h;slang-ast-stmt.h;slang-ast-type.h;slang-ast-val.h</AdditionalInputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">../../bin/windows-x64/debug/slang-cpp-extractor.exe;slang-ast-support-types.h;slang-ast-base.h;slang-ast-decl.h;slang-ast-expr.h;slang-ast-modifier.h;slang-ast-stmt.h;slang-ast-type.h;slang-ast-val.h</AdditionalInputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../bin/windows-x86/release/slang-cpp-extractor.exe;slang-ast-support-types.h;slang-ast-base.h;slang-ast-decl.h;slang-ast-expr.h;slang-ast-modifier.h;slang-ast-stmt.h;slang-ast-type.h;slang-ast-val.h</AdditionalInputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">../../bin/windows-x64/release/slang-cpp-extractor.exe;slang-ast-support-types.h;slang-ast-base.h;slang-ast-decl.h;slang-ast-expr.h;slang-ast-modifier.h;slang-ast-stmt.h;slang-ast-type.h;slang-ast-val.h</AdditionalInputs>
</CustomBuild>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
diff --git a/source/slang/run-generators.vcxproj.filters b/source/slang/run-generators.vcxproj.filters
index 9ec19c0d7..e8ec8394a 100644
--- a/source/slang/run-generators.vcxproj.filters
+++ b/source/slang/run-generators.vcxproj.filters
@@ -15,9 +15,6 @@
<ClInclude Include="..\..\prelude\slang-cpp-types.h">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="slang-ref-object-reflect.h">
- <Filter>Header Files</Filter>
- </ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\core\slang-string.cpp">
diff --git a/source/slang/slang-ast-base.h b/source/slang/slang-ast-base.h
index 5cbfd1e45..931f0d5bd 100644
--- a/source/slang/slang-ast-base.h
+++ b/source/slang/slang-ast-base.h
@@ -4,7 +4,7 @@
#include "slang-ast-support-types.h"
-#include "slang-ast-generated.h"
+#include "slang-generated-ast.h"
#include "slang-ast-reflect.h"
#include "slang-serialize-reflection.h"
diff --git a/source/slang/slang-ast-decl.cpp b/source/slang/slang-ast-decl.cpp
index a10411ebb..edc79c030 100644
--- a/source/slang/slang-ast-decl.cpp
+++ b/source/slang/slang-ast-decl.cpp
@@ -2,7 +2,7 @@
#include "slang-ast-builder.h"
#include <assert.h>
-#include "slang-ast-generated-macro.h"
+#include "slang-generated-ast-macro.h"
namespace Slang {
diff --git a/source/slang/slang-ast-dump.cpp b/source/slang/slang-ast-dump.cpp
index 688e99031..552c97d7f 100644
--- a/source/slang/slang-ast-dump.cpp
+++ b/source/slang/slang-ast-dump.cpp
@@ -6,7 +6,7 @@
#include "../core/slang-string.h"
-#include "slang-ast-generated-macro.h"
+#include "slang-generated-ast-macro.h"
namespace Slang {
diff --git a/source/slang/slang-ast-reflect.cpp b/source/slang/slang-ast-reflect.cpp
index 520592e73..b16568d2e 100644
--- a/source/slang/slang-ast-reflect.cpp
+++ b/source/slang/slang-ast-reflect.cpp
@@ -11,7 +11,7 @@
#include "slang-visitor.h"
-#include "slang-ast-generated-macro.h"
+#include "slang-generated-ast-macro.h"
namespace Slang
{
@@ -54,11 +54,11 @@ struct ASTConstructAccess
#define SLANG_GET_SUPER_INNER(SUPER) &SUPER::kReflectClassInfo
#define SLANG_GET_SUPER_LEAF(SUPER) &SUPER::kReflectClassInfo
-#define SLANG_GET_CREATE_FUNC_ABSTRACT(NAME) nullptr
-#define SLANG_GET_CREATE_FUNC_NONE(NAME) &ASTConstructAccess::Impl<NAME>::create
+#define SLANG_GET_CREATE_FUNC_ABSTRACT_AST(NAME) nullptr
+#define SLANG_GET_CREATE_FUNC_AST(NAME) &ASTConstructAccess::Impl<NAME>::create
-#define SLANG_GET_DESTROY_FUNC_ABSTRACT(NAME) nullptr
-#define SLANG_GET_DESTROY_FUNC_NONE(NAME) &ASTConstructAccess::Impl<NAME>::destroy
+#define SLANG_GET_DESTROY_FUNC_ABSTRACT_AST(NAME) nullptr
+#define SLANG_GET_DESTROY_FUNC_AST(NAME) &ASTConstructAccess::Impl<NAME>::destroy
#define SLANG_REFLECT_CLASS_INFO(NAME, SUPER, ORIGIN, LAST, MARKER, TYPE, param) \
/* static */const ReflectClassInfo NAME::kReflectClassInfo = { uint32_t(ASTNodeType::NAME), uint32_t(ASTNodeType::LAST), SLANG_GET_SUPER_##TYPE(SUPER), #NAME, SLANG_GET_CREATE_FUNC_##MARKER(NAME), SLANG_GET_DESTROY_FUNC_##MARKER(NAME), uint32_t(sizeof(NAME)), uint8_t(SLANG_ALIGN_OF(NAME)) };
@@ -66,8 +66,8 @@ struct ASTConstructAccess
SLANG_ALL_ASTNode_NodeBase(SLANG_REFLECT_CLASS_INFO, _)
// We dispatch to non 'abstract' types
-#define SLANG_CASE_NONE(NAME) case ASTNodeType::NAME: return visitor->dispatch_##NAME(static_cast<NAME*>(this), extra);
-#define SLANG_CASE_ABSTRACT(NAME)
+#define SLANG_CASE_AST(NAME) case ASTNodeType::NAME: return visitor->dispatch_##NAME(static_cast<NAME*>(this), extra);
+#define SLANG_CASE_ABSTRACT_AST(NAME)
#define SLANG_CASE_DISPATCH(NAME, SUPER, ORIGIN, LAST, MARKER, TYPE, param) SLANG_CASE_##MARKER(NAME)
diff --git a/source/slang/slang-ast-reflect.h b/source/slang/slang-ast-reflect.h
index 6ba895f71..457e88d0d 100644
--- a/source/slang/slang-ast-reflect.h
+++ b/source/slang/slang-ast-reflect.h
@@ -5,7 +5,7 @@
#include "slang-serialize-reflection.h"
-#include "slang-ast-generated.h"
+#include "slang-generated-ast.h"
// Implementation for SLANG_ABSTRACT_CLASS(x) using reflection from C++ extractor in slang-ast-generated.h
#define SLANG_AST_CLASS_REFLECT_IMPL(NAME, SUPER, ORIGIN, LAST, MARKER, TYPE, param) \
diff --git a/source/slang/slang-ast-substitutions.cpp b/source/slang/slang-ast-substitutions.cpp
index 8a54a1d74..acff8201e 100644
--- a/source/slang/slang-ast-substitutions.cpp
+++ b/source/slang/slang-ast-substitutions.cpp
@@ -2,7 +2,7 @@
#include "slang-ast-builder.h"
#include <assert.h>
-#include "slang-ast-generated-macro.h"
+#include "slang-generated-ast-macro.h"
namespace Slang {
diff --git a/source/slang/slang-ast-support-types.h b/source/slang/slang-ast-support-types.h
index 4cc76804c..a2fa16b53 100644
--- a/source/slang/slang-ast-support-types.h
+++ b/source/slang/slang-ast-support-types.h
@@ -9,7 +9,7 @@
#include "../core/slang-semantic-version.h"
-#include "slang-ast-generated.h"
+#include "slang-generated-ast.h"
#include "slang-serialize-reflection.h"
@@ -1007,8 +1007,13 @@ namespace Slang
};
class SerialRefObject;
+
// Make sure C++ extractor can see the base class.
- SLANG_PRE_DECLARE(_OBJ_CLASS, class SerialRefObject)
+ SLANG_PRE_DECLARE(OBJ, class SerialRefObject)
+
+ SLANG_TYPE_SET(OBJ, RefObject)
+ SLANG_TYPE_SET(VALUE, Value)
+ SLANG_TYPE_SET(AST, ASTNode)
class LookupResultItem_Breadcrumb : public SerialRefObject
{
diff --git a/source/slang/slang-ast-type.cpp b/source/slang/slang-ast-type.cpp
index 55bb9a1e5..2c2557233 100644
--- a/source/slang/slang-ast-type.cpp
+++ b/source/slang/slang-ast-type.cpp
@@ -5,7 +5,7 @@
#include "slang-syntax.h"
-#include "slang-ast-generated-macro.h"
+#include "slang-generated-ast-macro.h"
namespace Slang {
diff --git a/source/slang/slang-ast-val.cpp b/source/slang/slang-ast-val.cpp
index 76ddb644c..7dbda6e86 100644
--- a/source/slang/slang-ast-val.cpp
+++ b/source/slang/slang-ast-val.cpp
@@ -3,7 +3,7 @@
#include <assert.h>
#include <typeinfo>
-#include "slang-ast-generated-macro.h"
+#include "slang-generated-ast-macro.h"
#include "slang-syntax.h"
diff --git a/source/slang/slang-diagnostics.cpp b/source/slang/slang-diagnostics.cpp
index d16e8e84e..c3b7e27a2 100644
--- a/source/slang/slang-diagnostics.cpp
+++ b/source/slang/slang-diagnostics.cpp
@@ -5,6 +5,8 @@
#include "../core/slang-memory-arena.h"
#include "../core/slang-dictionary.h"
+#include "../core/slang-string-util.h"
+#include "../core/slang-name-convention-util.h"
#include <assert.h>
@@ -302,60 +304,17 @@ public:
return singleton;
}
- typedef uint8_t CharFlags;
- struct CharFlag
- {
- enum Enum : CharFlags
- {
- Upper = 0x1,
- Lower = 0x2,
- };
- };
-
- static CharFlags _classifyChar(char c)
- {
- CharFlags flags = 0;
- flags |= (c >= 'a' && c <= 'z') ? CharFlag::Lower : 0;
- flags |= (c >= 'A' && c <= 'Z') ? CharFlag::Upper : 0;
- return flags;
- }
protected:
void _add(const char* name, Index index)
{
- m_map.Add(UnownedStringSlice(name), index);
+ UnownedStringSlice nameSlice(name);
+ m_map.Add(nameSlice, index);
- // Add a dashed version
+ // Add a dashed version (KababCase)
{
m_work.Clear();
- CharFlags prevFlags = 0;
- for (const char* cur = name; *cur; cur++)
- {
- char c = *cur;
- const CharFlags flags = _classifyChar(c);
-
- if (flags & CharFlag::Upper)
- {
- if (prevFlags & CharFlag::Lower)
- {
- // If we go from lower to upper, insert a dash. aA -> a-a
- m_work << '-';
- }
- else if (prevFlags & CharFlag::Upper)
- {
- // Could be an acronym, if the next character is lower, we need to insert a - here
- if (_classifyChar(cur[1]) & CharFlag::Lower)
- {
- m_work << '-';
- }
- }
- // Make it lower
- c = c - 'A' + 'a';
- }
- m_work << c;
-
- prevFlags = flags;
- }
+ NameConventionUtil::convert(NameConvention::Camel, nameSlice, CharCase::Lower, NameConvention::Kabab, m_work);
UnownedStringSlice dashSlice(m_arena.allocateString(m_work.getBuffer(), m_work.getLength()), m_work.getLength());
m_map.AddIfNotExists(dashSlice, index);
diff --git a/source/slang/slang-ref-object-reflect.cpp b/source/slang/slang-ref-object-reflect.cpp
index caf8eb6a3..f07dcbba7 100644
--- a/source/slang/slang-ref-object-reflect.cpp
+++ b/source/slang/slang-ref-object-reflect.cpp
@@ -2,8 +2,8 @@
#include "slang-ref-object-reflect.h"
-#include "slang-ref-object-generated.h"
-#include "slang-ref-object-generated-macro.h"
+#include "slang-generated-obj.h"
+#include "slang-generated-obj-macro.h"
#include "slang-ast-support-types.h"
diff --git a/source/slang/slang-ref-object-reflect.h b/source/slang/slang-ref-object-reflect.h
index cf50c010a..1fda8ee69 100644
--- a/source/slang/slang-ref-object-reflect.h
+++ b/source/slang/slang-ref-object-reflect.h
@@ -5,7 +5,7 @@
#include "slang-serialize-reflection.h"
-#include "slang-ref-object-generated.h"
+#include "slang-generated-obj.h"
#include "../core/slang-smart-pointer.h"
diff --git a/source/slang/slang-serialize-ast.cpp b/source/slang/slang-serialize-ast.cpp
index 8310c155b..0e8acc3b3 100644
--- a/source/slang/slang-serialize-ast.cpp
+++ b/source/slang/slang-serialize-ast.cpp
@@ -1,8 +1,8 @@
// slang-serialize-ast.cpp
#include "slang-serialize-ast.h"
-#include "slang-ast-generated.h"
-#include "slang-ast-generated-macro.h"
+#include "slang-generated-ast.h"
+#include "slang-generated-ast-macro.h"
#include "slang-ast-dump.h"
diff --git a/source/slang/slang-serialize-reflection.h b/source/slang/slang-serialize-reflection.h
index a6889f795..7eaf8543c 100644
--- a/source/slang/slang-serialize-reflection.h
+++ b/source/slang/slang-serialize-reflection.h
@@ -63,6 +63,8 @@ struct ReflectClassInfo
#define SLANG_PRE_DECLARE(SUFFIX, DEF)
+#define SLANG_TYPE_SET(SUFFIX, ...)
+
// Use these macros to help define Super, and making the base definition NOT have a Super definition.
// For example something like...
diff --git a/source/slang/slang-visitor.h b/source/slang/slang-visitor.h
index 449fda917..25e0aafe4 100644
--- a/source/slang/slang-visitor.h
+++ b/source/slang/slang-visitor.h
@@ -7,15 +7,15 @@
#include "slang-syntax.h"
-#include "slang-ast-generated-macro.h"
+#include "slang-generated-ast-macro.h"
namespace Slang {
// Macros to generate from ast-generated-macro file the vistors
// Only runs 'param' macro if the marker is NONE (ie not ABSTRACT here)
-#define SLANG_CLASS_ONLY_ABSTRACT(NAME, SUPER, ORIGIN, LAST, MARKER, TYPE, param)
-#define SLANG_CLASS_ONLY_NONE(NAME, SUPER, ORIGIN, LAST, MARKER, TYPE, param) param(NAME, SUPER, ORIGIN, LAST, MARKER, TYPE, param)
+#define SLANG_CLASS_ONLY_ABSTRACT_AST(NAME, SUPER, ORIGIN, LAST, MARKER, TYPE, param)
+#define SLANG_CLASS_ONLY_AST(NAME, SUPER, ORIGIN, LAST, MARKER, TYPE, param) param(NAME, SUPER, ORIGIN, LAST, MARKER, TYPE, param)
#define SLANG_CLASS_ONLY(NAME, SUPER, ORIGIN, LAST, MARKER, TYPE, param) SLANG_CLASS_ONLY_##MARKER(NAME, SUPER, ORIGIN, LAST, MARKER, TYPE, param)
diff --git a/source/slang/slang.vcxproj b/source/slang/slang.vcxproj
index ec3066778..bb4293b8f 100644
--- a/source/slang/slang.vcxproj
+++ b/source/slang/slang.vcxproj
@@ -195,8 +195,6 @@
<ClInclude Include="slang-ast-decl.h" />
<ClInclude Include="slang-ast-dump.h" />
<ClInclude Include="slang-ast-expr.h" />
- <ClInclude Include="slang-ast-generated-macro.h" />
- <ClInclude Include="slang-ast-generated.h" />
<ClInclude Include="slang-ast-modifier.h" />
<ClInclude Include="slang-ast-reflect.h" />
<ClInclude Include="slang-ast-stmt.h" />
@@ -217,6 +215,12 @@
<ClInclude Include="slang-emit-source-writer.h" />
<ClInclude Include="slang-emit.h" />
<ClInclude Include="slang-file-system.h" />
+ <ClInclude Include="slang-generated-ast-macro.h" />
+ <ClInclude Include="slang-generated-ast.h" />
+ <ClInclude Include="slang-generated-obj-macro.h" />
+ <ClInclude Include="slang-generated-obj.h" />
+ <ClInclude Include="slang-generated-value-macro.h" />
+ <ClInclude Include="slang-generated-value.h" />
<ClInclude Include="slang-glsl-extension-tracker.h" />
<ClInclude Include="slang-hlsl-intrinsic-set.h" />
<ClInclude Include="slang-image-format-defs.h" />
@@ -281,7 +285,13 @@
<ClInclude Include="slang-preprocessor.h" />
<ClInclude Include="slang-profile-defs.h" />
<ClInclude Include="slang-profile.h" />
+ <ClInclude Include="slang-ref-object-generated-ast-macro.h" />
+ <ClInclude Include="slang-ref-object-generated-ast.h" />
<ClInclude Include="slang-ref-object-generated-macro.h" />
+ <ClInclude Include="slang-ref-object-generated-obj-macro.h" />
+ <ClInclude Include="slang-ref-object-generated-obj.h" />
+ <ClInclude Include="slang-ref-object-generated-value-macro.h" />
+ <ClInclude Include="slang-ref-object-generated-value.h" />
<ClInclude Include="slang-ref-object-generated.h" />
<ClInclude Include="slang-ref-object-reflect.h" />
<ClInclude Include="slang-reflection.h" />
diff --git a/source/slang/slang.vcxproj.filters b/source/slang/slang.vcxproj.filters
index d69ff3059..aad88a15f 100644
--- a/source/slang/slang.vcxproj.filters
+++ b/source/slang/slang.vcxproj.filters
@@ -36,12 +36,6 @@
<ClInclude Include="slang-ast-expr.h">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="slang-ast-generated-macro.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="slang-ast-generated.h">
- <Filter>Header Files</Filter>
- </ClInclude>
<ClInclude Include="slang-ast-modifier.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -102,6 +96,24 @@
<ClInclude Include="slang-file-system.h">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="slang-generated-ast-macro.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="slang-generated-ast.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="slang-generated-obj-macro.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="slang-generated-obj.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="slang-generated-value-macro.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="slang-generated-value.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
<ClInclude Include="slang-glsl-extension-tracker.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -294,9 +306,27 @@
<ClInclude Include="slang-profile.h">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="slang-ref-object-generated-ast-macro.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="slang-ref-object-generated-ast.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
<ClInclude Include="slang-ref-object-generated-macro.h">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="slang-ref-object-generated-obj-macro.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="slang-ref-object-generated-obj.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="slang-ref-object-generated-value-macro.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="slang-ref-object-generated-value.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
<ClInclude Include="slang-ref-object-generated.h">
<Filter>Header Files</Filter>
</ClInclude>