527 Commits

Author SHA1 Message Date
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
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 36ebbfe29b Got refactored raylib working in the vis_ast binary
Now to make that debugger...
2023-11-19 00:01:35 -05:00
ed 053daaf877 Merge branch 'main' into dev 2023-11-17 19:26:21 -05:00
ed 040ec00606 Raylib c refactor scripts complete 2023-11-17 19:25:54 -05:00
ed 919166efa1 fix for build script 2023-10-25 23:55:29 -04:00
ed 9bd6dac783 Merge pull request #51 from Ed94/dev v0.16-Alpha 2023-10-25 23:47:29 -04:00
ed 212d907d73 Fixed bug with inline comments for variables not parsing correctly. 2023-10-25 23:44:25 -04:00
ed c1ab233686 Fix for bug with comma separated declaration list vars
Known Bug: Inline comments are not printing now
2023-10-25 21:43:22 -04: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 d0f3b6187e Added initial support for comma-separated variable declaration lists. 2023-10-25 00:25:35 -04:00
ed b22f589203 Progress on preparing raylib for usage 2023-10-24 12:46:59 -04:00
ed 4af85f8612 update gitignore for exes 2023-10-24 06:02:07 -04:00
ed e9c151f85d Deleting a sneaked in binary 2023-10-24 06:01:47 -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 eaba60f80b Updated build scripts to latest setup used with HandmadeHero repo 2023-10-24 01:40:21 -04:00
ed 912cc6b538 Bugfixes during hiatus
Found while doing some metaprogramming for day 42 of handmade hero.
v0.15-Alpha
2023-10-22 21:41:36 -04:00
ed 3dd5482a46 set ContinuationIndentWidth to 4 for clang format. 2023-10-01 20:19:16 -04:00
ed 632fa10027 Updated readme with partial hiatus notice. 2023-10-01 12:37:29 -04:00
ed 6498b13658 Fix for non-foreign include content not getting parsed correctly. v0.14-Alpha 2023-10-01 12:16:15 -04:00
ed 7f562cd77f Merge branch 'dev' 2023-09-28 20:36:12 -04:00
ed 3a0e971ebf Bugfix for parse_variable, const check for prefix specifiers causing infinite loop. v0.13-Alpha 2023-09-28 20:35:20 -04:00
ed 4997cb5878 Merge pull request #45 from Ed94/dev
Dev
2023-09-25 17:50:16 -04:00
ed 729c891cbd Last fixes before handmade hero hiatus v0.12-Alpha 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 9495fc2985 Updates to documentation 2023-09-11 18:34:37 -04:00
ed 378de73a7d Merge branch 'main' of https://github.com/Ed94/gencpp v0.11-Alpha 2023-09-08 15:15:13 -04:00
ed 35ac0c1048 Fix compile-error for singleheader found with scanner's scan_file. 2023-09-08 15:14:43 -04:00
ed 2c893d5e35 Merge pull request #34 from Ed94/dev
Dev
v0.10-Alpha
2023-09-07 23:06:02 -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 0a8d3bfc6a Added fixed arenas (just ergonomics) 2023-09-07 22:29:04 -04:00
ed 212b4e6d16 Fixes for compiling with clang
Clang just had better errors and caught stuff msvc did not.
2023-09-07 21:11:57 -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 2bfbef1d0c strip_formatting : Remove code thats no longer needed.
Its everyting related to stripping a function body.
2023-09-06 02:09:26 -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 2200bcde9a Improved singleheader test
Need to make the debug_str provided by the AST type aware to provide as much contextual information as possible (finally got to this point with validation).

Singleheader test now directly calls clang-format to cleanup the reconstructed copy of the singleheader. Its needed to remove any sort of formatting discrepancies found by the parser since its sensistive to that for new-lines, etc.
2023-09-05 13:36:59 -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 3868e1e811 Added cursed typedef 2023-09-04 12:32:31 -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