Commit Graph

264 Commits

Author SHA1 Message Date
ed c81f4b34ee Cleanup and doc updates 2023-08-23 02:17:47 -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 5e79e8ba65 Started to setup for codebase validation tests.
Fleshed out initial version of AST::is_equal( AST* )

Setup the test directory with initial files for each major validation test.
2023-08-22 16:01:50 -04:00
ed 49a2cd7b2c Uncomment formatting comments in build script (forgot to after completing fixes) v0.9-Alpha 2023-08-22 02:17:28 -04:00
ed a6c6574390 More formatting fixes 2023-08-22 02:09:20 -04:00
ed c4846dad26 Formatting fixes 2023-08-22 01:51:59 -04:00
ed a61a28b778 Fixx to bitfield variables
Related to https://github.com/Ed94/gencpp/issues/25
2023-08-22 00:40:38 -04:00
ed d0c995893d Lower inital memory allocation amounts. (Lower latency iteration for running generator)
I need to change it so that they all use one big arena allocation for the initial. This can be done when the global allocator is changed to a growable arena.
2023-08-21 23:49:23 -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 6d85dd8fe8 Update vcproj 2023-08-21 23:09:40 -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 7be3617083 Runtime fixed 2023-08-21 22:48:05 -04:00
ed 5c47777972 compiles agian... 2023-08-21 21:40:23 -04:00
ed 4a2ed6de4e another vs code automated edit... 2023-08-21 21:40:05 -04:00
ed 9f64760b7a Commenting out includes to diagnose... 2023-08-21 21:20:29 -04:00
ed 68f34e6fab gitignore update for vc140.pdb
will remove after I figure out how its going rogue.
2023-08-21 21:12:52 -04:00
ed 1f9bbddbb7 vs setting update 2023-08-21 21:12:25 -04:00
ed 050b00f28a WIP - Broken Compile : Added pragma once and includes to all files + Parser fixes, and String improvements
Adding the pragma once and includes the files broke compilation, still diagnosing why.

- Some string functions were moved to the cpp, still need to do some more evaluation of it and the containers...
- Added support for forceinline and neverinline to parsing (untested)
- Added support for specifiers in operator cast such as explicit, inline/forceinline/neverinline, etc.
    - Before it only support const.
    - Still need to support volatile.
- Forceinline was not supported at all for tokenization, fixed that.
2023-08-21 20:30:13 -04:00
ed 1241f44fd4 scan_file function can auto skips pragma once and includes
Needed so that includes could be added to components so that intellisense would not fail since the parser (for most editors) doesn't properly parse the enviornment and cheats on a per-file basis.
2023-08-21 20:27:00 -04:00
ed 7d1c499e7b Build script improvements
Made sure devshell only loads up the msvc env once.
2023-08-20 22:39:46 -04:00
ed b3f0c2734f Merge remote-tracking branch 'origin/main' into dev 2023-08-20 18:04:51 -04:00
ed eaeb8acee4 Remove Some vcproj changes, removal of the rogue vc140.pdb 2023-08-20 18:04:35 -04:00
ed 12bf878cb3 Merge pull request #23 from Ed94/dev
dev pull - Build script updates and misc fixes
2023-08-20 17:55:35 -04:00
ed 52ae431ad6 Made clean script remove the gen dir now from test dir. 2023-08-20 15:51:51 -04:00
ed 05fa62eced Test building & generation fixed with altest scripts 2023-08-20 15:45:06 -04:00
ed 2f7836b191 Fixes to buildscript 2023-08-20 13:18:09 -04:00
ed f574a9ba9a Further improvements to build script
test is failing to complete properly, need to debug...
2023-08-20 13:02:50 -04:00
ed a6bf60a51e Simpilication of build script, added initial support for tests 2023-08-20 12:31:28 -04:00
ed 37d9782cf2 Singleheader now compiles with new build script on both clang & msvc 2023-08-20 10:17:55 -04:00
ed 11679ba8b4 New build script works for clang and msvc!
Need to update singleheader and test to use it.
2023-08-19 21:33:01 -04:00
ed 8985f0a4d9 MSVC in latest script works
Clang is having issues.
2023-08-19 17:08:13 -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 aa928ff446 Scripting updates, some refactors..
Made a package release script.

