gencpp/project/components
Ed_ 9b6dc3cbd8 Work on AST::is_equal.
The NumEntries checks need to be deferred until the end as a final unresolved check on valdiation. As if there really is a discrepancy of entires it should be revealed by the specific entry failing.

Right now the latest failure with the single header check involves a define directive specifically the define does omit whitespace properly and so the check interprets the different cached content to be non-equivalent.

This will happen with all unvalidated aspects of the AST ( expressions, function bodies, etc )

There are two ways to resolve, either make an AST that can tokenize all items (not realistic), or I need to strip non-syntax important whitespace and then cache the string. This would mean removing everything but a single whitespace for all content within a content string. Otherwise, I would have to somehow make sure the content of the string has the exact formatting between both files for the definitions that matter.

AST types with this issue:
* Define Directive
* Pragma Directive
* Comment
* Execution
* Platform Attributes
* Untyped

Comments can technically be left unverified as they do not matter semantically.
When the serialization is first emitted, the content these strings should for the most part be equivalent. However I do see some possible failures for that if a different style of bracket placment is used (between the serialization).

At that point what I could do is just leave those unverified and just emit the content to the user as warning that the ast and the other compared could not be verified.

Those technically can be handled on a per-eye basis, and worst case the tests with the compiler will in the determine if any critical defintions are missing for the user.
2023-08-25 18:40:13 -04:00
..
gen Singleheader validation test got through ast reconstruction, failed to validate the reconstructed AST. 2023-08-23 18:16:45 -04:00
ast_case_macros.cpp Formatting fixes 2023-08-22 01:51:59 -04:00
ast_types.hpp Added zpl's ivrtual memory to dependencies (unused for now) 2023-08-23 11:07:43 -04:00
ast.cpp Work on AST::is_equal. 2023-08-25 18:40:13 -04:00
ast.hpp Added zpl's ivrtual memory to dependencies (unused for now) 2023-08-23 11:07:43 -04:00
header_end.hpp Lower inital memory allocation amounts. (Lower latency iteration for running generator) 2023-08-21 23:49:23 -04:00
header_start.hpp compiles agian... 2023-08-21 21:40:23 -04:00
inlines.hpp Fixes to parsing marco content, progress on validation test (single-header) 2023-08-23 21:19:31 -04:00
interface.cpp Started to setup for codebase validation tests. 2023-08-22 16:01:50 -04:00
interface.hpp Changes to include usage, starting to attempt singleheader automated verification 2023-08-23 13:17:22 -04:00
interface.parsing.cpp Fixes to parsing marco content, progress on validation test (single-header) 2023-08-23 21:19:31 -04:00
interface.untyped.cpp got intellisense working for the most part... 2023-08-21 23:07:03 -04:00
interface.upfront.cpp Changes to include usage, starting to attempt singleheader automated verification 2023-08-23 13:17:22 -04:00
src_start.cpp Library can now construct into AST and serialization itself (singleheader). 2023-08-04 16:12:13 -04:00
static_data.cpp got intellisense working for the most part... 2023-08-21 23:07:03 -04:00
types.hpp got intellisense working for the most part... 2023-08-21 23:07:03 -04:00