Skip to content

Commit aa2170b

Browse files
authored
Merge pull request #63 from Ed94/string_distinctings_refactor
Resolved #56
2 parents 8d48da0 + 5705196 commit aa2170b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+2880
-3294
lines changed

.vscode/bookmarks.json

Whitespace-only changes.

base/Readme.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ The convention you'll see used throughout the upfront interface of the library i
148148
1. Check name or parameters to make sure they are valid for the construction requested
149149
2. Create a code object using `make_code`.
150150
3. Populate immediate fields (Name, Type, ModuleFlags, etc)
151-
4. Populate sub-entires using `add_entry`. If using the default serialization function `to_string`, follow the order at which entires are expected to appear (there is a strong ordering expected).
151+
4. Populate sub-entires using `add_entry`. If using the default serialization function `to_strbuilder`, follow the order at which entires are expected to appear (there is a strong ordering expected).
152152

153153
Names or Content fields are interned strings and thus showed be cached using `get_cached_string` if its desired to preserve that behavior.
154154

base/auxillary/builder.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,45 +15,45 @@ Builder builder_open( char const* path )
1515
return result;
1616
}
1717

18-
result.Buffer = string_make_reserve( GlobalAllocator, Builder_StrBufferReserve );
18+
result.Buffer = strbuilder_make_reserve( GlobalAllocator, Builder_StrBufferReserve );
1919

2020
// log_fmt("$Builder - Opened file: %s\n", result.File.filename );
2121
return result;
2222
}
2323

2424
void builder_pad_lines( Builder* builder, s32 num )
2525
{
26-
string_append_strc( & builder->Buffer, txt("\n") );
26+
strbuilder_append_str( & builder->Buffer, txt("\n") );
2727
}
2828

2929
void builder_print( Builder* builder, Code code )
3030
{
31-
String str = code_to_string(code);
31+
StrBuilder str = code_to_strbuilder(code);
3232
// const ssize len = str.length();
3333
// log_fmt( "%s - print: %.*s\n", File.filename, len > 80 ? 80 : len, str.Data );
34-
string_append_string( & builder->Buffer, str );
34+
strbuilder_append_string( & builder->Buffer, str );
3535
}
3636

3737
void builder_print_fmt_va( Builder* builder, char const* fmt, va_list va )
3838
{
3939
ssize res;
4040
char buf[ GEN_PRINTF_MAXLEN ] = { 0 };
4141

42-
res = str_fmt_va( buf, count_of( buf ) - 1, fmt, va ) - 1;
42+
res = c_str_fmt_va( buf, count_of( buf ) - 1, fmt, va ) - 1;
4343

44-
string_append_c_str_len( (String*) & (builder->Buffer), (char const*)buf, res);
44+
strbuilder_append_c_str_len( (StrBuilder*) & (builder->Buffer), (char const*)buf, res);
4545
}
4646

4747
void builder_write(Builder* builder)
4848
{
49-
b32 result = file_write( & builder->File, builder->Buffer, string_length(builder->Buffer) );
49+
b32 result = file_write( & builder->File, builder->Buffer, strbuilder_length(builder->Buffer) );
5050

5151
if ( result == false )
5252
log_failure("gen::File::write - Failed to write to file: %s\n", file_name( & builder->File ) );
5353

5454
log_fmt( "Generated: %s\n", builder->File.filename );
5555
file_close( & builder->File );
56-
string_free(& builder->Buffer);
56+
strbuilder_free(& builder->Buffer);
5757
}
5858

5959
#pragma endregion Builder

base/auxillary/builder.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ void builder_write( Builder* builder );
3636
struct Builder
3737
{
3838
FileInfo File;
39-
String Buffer;
39+
StrBuilder Buffer;
4040

4141
#if GEN_COMPILER_CPP && ! GEN_C_LIKE_CPP
4242
forceinline static Builder open( char const* path ) { return builder_open(path); }

base/auxillary/gen_template.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,4 @@ CodeFn gen_func_template( CodeTemplate template, ... );
3232
Code gen_class_struct_template( CodeTemplate template, ... );
3333

3434
Code gen_template( CodeTemplate template, ... );
35-
Code gen_template( StrC template, StrC instantiation );
35+
Code gen_template( Str template, Str instantiation );

base/auxillary/scanner.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ Code scan_file( char const* path )
2020
GEN_FATAL("scan_file: %s is empty", path );
2121
}
2222

23-
String str = string_make_reserve( GlobalAllocator, fsize );
23+
StrBuilder str = strbuilder_make_reserve( GlobalAllocator, fsize );
2424
file_read( & file, str, fsize );
25-
string_get_header(str)->Length = fsize;
25+
strbuilder_get_header(str)->Length = fsize;
2626

