Pushing latest changes for gencpp

This commit is contained in:
Edward R. Gonzalez 2024-04-17 16:55:22 -04:00
parent 626ab703a7
commit 83d691c65c
11 changed files with 254 additions and 235 deletions

View File

@ -49,5 +49,7 @@
"**/.vscode": true, "**/.vscode": true,
"**/.vs": true, "**/.vs": true,
"**/sanity.gen.hpp": true "**/sanity.gen.hpp": true
} },
"autoHide.autoHidePanel": false,
"autoHide.autoHideSideBar": false
} }

View File

@ -11,7 +11,7 @@
<BuildCommand>pwsh ./scripts/build.ps1 msvc debug bootstrap</BuildCommand> <BuildCommand>pwsh ./scripts/build.ps1 msvc debug bootstrap</BuildCommand>
<RebuildCommand></RebuildCommand> <RebuildCommand></RebuildCommand>
<BuildFileCommand></BuildFileCommand> <BuildFileCommand></BuildFileCommand>
<CleanCommand>psh ./scripts/clean.ps1</CleanCommand> <CleanCommand>pwsh ./scripts/clean.ps1</CleanCommand>
<BuildWorkingDirectory></BuildWorkingDirectory> <BuildWorkingDirectory></BuildWorkingDirectory>
<CancelBuild></CancelBuild> <CancelBuild></CancelBuild>
<RunCommand>./test/gen/build/gencpp.exe</RunCommand> <RunCommand>./test/gen/build/gencpp.exe</RunCommand>

View File

@ -366,6 +366,9 @@
<Content Include="scripts\helpers\target_arch.psm1" /> <Content Include="scripts\helpers\target_arch.psm1" />
<Content Include="scripts\refactor.ps1" /> <Content Include="scripts\refactor.ps1" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Folder Include="singleheader\gen\" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">
</ImportGroup> </ImportGroup>

View File

