WIP, updates to vs solution, got natvis working again. serializations still bugged

This commit is contained in:
Edward R. Gonzalez 2023-07-15 20:56:27 -04:00
parent 947b4e3615
commit 0241979085
8 changed files with 293 additions and 466 deletions

View File

@ -108,31 +108,37 @@
<None Include="test\Readme.md" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="project\Banned.define.hpp" />
<ClInclude Include="project\Banned.undef.hpp" />
<ClInclude Include="project\Bloat.hpp" />
<ClInclude Include="project\gen.hpp" />
<ClInclude Include="project\gen.undef.macros.hpp" />
<ClInclude Include="test\DummyInclude.hpp" />
<ClInclude Include="test\gen\array.Upfront.gen.hpp" />
<ClInclude Include="test\gen\buffer.Upfront.gen.hpp" />
<ClInclude Include="test\gen\hashtable.Upfront.gen.hpp" />
<ClInclude Include="test\gen\ring.Upfront.gen.hpp" />
<ClInclude Include="test\gen\sanity.Upfront.gen.hpp" />
<ClInclude Include="test\Parsed\Buffer.Parsed.hpp" />
<ClInclude Include="test\Parsed\HashTable.Parsed.hpp" />
<ClInclude Include="test\Parsed\Ring.Parsed.hpp" />
<ClInclude Include="test\SOA.hpp" />
<ClInclude Include="test\Upfront\Array.Upfront.hpp" />
<ClInclude Include="test\Upfront\Buffer.Upfront.hpp" />
<ClInclude Include="test\Upfront\HashTable.Upfront.hpp" />
<ClInclude Include="test\Upfront\Memory.Upfront.hpp" />
<ClInclude Include="test\Upfront\Ring.Upfront.hpp" />
<ClInclude Include="test\Upfront\Sanity.Upfront.hpp" />
<ClInclude Include="test\Parsed\Array.Parsed.hpp" />
<ClInclude Include="test\Parsed\Sanity.Parsed.hpp" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="project\Bloat.cpp" />
<ClCompile Include="project\gen.cpp" />
<ClCompile Include="singleheader\gen\gen.singleheader.cpp" />
<ClCompile Include="test\gen\build\meson-private\sanitycheckc.c" />
<ClCompile Include="test\gen\build\meson-private\sanitycheckcpp.cc" />
<ClCompile Include="test\test.cpp" />
<ClCompile Include="test\test.Upfront.cpp" />
<ClCompile Include="test\test.Parsed.cpp" />
</ItemGroup>
<ItemGroup>
<Natvis Include=".vscode\gencpp.natvis" />
<Natvis Include="scripts\gencpp.natvis" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">

View File

@ -15,15 +15,9 @@
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="project\Bloat.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="project\gen.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="project\gen.singleheader.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="test\gen\build\meson-private\sanitycheckc.c">
<Filter>Source Files</Filter>
</ClCompile>
@ -33,24 +27,69 @@
<ClCompile Include="test\test.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="singleheader\gen\gen.singleheader.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="test\test.Upfront.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="project\Bloat.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="project\Bloat.redef.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="project\Bloat.undef.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="project\gen.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="thirdparty\zpl.h">
<ClInclude Include="project\gen.undef.macros.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="test\Upfront\Sanity.hpp">
<ClInclude Include="test\DummyInclude.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="test\gen\array.Upfront.gen.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="test\gen\buffer.Upfront.gen.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="test\gen\hashtable.Upfront.gen.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="test\gen\ring.Upfront.gen.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="test\gen\sanity.Upfront.gen.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="test\Parsed\Buffer.Parsed.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="test\Parsed\HashTable.Parsed.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="test\Parsed\Ring.Parsed.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="test\SOA.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="test\Upfront\Array.Upfront.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="test\Upfront\Buffer.Upfront.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="test\Upfront\HashTable.Upfront.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="test\Upfront\Ring.Upfront.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="test\Upfront\Sanity.Upfront.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="test\Parsed\Array.Parsed.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="test\Parsed\Sanity.Parsed.hpp">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
@ -61,13 +100,12 @@
<None Include="scripts\build.ps1" />
<None Include="scripts\clean.ps1" />
<None Include="scripts\get_sources.ps1" />
<None Include="scripts\meson.build" />
<None Include="singleheader\genc.refactor" />
<None Include="test\gen\meson.build" />
<None Include="test\meson.build" />
<None Include="test\Readme.md" />
</ItemGroup>
<ItemGroup>
<Natvis Include=".vscode\gencpp.natvis" />
<Natvis Include="scripts\gencpp.natvis" />
</ItemGroup>
</Project>

View File

@ -1854,6 +1854,7 @@ namespace gen
Code result = make_code();
// TODO : Bring back some of the old way, we need to recursively duplicate the children.
mem_copy( result.ast, this, sizeof( AST ) );
return result.ast;
@ -2219,10 +2220,12 @@ namespace gen
else
result.append_fmt( "%s", ValueType->to_string() );
if ( NumEntries )
for ( CodeParam param : cast<CodeParam>() )
if ( NumEntries - 1)
{
result.append( param.to_string() );
for ( CodeParam param : Next->cast<CodeParam>() )
{
result.append_fmt( ", %s", param.to_string() );
}
}
}
break;
@ -3732,6 +3735,8 @@ namespace gen
if ( value )
result->Value = value;
result->NumEntries++;
return (CodeParam) result;
}
@ -7839,3 +7844,4 @@ namespace gen
}
// End: gen_time
#endif