2727
// Skip GEN_INTELLISENSE_DIRECTIVES preprocessor blocks
2828
// Its designed so that the directive should be the first thing in the file.
@@ -31,9 +31,9 @@ Code scan_file( char const* path )
3131
#define current (*scanner)
3232
#define matched 0
3333
#define move_fwd() do { ++ scanner; -- left; } while (0)
34-
const StrC directive_start = txt( "ifdef" );
35-
const StrC directive_end = txt( "endif" );
36-
const StrC def_intellisense = txt("GEN_INTELLISENSE_DIRECTIVES" );
34+
const Str directive_start = txt( "ifdef" );
35+
const Str directive_end = txt( "endif" );
36+
const Str def_intellisense = txt("GEN_INTELLISENSE_DIRECTIVES" );
3737

3838
bool found_directive = false;
3939
char const* scanner = (char const*)str;
@@ -49,15 +49,15 @@ Code scan_file( char const* path )
4949

5050
if ( ! found_directive )
5151
{
52-
if ( left && str_compare_len( scanner, directive_start.Ptr, directive_start.Len ) == matched )
52+
if ( left && c_str_compare_len( scanner, directive_start.Ptr, directive_start.Len ) == matched )
5353
{
5454
scanner += directive_start.Len;
5555
left -= directive_start.Len;
5656

5757
while ( left && char_is_space( current ) )
5858
move_fwd();
5959

60-
if ( left && str_compare_len( scanner, def_intellisense.Ptr, def_intellisense.Len ) == matched )
60+
if ( left && c_str_compare_len( scanner, def_intellisense.Ptr, def_intellisense.Len ) == matched )
6161
{
6262
scanner += def_intellisense.Len;
6363
left -= def_intellisense.Len;
@@ -77,7 +77,7 @@ Code scan_file( char const* path )
7777
continue;
7878
}
7979

80-
if ( left && str_compare_len( scanner, directive_end.Ptr, directive_end.Len ) == matched )
80+
if ( left && c_str_compare_len( scanner, directive_end.Ptr, directive_end.Len ) == matched )
8181
{
8282
scanner += directive_end.Len;
8383
left -= directive_end.Len;
@@ -94,12 +94,12 @@ Code scan_file( char const* path )
9494
if ( (scanner + 2) >= ( (char const*) str + fsize ) )
9595
{
9696
mem_move( str, scanner, left );
97-
string_get_header(str)->Length = left;
97+
strbuilder_get_header(str)->Length = left;
9898
break;
9999
}
100100

101101
mem_move( str, scanner, left );
102-
string_get_header(str)->Length = left;
102+
strbuilder_get_header(str)->Length = left;
103103

104104
break;
105105
}
@@ -113,12 +113,12 @@ Code scan_file( char const* path )
113113
}
114114

115115
file_close( & file );
116-
return untyped_str( string_to_strc(str) );
116+
return untyped_str( strbuilder_to_str(str) );
117117
}
118118

119119
CodeBody parse_file( const char* path ) {
120120
FileContents file = file_read_contents( GlobalAllocator, true, path );
121-
StrC content = { file.size, (char const*)file.data };
121+
Str content = { (char const*)file.data, file.size };
122122
CodeBody code = parse_global_body( content );
123123
log_fmt("\nParsed: %s\n", path);
124124
return code;

base/base.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,13 @@ int gen_main()
3535
def_include(txt("components/types.hpp")),
3636
preprocess_endif,
3737
fmt_newline,
38-
untyped_str( to_strc_from_c_str(generation_notice) )
38+
untyped_str( to_str_from_c_str(generation_notice) )
3939
));
4040

4141
CodeBody ecode = gen_ecode ( "enums/ECodeTypes.csv" );
4242
CodeBody eoperator = gen_eoperator ( "enums/EOperator.csv" );
4343
CodeBody especifier = gen_especifier( "enums/ESpecifier.csv" );
44+
CodeBody etoktype = gen_etoktype ( "enums/ETokType.csv", "enums/AttributeTokens.csv" );
4445
CodeBody ast_inlines = gen_ast_inlines();
4546

4647
Builder header_ecode = builder_open( "components/gen/ecodetypes.hpp" );
@@ -57,6 +58,11 @@ int gen_main()
5758
builder_print( & header_especifier, gen_component_header );
5859
builder_print( & header_especifier, format(especifier) );
5960
builder_write( & header_especifier);
61+
62+
Builder header_etoktype = builder_open( "components/gen/etoktype.cpp" );
63+
builder_print( & header_etoktype, gen_component_header );
64+
builder_print( & header_etoktype, format(etoktype) );
65+
builder_write( & header_etoktype);
6066

6167
Builder header_ast_inlines = builder_open( "components/gen/ast_inlines.hpp" );
6268
builder_print( & header_ast_inlines, gen_component_header );

0 commit comments

Comments
 (0)