Commit Graph
59 Commits
Author SHA1 Message Date
ed e04f72ddca remove 10x and vs files from repo root 2024-12-14 07:20:09 -05:00
ed 967a044637 Got .lib and .dlls setup for the C11 library 2024-12-14 00:10:07 -05:00
ed e3172057d3 working to towards https://github.com/Ed94/gencpp/issues/56 2024-12-12 12:55:15 -05:00
ed 8891657eb1 Large updates to docs 2024-12-10 19:31:50 -05:00
ed 2c51a2f9c8 WIP: Restructuring project 2024-12-10 16:13:14 -05:00
ed 500f216da2 ast.cpp compiles (among other things) 2024-12-08 23:10:10 -05:00
ed 12e31276eb dependency impl compiles for C11 library (doing components next) 2024-12-08 20:00:16 -05:00
ed 65c3fabc52 C-library gen progress: Header files mostly done, starting dep c impl and fixes to generic selection generation 2024-12-08 16:37:04 -05:00
ed 4d638a7255 borken : lots of stuff changed, explaining in later commit...v 2024-12-07 00:21:09 -05:00
ed cae1555b11 wip having nasty parser issue (fixed nasty lexer bug) 2024-12-04 15:00:37 -05:00
ed 3a55af9ce4 WIP(broken): Converting base library to use c-linkage symbols only 2024-12-04 11:01:53 -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 fbdb870986 Finished first pass reviewing memory.hpp for C lib generation 2024-11-30 23:38:27 -05:00
ed 4137ebfbd8 pool done (see previous commits for context) 2024-11-30 12:27:54 -05:00
ed f90c0a59b6 inital implemention of UE library variant generator completed 2024-10-25 05:01:37 -04:00
ed 83d691c65c Pushing latest changes for gencpp 2024-04-17 16:55:22 -04: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
ed 36ebbfe29b Got refactored raylib working in the vis_ast binary
Now to make that debugger...
2023-11-19 00:01:35 -05:00
ed 040ec00606 Raylib c refactor scripts complete 2023-11-17 19:25:54 -05:00
ed 212d907d73 Fixed bug with inline comments for variables not parsing correctly. 2023-10-25 23:44:25 -04:00
ed b22f589203 Progress on preparing raylib for usage 2023-10-24 12:46:59 -04:00
ed a900e86b65 Got raylib bootstrapped to compile
Still need to setup a refactor script among other things before using.
2023-10-24 06:00:28 -04:00
ed d5a4b77033 Some initial boostrapping of new visual ast aux project 2023-10-24 03:14:20 -04:00
ed f1fb75cc1c Progress on strip_formatting function, support for multi-dimentional array variables and typenames.
strip_formatting suffers from some edge failure with what looks to be escaped character literals (not entirely sure).

I've decided to not remove formatting from unvalidated function bodies since I plan to support parsing its content properly.
However expression values for a statement will fail to have their formatting removed with this.

Since I don't plan to parse those anytime soon, I'll have to fix any edge cases for those at least..
2023-09-06 02:07:09 -04:00
ed 3e249d9bc5 Reorganization of parser, refactor of parse_type( bool* ) and progression of parser docs
Wanted to make parser implementation easier to sift through, so I emphasized alphabetical order more.

Since I couldn't just strip whitespace from typenames I decided to make the parse_type more aware of the typename's components if it was a function signature.
This ofc lead to the dark & damp hell that is parsing typenames.

Also made initial implementation to support parsing decltype within a typename signature..

The test failure for the singleheader is still a thing, these changes have not addressed that.
2023-09-05 01:48:11 -04:00
ed 0197afd543 Changed how editor intellisense directives are handled for compoenents and dependencies
Didn't like the way I was processing them in scan_file.
2023-08-28 23:46:50 -04:00
ed c4846dad26 Formatting fixes 2023-08-22 01:51:59 -04:00
ed db6e8b33eb got intellisense working for the most part...
VScode works withs some issues.
VS2022 fails.
10xEditor works fine.
JetBrains Rider fails due to it not supporting <push/pop>_macro pragmas
2023-08-21 23:07:03 -04:00
ed 4a2ed6de4e another vs code automated edit... 2023-08-21 21:40:05 -04:00
ed 1f9bbddbb7 vs setting update 2023-08-21 21:12:25 -04:00
ed 05fa62eced Test building & generation fixed with altest scripts 2023-08-20 15:45:06 -04:00
ed a6bf60a51e Simpilication of build script, added initial support for tests 2023-08-20 12:31:28 -04:00
ed 32a910515e More refactoring, getting rid of meson in favor of just powershell scripts 2023-08-19 12:18:48 -04:00
ed 34f286d218 Library can now construct into AST and serialization itself (singleheader).
Still need to validate if they match.
2023-08-04 16:12:13 -04:00
ed 62b0ed2112 Finished initial implmentation bootstrap generation and singleheader implementation. 2023-07-25 15:12:51 -04:00
ed 9c81504178 Progress towards bootstrap/singleheader generation
I will most likely need to refactor some of the components & dependencies files to get the desired gneration implementation the way I want.

