mirror of
				https://github.com/Ed94/gencpp.git
				synced 2025-10-30 22:40:54 -07:00 
			
		
		
		
	borken : lots of stuff changed, explaining in later commit...v
This commit is contained in:
		
							
								
								
									
										1146
									
								
								gen_c_library/Test.jsonc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1146
									
								
								gen_c_library/Test.jsonc
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,8 +1,6 @@ | ||||
| #define GEN_DEFINE_LIBRARY_CODE_CONSTANTS | ||||
| #define GEN_ENFORCE_STRONG_CODE_TYPES | ||||
| #define GEN_EXPOSE_BACKEND | ||||
| #define GEN_SUPPORT_CPP_MEMBER_FEATURES 1 | ||||
| #define GEN_SUPPORT_CPP_REFERENCES      1 | ||||
| #include "../project/gen.cpp" | ||||
|  | ||||
| #include "helpers/push_ignores.inline.hpp" | ||||
| @@ -97,6 +95,8 @@ CodeBody parse_file( const char* path ) | ||||
| 	return code; | ||||
| } | ||||
|  | ||||
| constexpr bool helper_use_c_definition = true; | ||||
|  | ||||
| int gen_main() | ||||
| { | ||||
| #define project_dir "../project/" | ||||
| @@ -138,7 +138,7 @@ int gen_main() | ||||
| 					if (using_ver->UnderlyingType->ReturnType) | ||||
| 					{ | ||||
| 						CodeTypename type       = using_ver->UnderlyingType; | ||||
| 						CodeTypedef typedef_ver = parse_typedef(token_fmt(  | ||||
| 						CodeTypedef typedef_ver = parse_typedef(token_fmt( | ||||
| 							"ReturnType", to_string(type->ReturnType).to_strc() | ||||
| 						,	"Name"      , using_ver->Name | ||||
| 						,	"Parameters", to_string(type->Params).to_strc() | ||||
| @@ -170,10 +170,12 @@ int gen_main() | ||||
| 		Code inlines 	= scan_file( project_dir "components/inlines.hpp" ); | ||||
| 		Code header_end = scan_file( project_dir "components/header_end.hpp" ); | ||||
|  | ||||
| 		CodeBody ecode       = gen_ecode     ( project_dir "enums/ECode.csv" ); | ||||
| 		CodeBody eoperator   = gen_eoperator ( project_dir "enums/EOperator.csv" ); | ||||
| 		CodeBody especifier  = gen_especifier( project_dir "enums/ESpecifier.csv" ); | ||||
| 		CodeBody ast_inlines = gen_ast_inlines(); | ||||
| 		CodeBody ecode       = gen_ecode     ( project_dir "enums/ECode.csv",      helper_use_c_definition ); | ||||
| 		CodeBody eoperator   = gen_eoperator ( project_dir "enums/EOperator.csv",  helper_use_c_definition ); | ||||
| 		CodeBody especifier  = gen_especifier( project_dir "enums/ESpecifier.csv", helper_use_c_definition ); | ||||
|  | ||||
| 		// Only has operator overload definitions that C doesn't need. | ||||
| 		// CodeBody ast_inlines = gen_ast_inlines(); | ||||
|  | ||||
| 		CodeBody parsed_ast = parse_file( project_dir "components/ast.hpp" ); | ||||
| 		CodeBody ast        = def_body(CT_Global_Body); | ||||
| @@ -185,7 +187,7 @@ int gen_main() | ||||
| 				CodePreprocessCond cond = cast(CodePreprocessCond, entry); | ||||
| 				if (cond->Content.contains(txt("GEN_COMPILER_C"))) | ||||
| 				{ | ||||
| 					//++ entry;         //  | ||||
| 					//++ entry;         // | ||||
| 					//ast.append(entry) // typedef | ||||
| 					//for ( ; entry != parsed_ast.end() && entry->Type != CT_Preprocess_EndIf; ++ entry) {} | ||||
| 					//++ entry;        // Consume endif | ||||
| @@ -292,15 +294,13 @@ R"(#define AST_ArrSpecs_Cap       \ | ||||
| 				case CT_Function: | ||||
| 				{ | ||||
| 					CodeFn fn = cast(CodeFn, entry); | ||||
| 					s32 constexpr_found = fn->Specs.remove( Spec_Constexpr ); | ||||
| 					if (constexpr_found > -1) { | ||||
| 						log_fmt("Found constexpr: %S\n", entry.to_string()); | ||||
| 						fn->Specs.append(Spec_Inline); | ||||
| 					if (fn->Specs) { | ||||
| 						s32 constexpr_found = fn->Specs.remove( Spec_Constexpr ); | ||||
| 						if (constexpr_found > -1) { | ||||
| 							log_fmt("Found constexpr: %S\n", entry.to_string()); | ||||
| 							fn->Specs.append(Spec_Inline); | ||||
| 						} | ||||
| 					} | ||||
| 					// for ( StrC id : to_rename ) if (fn->Name.is_equal(id)) { | ||||
| 					// 	Array(CodeFn) list = * needs_selectors.get(id); | ||||
| 					// 	list.append(rename_function_to_unique_symbol(fn)); | ||||
| 					// } | ||||
| 					memory.append(fn); | ||||
| 				} | ||||
| 				break; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user