// This file was generated automatially by gencpp's bootstrap.cpp (See: https://github.com/Ed94/gencpp) #include "gen.builder.hpp" #ifdef __clang__ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wunused-const-variable" #pragma clang diagnostic ignored "-Wswitch" #pragma clang diagnostic ignored "-Wunused-variable" #pragma clang diagnostic ignored "-Wunknown-pragmas" #pragma clang diagnostic ignored "-Wvarargs" #pragma clang diagnostic ignored "-Wunused-function" #endif #ifdef __GNUC__ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunknown-pragmas" #pragma GCC diagnostic ignored "-Wcomment" #pragma GCC diagnostic ignored "-Wswitch" #pragma GCC diagnostic ignored "-Wunused-variable" #endif GEN_NS_BEGIN Builder Builder::open( char const* path ) { Builder result; FileError error = file_open_mode( &result.File, EFileMode_WRITE, path ); if ( error != EFileError_NONE ) { log_failure( "gen::File::open - Could not open file: %s", path ); return result; } result.Buffer = String::make_reserve( GlobalAllocator, Builder_StrBufferReserve ); // log_fmt("$Builder - Opened file: %s\n", result.File.filename ); return result; } void Builder::pad_lines( s32 num ) { Buffer.append( "\n" ); } void Builder::print( Code code ) { String str = code->to_string(); // const sw len = str.length(); // log_fmt( "%s - print: %.*s\n", File.filename, len > 80 ? 80 : len, str.Data ); Buffer.append( str ); } void Builder::print_fmt( char const* fmt, ... ) { sw res; char buf[GEN_PRINTF_MAXLEN] = { 0 }; va_list va; va_start( va, fmt ); res = str_fmt_va( buf, count_of( buf ) - 1, fmt, va ) - 1; va_end( va ); // log_fmt( "$%s - print_fmt: %.*s\n", File.filename, res > 80 ? 80 : res, buf ); Buffer.append( buf, res ); } void Builder::write() { b32 result = file_write( &File, Buffer, Buffer.length() ); if ( result == false ) log_failure( "gen::File::write - Failed to write to file: %s\n", file_name( &File ) ); log_fmt( "Generated: %s\n", File.filename ); file_close( &File ); Buffer.free(); } GEN_NS_END #ifdef __clang__ #pragma clang diagnostic pop #endif #ifdef __GNUC__ #pragma GCC diagnostic pop #endif