Commit Graph
64 Commits
Author SHA1 Message Date
ed 0046c4a223 c_library refacotring works, and compiles with all content from the base project.
I need to make the refactor step happen before formatting with clang-format in the metaprogram instead of calling it from powershell
2024-12-10 13:56:56 -05:00
ed abdad1a436 demacro AST and Code forwards/typedefs 2024-12-10 10:24:48 -05:00
ed 6147912783 gen.h compiles with interface.upfront.cpp injected 2024-12-09 14:55:02 -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 c016e245eb still misbehaving (going to try alignas next...) 2024-12-07 20:49:43 -05:00
ed 451b71884c WIP: Broken af 2024-12-07 17:17:02 -05:00
ed 4d638a7255 borken : lots of stuff changed, explaining in later commit...v 2024-12-07 00:21:09 -05:00
ed 92e0d3ab8b DId a pass on ast.hpp, types.hpp and helper.hpp for C compatability (unfortuantely clang-format doesn't like my enum macro... 2024-12-06 05:29:17 -05:00
ed 46562d54e7 parser: added support for enum_underlying macro 2024-12-06 00:33:53 -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 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 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 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 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 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 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 a667eb4afe Progress on parser documentation 2023-11-21 23:36:56 -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 9d27c7d37e Lexer improvement prep, segmentation of lexer and parser. 2023-11-20 21:24:27 -05:00
ed 5c73fbee83 WIP : AST serialization improvements
Code untestd its an initial draft
2023-11-19 20:35:21 -05:00
ed b42b224c0d Forgot to push some parser fixes 2023-10-25 03:33:35 -04:00
ed 041671762b Got through parsing raylib.h, started to do some major refactors. 2023-10-25 03:26:25 -04:00
ed 729c891cbd Last fixes before handmade hero hiatus 2023-09-25 17:48:16 -04:00
ed 754bcfb31e Fixes to get it back to where I was last at with the const specifier issue 2023-09-25 16:42:29 -04:00
ed a8708abf8b WIP : Various changes to project before small hiatus. (Broken)
I need to manually review these as the changes have various errors that are difficult to diagnose why.

I took a break to do handmade hero and now a bit rusty.
2023-09-25 12:12:11 -04:00
ed 4b48b96a79 WIP : better AST::debug_str()
Now its more contexually rich to the ast type, however I need to hookup tokens from parsing to the AST. There needs to be a way for the debug string to lookup the token and provide the contexual line.
Can either pass it ( TokArray* toks ) from the parser on failure (or `CodeFile`)..
Technically there is more than enough room for another Token* ptr. I could add another and specifiers would still have at minimum 14 slots before needing to extended to next specs.
**************... yeah
2023-09-12 02:32:44 -04:00
ed 6ea40094ee More fixes from clang warnings. Parser::lex prep for changes
parse_static_assert now properly adds new-line to end of statement.

I'm going to end up making a static_assert ast... that or when the statement ast is made it will handle adding that newline.
2023-09-07 22:52:51 -04:00
ed d606c790ca Added a new AST member NextVar to be used for comma separated variable support.
Interface adding has been adjusted to use ParentType->Next.

Using the AST_Class->Next was bad since that breaks the linked list a body AST would have used for traversal.
2023-09-06 03:06:30 -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 543427dfe5 Fixes to parsing for validation
Removed whitespace stripping from parse_type, prepped for doing some major changes for function signature typenames

Moved template argument parsing to its own helper function since its used in more the one spot.

Latest failure is due to stack overflow when validating parameters. (Shouldn't be hard to debug)
2023-09-03 23:36:51 -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 7249a7317d Added space stripping during for content of various ASTs
* Typedef/Typename
* Function Names
* Pragmas
* Attributes
2023-08-26 11:55:05 -04:00
ed f9117a2353 Added zpl's ivrtual memory to dependencies (unused for now) 2023-08-23 11:07:43 -04:00