View File

@ -2760,7 +2760,8 @@ namespace gen
template< class Type >
Type cast()
{
return (Type)(Code){ this };
AST* ast = this;
return * rcast( Type*, & ast );
}
operator Code();
@ -3003,7 +3004,7 @@ namespace gen
Define_CodeType( Struct );
Define_CodeType( Template );
Define_CodeType( Type );
Define_CodeType( Typedef );
Define_CodeType(Typedef);
Define_CodeType( Union );
Define_CodeType( Using );
Define_CodeType( UsingNamespace );
@ -3053,22 +3054,24 @@ namespace gen
return { (AST*)ast };
}
#pragma region Iterator
CodeParam* begin()
CodeParam begin()
{
if ( ast )
return rcast( CodeParam*, ast );
return { ast };
return nullptr;
return { nullptr };
}
CodeParam* end()
CodeParam end()
{
return nullptr;
return { (AST_Param*) rcast( AST*, ast)->Next };
}
CodeParam& operator++()
{
if ( ast && raw()->Next )
ast = (AST_Param*) raw()->Next;
ast = (AST_Param*) rcast( AST*, ast )->Next;
return * this;
}
CodeParam operator*()
{
return * this;
}
#pragma endregion Iterator
@ -3212,25 +3215,6 @@ namespace gen
};
static_assert( sizeof(AST_Class) == sizeof(AST), "ERROR: AST_Class is not the same size as AST");
struct AST_Exec
{
union {
char _PAD_[ sizeof(SpecifierT) * AST::ArrSpecs_Cap ];
struct
{
char _PAD_PROPERTIES_[ sizeof(AST*) * 4 ];
CodeBody Body;
};
};
Code Prev;
Code Next;
Code Parent;
StringCached Name;
CodeT Type;
char _PAD_UNUSED_[ sizeof(ModuleFlag) + sizeof(u32) ];
};
static_assert( sizeof(AST_Exec) == sizeof(AST), "ERROR: AST_Exec is not the same size as AST");
struct AST_Enum
{
union {
@ -3254,6 +3238,25 @@ namespace gen
};
static_assert( sizeof(AST_Enum) == sizeof(AST), "ERROR: AST_Enum is not the same size as AST");
struct AST_Exec
{
union {
char _PAD_[ sizeof(SpecifierT) * AST::ArrSpecs_Cap ];
struct
{
char _PAD_PROPERTIES_[ sizeof(AST*) * 4 ];
Code Body;
};
};
Code Prev;
Code Next;
Code Parent;
StringCached Name;
CodeT Type;
char _PAD_UNUSED_[ sizeof(ModuleFlag) + sizeof(u32) ];
};
static_assert( sizeof(AST_Exec) == sizeof(AST), "ERROR: AST_Exec is not the same size as AST");
struct AST_Extern
{
union {
@ -3261,7 +3264,7 @@ namespace gen
struct
{
char _PAD_PROPERTIES_[ sizeof(AST*) * 4 ];
CodeBody Body;
Code Body;
};
};
Code Prev;
@ -3347,8 +3350,11 @@ namespace gen
{
union {
char _PAD_[ sizeof(SpecifierT) * AST::ArrSpecs_Cap ];
struct {
char _PAD_PROPERTIES_[ sizeof(AST*) * 4 ];
CodeBody Body;
};
};
Code Prev;
Code Next;
Code Parent;
@ -3388,8 +3394,9 @@ namespace gen
char _PAD_[ sizeof(SpecifierT) * AST::ArrSpecs_Cap ];
struct
{
char _PAD_PROPERTIES_[ sizeof(AST*) * 3 ];
char _PAD_PROPERTIES_[ sizeof(AST*) * 2 ];
CodeType ValueType;
char _PAD_PROPERTIES_2_[ sizeof(AST*) ];
CodeBody Body;
};
};
@ -3398,8 +3405,7 @@ namespace gen
Code Parent;
StringCached Name;
CodeT Type;
ModuleFlag ModuleFlags;
char _PAD_UNUSED_[ sizeof(u32) ];
char _PAD_UNUSED_[ sizeof(ModuleFlag) + sizeof(u32) ];
};
static_assert( sizeof(AST_OpCast) == sizeof(AST), "ERROR: AST_OpCast is not the same size as AST");
@ -3409,8 +3415,9 @@ namespace gen
char _PAD_[ sizeof(SpecifierT) * AST::ArrSpecs_Cap ];
struct
{
char _PAD_PROPERTIES_[ sizeof(AST*) * 3 ];
char _PAD_PROPERTIES_2_[ sizeof(AST*) * 2 ];
CodeType ValueType;
char _PAD_PROPERTIES_[ sizeof(AST*) ];
Code Value;
};
};
@ -3419,7 +3426,7 @@ namespace gen
Code Parent;
StringCached Name;
CodeT Type;
ModuleFlag ModuleFlags;
char _PAD_UNUSED_[ sizeof(ModuleFlag) ];
u32 NumEntries;
};
static_assert( sizeof(AST_Param) == sizeof(AST), "ERROR: AST_Param is not the same size as AST");
@ -3432,7 +3439,7 @@ namespace gen
Code Parent;
StringCached Name;
CodeT Type;
ModuleFlag ModuleFlags;
char _PAD_UNUSED_[ sizeof(ModuleFlag) ];
u32 NumEntries;
};
static_assert( sizeof(AST_Specifier) == sizeof(AST), "ERROR: AST_Specifier is not the same size as AST");
@ -3466,9 +3473,7 @@ namespace gen
char _PAD_[ sizeof(SpecifierT) * AST::ArrSpecs_Cap ];
struct
{
CodeAttributes Attributes;
CodeType ReturnType;
CodeSpecifier Specs;
char _PAD_PROPERTIES_[ sizeof(AST*) * 2 ];
CodeParam Params;
Code Declaration;
};
@ -4137,7 +4142,7 @@ namespace gen
}
Define_CodeImpl( Code );
Define_CodeImpl( CodeBody);
Define_CodeImpl( CodeBody );
Define_CodeImpl( CodeAttributes );
Define_CodeImpl( CodeComment );
Define_CodeImpl( CodeClass );
@ -4195,12 +4200,12 @@ namespace gen
Define_AST_Cast( Var );
#undef Define_AST_Cast
#pragma region Code Operator Cast Impl
#pragma region Code Operator Cast Impj
#define Define_CodeCast( type ) \
Code::operator Code ## type() const \
{ \
return * rcast( Code ## type*, ast ); \
return { (AST_ ## type*) ast }; \
}
Define_CodeCast( Attributes );
@ -4277,3 +4282,4 @@ namespace gen
// end: gen_time
#endif

View File

@ -53,309 +53,146 @@
</Type>
<Type Name="gen::AST">
<DisplayString>AST: {Name}</DisplayString>
<DisplayString Condition="this != nullptr">{Name} Type: {Type}</DisplayString>
<Expand>
<Item Name="Parent">Parent</Item>
<Item Name="Name">Name</Item>
<Item Name="Type">Type</Item>
<Item Name="ModuleFlags">ModuleFlags</Item>
<Expand HideRawView="true">
<Switch>
<Case Condition="Content != nullptr">
<Item Name="Content">Content</Item>
</Case>
<Case Condition="ArrSpecs != nullptr">
<ArrayItems Name="Specifiers" Condition="ArrSpecs != nullptr"
Size="{ArrSpecs_Cap}">
<ValuePointer>ArrSpecs</ValuePointer>
</ArrayItems>
</Case>
</Switch>
</Expand>
<Expand HideRawView="true">
<Switch>
<Case Condition="Prev != nullptr">
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
</Case>
<Case Condition="Front != nullptr">
<Item Name="Front">Front</Item>
<Item Name="Back">Back</Item>
</Case>
</Switch>
</Expand>
<Expand>
<Item Name="Attributes">Attributes</Item>
<Item Name="Specs">Specs</Item>
<Expand HideRawView="true">
<Switch>
<Case Condition="ParentType != nullptr">
<Item Name="ParentType">ParentType</Item>
</Case>
<Case Condition="ReturnType != nullptr">
<Item Name="ReturnType">ReturnType</Item>
</Case>
<Case Condition="UnderlyingType != nullptr">
<Item Name="UnderlyingType">UnderlyingType</Item>
</Case>
<Case Condition="ValueType != nullptr">
<Item Name="ValueType">ValueType</Item>
</Case>
</Switch>
</Expand>
<Item Name="Params">Params</Item>
<Expand HideRawView="true">
<Switch>
<Case Condition="ArrExpr != nullptr">
<Item Name="ArrExpr">ArrExpr</Item>
</Case>
<Case Condition="Body != nullptr">
<Item Name="Body">Body</Item>
</Case>
<Case Condition="Declaration != nullptr">
<Item Name="Declaration">Declaration</Item>
</Case>
<Case Condition="Value != nullptr">
<Item Name="Value">Value</Item>
</Case>
</Switch>
</Expand>
</Expand>
<Expand HideRawView="true">
<Switch>
<Case Condition="Op != nullptr">
<Item Name="Operator">Op</Item>
</Case>
<Case Condition="ParentAccess != nullptr">
<Item Name="ParentAccess">ParentAccess</Item>
</Case>
<Case Condition="NumEntries != nullptr">
<Item Name="NumEntries">NumEntries</Item>
</Case>
</Switch>
</Expand>
</Expand>
</Type>
<Type Name="gen::Code">
<DisplayString Condition="ast != nullptr">AST: {ast->Name} Type: {ast->Type}</DisplayString>
<Expand>
<Item Name="Parent">ast->Parent</Item>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
<Expand HideRawView="true">
<Switch>
<Case Condition="Content != nullptr">
<DisplayString Condition="ast == nullptr">Null</DisplayString>
<DisplayString Condition="ast != nullptr">{ast->Name} Type: {ast->Type}</DisplayString>
<Expand HideRawView="false">
<Item Name="Content">ast->Content</Item>
</Case>
<Case Condition="ArrSpecs != nullptr">
<ArrayItems Name="Specifiers" Condition="ArrSpecs != nullptr"
Size="{ArrSpecs_Cap}">
<ValuePointer>ast->ArrSpecs</ValuePointer>
</ArrayItems>
</Case>
</Switch>
</Expand>
<Expand HideRawView="true">
<Switch>
<Case Condition="Prev != nullptr">
<Item Name="Body">ast->Body</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="ModuleFlags" Condition="ast->ModuleFlags != ModuleFlag::Invalid">ast->ModuleFlags</Item>
<Item Name="ArrSpecs" Condition="ast->ArrSpecs[0] &lt; 18">ast->ArrSpecs</Item>
<Item Name="Prev">ast->Prev</Item>
<Item Name="Next">ast->Next</Item>
</Case>
<Case Condition="Front != nullptr">
<Item Name="Front">ast->Front</Item>
<Item Name="Back">ast->Back</Item>
</Case>
</Switch>
</Expand>
<Expand>
<Item Name="Attributes">ast->Attributes</Item>
<Item Name="Specs">ast->Specs</Item>
<Expand HideRawView="true">
<Switch>
<Case Condition="ParentType != nullptr">
<Item Name="ParentType">ast->ParentType</Item>
</Case>
<Case Condition="ReturnType != nullptr">
<Item Name="ReturnType">ast->ReturnType</Item>
</Case>
<Case Condition="UnderlyingType != nullptr">
<Item Name="UnderlyingType">ast->UnderlyingType</Item>
</Case>
<Case Condition="ValueType != nullptr">
<Item Name="ValueType">ast->ValueType</Item>
</Case>
</Switch>
</Expand>
<Item Name="Params">ast->Params</Item>
<Expand HideRawView="true">
<Switch>
<Case Condition="ArrExpr != nullptr">
<Item Name="ArrExpr">ast->ArrExpr</Item>
</Case>
<Case Condition="Body != nullptr">
<Item Name="Body">ast->Body</Item>
</Case>
<Case Condition="Declaration != nullptr">
<Item Name="Declaration">ast->Declaration</Item>
</Case>
<Case Condition="Value != nullptr">
<Item Name="Value">ast->Value</Item>
</Case>
</Switch>
</Expand>
</Expand>
<Expand HideRawView="true">
<Switch>
<Case Condition="Op != nullptr">
<Item Name="Operator">ast->Op</Item>
</Case>
<Case Condition="ParentAccess != nullptr">
<Item Name="ParentAccess">ast->ParentAccess</Item>
</Case>
<Case Condition="NumEntries != nullptr">
<Item Name="NumEntries">ast->NumEntries</Item>
</Case>
</Switch>
</Expand>
</Expand>
</Type>
<Type Name="gen::AST_Body">
<DisplayString>{Name} {Type}</DisplayString>
<DisplayString>{Name} Type: {Type}</DisplayString>
<Expand>
<Item Name="Name">Name</Item>
<Item Name="Type">Type</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Front">Front</Item>
<Item Name="Back">Back</Item>
<Item Name="NumEntries">NumEntries</Item>
</Expand>
</Type>
<Type Name="gen::AST_Attributes">
<DisplayString>{Name} {Type}</DisplayString>
<DisplayString>{Name} Type: {Type}</DisplayString>
<Expand>
<Item Name="Name">Name</Item>
<Item Name="Type">Type</Item>
<Item Name="Content">Content</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
<Item Name="Content">Content</Item>
</Expand>
</Type>
<Type Name="gen::AST_Comment">
<DisplayString>{Name} {Type}</DisplayString>
<DisplayString>{Name} Type: {Type}</DisplayString>
<Expand>
<Item Name="Name">Name</Item>
<Item Name="Type">Type</Item>
<Item Name="Content">Content</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
<Item Name="Content">Content</Item>
</Expand>
</Type>
<Type Name="gen::AST_Class">
<DisplayString Condition="Parent != nullptr">{Name} {Type}</DisplayString>
<DisplayString>{Name} Type: {Type}</DisplayString>
<Expand>
<Item Name="Name">Name</Item>
<Item Name="Type">Type</Item>
<Item Name="ModuleFlags">ModuleFlags</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Attributes">Attributes</Item>
<Item Name="ParentType">ParentType</Item>
<Item Name="Body">Body</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
<Item Name="ParentAccess">ParentAccess</Item>
</Expand>
</Type>
<Type Name="gen::AST_Exec">
<DisplayString Condition="Parent != nullptr">{Name} {Type}</DisplayString>
<Expand>
<Item Name="Name">Name</Item>
<Item Name="Type">Type</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Body">Body</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
</Expand>
</Type>
<Type Name="gen::AST_Enum">
<DisplayString Condition="Parent != nullptr">{Name} {Type}</DisplayString>
<DisplayString>{Name} Type: {Type}</DisplayString>
<Expand>
<Item Name="Name">Name</Item>
<Item Name="Type">Type</Item>
<Item Name="ModuleFlags">ModuleFlags</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Attributes">Attributes</Item>
<Item Name="UnderlyingType">UnderlyingType</Item>
<Item Name="Body">Body</Item>
<Item Name="ModuleFlags">ModuleFlags</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
</Expand>
</Type>
<Type Name="gen::AST_Exec">
<DisplayString>{Name} Type: {Type}</DisplayString>
<Expand>
<Item Name="Body">Body</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
</Expand>
</Type>
<Type Name="gen::AST_Extern">
<DisplayString>{Name} {Type}</DisplayString>
<DisplayString>{Name} Type: {Type}</DisplayString>
<Expand>
<Item Name="Name">Name</Item>
<Item Name="Type">Type</Item>
<Item Name="Body">Body</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
<Item Name="Body">Body</Item>
</Expand>
</Type>
<Type Name="gen::AST_Include">
<DisplayString>{Name} {Type}</DisplayString>
<DisplayString>{Name} Type: {Type}</DisplayString>
<Expand>
<Item Name="Name">Name</Item>
<Item Name="Type">Type</Item>
<Item Name="Content">Content</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
<Item Name="Content">Content</Item>
</Expand>
</Type>
<Type Name="gen::AST_Friend">
<DisplayString>{Name} {Type}</DisplayString>
<DisplayString>{Name} Type: {Type}</DisplayString>
<Expand>
<Item Name="Name">Name</Item>
<Item Name="Type">Type</Item>
<Item Name="Declaration">Declaration</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
<Item Name="Declaration">Declaration</Item>
</Expand>
</Type>
<Type Name="gen::AST_Fn">
<DisplayString>{Name} {Type}</DisplayString>
<DisplayString>{Name} Type: {Type}</DisplayString>
<Expand>
<Item Name="Name">Name</Item>
<Item Name="Type">Type</Item>
<Item Name="ModuleFlags">ModuleFlags</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
<Item Name="Attributes">Attributes</Item>
<Item Name="Specs">Specs</Item>
<Item Name="ReturnType">ReturnType</Item>
<Item Name="Params">Params</Item>
<Item Name="Body">Body</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
</Expand>
</Type>
<Type Name="gen::AST_Module">
<DisplayString>{Name} {Type}</DisplayString>
<DisplayString>{Name} Type: {Type}</DisplayString>
<Expand>
<Item Name="Name">Name</Item>
<Item Name="Type">Type</Item>
<Item Name="ModuleFlags">ModuleFlags</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
@ -364,10 +201,8 @@
</Type>
<Type Name="gen::AST_Namespace">
<DisplayString>{Name} {Type}</DisplayString>
<DisplayString>{Name} Type: {Type}</DisplayString>
<Expand>
<Item Name="Name">Name</Item>
<Item Name="Type">Type</Item>
<Item Name="ModuleFlags">ModuleFlags</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
@ -377,154 +212,131 @@
</Type>
<Type Name="gen::AST_Operator">
<DisplayString>{Name} {Type}</DisplayString>
<DisplayString>{Name} Type: {Type}</DisplayString>
<Expand>
<Item Name="Name">Name</Item>
<Item Name="Type">Type</Item>
<Item Name="ModuleFlags">ModuleFlags</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
<Item Name="Attributes">Attributes</Item>
<Item Name="Specs">Specs</Item>
<Item Name="ReturnType">ReturnType</Item>
<Item Name="Op">Op</Item>
<Item Name="Params">Params</Item>
<Item Name="Body">Body</Item>
<Item Name="Op">Op</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
</Expand>
</Type>
<Type Name="gen::AST_OpCast">
<DisplayString>{Name} {Type}</DisplayString>
<DisplayString>{Name} Type: {Type}</DisplayString>
<Expand>
<Item Name="Name">Name</Item>
<Item Name="Type">Type</Item>
<Item Name="ModuleFlags">ModuleFlags</Item>
<Item Name="ValueType">ValueType</Item>
<Item Name="Body">Body</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
<Item Name="ValueType">ValueType</Item>
<Item Name="Body">Body</Item>
</Expand>
</Type>
<Type Name="gen::AST_Param">
<DisplayString>{Name} {Type}</DisplayString>
<DisplayString>{Name} Type: {Type}</DisplayString>
<Expand>
<Item Name="Name">Name</Item>
<Item Name="ModuleFlags">ModuleFlags</Item>
<Item Name="ValueType">ValueType</Item>
<Item Name="Value">Value</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
<Item Name="ValueType">ValueType</Item>
<Item Name="Value">Value</Item>
<Item Name="NumEntries">NumEntries</Item>
</Expand>
</Type>
<Type Name="gen::AST_Specifiers">
<DisplayString>{Name} {Type}</DisplayString>
<DisplayString>{Name} Type: {Type}</DisplayString>
<Expand>
<Item Name="Name">Name</Item>
<Item Name="ModuleFlags">ModuleFlags</Item>
<Item Name="NumEntries">NumEntries</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
<ArrayItems Name="ArrSpecs" Count="AST::ArrSpecs_Cap">
<ValuePointer>ArrSpecs</ValuePointer>
</ArrayItems>
<Item Name="NumEntries">NumEntries</Item>
</Expand>
</Type>
<Type Name="gen::AST_Struct">
<DisplayString>{Name} {Type}</DisplayString>
<DisplayString>{Name} Type: {Type}</DisplayString>
<Expand>
<Item Name="Name">Name</Item>
<Item Name="ModuleFlags">ModuleFlags</Item>
<Item Name="Attributes">Attributes</Item>
<Item Name="ParentType">ParentType</Item>
<Item Name="ParentAccess">ParentAccess</Item>
<Item Name="Body">Body</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
<Item Name="Attributes">Attributes</Item>
<Item Name="ParentType">ParentType</Item>
<Item Name="Body">Body</Item>
<Item Name="ParentAccess">ParentAccess</Item>
</Expand>
</Type>
<Type Name="gen::AST_Template">
<DisplayString>{Name} {Type}</DisplayString>
<DisplayString>{Name} Type: {Type}</DisplayString>
<Expand>
<Item Name="Name">Name</Item>
<Item Name="ModuleFlags">ModuleFlags</Item>
<Item Name="Declaration">Declaration</Item>
<Item Name="Params">Params</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
<Item Name="Attributes">Attributes</Item>
<Item Name="ReturnType">ReturnType</Item>
<Item Name="Specs">Specs</Item>
<Item Name="Params">Params</Item>
<Item Name="Declaration">Declaration</Item>
</Expand>
</Type>
<Type Name="gen::AST_Type">
<DisplayString>{Name} {Type}</DisplayString>
<DisplayString>{Name} Type: {Type}</DisplayString>
<Expand>
<Item Name="Name">Name</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
<Item Name="Attributes">Attributes</Item>
<Item Name="Specs">Specs</Item>
<Item Name="ArrExpr">ArrExpr</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
</Expand>
</Type>
<Type Name="gen::AST_Typedef">
<DisplayString>{Name} {Type}</DisplayString>
<DisplayString>{Name} Type: {Type}</DisplayString>
<Expand>
<Item Name="Name">Name</Item>
<Item Name="ModuleFlags">ModuleFlags</Item>
<Item Name="Attributes">Attributes</Item>
<Item Name="UnderlyingType">UnderlyingType</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
<Item Name="Attributes">Attributes</Item>
<Item Name="UnderlyingType">UnderlyingType</Item>
</Expand>
</Type>
<Type Name="gen::AST_Union">
<DisplayString>{Name} {Type}</DisplayString>
<DisplayString>{Name} Type: {Type}</DisplayString>
<Expand>
<Item Name="Name">Name</Item>
<Item Name="ModuleFlags">ModuleFlags</Item>
<Item Name="Attributes">Attributes</Item>
<Item Name="Body">Body</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
<Item Name="Attributes">Attributes</Item>
<Item Name="Body">Body</Item>
</Expand>
</Type>
<Type Name="gen::AST_Using">
<DisplayString>{Name} {Type}</DisplayString>
<DisplayString>{Name} Type: {Type}</DisplayString>
<Expand>
<Item Name="Name">Name</Item>
<Item Name="ModuleFlags">ModuleFlags</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
<Item Name="Attributes">Attributes</Item>
<Item Name="UnderlyingType">UnderlyingType</Item>
<Item Name="Op">Op</Item>
<Item Name="Parent">Parent</Item>
<Item Name="ParentAccess">ParentAccess</Item>
<Item Name="NumEntries">NumEntries</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
</Expand>
</Type>
<Type Name="gen::AST_UsingNamespace">
<DisplayString>{Name} {Type}</DisplayString>
<DisplayString>{Name} Type: {Type}</DisplayString>
<Expand>
<Item Name="Name">Name</Item>
<Item Name="Parent">Parent</Item>
@ -534,76 +346,69 @@
</Type>
<Type Name="gen::AST_Var">
<DisplayString>{Name} {Type}</DisplayString>
<DisplayString>{Name} Type: {Type}</DisplayString>
<Expand>
<Item Name="Name">Name</Item>
<Item Name="ModuleFlags">ModuleFlags</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
<Item Name="Attributes">Attributes</Item>
<Item Name="Specs">Specs</Item>
<Item Name="ValueType">ValueType</Item>
<Item Name="Value">Value</Item>
<Item Name="Op">Op</Item>
<Item Name="ParentAccess">ParentAccess</Item>
<Item Name="NumEntries">NumEntries</Item>
<Item Name="Parent">Parent</Item>
<Item Name="Prev">Prev</Item>
<Item Name="Next">Next</Item>
</Expand>
</Type>
<Type Name="CodeBody">
<Type Name="gen::CodeBody">
<DisplayString Condition="ast == nullptr">Null</DisplayString>
<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString>
<Expand>
<Item Name="Attributes">ast->Attributes</Item>
<Item Name="Specs">ast->Specs</Item>
<Item Name="Front">ast->Front</Item>
<Item Name="Back">ast->Back</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Prev">ast->Front</Item>
<Item Name="Next">ast->Back</Item>
<Item Name="NumEntries">ast->NumEntries</Item>
</Expand>
</Type>
<Type Name="CodeAttributes">
<Type Name="gen::CodeAttributes">
<DisplayString Condition="ast == nullptr">Null</DisplayString>
<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString>
<Expand>
<Item Name="Attributes">ast->Attributes</Item>
<Item Name="Specs">ast->Specs</Item>
<Item Name="Content">ast->Content</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Prev">ast->Prev</Item>
<Item Name="Next">ast->Next</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Name">ast->Name</Item>
<Item Name="Type">ast->Type</Item>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
</Expand>
</Type>
<Type Name="gen::CodeComment">
<DisplayString Condition="ast == nullptr">Null</DisplayString>
<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString>
<Expand>
<Item Name="Content">ast->Content</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Prev">ast->Prev</Item>
<Item Name="Next">ast->Next</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Name">ast->Name</Item>
<Item Name="Type">ast->Type</Item>
</Expand>
</Type>
<Type Name="gen::CodeClass">
<DisplayString Condition="ast == nullptr">Null</DisplayString>
<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString>
<Expand>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
<Item Name="Attributes">ast->Attributes</Item>
<Item Name="ParentType">ast->ParentType</Item>
<Item Name="ParentAccess">ast->ParentAccess</Item>
<Item Name="Body">ast->Body</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Prev">ast->Prev</Item>
<Item Name="Next">ast->Next</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Name">ast->Name</Item>
<Item Name="Type">ast->Type</Item>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
<Item Name="ParentAccess">ast->ParentAccess</Item>
</Expand>
</Type>
<Type Name="gen::CodeExec">
<DisplayString Condition="ast == nullptr">Null</DisplayString>
<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString>
<Expand>
<Item Name="Body">ast->Body</Item>
@ -616,258 +421,214 @@
</Type>
<Type Name="gen::CodeEnum">
<DisplayString Condition="ast == nullptr">Null</DisplayString>
<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString>
<Expand>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
<Item Name="Attributes">ast->Attributes</Item>
<Item Name="UnderlyingType">ast->UnderlyingType</Item>
<Item Name="Body">ast->Body</Item>
<Item Name="Prev">ast->Prev</Item>
<Item Name="Next">ast->Next</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Name">ast->Name</Item>
<Item Name="Type">ast->Type</Item>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
</Expand>
</Type>
<Type Name="gen::CodeInclude">
<DisplayString Condition="ast == nullptr">Null</DisplayString>
<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString>
<Expand>
<Item Name="Content">ast->Content</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Prev">ast->Prev</Item>
<Item Name="Next">ast->Next</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Name">ast->Name</Item>
<Item Name="Type">ast->Type</Item>
</Expand>
</Type>
<Type Name="gen::CodeFriend">
<DisplayString Condition="ast == nullptr">Null</DisplayString>
<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString>
<Expand>
<Item Name="Declaration">ast->Declaration</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Prev">ast->Prev</Item>
<Item Name="Next">ast->Next</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Name">ast->Name</Item>
<Item Name="Type">ast->Type</Item>
</Expand>
</Type>
<Type Name="gen::CodeFn">
<DisplayString Condition="ast == nullptr">Null</DisplayString>
<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString>
<Expand>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
<Item Name="Attributes">ast->Attributes</Item>
<Item Name="Specs">ast->Specs</Item>
<Item Name="ReturnType">ast->ReturnType</Item>
<Item Name="Params">ast->Params</Item>
<Item Name="Body">ast->Body</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Prev">ast->Prev</Item>
<Item Name="Next">ast->Next</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Name">ast->Name</Item>
<Item Name="Type">ast->Type</Item>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
</Expand>
</Type>
<Type Name="gen::CodeModule">
<DisplayString Condition="ast == nullptr">Null</DisplayString>
<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString>
<Expand>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Prev">ast->Prev</Item>
<Item Name="Next">ast->Next</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Name">ast->Name</Item>
<Item Name="Type">ast->Type</Item>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
</Expand>
</Type>
<Type Name="gen::CodeNamespace">
<DisplayString Condition="ast == nullptr">Null</DisplayString>
<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString>
<Expand>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
<Item Name="Body">ast->Body</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Prev">ast->Prev</Item>
<Item Name="Next">ast->Next</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Name">ast->Name</Item>
<Item Name="Type">ast->Type</Item>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
</Expand>
</Type>
<Type Name="gen::CodeOperator">
<DisplayString Condition="ast == nullptr">Null</DisplayString>
<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString>
<Expand>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
<Item Name="Attributes">ast->Attributes</Item>
<Item Name="Specs">ast->Specs</Item>
<Item Name="ReturnType">ast->ReturnType</Item>
<Item Name="Op">ast->Op</Item>
<Item Name="Params">ast->Params</Item>
<Item Name="Body">ast->Body</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Prev">ast->Prev</Item>
<Item Name="Next">ast->Next</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Name">ast->Name</Item>
<Item Name="Type">ast->Type</Item>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
<Item Name="Op">ast->Op</Item>
</Expand>
</Type>
<Type Name="gen::CodeOpCast">
<DisplayString Condition="ast == nullptr">Null</DisplayString>
<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString>
<Expand>
<Item Name="ValueType">ast->ValueType</Item>
<Item Name="Body">ast->Body</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Prev">ast->Prev</Item>
<Item Name="Next">ast->Next</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Name">ast->Name</Item>
<Item Name="Type">ast->Type</Item>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
</Expand>
</Type>
<Type Name="gen::CodeParam">
<DisplayString Condition="ast == nullptr">Null</DisplayString>
<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString>
<Expand>
<Item Name="ValueType">ast->ValueType</Item>
<Item Name="Value">ast->Value</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Prev">ast->Prev</Item>
<Item Name="Next">ast->Next</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Name">ast->Name</Item>
<Item Name="Type">ast->Type</Item>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
<Item Name="NumEntries">ast->NumEntries</Item>
</Expand>
</Type>
<Type Name="gen::CodeSpecifier">
<DisplayString Condition="ast == nullptr">Null</DisplayString>
<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString>
<Expand>
<ArrayItems Name="ArrSpecs" Condition="ast != nullptr" Size="ast->NumEntries">
<ValuePointer>ast->ArrSpecs</ValuePointer>
</ArrayItems>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Prev">ast->Prev</Item>
<Item Name="Next">ast->Next</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Name">ast->Name</Item>
<Item Name="Type">ast->Type</Item>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
<Item Name="NumEntries">ast->NumEntries</Item>
</Expand>
</Type>
<Type Name="gen::CodeStruct">
<DisplayString Condition="ast == nullptr">Null</DisplayString>
<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString>
<Expand>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
<Item Name="Attributes">ast->Attributes</Item>
<Item Name="ParentType">ast->ParentType</Item>
<Item Name="Body">ast->Body</Item>
<Item Name="Prev">ast->Prev</Item>
<Item Name="Next">ast->Next</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Name">ast->Name</Item>
<Item Name="Type">ast->Type</Item>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
<Item Name="ParentAccess">ast->ParentAccess</Item>
</Expand>
</Type>
<Type Name="gen::CodeVar">
<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString>
<Expand>
<Item Name="Attributes">ast->Attributes</Item>
<Item Name="Specs">ast->Specs</Item>
<Item Name="ValueType">ast->ValueType</Item>
<Item Name="Value">ast->Value</Item>
<Item Name="Body">ast->Body</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Prev">ast->Prev</Item>
<Item Name="Next">ast->Next</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Name">ast->Name</Item>
<Item Name="Type">ast->Type</Item>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
</Expand>
</Type>
<Type Name="gen::CodeTemplate">
<DisplayString Condition="ast == nullptr">Null</DisplayString>
<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString>
<Expand>
<Item Name="Attributes">ast->Attributes</Item>
<Item Name="ReturnType">ast->ReturnType</Item>
<Item Name="Specs">ast->Specs</Item>
<Item Name="Params">ast->Params</Item>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
<Item Name="Declaration">ast->Declaration</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Prev">ast->Prev</Item>
<Item Name="Next">ast->Next</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Name">ast->Name</Item>
<Item Name="Type">ast->Type</Item>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
</Expand>
</Type>
<Type Name="gen::CodeType">
<DisplayString Condition="ast == nullptr">Null</DisplayString>
<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString>
<Expand>
<Item Name="Attributes">ast->Attributes</Item>
<Item Name="Specs">ast->Specs</Item>
<Item Name="ArrExpr">ast->ArrExpr</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Prev">ast->Prev</Item>
<Item Name="Next">ast->Next</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Name">ast->Name</Item>
<Item Name="Type">ast->Type</Item>
</Expand>
</Type>
<Type Name="gen::CodeTypedef">
<DisplayString Condition="ast == nullptr">Null</DisplayString>
<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString>
<Expand>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
<Item Name="Attributes">ast->Attributes</Item>
<Item Name="UnderlyingType">ast->UnderlyingType</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Prev">ast->Prev</Item>
<Item Name="Next">ast->Next</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Name">ast->Name</Item>
<Item Name="Type">ast->Type</Item>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
</Expand>
</Type>
<Type Name="gen::CodeUnion">
<DisplayString Condition="ast == nullptr">Null</DisplayString>
<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString>
<Expand>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
<Item Name="Attributes">ast->Attributes</Item>
<Item Name="Body">ast->Body</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Prev">ast->Prev</Item>
<Item Name="Next">ast->Next</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Name">ast->Name</Item>
<Item Name="Type">ast->Type</Item>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
</Expand>
</Type>
<Type Name="gen::CodeUsing">
<DisplayString Condition="ast == nullptr">Null</DisplayString>
<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString>
<Expand>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
<Item Name="Attributes">ast->Attributes</Item>
<Item Name="UnderlyingType">ast->UnderlyingType</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Prev">ast->Prev</Item>
<Item Name="Next">ast->Next</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Name">ast->Name</Item>
<Item Name="Type">ast->Type</Item>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
<Item Name="Operator">ast->Op</Item>
<Item Name="Access">ast->ParentAccess</Item>
<Item Name="Entries">ast->NumEntries</Item>
</Expand>
</Type>
<Type Name="gen::CodeUsingNamespace">
<DisplayString Condition="ast == nullptr">Null</DisplayString>
<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString>
<Expand>
<Item Name="Prev">ast->Prev</Item>
@ -879,18 +640,17 @@
</Type>
<Type Name="gen::CodeVar">
<DisplayString Condition="ast == nullptr">Null</DisplayString>
<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString>
<Expand>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
<Item Name="Attributes">ast->Attributes</Item>
<Item Name="Specs">ast->Specs</Item>
<Item Name="ValueType">ast->ValueType</Item>
<Item Name="Value">ast->Value</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Prev">ast->Prev</Item>
<Item Name="Next">ast->Next</Item>
<Item Name="Parent">ast->Parent</Item>
<Item Name="Name">ast->Name</Item>
<Item Name="Type">ast->Type</Item>
<Item Name="ModuleFlags">ast->ModuleFlags</Item>
</Expand>
</Type>

View File

@ -139,7 +139,7 @@ u32 gen_sanity_upfront()
// Namespace
{
Code namespace_def;
CodeNamespace namespace_def;
{
Code body = def_namespace_body( 1
, def_comment( txt_StrC("Empty namespace body") )

View File

@ -3,5 +3,16 @@
Building Test
ninja: Entering directory `C:\projects\gencpp\test\gen\build'
[1/2] Compiling C++ object gencpp.exe.p/.._test.cpp.obj
[1/2] Compiling C++ object gencpp.exe.p/.._test.Upfront.cpp.obj
[2/2] Linking target gencpp.exe
Generating files Parsed...
Beginning format...
Formatting [1/5] C:\projects\gencpp\test\gen\array.Upfront.gen.hpp
Formatting [2/5] C:\projects\gencpp\test\gen\buffer.Upfront.gen.hpp
Formatting [3/5] C:\projects\gencpp\test\gen\hashtable.Upfront.gen.hpp
Formatting [4/5] C:\projects\gencpp\test\gen\ring.Upfront.gen.hpp
Formatting [5/5] C:\projects\gencpp\test\gen\sanity.Upfront.gen.hpp
Formatting complete