diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2020-10-22 08:46:12 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-22 08:46:12 -0400 |
| commit | 10e1bae34733f1cdb5abc001666b1aafa1c1f406 (patch) | |
| tree | ad9571c071b7b7c2384cdd42426851d257fc5f7b /source/slang | |
| parent | c0943661e5441bfb996430c4f67fb4dddea9dfcf (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.vcxproj | 29 | ||||
| -rw-r--r-- | source/slang/run-generators.vcxproj.filters | 3 | ||||
| -rw-r--r-- | source/slang/slang-ast-base.h | 2 | ||||
| -rw-r--r-- | source/slang/slang-ast-decl.cpp | 2 | ||||
| -rw-r--r-- | source/slang/slang-ast-dump.cpp | 2 | ||||
| -rw-r--r-- | source/slang/slang-ast-reflect.cpp | 14 | ||||
| -rw-r--r-- | source/slang/slang-ast-reflect.h | 2 | ||||
| -rw-r--r-- | source/slang/slang-ast-substitutions.cpp | 2 | ||||
| -rw-r--r-- | source/slang/slang-ast-support-types.h | 9 | ||||
| -rw-r--r-- | source/slang/slang-ast-type.cpp | 2 | ||||
| -rw-r--r-- | source/slang/slang-ast-val.cpp | 2 | ||||
| -rw-r--r-- | source/slang/slang-diagnostics.cpp | 53 | ||||
| -rw-r--r-- | source/slang/slang-ref-object-reflect.cpp | 4 | ||||
| -rw-r--r-- | source/slang/slang-ref-object-reflect.h | 2 | ||||
| -rw-r--r-- | source/slang/slang-serialize-ast.cpp | 4 | ||||
| -rw-r--r-- | source/slang/slang-serialize-reflection.h | 2 | ||||
| -rw-r--r-- | source/slang/slang-visitor.h | 6 | ||||
| -rw-r--r-- | source/slang/slang.vcxproj | 14 | ||||
| -rw-r--r-- | source/slang/slang.vcxproj.filters | 42 |
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> |
