mirror of
				https://github.com/Ed94/gencpp.git
				synced 2025-10-29 05:50:53 -07:00 
			
		
		
		
	WIP, updates to vs solution, got natvis working again. serializations still bugged
This commit is contained in:
		| @@ -108,31 +108,37 @@ | |||||||
|     <None Include="test\Readme.md" /> |     <None Include="test\Readme.md" /> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <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.hpp" /> | ||||||
|  |     <ClInclude Include="project\gen.undef.macros.hpp" /> | ||||||
|     <ClInclude Include="test\DummyInclude.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\Array.Upfront.hpp" /> | ||||||
|     <ClInclude Include="test\Upfront\Buffer.Upfront.hpp" /> |     <ClInclude Include="test\Upfront\Buffer.Upfront.hpp" /> | ||||||
|     <ClInclude Include="test\Upfront\HashTable.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\Ring.Upfront.hpp" /> | ||||||
|     <ClInclude Include="test\Upfront\Sanity.Upfront.hpp" /> |     <ClInclude Include="test\Upfront\Sanity.Upfront.hpp" /> | ||||||
|     <ClInclude Include="test\Parsed\Array.Parsed.hpp" /> |     <ClInclude Include="test\Parsed\Array.Parsed.hpp" /> | ||||||
|     <ClInclude Include="test\Parsed\Sanity.Parsed.hpp" /> |     <ClInclude Include="test\Parsed\Sanity.Parsed.hpp" /> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <ClCompile Include="project\Bloat.cpp" /> |  | ||||||
|     <ClCompile Include="project\gen.cpp" /> |     <ClCompile Include="project\gen.cpp" /> | ||||||
|     <ClCompile Include="singleheader\gen\gen.singleheader.cpp" /> |     <ClCompile Include="singleheader\gen\gen.singleheader.cpp" /> | ||||||
|     <ClCompile Include="test\gen\build\meson-private\sanitycheckc.c" /> |     <ClCompile Include="test\gen\build\meson-private\sanitycheckc.c" /> | ||||||
|     <ClCompile Include="test\gen\build\meson-private\sanitycheckcpp.cc" /> |     <ClCompile Include="test\gen\build\meson-private\sanitycheckcpp.cc" /> | ||||||
|  |     <ClCompile Include="test\test.cpp" /> | ||||||
|     <ClCompile Include="test\test.Upfront.cpp" /> |     <ClCompile Include="test\test.Upfront.cpp" /> | ||||||
|     <ClCompile Include="test\test.Parsed.cpp" /> |  | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <Natvis Include=".vscode\gencpp.natvis" /> |     <Natvis Include=".vscode\gencpp.natvis" /> | ||||||
|  |     <Natvis Include="scripts\gencpp.natvis" /> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> | ||||||
|   <ImportGroup Label="ExtensionTargets"> |   <ImportGroup Label="ExtensionTargets"> | ||||||
|   | |||||||
| @@ -15,15 +15,9 @@ | |||||||
|     </Filter> |     </Filter> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <ClCompile Include="project\Bloat.cpp"> |  | ||||||
|       <Filter>Source Files</Filter> |  | ||||||
|     </ClCompile> |  | ||||||
|     <ClCompile Include="project\gen.cpp"> |     <ClCompile Include="project\gen.cpp"> | ||||||
|       <Filter>Source Files</Filter> |       <Filter>Source Files</Filter> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
|     <ClCompile Include="project\gen.singleheader.cpp"> |  | ||||||
|       <Filter>Source Files</Filter> |  | ||||||
|     </ClCompile> |  | ||||||
|     <ClCompile Include="test\gen\build\meson-private\sanitycheckc.c"> |     <ClCompile Include="test\gen\build\meson-private\sanitycheckc.c"> | ||||||
|       <Filter>Source Files</Filter> |       <Filter>Source Files</Filter> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
| @@ -33,24 +27,69 @@ | |||||||
|     <ClCompile Include="test\test.cpp"> |     <ClCompile Include="test\test.cpp"> | ||||||
|       <Filter>Source Files</Filter> |       <Filter>Source Files</Filter> | ||||||
|     </ClCompile> |     </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> | ||||||
|   <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"> |     <ClInclude Include="project\gen.hpp"> | ||||||
|       <Filter>Header Files</Filter> |       <Filter>Header Files</Filter> | ||||||
|     </ClInclude> |     </ClInclude> | ||||||
|     <ClInclude Include="thirdparty\zpl.h"> |     <ClInclude Include="project\gen.undef.macros.hpp"> | ||||||
|       <Filter>Header Files</Filter> |       <Filter>Header Files</Filter> | ||||||
|     </ClInclude> |     </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> |       <Filter>Header Files</Filter> | ||||||
|     </ClInclude> |     </ClInclude> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
| @@ -61,13 +100,12 @@ | |||||||
|     <None Include="scripts\build.ps1" /> |     <None Include="scripts\build.ps1" /> | ||||||
|     <None Include="scripts\clean.ps1" /> |     <None Include="scripts\clean.ps1" /> | ||||||
|     <None Include="scripts\get_sources.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\gen\meson.build" /> | ||||||
|     <None Include="test\meson.build" /> |     <None Include="test\meson.build" /> | ||||||
|     <None Include="test\Readme.md" /> |     <None Include="test\Readme.md" /> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <Natvis Include=".vscode\gencpp.natvis" /> |     <Natvis Include=".vscode\gencpp.natvis" /> | ||||||
|  |     <Natvis Include="scripts\gencpp.natvis" /> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
| </Project> | </Project> | ||||||
| @@ -1854,6 +1854,7 @@ namespace gen | |||||||
|  |  | ||||||
| 		Code result = make_code(); | 		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 ) ); | 		mem_copy( result.ast, this, sizeof( AST ) ); | ||||||
|  |  | ||||||
| 		return result.ast; | 		return result.ast; | ||||||
| @@ -2219,10 +2220,12 @@ namespace gen | |||||||
| 				else | 				else | ||||||
| 					result.append_fmt( "%s", ValueType->to_string() ); | 					result.append_fmt( "%s", ValueType->to_string() ); | ||||||
|  |  | ||||||
| 				if ( NumEntries ) | 				if ( NumEntries - 1) | ||||||
| 					for ( CodeParam param : cast<CodeParam>() ) |  | ||||||
| 				{ | 				{ | ||||||
| 						result.append( param.to_string() ); | 					for ( CodeParam param : Next->cast<CodeParam>() ) | ||||||
|  | 					{ | ||||||
|  | 						result.append_fmt( ", %s", param.to_string() ); | ||||||
|  | 					} | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 			break; | 			break; | ||||||
| @@ -3732,6 +3735,8 @@ namespace gen | |||||||
| 		if ( value ) | 		if ( value ) | ||||||
| 			result->Value = value; | 			result->Value = value; | ||||||
|  |  | ||||||
|  | 		result->NumEntries++; | ||||||
|  |  | ||||||
| 		return (CodeParam) result; | 		return (CodeParam) result; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| @@ -7839,3 +7844,4 @@ namespace gen | |||||||
| } | } | ||||||
| // End: gen_time | // End: gen_time | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|   | |||||||
| @@ -2760,7 +2760,8 @@ namespace gen | |||||||
| 		template< class Type > | 		template< class Type > | ||||||
| 		Type cast() | 		Type cast() | ||||||
| 		{ | 		{ | ||||||
| 			return (Type)(Code){ this }; | 			AST* ast = this; | ||||||
|  | 			return * rcast( Type*, & ast ); | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		operator Code(); | 		operator Code(); | ||||||
| @@ -3003,7 +3004,7 @@ namespace gen | |||||||
| 	Define_CodeType( Struct ); | 	Define_CodeType( Struct ); | ||||||
| 	Define_CodeType( Template ); | 	Define_CodeType( Template ); | ||||||
| 	Define_CodeType( Type ); | 	Define_CodeType( Type ); | ||||||
| 	Define_CodeType( Typedef ); | 	Define_CodeType(Typedef); | ||||||
| 	Define_CodeType( Union ); | 	Define_CodeType( Union ); | ||||||
| 	Define_CodeType( Using ); | 	Define_CodeType( Using ); | ||||||
| 	Define_CodeType( UsingNamespace ); | 	Define_CodeType( UsingNamespace ); | ||||||
| @@ -3053,22 +3054,24 @@ namespace gen | |||||||
| 			return { (AST*)ast }; | 			return { (AST*)ast }; | ||||||
| 		} | 		} | ||||||
| 	#pragma region Iterator | 	#pragma region Iterator | ||||||
| 		CodeParam* begin() | 		CodeParam begin() | ||||||
| 		{ | 		{ | ||||||
| 			if ( ast ) | 			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++() | 		CodeParam& operator++() | ||||||
| 		{ | 		{ | ||||||
| 			if ( ast && raw()->Next ) | 			ast = (AST_Param*) rcast( AST*, ast )->Next; | ||||||
| 				ast = (AST_Param*) raw()->Next; | 			return * this; | ||||||
|  | 		} | ||||||
|  | 		CodeParam operator*() | ||||||
|  | 		{ | ||||||
| 			return * this; | 			return * this; | ||||||
| 		} | 		} | ||||||
| 	#pragma endregion Iterator | 	#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"); | 	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 | 	struct AST_Enum | ||||||
| 	{ | 	{ | ||||||
| 		union { | 		union { | ||||||
| @@ -3254,6 +3238,25 @@ namespace gen | |||||||
| 	}; | 	}; | ||||||
| 	static_assert( sizeof(AST_Enum) == sizeof(AST), "ERROR: AST_Enum is not the same size as AST"); | 	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 | 	struct AST_Extern | ||||||
| 	{ | 	{ | ||||||
| 		union { | 		union { | ||||||
| @@ -3261,7 +3264,7 @@ namespace gen | |||||||
| 			struct | 			struct | ||||||
| 			{ | 			{ | ||||||
| 				char      _PAD_PROPERTIES_[ sizeof(AST*) * 4 ]; | 				char      _PAD_PROPERTIES_[ sizeof(AST*) * 4 ]; | ||||||
| 				CodeBody  Body; | 				Code      Body; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
| 		Code              Prev; | 		Code              Prev; | ||||||
| @@ -3347,8 +3350,11 @@ namespace gen | |||||||
| 	{ | 	{ | ||||||
| 		union { | 		union { | ||||||
| 			char          _PAD_[ sizeof(SpecifierT) * AST::ArrSpecs_Cap ]; | 			char          _PAD_[ sizeof(SpecifierT) * AST::ArrSpecs_Cap ]; | ||||||
|  | 			struct { | ||||||
|  | 				char 	  _PAD_PROPERTIES_[ sizeof(AST*) * 4 ]; | ||||||
| 				CodeBody  Body; | 				CodeBody  Body; | ||||||
| 			}; | 			}; | ||||||
|  | 		}; | ||||||
| 		Code              Prev; | 		Code              Prev; | ||||||
| 		Code              Next; | 		Code              Next; | ||||||
| 		Code              Parent; | 		Code              Parent; | ||||||
| @@ -3388,8 +3394,9 @@ namespace gen | |||||||
| 			char          _PAD_[ sizeof(SpecifierT) * AST::ArrSpecs_Cap ]; | 			char          _PAD_[ sizeof(SpecifierT) * AST::ArrSpecs_Cap ]; | ||||||
| 			struct | 			struct | ||||||
| 			{ | 			{ | ||||||
| 				char 	  _PAD_PROPERTIES_[ sizeof(AST*) * 3 ]; | 				char 	  _PAD_PROPERTIES_[ sizeof(AST*) * 2 ]; | ||||||
| 				CodeType  ValueType; | 				CodeType  ValueType; | ||||||
|  | 				char 	  _PAD_PROPERTIES_2_[ sizeof(AST*) ]; | ||||||
| 				CodeBody  Body; | 				CodeBody  Body; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
| @@ -3398,8 +3405,7 @@ namespace gen | |||||||
| 		Code              Parent; | 		Code              Parent; | ||||||
| 		StringCached      Name; | 		StringCached      Name; | ||||||
| 		CodeT             Type; | 		CodeT             Type; | ||||||
| 		ModuleFlag        ModuleFlags; | 		char 			  _PAD_UNUSED_[ sizeof(ModuleFlag) + sizeof(u32) ]; | ||||||
| 		char 			  _PAD_UNUSED_[ sizeof(u32) ]; |  | ||||||
| 	}; | 	}; | ||||||
| 	static_assert( sizeof(AST_OpCast) == sizeof(AST), "ERROR: AST_OpCast is not the same size as AST"); | 	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 ]; | 			char 		  _PAD_[ sizeof(SpecifierT) * AST::ArrSpecs_Cap ]; | ||||||
| 			struct | 			struct | ||||||
| 			{ | 			{ | ||||||
| 				char 	  _PAD_PROPERTIES_[ sizeof(AST*) * 3 ]; | 				char 	  _PAD_PROPERTIES_2_[ sizeof(AST*) * 2 ]; | ||||||
| 				CodeType  ValueType; | 				CodeType  ValueType; | ||||||
|  | 				char 	  _PAD_PROPERTIES_[ sizeof(AST*) ]; | ||||||
| 				Code      Value; | 				Code      Value; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
| @@ -3419,7 +3426,7 @@ namespace gen | |||||||
| 		Code              Parent; | 		Code              Parent; | ||||||
| 		StringCached      Name; | 		StringCached      Name; | ||||||
| 		CodeT             Type; | 		CodeT             Type; | ||||||
| 		ModuleFlag        ModuleFlags; | 		char 			  _PAD_UNUSED_[ sizeof(ModuleFlag) ]; | ||||||
| 		u32               NumEntries; | 		u32               NumEntries; | ||||||
| 	}; | 	}; | ||||||
| 	static_assert( sizeof(AST_Param) == sizeof(AST), "ERROR: AST_Param is not the same size as AST"); | 	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; | 		Code              Parent; | ||||||
| 		StringCached      Name; | 		StringCached      Name; | ||||||
| 		CodeT             Type; | 		CodeT             Type; | ||||||
| 		ModuleFlag        ModuleFlags; | 		char 			  _PAD_UNUSED_[ sizeof(ModuleFlag) ]; | ||||||
| 		u32               NumEntries; | 		u32               NumEntries; | ||||||
| 	}; | 	}; | ||||||
| 		static_assert( sizeof(AST_Specifier) == sizeof(AST), "ERROR: AST_Specifier is not the same size as AST"); | 		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 ]; | 			char 		       _PAD_[ sizeof(SpecifierT) * AST::ArrSpecs_Cap ]; | ||||||
| 			struct | 			struct | ||||||
| 			{ | 			{ | ||||||
| 				CodeAttributes Attributes; | 				char 	       _PAD_PROPERTIES_[ sizeof(AST*) * 2 ]; | ||||||
| 				CodeType       ReturnType; |  | ||||||
| 				CodeSpecifier  Specs; |  | ||||||
| 				CodeParam 	   Params; | 				CodeParam 	   Params; | ||||||
| 				Code           Declaration; | 				Code           Declaration; | ||||||
| 			}; | 			}; | ||||||
| @@ -4137,7 +4142,7 @@ namespace gen | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	Define_CodeImpl( Code ); | 	Define_CodeImpl( Code ); | ||||||
| 	Define_CodeImpl( CodeBody); | 	Define_CodeImpl( CodeBody ); | ||||||
| 	Define_CodeImpl( CodeAttributes ); | 	Define_CodeImpl( CodeAttributes ); | ||||||
| 	Define_CodeImpl( CodeComment ); | 	Define_CodeImpl( CodeComment ); | ||||||
| 	Define_CodeImpl( CodeClass ); | 	Define_CodeImpl( CodeClass ); | ||||||
| @@ -4195,12 +4200,12 @@ namespace gen | |||||||
| 	Define_AST_Cast( Var ); | 	Define_AST_Cast( Var ); | ||||||
| 	#undef Define_AST_Cast | 	#undef Define_AST_Cast | ||||||
|  |  | ||||||
| #pragma region Code Operator Cast Impl | #pragma region Code Operator Cast Impj | ||||||
|  |  | ||||||
| 	#define Define_CodeCast( type )           \ | 	#define Define_CodeCast( type )           \ | ||||||
| 	Code::operator Code ## type() const       \ | 	Code::operator Code ## type() const       \ | ||||||
| 	{                                         \ | 	{                                         \ | ||||||
| 		return * rcast( Code ## type*, ast ); \ | 		return { (AST_ ## type*) ast };       \ | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	Define_CodeCast( Attributes ); | 	Define_CodeCast( Attributes ); | ||||||
| @@ -4277,3 +4282,4 @@ namespace gen | |||||||
|  |  | ||||||
| // end: gen_time | // end: gen_time | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|   | |||||||
| @@ -53,309 +53,146 @@ | |||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::AST"> | 	<Type Name="gen::AST"> | ||||||
| 		<DisplayString>AST: {Name}</DisplayString> | 		<DisplayString Condition="this != nullptr">{Name} Type: {Type}</DisplayString> | ||||||
| 		<Expand> | 		<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> | 			<Item Name="Content">Content</Item> | ||||||
| 					</Case> | 			<Item Name="Parent">Parent</Item> | ||||||
| 					<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="Prev">Prev</Item> | 			<Item Name="Prev">Prev</Item> | ||||||
| 			<Item Name="Next">Next</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> | 			<Item Name="NumEntries">NumEntries</Item> | ||||||
| 					</Case> |  | ||||||
| 				</Switch> |  | ||||||
| 			</Expand> |  | ||||||
| 		</Expand> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::Code"> | 	<Type Name="gen::Code"> | ||||||
| 		<DisplayString Condition="ast != nullptr">AST: {ast->Name} Type: {ast->Type}</DisplayString> | 		<DisplayString Condition="ast == nullptr">Null</DisplayString> | ||||||
| 		<Expand> | 		<DisplayString Condition="ast != nullptr">{ast->Name} Type: {ast->Type}</DisplayString> | ||||||
| 			<Item Name="Parent">ast->Parent</Item> | 		<Expand HideRawView="false"> | ||||||
| 			<Item Name="ModuleFlags">ast->ModuleFlags</Item> |  | ||||||
| 			<Expand HideRawView="true"> |  | ||||||
| 				<Switch> |  | ||||||
| 					<Case Condition="Content != nullptr"> |  | ||||||
| 			<Item Name="Content">ast->Content</Item> | 			<Item Name="Content">ast->Content</Item> | ||||||
| 					</Case> | 			<Item Name="Body">ast->Body</Item> | ||||||
| 					<Case Condition="ArrSpecs != nullptr"> | 			<Item Name="Parent">ast->Parent</Item> | ||||||
| 						<ArrayItems Name="Specifiers" Condition="ArrSpecs != nullptr" | 			<Item Name="ModuleFlags" Condition="ast->ModuleFlags != ModuleFlag::Invalid">ast->ModuleFlags</Item> | ||||||
| 							Size="{ArrSpecs_Cap}"> | 			<Item Name="ArrSpecs" Condition="ast->ArrSpecs[0] < 18">ast->ArrSpecs</Item> | ||||||
| 							<ValuePointer>ast->ArrSpecs</ValuePointer> |  | ||||||
| 						</ArrayItems> |  | ||||||
| 					</Case> |  | ||||||
| 				</Switch> |  | ||||||
| 			</Expand> |  | ||||||
| 			<Expand HideRawView="true"> |  | ||||||
| 				<Switch> |  | ||||||
| 					<Case Condition="Prev != nullptr"> |  | ||||||
| 			<Item Name="Prev">ast->Prev</Item> | 			<Item Name="Prev">ast->Prev</Item> | ||||||
| 			<Item Name="Next">ast->Next</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> | 			<Item Name="NumEntries">ast->NumEntries</Item> | ||||||
| 					</Case> |  | ||||||
| 				</Switch> |  | ||||||
| 			</Expand> |  | ||||||
| 		</Expand> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::AST_Body"> | 	<Type Name="gen::AST_Body"> | ||||||
| 		<DisplayString>{Name} {Type}</DisplayString> | 		<DisplayString>{Name} Type: {Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Name">Name</Item> |  | ||||||
| 			<Item Name="Type">Type</Item> |  | ||||||
| 			<Item Name="Parent">Parent</Item> | 			<Item Name="Parent">Parent</Item> | ||||||
| 			<Item Name="Front">Front</Item> | 			<Item Name="Front">Front</Item> | ||||||
| 			<Item Name="Back">Back</Item> | 			<Item Name="Back">Back</Item> | ||||||
|  | 			<Item Name="NumEntries">NumEntries</Item> | ||||||
| 		</Expand> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::AST_Attributes"> | 	<Type Name="gen::AST_Attributes"> | ||||||
| 		<DisplayString>{Name} {Type}</DisplayString> | 		<DisplayString>{Name} Type: {Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Name">Name</Item> | 			<Item Name="Content">Content</Item> | ||||||
| 			<Item Name="Type">Type</Item> |  | ||||||
| 			<Item Name="Parent">Parent</Item> | 			<Item Name="Parent">Parent</Item> | ||||||
| 			<Item Name="Prev">Prev</Item> | 			<Item Name="Prev">Prev</Item> | ||||||
| 			<Item Name="Next">Next</Item> | 			<Item Name="Next">Next</Item> | ||||||
| 			<Item Name="Content">Content</Item> |  | ||||||
| 		</Expand> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::AST_Comment"> | 	<Type Name="gen::AST_Comment"> | ||||||
| 		<DisplayString>{Name} {Type}</DisplayString> | 		<DisplayString>{Name} Type: {Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Name">Name</Item> | 			<Item Name="Content">Content</Item> | ||||||
| 			<Item Name="Type">Type</Item> |  | ||||||
| 			<Item Name="Parent">Parent</Item> | 			<Item Name="Parent">Parent</Item> | ||||||
| 			<Item Name="Prev">Prev</Item> | 			<Item Name="Prev">Prev</Item> | ||||||
| 			<Item Name="Next">Next</Item> | 			<Item Name="Next">Next</Item> | ||||||
| 			<Item Name="Content">Content</Item> |  | ||||||
| 		</Expand> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::AST_Class"> | 	<Type Name="gen::AST_Class"> | ||||||
| 		<DisplayString Condition="Parent != nullptr">{Name} {Type}</DisplayString> | 		<DisplayString>{Name} Type: {Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Name">Name</Item> |  | ||||||
| 			<Item Name="Type">Type</Item> |  | ||||||
| 			<Item Name="ModuleFlags">ModuleFlags</Item> | 			<Item Name="ModuleFlags">ModuleFlags</Item> | ||||||
| 			<Item Name="Parent">Parent</Item> |  | ||||||
| 			<Item Name="Attributes">Attributes</Item> | 			<Item Name="Attributes">Attributes</Item> | ||||||
| 			<Item Name="ParentType">ParentType</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> | 			<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="Body">Body</Item> | ||||||
|  | 			<Item Name="Parent">Parent</Item> | ||||||
| 			<Item Name="Prev">Prev</Item> | 			<Item Name="Prev">Prev</Item> | ||||||
| 			<Item Name="Next">Next</Item> | 			<Item Name="Next">Next</Item> | ||||||
| 		</Expand> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::AST_Enum"> | 	<Type Name="gen::AST_Enum"> | ||||||
| 		<DisplayString Condition="Parent != nullptr">{Name} {Type}</DisplayString> | 		<DisplayString>{Name} Type: {Type}</DisplayString> | ||||||
| 		<Expand> | 		<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="Attributes">Attributes</Item> | ||||||
| 			<Item Name="UnderlyingType">UnderlyingType</Item> | 			<Item Name="UnderlyingType">UnderlyingType</Item> | ||||||
| 			<Item Name="Body">Body</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="Prev">Prev</Item> | ||||||
| 			<Item Name="Next">Next</Item> | 			<Item Name="Next">Next</Item> | ||||||
| 		</Expand> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::AST_Extern"> | 	<Type Name="gen::AST_Extern"> | ||||||
| 		<DisplayString>{Name} {Type}</DisplayString> | 		<DisplayString>{Name} Type: {Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Name">Name</Item> | 			<Item Name="Body">Body</Item> | ||||||
| 			<Item Name="Type">Type</Item> |  | ||||||
| 			<Item Name="Parent">Parent</Item> | 			<Item Name="Parent">Parent</Item> | ||||||
| 			<Item Name="Prev">Prev</Item> | 			<Item Name="Prev">Prev</Item> | ||||||
| 			<Item Name="Next">Next</Item> | 			<Item Name="Next">Next</Item> | ||||||
| 			<Item Name="Body">Body</Item> |  | ||||||
| 		</Expand> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::AST_Include"> | 	<Type Name="gen::AST_Include"> | ||||||
| 		<DisplayString>{Name} {Type}</DisplayString> | 		<DisplayString>{Name} Type: {Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Name">Name</Item> | 			<Item Name="Content">Content</Item> | ||||||
| 			<Item Name="Type">Type</Item> |  | ||||||
| 			<Item Name="Parent">Parent</Item> | 			<Item Name="Parent">Parent</Item> | ||||||
| 			<Item Name="Prev">Prev</Item> | 			<Item Name="Prev">Prev</Item> | ||||||
| 			<Item Name="Next">Next</Item> | 			<Item Name="Next">Next</Item> | ||||||
| 			<Item Name="Content">Content</Item> |  | ||||||
| 		</Expand> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::AST_Friend"> | 	<Type Name="gen::AST_Friend"> | ||||||
| 		<DisplayString>{Name} {Type}</DisplayString> | 		<DisplayString>{Name} Type: {Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Name">Name</Item> | 			<Item Name="Declaration">Declaration</Item> | ||||||
| 			<Item Name="Type">Type</Item> |  | ||||||
| 			<Item Name="Parent">Parent</Item> | 			<Item Name="Parent">Parent</Item> | ||||||
| 			<Item Name="Prev">Prev</Item> | 			<Item Name="Prev">Prev</Item> | ||||||
| 			<Item Name="Next">Next</Item> | 			<Item Name="Next">Next</Item> | ||||||
| 			<Item Name="Declaration">Declaration</Item> |  | ||||||
| 		</Expand> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::AST_Fn"> | 	<Type Name="gen::AST_Fn"> | ||||||
| 		<DisplayString>{Name} {Type}</DisplayString> | 		<DisplayString>{Name} Type: {Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Name">Name</Item> |  | ||||||
| 			<Item Name="Type">Type</Item> |  | ||||||
| 			<Item Name="ModuleFlags">ModuleFlags</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="Attributes">Attributes</Item> | ||||||
| 			<Item Name="Specs">Specs</Item> | 			<Item Name="Specs">Specs</Item> | ||||||
| 			<Item Name="ReturnType">ReturnType</Item> | 			<Item Name="ReturnType">ReturnType</Item> | ||||||
| 			<Item Name="Params">Params</Item> | 			<Item Name="Params">Params</Item> | ||||||
| 			<Item Name="Body">Body</Item> | 			<Item Name="Body">Body</Item> | ||||||
|  | 			<Item Name="Parent">Parent</Item> | ||||||
|  | 			<Item Name="Prev">Prev</Item> | ||||||
|  | 			<Item Name="Next">Next</Item> | ||||||
| 		</Expand> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::AST_Module"> | 	<Type Name="gen::AST_Module"> | ||||||
| 		<DisplayString>{Name} {Type}</DisplayString> | 		<DisplayString>{Name} Type: {Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Name">Name</Item> |  | ||||||
| 			<Item Name="Type">Type</Item> |  | ||||||
| 			<Item Name="ModuleFlags">ModuleFlags</Item> | 			<Item Name="ModuleFlags">ModuleFlags</Item> | ||||||
| 			<Item Name="Parent">Parent</Item> | 			<Item Name="Parent">Parent</Item> | ||||||
| 			<Item Name="Prev">Prev</Item> | 			<Item Name="Prev">Prev</Item> | ||||||
| @@ -364,10 +201,8 @@ | |||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::AST_Namespace"> | 	<Type Name="gen::AST_Namespace"> | ||||||
| 		<DisplayString>{Name} {Type}</DisplayString> | 		<DisplayString>{Name} Type: {Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Name">Name</Item> |  | ||||||
| 			<Item Name="Type">Type</Item> |  | ||||||
| 			<Item Name="ModuleFlags">ModuleFlags</Item> | 			<Item Name="ModuleFlags">ModuleFlags</Item> | ||||||
| 			<Item Name="Parent">Parent</Item> | 			<Item Name="Parent">Parent</Item> | ||||||
| 			<Item Name="Prev">Prev</Item> | 			<Item Name="Prev">Prev</Item> | ||||||
| @@ -377,154 +212,131 @@ | |||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::AST_Operator"> | 	<Type Name="gen::AST_Operator"> | ||||||
| 		<DisplayString>{Name} {Type}</DisplayString> | 		<DisplayString>{Name} Type: {Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Name">Name</Item> |  | ||||||
| 			<Item Name="Type">Type</Item> |  | ||||||
| 			<Item Name="ModuleFlags">ModuleFlags</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="Attributes">Attributes</Item> | ||||||
| 			<Item Name="Specs">Specs</Item> | 			<Item Name="Specs">Specs</Item> | ||||||
| 			<Item Name="ReturnType">ReturnType</Item> | 			<Item Name="ReturnType">ReturnType</Item> | ||||||
|  | 			<Item Name="Op">Op</Item> | ||||||
| 			<Item Name="Params">Params</Item> | 			<Item Name="Params">Params</Item> | ||||||
| 			<Item Name="Body">Body</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> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::AST_OpCast"> | 	<Type Name="gen::AST_OpCast"> | ||||||
| 		<DisplayString>{Name} {Type}</DisplayString> | 		<DisplayString>{Name} Type: {Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Name">Name</Item> | 			<Item Name="ValueType">ValueType</Item> | ||||||
| 			<Item Name="Type">Type</Item> | 			<Item Name="Body">Body</Item> | ||||||
| 			<Item Name="ModuleFlags">ModuleFlags</Item> |  | ||||||
| 			<Item Name="Parent">Parent</Item> | 			<Item Name="Parent">Parent</Item> | ||||||
| 			<Item Name="Prev">Prev</Item> | 			<Item Name="Prev">Prev</Item> | ||||||
| 			<Item Name="Next">Next</Item> | 			<Item Name="Next">Next</Item> | ||||||
| 			<Item Name="ValueType">ValueType</Item> |  | ||||||
| 			<Item Name="Body">Body</Item> |  | ||||||
| 		</Expand> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::AST_Param"> | 	<Type Name="gen::AST_Param"> | ||||||
| 		<DisplayString>{Name} {Type}</DisplayString> | 		<DisplayString>{Name} Type: {Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Name">Name</Item> | 			<Item Name="ValueType">ValueType</Item> | ||||||
| 			<Item Name="ModuleFlags">ModuleFlags</Item> | 			<Item Name="Value">Value</Item> | ||||||
| 			<Item Name="Parent">Parent</Item> | 			<Item Name="Parent">Parent</Item> | ||||||
| 			<Item Name="Prev">Prev</Item> | 			<Item Name="Prev">Prev</Item> | ||||||
| 			<Item Name="Next">Next</Item> | 			<Item Name="Next">Next</Item> | ||||||
| 			<Item Name="ValueType">ValueType</Item> |  | ||||||
| 			<Item Name="Value">Value</Item> |  | ||||||
| 			<Item Name="NumEntries">NumEntries</Item> | 			<Item Name="NumEntries">NumEntries</Item> | ||||||
| 		</Expand> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::AST_Specifiers"> | 	<Type Name="gen::AST_Specifiers"> | ||||||
| 		<DisplayString>{Name} {Type}</DisplayString> | 		<DisplayString>{Name} Type: {Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Name">Name</Item> | 			<Item Name="NumEntries">NumEntries</Item> | ||||||
| 			<Item Name="ModuleFlags">ModuleFlags</Item> |  | ||||||
| 			<Item Name="Parent">Parent</Item> | 			<Item Name="Parent">Parent</Item> | ||||||
| 			<Item Name="Prev">Prev</Item> | 			<Item Name="Prev">Prev</Item> | ||||||
| 			<Item Name="Next">Next</Item> | 			<Item Name="Next">Next</Item> | ||||||
| 			<ArrayItems Name="ArrSpecs" Count="AST::ArrSpecs_Cap"> |  | ||||||
| 				<ValuePointer>ArrSpecs</ValuePointer> |  | ||||||
| 			</ArrayItems> |  | ||||||
| 			<Item Name="NumEntries">NumEntries</Item> |  | ||||||
| 		</Expand> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::AST_Struct"> | 	<Type Name="gen::AST_Struct"> | ||||||
| 		<DisplayString>{Name} {Type}</DisplayString> | 		<DisplayString>{Name} Type: {Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Name">Name</Item> |  | ||||||
| 			<Item Name="ModuleFlags">ModuleFlags</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="Parent">Parent</Item> | ||||||
| 			<Item Name="Prev">Prev</Item> | 			<Item Name="Prev">Prev</Item> | ||||||
| 			<Item Name="Next">Next</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> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::AST_Template"> | 	<Type Name="gen::AST_Template"> | ||||||
| 		<DisplayString>{Name} {Type}</DisplayString> | 		<DisplayString>{Name} Type: {Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Name">Name</Item> |  | ||||||
| 			<Item Name="ModuleFlags">ModuleFlags</Item> | 			<Item Name="ModuleFlags">ModuleFlags</Item> | ||||||
|  | 			<Item Name="Declaration">Declaration</Item> | ||||||
|  | 			<Item Name="Params">Params</Item> | ||||||
| 			<Item Name="Parent">Parent</Item> | 			<Item Name="Parent">Parent</Item> | ||||||
| 			<Item Name="Prev">Prev</Item> | 			<Item Name="Prev">Prev</Item> | ||||||
| 			<Item Name="Next">Next</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> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::AST_Type"> | 	<Type Name="gen::AST_Type"> | ||||||
| 		<DisplayString>{Name} {Type}</DisplayString> | 		<DisplayString>{Name} Type: {Type}</DisplayString> | ||||||
| 		<Expand> | 		<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="Attributes">Attributes</Item> | ||||||
| 			<Item Name="Specs">Specs</Item> | 			<Item Name="Specs">Specs</Item> | ||||||
| 			<Item Name="ArrExpr">ArrExpr</Item> | 			<Item Name="ArrExpr">ArrExpr</Item> | ||||||
|  | 			<Item Name="Parent">Parent</Item> | ||||||
|  | 			<Item Name="Prev">Prev</Item> | ||||||
|  | 			<Item Name="Next">Next</Item> | ||||||
| 		</Expand> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::AST_Typedef"> | 	<Type Name="gen::AST_Typedef"> | ||||||
| 		<DisplayString>{Name} {Type}</DisplayString> | 		<DisplayString>{Name} Type: {Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Name">Name</Item> |  | ||||||
| 			<Item Name="ModuleFlags">ModuleFlags</Item> | 			<Item Name="ModuleFlags">ModuleFlags</Item> | ||||||
|  | 			<Item Name="Attributes">Attributes</Item> | ||||||
|  | 			<Item Name="UnderlyingType">UnderlyingType</Item> | ||||||
| 			<Item Name="Parent">Parent</Item> | 			<Item Name="Parent">Parent</Item> | ||||||
| 			<Item Name="Prev">Prev</Item> | 			<Item Name="Prev">Prev</Item> | ||||||
| 			<Item Name="Next">Next</Item> | 			<Item Name="Next">Next</Item> | ||||||
| 			<Item Name="Attributes">Attributes</Item> |  | ||||||
| 			<Item Name="UnderlyingType">UnderlyingType</Item> |  | ||||||
| 		</Expand> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::AST_Union"> | 	<Type Name="gen::AST_Union"> | ||||||
| 		<DisplayString>{Name} {Type}</DisplayString> | 		<DisplayString>{Name} Type: {Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Name">Name</Item> |  | ||||||
| 			<Item Name="ModuleFlags">ModuleFlags</Item> | 			<Item Name="ModuleFlags">ModuleFlags</Item> | ||||||
|  | 			<Item Name="Attributes">Attributes</Item> | ||||||
|  | 			<Item Name="Body">Body</Item> | ||||||
| 			<Item Name="Parent">Parent</Item> | 			<Item Name="Parent">Parent</Item> | ||||||
| 			<Item Name="Prev">Prev</Item> | 			<Item Name="Prev">Prev</Item> | ||||||
| 			<Item Name="Next">Next</Item> | 			<Item Name="Next">Next</Item> | ||||||
| 			<Item Name="Attributes">Attributes</Item> |  | ||||||
| 			<Item Name="Body">Body</Item> |  | ||||||
| 		</Expand> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::AST_Using"> | 	<Type Name="gen::AST_Using"> | ||||||
| 		<DisplayString>{Name} {Type}</DisplayString> | 		<DisplayString>{Name} Type: {Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Name">Name</Item> |  | ||||||
| 			<Item Name="ModuleFlags">ModuleFlags</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="Attributes">Attributes</Item> | ||||||
| 			<Item Name="UnderlyingType">UnderlyingType</Item> | 			<Item Name="UnderlyingType">UnderlyingType</Item> | ||||||
| 			<Item Name="Op">Op</Item> | 			<Item Name="Parent">Parent</Item> | ||||||
| 			<Item Name="ParentAccess">ParentAccess</Item> | 			<Item Name="ParentAccess">ParentAccess</Item> | ||||||
| 			<Item Name="NumEntries">NumEntries</Item> | 			<Item Name="Prev">Prev</Item> | ||||||
|  | 			<Item Name="Next">Next</Item> | ||||||
| 		</Expand> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::AST_UsingNamespace"> | 	<Type Name="gen::AST_UsingNamespace"> | ||||||
| 		<DisplayString>{Name} {Type}</DisplayString> | 		<DisplayString>{Name} Type: {Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Name">Name</Item> | 			<Item Name="Name">Name</Item> | ||||||
| 			<Item Name="Parent">Parent</Item> | 			<Item Name="Parent">Parent</Item> | ||||||
| @@ -534,76 +346,69 @@ | |||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::AST_Var"> | 	<Type Name="gen::AST_Var"> | ||||||
| 		<DisplayString>{Name} {Type}</DisplayString> | 		<DisplayString>{Name} Type: {Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Name">Name</Item> |  | ||||||
| 			<Item Name="ModuleFlags">ModuleFlags</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="Attributes">Attributes</Item> | ||||||
| 			<Item Name="Specs">Specs</Item> | 			<Item Name="Specs">Specs</Item> | ||||||
| 			<Item Name="ValueType">ValueType</Item> | 			<Item Name="ValueType">ValueType</Item> | ||||||
| 			<Item Name="Value">Value</Item> | 			<Item Name="Value">Value</Item> | ||||||
| 			<Item Name="Op">Op</Item> | 			<Item Name="Parent">Parent</Item> | ||||||
| 			<Item Name="ParentAccess">ParentAccess</Item> | 			<Item Name="Prev">Prev</Item> | ||||||
| 			<Item Name="NumEntries">NumEntries</Item> | 			<Item Name="Next">Next</Item> | ||||||
| 		</Expand> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="CodeBody"> | 	<Type Name="gen::CodeBody"> | ||||||
|  | 		<DisplayString Condition="ast == nullptr">Null</DisplayString> | ||||||
| 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Attributes">ast->Attributes</Item> | 			<Item Name="Parent">ast->Parent</Item> | ||||||
| 			<Item Name="Specs">ast->Specs</Item> | 			<Item Name="Prev">ast->Front</Item> | ||||||
| 			<Item Name="Front">ast->Front</Item> | 			<Item Name="Next">ast->Back</Item> | ||||||
| 			<Item Name="Back">ast->Back</Item> | 			<Item Name="NumEntries">ast->NumEntries</Item> | ||||||
| 		</Expand> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="CodeAttributes"> | 	<Type Name="gen::CodeAttributes"> | ||||||
|  | 		<DisplayString Condition="ast == nullptr">Null</DisplayString> | ||||||
| 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Attributes">ast->Attributes</Item> | 			<Item Name="Content">ast->Content</Item> | ||||||
| 			<Item Name="Specs">ast->Specs</Item> | 			<Item Name="Parent">ast->Parent</Item> | ||||||
| 			<Item Name="Prev">ast->Prev</Item> | 			<Item Name="Prev">ast->Prev</Item> | ||||||
| 			<Item Name="Next">ast->Next</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> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::CodeComment"> | 	<Type Name="gen::CodeComment"> | ||||||
|  | 		<DisplayString Condition="ast == nullptr">Null</DisplayString> | ||||||
| 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Content">ast->Content</Item> | 			<Item Name="Content">ast->Content</Item> | ||||||
|  | 			<Item Name="Parent">ast->Parent</Item> | ||||||
| 			<Item Name="Prev">ast->Prev</Item> | 			<Item Name="Prev">ast->Prev</Item> | ||||||
| 			<Item Name="Next">ast->Next</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> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::CodeClass"> | 	<Type Name="gen::CodeClass"> | ||||||
|  | 		<DisplayString Condition="ast == nullptr">Null</DisplayString> | ||||||
| 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
|  | 			<Item Name="ModuleFlags">ast->ModuleFlags</Item> | ||||||
| 			<Item Name="Attributes">ast->Attributes</Item> | 			<Item Name="Attributes">ast->Attributes</Item> | ||||||
| 			<Item Name="ParentType">ast->ParentType</Item> | 			<Item Name="ParentType">ast->ParentType</Item> | ||||||
|  | 			<Item Name="ParentAccess">ast->ParentAccess</Item> | ||||||
| 			<Item Name="Body">ast->Body</Item> | 			<Item Name="Body">ast->Body</Item> | ||||||
|  | 			<Item Name="Parent">ast->Parent</Item> | ||||||
| 			<Item Name="Prev">ast->Prev</Item> | 			<Item Name="Prev">ast->Prev</Item> | ||||||
| 			<Item Name="Next">ast->Next</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> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::CodeExec"> | 	<Type Name="gen::CodeExec"> | ||||||
|  | 		<DisplayString Condition="ast == nullptr">Null</DisplayString> | ||||||
| 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Body">ast->Body</Item> | 			<Item Name="Body">ast->Body</Item> | ||||||
| @@ -616,258 +421,214 @@ | |||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::CodeEnum"> | 	<Type Name="gen::CodeEnum"> | ||||||
|  | 		<DisplayString Condition="ast == nullptr">Null</DisplayString> | ||||||
| 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
|  | 			<Item Name="ModuleFlags">ast->ModuleFlags</Item> | ||||||
| 			<Item Name="Attributes">ast->Attributes</Item> | 			<Item Name="Attributes">ast->Attributes</Item> | ||||||
| 			<Item Name="UnderlyingType">ast->UnderlyingType</Item> | 			<Item Name="UnderlyingType">ast->UnderlyingType</Item> | ||||||
| 			<Item Name="Body">ast->Body</Item> | 			<Item Name="Body">ast->Body</Item> | ||||||
| 			<Item Name="Prev">ast->Prev</Item> | 			<Item Name="Prev">ast->Prev</Item> | ||||||
| 			<Item Name="Next">ast->Next</Item> | 			<Item Name="Next">ast->Next</Item> | ||||||
| 			<Item Name="Parent">ast->Parent</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> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::CodeInclude"> | 	<Type Name="gen::CodeInclude"> | ||||||
|  | 		<DisplayString Condition="ast == nullptr">Null</DisplayString> | ||||||
| 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Content">ast->Content</Item> | 			<Item Name="Content">ast->Content</Item> | ||||||
|  | 			<Item Name="Parent">ast->Parent</Item> | ||||||
| 			<Item Name="Prev">ast->Prev</Item> | 			<Item Name="Prev">ast->Prev</Item> | ||||||
| 			<Item Name="Next">ast->Next</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> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::CodeFriend"> | 	<Type Name="gen::CodeFriend"> | ||||||
|  | 		<DisplayString Condition="ast == nullptr">Null</DisplayString> | ||||||
| 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Declaration">ast->Declaration</Item> | 			<Item Name="Declaration">ast->Declaration</Item> | ||||||
|  | 			<Item Name="Parent">ast->Parent</Item> | ||||||
| 			<Item Name="Prev">ast->Prev</Item> | 			<Item Name="Prev">ast->Prev</Item> | ||||||
| 			<Item Name="Next">ast->Next</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> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::CodeFn"> | 	<Type Name="gen::CodeFn"> | ||||||
|  | 		<DisplayString Condition="ast == nullptr">Null</DisplayString> | ||||||
| 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
|  | 			<Item Name="ModuleFlags">ast->ModuleFlags</Item> | ||||||
| 			<Item Name="Attributes">ast->Attributes</Item> | 			<Item Name="Attributes">ast->Attributes</Item> | ||||||
| 			<Item Name="Specs">ast->Specs</Item> | 			<Item Name="Specs">ast->Specs</Item> | ||||||
| 			<Item Name="ReturnType">ast->ReturnType</Item> | 			<Item Name="ReturnType">ast->ReturnType</Item> | ||||||
| 			<Item Name="Params">ast->Params</Item> | 			<Item Name="Params">ast->Params</Item> | ||||||
| 			<Item Name="Body">ast->Body</Item> | 			<Item Name="Body">ast->Body</Item> | ||||||
|  | 			<Item Name="Parent">ast->Parent</Item> | ||||||
| 			<Item Name="Prev">ast->Prev</Item> | 			<Item Name="Prev">ast->Prev</Item> | ||||||
| 			<Item Name="Next">ast->Next</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> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::CodeModule"> | 	<Type Name="gen::CodeModule"> | ||||||
|  | 		<DisplayString Condition="ast == nullptr">Null</DisplayString> | ||||||
| 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
|  | 			<Item Name="ModuleFlags">ast->ModuleFlags</Item> | ||||||
|  | 			<Item Name="Parent">ast->Parent</Item> | ||||||
| 			<Item Name="Prev">ast->Prev</Item> | 			<Item Name="Prev">ast->Prev</Item> | ||||||
| 			<Item Name="Next">ast->Next</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> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::CodeNamespace"> | 	<Type Name="gen::CodeNamespace"> | ||||||
|  | 		<DisplayString Condition="ast == nullptr">Null</DisplayString> | ||||||
| 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
|  | 			<Item Name="ModuleFlags">ast->ModuleFlags</Item> | ||||||
| 			<Item Name="Body">ast->Body</Item> | 			<Item Name="Body">ast->Body</Item> | ||||||
|  | 			<Item Name="Parent">ast->Parent</Item> | ||||||
| 			<Item Name="Prev">ast->Prev</Item> | 			<Item Name="Prev">ast->Prev</Item> | ||||||
| 			<Item Name="Next">ast->Next</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> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::CodeOperator"> | 	<Type Name="gen::CodeOperator"> | ||||||
|  | 		<DisplayString Condition="ast == nullptr">Null</DisplayString> | ||||||
| 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
|  | 			<Item Name="ModuleFlags">ast->ModuleFlags</Item> | ||||||
| 			<Item Name="Attributes">ast->Attributes</Item> | 			<Item Name="Attributes">ast->Attributes</Item> | ||||||
| 			<Item Name="Specs">ast->Specs</Item> | 			<Item Name="Specs">ast->Specs</Item> | ||||||
| 			<Item Name="ReturnType">ast->ReturnType</Item> | 			<Item Name="ReturnType">ast->ReturnType</Item> | ||||||
|  | 			<Item Name="Op">ast->Op</Item> | ||||||
| 			<Item Name="Params">ast->Params</Item> | 			<Item Name="Params">ast->Params</Item> | ||||||
| 			<Item Name="Body">ast->Body</Item> | 			<Item Name="Body">ast->Body</Item> | ||||||
|  | 			<Item Name="Parent">ast->Parent</Item> | ||||||
| 			<Item Name="Prev">ast->Prev</Item> | 			<Item Name="Prev">ast->Prev</Item> | ||||||
| 			<Item Name="Next">ast->Next</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> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::CodeOpCast"> | 	<Type Name="gen::CodeOpCast"> | ||||||
|  | 		<DisplayString Condition="ast == nullptr">Null</DisplayString> | ||||||
| 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="ValueType">ast->ValueType</Item> | 			<Item Name="ValueType">ast->ValueType</Item> | ||||||
| 			<Item Name="Body">ast->Body</Item> | 			<Item Name="Body">ast->Body</Item> | ||||||
|  | 			<Item Name="Parent">ast->Parent</Item> | ||||||
| 			<Item Name="Prev">ast->Prev</Item> | 			<Item Name="Prev">ast->Prev</Item> | ||||||
| 			<Item Name="Next">ast->Next</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> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::CodeParam"> | 	<Type Name="gen::CodeParam"> | ||||||
|  | 		<DisplayString Condition="ast == nullptr">Null</DisplayString> | ||||||
| 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="ValueType">ast->ValueType</Item> | 			<Item Name="ValueType">ast->ValueType</Item> | ||||||
| 			<Item Name="Value">ast->Value</Item> | 			<Item Name="Value">ast->Value</Item> | ||||||
|  | 			<Item Name="Parent">ast->Parent</Item> | ||||||
| 			<Item Name="Prev">ast->Prev</Item> | 			<Item Name="Prev">ast->Prev</Item> | ||||||
| 			<Item Name="Next">ast->Next</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> | 			<Item Name="NumEntries">ast->NumEntries</Item> | ||||||
| 		</Expand> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::CodeSpecifier"> | 	<Type Name="gen::CodeSpecifier"> | ||||||
|  | 		<DisplayString Condition="ast == nullptr">Null</DisplayString> | ||||||
| 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<ArrayItems Name="ArrSpecs" Condition="ast != nullptr" Size="ast->NumEntries"> | 			<Item Name="Parent">ast->Parent</Item> | ||||||
| 				<ValuePointer>ast->ArrSpecs</ValuePointer> |  | ||||||
| 			</ArrayItems> |  | ||||||
| 			<Item Name="Prev">ast->Prev</Item> | 			<Item Name="Prev">ast->Prev</Item> | ||||||
| 			<Item Name="Next">ast->Next</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> | 			<Item Name="NumEntries">ast->NumEntries</Item> | ||||||
| 		</Expand> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::CodeStruct"> | 	<Type Name="gen::CodeStruct"> | ||||||
|  | 		<DisplayString Condition="ast == nullptr">Null</DisplayString> | ||||||
| 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
|  | 			<Item Name="ModuleFlags">ast->ModuleFlags</Item> | ||||||
| 			<Item Name="Attributes">ast->Attributes</Item> | 			<Item Name="Attributes">ast->Attributes</Item> | ||||||
| 			<Item Name="ParentType">ast->ParentType</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> | 			<Item Name="ParentAccess">ast->ParentAccess</Item> | ||||||
| 		</Expand> | 			<Item Name="Body">ast->Body</Item> | ||||||
| 	</Type> | 			<Item Name="Parent">ast->Parent</Item> | ||||||
|  |  | ||||||
| 	<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="Prev">ast->Prev</Item> | 			<Item Name="Prev">ast->Prev</Item> | ||||||
| 			<Item Name="Next">ast->Next</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> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::CodeTemplate"> | 	<Type Name="gen::CodeTemplate"> | ||||||
|  | 		<DisplayString Condition="ast == nullptr">Null</DisplayString> | ||||||
| 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Attributes">ast->Attributes</Item> | 			<Item Name="ModuleFlags">ast->ModuleFlags</Item> | ||||||
| 			<Item Name="ReturnType">ast->ReturnType</Item> |  | ||||||
| 			<Item Name="Specs">ast->Specs</Item> |  | ||||||
| 			<Item Name="Params">ast->Params</Item> |  | ||||||
| 			<Item Name="Declaration">ast->Declaration</Item> | 			<Item Name="Declaration">ast->Declaration</Item> | ||||||
|  | 			<Item Name="Parent">ast->Parent</Item> | ||||||
| 			<Item Name="Prev">ast->Prev</Item> | 			<Item Name="Prev">ast->Prev</Item> | ||||||
| 			<Item Name="Next">ast->Next</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> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::CodeType"> | 	<Type Name="gen::CodeType"> | ||||||
|  | 		<DisplayString Condition="ast == nullptr">Null</DisplayString> | ||||||
| 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Attributes">ast->Attributes</Item> | 			<Item Name="Attributes">ast->Attributes</Item> | ||||||
| 			<Item Name="Specs">ast->Specs</Item> | 			<Item Name="Specs">ast->Specs</Item> | ||||||
| 			<Item Name="ArrExpr">ast->ArrExpr</Item> | 			<Item Name="ArrExpr">ast->ArrExpr</Item> | ||||||
|  | 			<Item Name="Parent">ast->Parent</Item> | ||||||
| 			<Item Name="Prev">ast->Prev</Item> | 			<Item Name="Prev">ast->Prev</Item> | ||||||
| 			<Item Name="Next">ast->Next</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> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::CodeTypedef"> | 	<Type Name="gen::CodeTypedef"> | ||||||
|  | 		<DisplayString Condition="ast == nullptr">Null</DisplayString> | ||||||
| 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
|  | 			<Item Name="ModuleFlags">ast->ModuleFlags</Item> | ||||||
| 			<Item Name="Attributes">ast->Attributes</Item> | 			<Item Name="Attributes">ast->Attributes</Item> | ||||||
| 			<Item Name="UnderlyingType">ast->UnderlyingType</Item> | 			<Item Name="UnderlyingType">ast->UnderlyingType</Item> | ||||||
|  | 			<Item Name="Parent">ast->Parent</Item> | ||||||
| 			<Item Name="Prev">ast->Prev</Item> | 			<Item Name="Prev">ast->Prev</Item> | ||||||
| 			<Item Name="Next">ast->Next</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> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::CodeUnion"> | 	<Type Name="gen::CodeUnion"> | ||||||
|  | 		<DisplayString Condition="ast == nullptr">Null</DisplayString> | ||||||
| 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
|  | 			<Item Name="ModuleFlags">ast->ModuleFlags</Item> | ||||||
| 			<Item Name="Attributes">ast->Attributes</Item> | 			<Item Name="Attributes">ast->Attributes</Item> | ||||||
| 			<Item Name="Body">ast->Body</Item> | 			<Item Name="Body">ast->Body</Item> | ||||||
|  | 			<Item Name="Parent">ast->Parent</Item> | ||||||
| 			<Item Name="Prev">ast->Prev</Item> | 			<Item Name="Prev">ast->Prev</Item> | ||||||
| 			<Item Name="Next">ast->Next</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> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::CodeUsing"> | 	<Type Name="gen::CodeUsing"> | ||||||
|  | 		<DisplayString Condition="ast == nullptr">Null</DisplayString> | ||||||
| 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
|  | 			<Item Name="ModuleFlags">ast->ModuleFlags</Item> | ||||||
| 			<Item Name="Attributes">ast->Attributes</Item> | 			<Item Name="Attributes">ast->Attributes</Item> | ||||||
| 			<Item Name="UnderlyingType">ast->UnderlyingType</Item> | 			<Item Name="UnderlyingType">ast->UnderlyingType</Item> | ||||||
|  | 			<Item Name="Parent">ast->Parent</Item> | ||||||
| 			<Item Name="Prev">ast->Prev</Item> | 			<Item Name="Prev">ast->Prev</Item> | ||||||
| 			<Item Name="Next">ast->Next</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> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::CodeUsingNamespace"> | 	<Type Name="gen::CodeUsingNamespace"> | ||||||
|  | 		<DisplayString Condition="ast == nullptr">Null</DisplayString> | ||||||
| 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
| 			<Item Name="Prev">ast->Prev</Item> | 			<Item Name="Prev">ast->Prev</Item> | ||||||
| @@ -879,18 +640,17 @@ | |||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
| 	<Type Name="gen::CodeVar"> | 	<Type Name="gen::CodeVar"> | ||||||
|  | 		<DisplayString Condition="ast == nullptr">Null</DisplayString> | ||||||
| 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | 		<DisplayString Condition="ast != nullptr">{ast->Name} {ast->Type}</DisplayString> | ||||||
| 		<Expand> | 		<Expand> | ||||||
|  | 			<Item Name="ModuleFlags">ast->ModuleFlags</Item> | ||||||
| 			<Item Name="Attributes">ast->Attributes</Item> | 			<Item Name="Attributes">ast->Attributes</Item> | ||||||
| 			<Item Name="Specs">ast->Specs</Item> | 			<Item Name="Specs">ast->Specs</Item> | ||||||
| 			<Item Name="ValueType">ast->ValueType</Item> | 			<Item Name="ValueType">ast->ValueType</Item> | ||||||
| 			<Item Name="Value">ast->Value</Item> | 			<Item Name="Value">ast->Value</Item> | ||||||
|  | 			<Item Name="Parent">ast->Parent</Item> | ||||||
| 			<Item Name="Prev">ast->Prev</Item> | 			<Item Name="Prev">ast->Prev</Item> | ||||||
| 			<Item Name="Next">ast->Next</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> | 		</Expand> | ||||||
| 	</Type> | 	</Type> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -139,7 +139,7 @@ u32 gen_sanity_upfront() | |||||||
|  |  | ||||||
| 	// Namespace | 	// Namespace | ||||||
| 	{ | 	{ | ||||||
| 		Code namespace_def; | 		CodeNamespace namespace_def; | ||||||
| 		{ | 		{ | ||||||
| 			Code body = def_namespace_body( 1 | 			Code body = def_namespace_body( 1 | ||||||
| 				, def_comment( txt_StrC("Empty namespace body") ) | 				, def_comment( txt_StrC("Empty namespace body") ) | ||||||
|   | |||||||
| @@ -3,5 +3,16 @@ | |||||||
|   Building Test |   Building Test | ||||||
|    |    | ||||||
|   ninja: Entering directory `C:\projects\gencpp\test\gen\build' |   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 |   [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 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user