Specficially I want to be able to eliminate macros I'm using for enums and common patterns for implmeentation of the data structures.

When it comes to the cpp files, I may leave those alone as the macros largely help ith readability.
Replacing those macros is expensive and most likely not worth it.

The macros under consideration with replacing using the library bootstrap are:

* Define_Types
* Define_Operators
* Define_Specifiers
* GEN_Define_Attribute_Tokens
* Define_CodeType
* Using_Code
* Define_TokType
* def_constant_spec ?
* Helper Macros for def_**_body functions ?
  * AST unallowed types case macros?
(The last three I'm unsure about as they work fine, and neeeding the debugger steps there is a rare scenario...)

The enums could be manually generated and have its fields derived from a CSV (which is what genc is currently doing).
This would allow the user to specify custom attribute macros as well with greater ease.

I may maually inline ProcessModuleFlags, as its not even necessary as any specific symbol with a module flag will only use the export value. Import is only used on modules themselves (from what I can tell).

The Parser::lex function could be offloaded to its own file in case the user wants to swap the entire thing out.
(Most likely may want to for various purposes)

The problem with extracting any definitions out of a component file currently is that will lead to splintering that componnet to multiple other components.
This is necessary as the proper scanner is not implemented yet (only a reduimentary scan_file proc is made so far).
2023-07-24 22:19:21 -04:00
ed 74ea502de5 "compentiazation" of gen.hpp and gen.cpp 2023-07-24 17:45:27 -04:00
ed cee55ad080 Suppeort for trailing specifiers for member functions, operators, and operator type casts (Untested) 2023-07-24 00:27:13 -04:00
ed 231ae5f5d6 Some refactors (see description)
- Renamed macro gen_time to GEN_TIME
- Moved scanner and editor to their own headers, I'm going to consider them extensions.
- I'm preparing to setup the library to build on multiple compiler platforms: clang, gcc, msvc.
2023-07-18 23:33:00 -04:00
ed 9a784fe92f Preparing to implement ADT for csv functions.
I'm rewritting it the way I'd like to learn it.
- I want to use csv parsing heavily with the library so I'm just going to add it to the scanner.

- Globaly memory allocator moved to regular gen header/source as its something really just made for the library.
- Some small refactors to macros
- The parser was updated to support tokenizing preprocessor directives.
  - The purpose is based off intuition that it will be required for the scanner.
2023-07-17 20:17:19 -04:00
ed 8f4a94545c Finished refactoring library, still working on cleaning up tests. 2023-07-15 15:20:55 -04:00
ed 7a2e20bcdb WIP Change to code types [ Broken ] 2023-07-13 23:01:20 -04:00
ed a86d6fa0ee Some general refactors to dependency side of the library
Also upated the gencpp.refactor script with almost all relevant symbols.
gen.undef.macros.hpp also filled out

Ready to complete gencpp related todos left in implementation...
2023-07-13 19:28:52 -04:00
ed 7828e6d2ea More dependency movement from zpl, incremental design improvements.
Made token_fmt more ergonomic, going to have to use a similar behavior with the upfront body constructors.
2023-07-12 01:33:11 -04:00
ed 20d307759b Started to move over zpl depndencies and use templated containers.
Still have a ways to go.
2023-07-11 18:29:45 -04:00
ed ddb3244467 array.Parsed.hpp passed test! 2023-07-11 01:09:50 -04:00
ed 14568d512e Parsing constructors passed the sanity test! 2023-07-10 22:14:51 -04:00
ed ed6a1d0f95 Templates, test changes (prob not working), progress on parsing bodies and operators.
This time, really not touching for a couple of weeks.
2023-07-10 01:15:25 -04:00
ed 498a51c899 parse_typedef works (sanity test case) 2023-07-08 17:14:05 -04:00
ed 352da126ca Nativs support for gen::AST, fixes & update to library, getting gen_array working...
token_fmt returns StrC now. Did some fixes so it can properly function now!

Lots of changes to the Array non-parsed implementation.
It shows no errors in the edtitor static analysis, however I haven't tried it yet.
Unfortunately have some friction with how I would like to set it up like with everything in C++...
Can't inherit from ArrayBase to provide the common members to all Array defs, without introducing constructor complexity.

I may be open to using constructors in the future, depends on how I feel when trying out the context pattern used in jai and odin...
2023-06-30 03:13:41 -04:00