Commit Graph
100 Commits
Author SHA1 Message Date
ed cf3908c6f0 Added alpha warning message to header_start.hpp files. 2024-12-05 21:37:07 -05:00
ed 266163557f Finished draft pass verifying containers.array.hpp is equivalent to container.hpp's array.
gen_generic_selection_function_macro now works generically
Imprvoed _Generic function overloading examples
2024-12-05 21:01:04 -05:00
ed 8bb2bc7b1b fixes on containers (compiles but still verifying parity with c++ templates
I'm going to have to change some c++ templates to match the init interfaces as they must not be in the return type
2024-12-05 17:48:24 -05:00
ed a3407c14d5 First compiling version of operator overloading for C! (on both msvc and clang using -std=c11 flag, using _Generic selection with some helper macros)
Extremely satsified with how unofuscated the generated code is for _Generic.
Still fixing up the templated container code though in the c-codegen
2024-12-05 17:04:17 -05:00
ed 47b9c37e94 began to setup generation of Array_ssize and StringTable in the c-library
Still need to confirm if the these old templates require updates compared to the c++ impl
2024-12-05 03:41:08 -05:00
ed 1c3134218e preogress on getting dependencies compilable in C-library 2024-12-05 02:53:14 -05:00
ed a3e7ec4c72 successful compile of c_library for: platform, macros, basic_types, debug, and memory headers (and newly generated c-code) 2024-12-05 00:40:51 -05:00
ed cae1555b11 wip having nasty parser issue (fixed nasty lexer bug) 2024-12-04 15:00:37 -05:00
ed f7709bb64e more progress 2024-12-04 11:30:54 -05:00
ed 3a55af9ce4 WIP(broken): Converting base library to use c-linkage symbols only 2024-12-04 11:01:53 -05:00
ed 6081834687 bug fix 2024-12-03 20:42:35 -05:00
ed a3548a5bd3 Added support for friend operator definitions 2024-12-03 20:21:08 -05:00
ed d686831a7c Completed initial conversion 2024-12-03 19:31:26 -05:00
ed ba1dd1894a WIP (Broken): Major changes to handling Strings in ast (StringCached defined as StrC) 2024-12-03 18:47:12 -05:00
ed e00b2f8afb Reduced ECode to C compatible vairant 2024-12-03 15:19:39 -05:00
ed 72d088c566 reduction done on eoperator 2024-12-03 13:51:29 -05:00
ed c6fba23173 reduce ESpecifier to c-compatiable enum 2024-12-03 13:14:14 -05:00
ed d45908fb32 reduce TokType enum to c-compatiable 2024-12-03 09:50:30 -05:00
ed a7c9dad9fd cpp feature reduction usage in parser 2024-12-03 09:31:27 -05:00
ed 63ebd0d094 removed reference type usage in components/lexer.cpp, looking into resolving 'using namespace' usage 2024-12-03 01:44:01 -05:00
ed f28ae57f16 setup upfront interface to have optional vars in structs (for C later) 2024-12-03 00:45:30 -05:00
ed 2fe708e4be Began to reduce cpp feature usage in lexer and parser 2024-12-02 22:25:39 -05:00
ed 69a9abcd59 Finished AST/Code member inferface usage elimination in base library.
Now the lexer and parser need to be elimination...
2024-12-02 20:20:30 -05:00
ed defe42c15c member proc usage reductions on CodeTypes complete (Typedef, Union, Using, Var)
proceeding to finalize the AST interface reductions...
2024-12-02 18:58:07 -05:00
ed 05e65aa464 Did reductions on Module, NS, Operator, OpCast, Pragma, PreprocessCond, Template, and Type codes 2024-12-02 18:35:34 -05:00
ed 8f47f3b30f Comment, Constructor, Destructor, Define, Enum, Exec, Extern, Include, Friend, Fn codes member proc usage reductions 2024-12-02 16:59:13 -05:00
ed 0bad61fda6 remove raw member def from code types, reduction on CodeAttributes 2024-12-02 11:20:31 -05:00
ed ea18792373 Progress on member proc usage reduction (CodeParam, CodeSpecifiers) 2024-12-02 10:58:24 -05:00
ed 16b8a3a164 began to remove usage of code specific types member procs 2024-12-02 04:12:09 -05:00
ed 5b0079fb0c ast interface uage reductions 2024-12-02 03:18:52 -05:00
ed 9321a04ebc reduction of Code struct member function usage in base lib 2024-12-02 02:38:55 -05:00
ed 9b68791e38 fixes for array when not using member features. 2024-12-02 02:11:49 -05:00
ed 2dcc968c39 Preparing for reductions on code_types.hpp 2024-12-02 01:56:49 -05:00
ed c38b077c37 Code::set_global reduction 2024-12-02 00:43:57 -05:00
ed f9b5029e64 Code::is_valid rection 2024-12-02 00:41:41 -05:00
ed 2b24511f7d Code::is_equal reduction 2024-12-02 00:34:40 -05:00
ed 5cd69e1742 Code::is_body reduction 2024-12-02 00:18:54 -05:00
ed 007bfa0cb0 Code::duplicate reduction 2024-12-02 00:16:11 -05:00
ed 37c33ffb3e reduction on debug_str 2024-12-02 00:10:24 -05:00
ed 937235b776 progress (Code) 2024-12-02 00:03:38 -05:00
ed f9c21ebc04 progress 2024-12-01 23:35:58 -05:00
ed fec709cc76 Progresss 2024-12-01 21:59:43 -05:00
ed 80cb3f4eca Significant progress reducing c++ feature usage in the library. 2024-12-01 18:50:37 -05:00
ed 9e88cb8724 String::is_equal added (bad last commit) 2024-12-01 13:29:33 -05:00
ed f61c1c560d String::is_equal added 2024-12-01 13:29:16 -05:00
ed 8ef982003a Added is_body to AST and Code types 2024-12-01 12:48:58 -05:00
ed 31691b1466 Fixed issue with HashTable region detection 2024-12-01 05:37:03 -05:00
ed ed0c0422ad Looking into what the library's convention for enums will be.
Most likely will just reduce them to C-enums with underlying type.
Otherwise there has to be a mechanism to drop the defs down to them anyways, and eliminate the namespace wraps.
2024-12-01 05:30:37 -05:00
ed e5acac1d18 String member definitions not longer used in the base project 2024-12-01 03:06:30 -05:00
ed c7b072266f progress on c_library.cpp 2024-12-01 01:40:31 -05:00
ed a96d03eaed brought over the generators of array and hashtable for c-lib gen
From the old genc repo. Still need to fully check that its code is up to date
2024-12-01 01:40:14 -05:00
ed 0b4ccac8f9 Removed usage of hashtable member procs 2024-12-01 01:39:21 -05:00
ed 31a3609b28 some fixes to c's fixed_arena gen 2024-11-30 23:48:14 -05:00
ed fbdb870986 Finished first pass reviewing memory.hpp for C lib generation 2024-11-30 23:38:27 -05:00
ed 6d04165b96 Reduce cpp freatures usage of Array container.
Almost ready to be inter-operable with C
2024-11-30 18:54:19 -05:00
ed cc245cc263 new files 2024-11-30 17:22:06 -05:00
ed 06deb1e836 memory.hpp no longer uses memory mappings by default 2024-11-30 17:18:49 -05:00
ed 5527a27f7b prepare c_library meta-program a bit 2024-11-30 16:54:03 -05:00
ed a67fdef20a dir restructuring
just making it more organized (gen_ prefix for library generation meta-programs)
2024-11-30 16:50:53 -05:00
ed 056a5863b8 for the future... 2024-11-30 14:34:28 -05:00
ed 79eb5f1f76 strings done 2024-11-30 14:13:30 -05:00
ed c6cb583518 Hashtable done 2024-11-30 13:31:59 -05:00
ed 34eec66f35 Array done 2024-11-30 13:14:47 -05:00
ed 4137ebfbd8 pool done (see previous commits for context) 2024-11-30 12:27:54 -05:00
ed 5958dd2055 Did arena and fixedarena changes (for reducing usage of member procs) 2024-11-30 12:16:01 -05:00
ed 163ad0a511 looking into removing "oop" features from base library
I want to make member functions an optional addition the user can generate a derivative library with.
The purpose is to simplify the implementation as to make generating a C-variant simpiler.

I also want to use it as a study to see how much simpiler it makes the library without having it.
2024-11-29 15:18:06 -05:00
ed e3c2a577ba addded String::contains defs 2024-11-29 14:50:54 -05:00
ed 81a0376c99 Need cstdlib for systems calls in generator files. update to package_release.ps1 2024-10-27 21:38:02 -04:00
ed 1417a68757 updates to test validations
They don't really work great right now...
2024-10-27 21:19:25 -04:00
ed 1e4d5ce630 touchup to singleheader.cpp 2024-10-27 21:18:58 -04:00
ed 0f2763a115 fixes for unreal use 2024-10-27 21:18:41 -04:00
ed 420f452d35 More fixes found by self-parsing 2024-10-27 20:22:36 -04:00
ed 908c385de5 Fix exp asts having bad union definitions.
They're not used yet but was causing self-parsing issues.
2024-10-27 20:22:24 -04:00
ed c1878265c8 Minimizing reformatting of generated library files 2024-10-27 20:01:54 -04:00
ed 23742868c4 Delete auxillary/vis_ast
When I get to making this it will be with SectrPrototype
2024-10-27 18:59:17 -04:00
ed 2e5e31ed3b gencpp : General refactors to dependencies
Mostly just cleanup and renaming of certain stuff (mostly in dependencies).

* Changed uw and sw to usize and ssize.
* Removed zpl_cast usage throughout dependencies
* No longer using GEN_DEF_INLINE & GEN_IMPL_INLINE
* header_start.hpp renamed to platform.hpp for depdendencies header.
2024-10-27 18:58:37 -04:00
ed 00df336610 fix type on parser namespace in singleheader.cpp 2024-10-26 18:42:23 -04:00
ed d89c9a6072 de-hardcode target_arch.psm1 import 2024-10-25 13:11:21 -04:00
ed 6aa99ac1d5 change how path_root is resolved so it works when cloned into another repository 2024-10-25 13:07:39 -04:00
ed 3989f5fa83 formatting and removing unused code 2024-10-25 12:54:55 -04:00
ed f90c0a59b6 inital implemention of UE library variant generator completed 2024-10-25 05:01:37 -04:00
ed 33f992ef56 Updated generated ast_inlines.hpp so that operator defs have the inline explicit
* Added support for parsing/serializing specifiers for OpCast roughtly.. Doesn't have constraints on what specifiers beyond whats expected in global nspace scope..
* Minor adjustments to hashtable to avoid UE compile errors
* Make sure scanner.cpp is being made by bootstrap
2024-10-25 04:08:20 -04:00
ed 0542204b35 progress on unreal variant generator 2024-10-25 03:00:07 -04:00
ed e5616c5879 generated code update + reverting some fixes for now... 2024-10-25 02:59:56 -04:00
ed 40a256f6c3 initial setup for generating a library compatible for usage as an Unreal thirdyparty module. 2024-10-25 01:04:48 -04:00
ed b8e1aa6eb7 WIP : Fixes and other changes
* Number literals weren't getting properly lexed
* Fixes for compiler errors with Unreal Engine configuration.
* Support for "post-name" macros in parameters
* Support for variables initializing directly using constructor syntax.
* Explicitly added inline keyword to header inlines for compiling compile library in multiple translation units.
2024-10-25 01:04:17 -04:00
ed e1592ba410 Bug fixes and updates to package_release.ps1
- Incrased size of the defines_map_arena to 256KB
- Various fixes for the parser
- Various fixes for code serialization
- Fix for is_equal member func in Code types
- Fixes for hasthable container
- Added are_equal static func to String type for use against StrC
- Added starts_with functions to String type
- package_release.ps1 now packages all docs (forgot to update it with last release)
2024-05-05 21:53:22 -04:00
ed 4a2a93d41b Updated docs 2024-04-17 18:29:30 -04:00
ed 36260f6edb Updated gencpp with latest fixes used in other projects.
This variant can support parsing some Unreal Engine files!!
2024-04-17 17:40:32 -04:00
ed 83d691c65c Pushing latest changes for gencpp 2024-04-17 16:55:22 -04:00
ed 626ab703a7 Fixed some compilation errors 2023-11-22 15:41:41 -05:00
ed 6b10cd2b3e Updated AST_Types.md doc 2023-11-22 15:03:24 -05:00
ed 91a3250d4c Finished current iteration of parser_algo docs and parser.cpp inline comment docs
Added some todos and prep for upcoming changes
2023-11-22 14:23:21 -05:00
ed a667eb4afe Progress on parser documentation 2023-11-21 23:36:56 -05:00
ed f67f9547df WIP: Improvements to parser, updated docs
Trying to get support for typename keyword soon
2023-11-21 21:27:33 -05:00
ed 772db608be Added support for predefining preprocessor defines before parsing strings of code.
This prevents issues for preprocessor defines not getting treated properly for specific circumstances (such as macro wrappers for specifiers).
2023-11-21 20:09:14 -05:00
ed be023325a9 Added AST & Code definitions segemnted code defs to separate file
For upcoming statements & expression types, just beginning to lay things out for the future.
2023-11-21 20:07:49 -05:00
ed a0ee683f82 Added new csvs for ECode & ETokType to keep track of upcoming additions 2023-11-21 20:06:05 -05:00
ed 6ad0ae97bc Added bool type keyword to ETokType, move volatile pos in ESpecifier
volatile can be applied to a function so I moved it there.
2023-11-21 20:05:38 -05:00
ed 3319bfcaa9 Updates to test and workspace
Added a more granular test using the original library files. Already helped me identify a bug.
2023-11-21 20:03:51 -05:00