Did refactors based on some design considerations
Still need to make some major decisions...
2023-08-09 18:47:59 -04:00
ed 5aff89262b Fixes (Doc typos, pragma once worng type, non-debug fatal compile fail) 2023-08-09 09:50:12 -04:00
ed b5fa864318 Fixes and improvements to serialization.
There were multiple issues with comment and newline lexing.

Extended printing functions to support Strings with %S flag (captial 'S').
Allows for length detection. Also made it so that precision for strings is the string length.
v0.8-Alpha
2023-08-08 22:14:58 -04:00
ed bb35444be9 Fix for log_failure macro expansion in helper.hpp: CodeBody gen_ast_inlines() 2023-08-08 15:53:10 -04:00
ed 67d02c1f62 Fix for wrong tokens for GNU/MSVC attribute captures (parse_attributes)
Also a fix for a typo in the readme...
2023-08-08 15:35:06 -04:00
ed c7647ab00f Updated docs v0.7-Alpha 2023-08-08 11:56:42 -04:00
ed d2fc1d0a56 Converted log_failure and fatal to macros (fixes GEN_PANIC not determining correct line or file) 2023-08-08 09:48:50 -04:00
ed ed3246c6b0 Fixes for typedef serialization of functions..
Also fix for HashTable<>::rehash_fast not having finished implemenation...

The typedef fix is a sort of hack (like how parsing the rest of the language feels like tbh...).
I might make a def_typedef_fn to make it clearer how to define function typedefs using the upfront interface.
2023-08-07 20:16:04 -04:00
ed c4d5637a64 Fixes to single header generation (bad parsing adt/csv injection in wrong place) 2023-08-07 14:52:26 -04:00
ed c2f8c8aeb1 Added constructor and destructor supported (UNTESTED)
Just compiles and generates...

Also fixed a bug where parsing didn't have a token for virtual specifiers...
2023-08-07 03:10:45 -04:00
ed c2319b9651 Fixes for test.singleheader_ast.cpp, also added a bench for it.
On a Ryzen R9 5950 it takes 11 ms to generate AST and 21 ms to serialize to file.
2023-08-06 17:46:17 -04:00
ed a4f9596d3b Fixes to serialization, reduced Define_CodeType macro
Now the execution code is generated in bootstrap/singleheader gen.
2023-08-06 17:19:57 -04:00
ed 97750388ad No longer using components/temp/ast_inlines (switched to helper function to avoid macro usage)
Increased the arg count support of num_args to 100.
2023-08-06 14:58:43 -04:00
ed 00f6c45f15 Fixes for serializations found with last commit's test.
Should be fine to move on to next major feature....
2023-08-06 13:28:19 -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 d36c3fa847 Single header generates again, some more cleanup.
Looking into properly dealing with empty lines...

I want to preserve the text's empty lines in the AST for serialization purposes (perserve formatting for gapes between definitions).
Don't want to introduce the possibility of it breaking though, so will have to ignore empty_lines in a general way (if they are in a bad spot).
Attempted to cover that by having TokArray::current() auto-skip empty lines and eat as well if the type doesn't match.
2023-08-03 23:18:33 -04:00
ed 5d7dfaf666 Heavy refactor..
Isolating large macros to their own directory (components/temp).
- Plan is to remove them soon with proper generation.

Added additional component files, separating the old data_structures header for a set of ast headers.
Header_end also had its inlines extracted out.
Necessary to complete the macro isolation.

ZPL parser dependencies were removed from the core library along with builder, its now generated in bootstrap as pare of making a gen_builder set of files.

Singleheader will be changed in next few commits to reflect this as well (By making builder deps and components a conditional option).

Tests are most likely all broken for now.
2023-08-03 11:01:43 -04:00
ed 114f678f1b Merge pull request #9 from Ed94/Preprocessor_support
Preprocessor support
2023-08-02 16:04:57 -04:00