Commit Graph

61 Commits

Author SHA1 Message Date
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
Ed_
c97762ac16 Added support for inline comments
Also now doing comment serialization on def_comment directly as parse_comment doesn't need it.

Essentially comment ast types serialize the same way s untyped and execution ASTs
2023-08-23 00:25:14 -04:00
Ed_
a42e241afb Got rid of the temp compoonent files, they are now generated via bootstrapping.
This isn't the last step though everything in the main project directory that isn't md files needs to be generated only.
Can't do that till testing is robust enough...
2023-08-21 23:28:39 -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