@ -7,7 +7,6 @@ Builder Builder::open( char const* path )
Builder result; Builder result;
FileError error = file_open_mode( & result.File, EFileMode_WRITE, path ); FileError error = file_open_mode( & result.File, EFileMode_WRITE, path );
if ( error != EFileError_NONE ) if ( error != EFileError_NONE )
{ {
log_failure( "gen::File::open - Could not open file: %s", path); log_failure( "gen::File::open - Could not open file: %s", path);

View File

@ -96,8 +96,8 @@ $lib_winmm = 'Winmm.lib'
$stack_size = 1024 * 1024 * 4 $stack_size = 1024 * 1024 * 4
$compiler_args = @( $compiler_args = @(
($flag_define + 'UNICODE'), ( $flag_define + 'UNICODE'),
($flag_define + '_UNICODE') ( $flag_define + '_UNICODE')
( $flag_define + 'INTELLISENSE_DIRECTIVES=0'), ( $flag_define + 'INTELLISENSE_DIRECTIVES=0'),
( $flag_define + 'RL_USE_LIBTYPE_SHARED') ( $flag_define + 'RL_USE_LIBTYPE_SHARED')
# ($flag_set_stack_size + $stack_size) # ($flag_set_stack_size + $stack_size)

View File

@ -75,7 +75,7 @@ namespace ECode
StrC to_str( Type type ) StrC to_str( Type type )
{ {
local_persist StrC lookup[] { local_persist StrC lookup[] {
{sizeof( "Invalid" ), "Invalid" }, { sizeof( "Invalid" ), "Invalid" },
{ sizeof( "Untyped" ), "Untyped" }, { sizeof( "Untyped" ), "Untyped" },
{ sizeof( "NewLine" ), "NewLine" }, { sizeof( "NewLine" ), "NewLine" },
{ sizeof( "Comment" ), "Comment" }, { sizeof( "Comment" ), "Comment" },
@ -98,7 +98,7 @@ namespace ECode
{ sizeof( "Execution" ), "Execution" }, { sizeof( "Execution" ), "Execution" },
{ sizeof( "Export_Body" ), "Export_Body" }, { sizeof( "Export_Body" ), "Export_Body" },
{ sizeof( "Extern_Linkage" ), "Extern_Linkage" }, { sizeof( "Extern_Linkage" ), "Extern_Linkage" },
{ sizeof( "Extern_Linkage_Body" ), "Extern_Linkage_Body"}, { sizeof( "Extern_Linkage_Body" ), "Extern_Linkage_Body" },
{ sizeof( "Friend" ), "Friend" }, { sizeof( "Friend" ), "Friend" },
{ sizeof( "Function" ), "Function" }, { sizeof( "Function" ), "Function" },
{ sizeof( "Function_Fwd" ), "Function_Fwd" }, { sizeof( "Function_Fwd" ), "Function_Fwd" },
@ -110,7 +110,7 @@ namespace ECode
{ sizeof( "Operator" ), "Operator" }, { sizeof( "Operator" ), "Operator" },
{ sizeof( "Operator_Fwd" ), "Operator_Fwd" }, { sizeof( "Operator_Fwd" ), "Operator_Fwd" },
{ sizeof( "Operator_Member" ), "Operator_Member" }, { sizeof( "Operator_Member" ), "Operator_Member" },
{ sizeof( "Operator_Member_Fwd" ), "Operator_Member_Fwd"}, { sizeof( "Operator_Member_Fwd" ), "Operator_Member_Fwd" },
{ sizeof( "Operator_Cast" ), "Operator_Cast" }, { sizeof( "Operator_Cast" ), "Operator_Cast" },
{ sizeof( "Operator_Cast_Fwd" ), "Operator_Cast_Fwd" }, { sizeof( "Operator_Cast_Fwd" ), "Operator_Cast_Fwd" },
{ sizeof( "Parameters" ), "Parameters" }, { sizeof( "Parameters" ), "Parameters" },
@ -118,7 +118,7 @@ namespace ECode
{ sizeof( "Preprocess_Include" ), "Preprocess_Include" }, { sizeof( "Preprocess_Include" ), "Preprocess_Include" },
{ sizeof( "Preprocess_If" ), "Preprocess_If" }, { sizeof( "Preprocess_If" ), "Preprocess_If" },
{ sizeof( "Preprocess_IfDef" ), "Preprocess_IfDef" }, { sizeof( "Preprocess_IfDef" ), "Preprocess_IfDef" },
{ sizeof( "Preprocess_IfNotDef" ), "Preprocess_IfNotDef"}, { sizeof( "Preprocess_IfNotDef" ), "Preprocess_IfNotDef" },
{ sizeof( "Preprocess_ElIf" ), "Preprocess_ElIf" }, { sizeof( "Preprocess_ElIf" ), "Preprocess_ElIf" },
{ sizeof( "Preprocess_Else" ), "Preprocess_Else" }, { sizeof( "Preprocess_Else" ), "Preprocess_Else" },
{ sizeof( "Preprocess_EndIf" ), "Preprocess_EndIf" }, { sizeof( "Preprocess_EndIf" ), "Preprocess_EndIf" },

View File

@ -58,7 +58,7 @@ namespace EOperator
StrC to_str( Type op ) StrC to_str( Type op )
{ {
local_persist StrC lookup[] { local_persist StrC lookup[] {
{sizeof( "INVALID" ), "INVALID"}, { sizeof( "INVALID" ), "INVALID" },
{ sizeof( "=" ), "=" }, { sizeof( "=" ), "=" },
{ sizeof( "+=" ), "+=" }, { sizeof( "+=" ), "+=" },
{ sizeof( "-=" ), "-=" }, { sizeof( "-=" ), "-=" },

View File

@ -46,7 +46,7 @@ namespace ESpecifier
StrC to_str( Type type ) StrC to_str( Type type )
{ {
local_persist StrC lookup[] { local_persist StrC lookup[] {
{sizeof( "INVALID" ), "INVALID" }, { sizeof( "INVALID" ), "INVALID" },
{ sizeof( "consteval" ), "consteval" }, { sizeof( "consteval" ), "consteval" },
{ sizeof( "constexpr" ), "constexpr" }, { sizeof( "constexpr" ), "constexpr" },
{ sizeof( "constinit" ), "constinit" }, { sizeof( "constinit" ), "constinit" },
@ -56,7 +56,7 @@ namespace ESpecifier
{ sizeof( "global" ), "global" }, { sizeof( "global" ), "global" },
{ sizeof( "inline" ), "inline" }, { sizeof( "inline" ), "inline" },
{ sizeof( "internal" ), "internal" }, { sizeof( "internal" ), "internal" },
{ sizeof( "local_persist" ), "local_persist"}, { sizeof( "local_persist" ), "local_persist" },
{ sizeof( "mutable" ), "mutable" }, { sizeof( "mutable" ), "mutable" },
{ sizeof( "neverinline" ), "neverinline" }, { sizeof( "neverinline" ), "neverinline" },
{ sizeof( "*" ), "*" }, { sizeof( "*" ), "*" },

View File

@ -116,7 +116,7 @@ namespace parser
StrC to_str( Type type ) StrC to_str( Type type )
{ {
local_persist StrC lookup[] { local_persist StrC lookup[] {
{sizeof( "__invalid__" ), "__invalid__" }, { sizeof( "__invalid__" ), "__invalid__" },
{ sizeof( "private" ), "private" }, { sizeof( "private" ), "private" },
{ sizeof( "protected" ), "protected" }, { sizeof( "protected" ), "protected" },
{ sizeof( "public" ), "public" }, { sizeof( "public" ), "public" },
@ -211,8 +211,8 @@ namespace parser
{ sizeof( "_W64" ), "_W64" }, { sizeof( "_W64" ), "_W64" },
{ sizeof( "..." ), "..." }, { sizeof( "..." ), "..." },
{ sizeof( "__attrib_start__" ), "__attrib_start__" }, { sizeof( "__attrib_start__" ), "__attrib_start__" },
{ sizeof( "GEN_API_Export_Code" ), "GEN_API_Export_Code"}, { sizeof( "GEN_API_Export_Code" ), "GEN_API_Export_Code" },
{ sizeof( "GEN_API_Import_Code" ), "GEN_API_Import_Code"}, { sizeof( "GEN_API_Import_Code" ), "GEN_API_Import_Code" },
}; };
return lookup[ type ]; return lookup[ type ];
} }

View File

@ -195,7 +195,7 @@ struct Array
return get_header()->Num; return get_header()->Num;
} }
bool pop( void ) void pop( void )
{ {
Header& header = * get_header(); Header& header = * get_header();
@ -246,7 +246,11 @@ struct Array
return true; return true;
if ( new_capacity < header.Num ) if ( new_capacity < header.Num )
{
// Already have the memory, mine as well keep it.
header.Num = new_capacity; header.Num = new_capacity;
return true;
}
sw size = sizeof( Header ) + sizeof( Type ) * new_capacity; sw size = sizeof( Header ) + sizeof( Type ) * new_capacity;
Header* new_header = rcast( Header*, alloc( header.Allocator, size ) ); Header* new_header = rcast( Header*, alloc( header.Allocator, size ) );
@ -289,6 +293,8 @@ struct Array
} }
}; };
// TODO(Ed) : This thing needs ALOT of work.
template<typename Type> template<typename Type>
struct HashTable struct HashTable
{ {

View File

@ -24,7 +24,16 @@ void validate_file_ast( char const* path, char const* path_gen )
{ {
log_fmt( "\nValidating: %s", path ); log_fmt( "\nValidating: %s", path );
String path_temp = String::make_length( GlobalAllocator, path_gen, str_len( path_gen ) );
FileContents file = file_read_contents( GlobalAllocator, true, path ); FileContents file = file_read_contents( GlobalAllocator, true, path );
// FileError error = file_open_mode( & path_temp, EFileMode_WRITE, path );
// if ( error != EFileError_NONE )
// {
// log_failure( "gen::File::open - Could not open file: %s", path);
// return;
// }
u64 time_start = time_rel_ms(); u64 time_start = time_rel_ms();
CodeBody ast = parse_global_body( { file.size, (char const*)file.data } ); CodeBody ast = parse_global_body( { file.size, (char const*)file.data } );
log_fmt("\n\tAst generated. Time taken: %llu ms", time_rel_ms() - time_start); log_fmt("\n\tAst generated. Time taken: %llu ms", time_rel_ms() - time_start);