48 Commits

Author SHA1 Message Date
Ed_
ad5cb6597b progress on parser and lexer revamp 2025-03-19 11:48:40 -04:00
Ed_
1c7dd4ab32 WIP Broken: Working towards major changes to lexer
Lexer tokens now tracked using TokenSlice. ParserContext as the id for current token during traversal.
Last progress on errors needs updates to interface.parsing.cpp
Not adding message support yet as that will need to revamped with the logging, right now just focused on getting both lexer on parser to use proper info data structures.
Thinking of separating ParseContext from the general lib Context, plan is to just have the parser context have its allocator and other references it needs.
So there will seem to be redundant parameter passing to some procedures for now.
The big endgoal of this other than the parser's compression is the ability to support mult-threading.
Immediate concern other than making sure everything necessary is only within ParseContext, etc is things related to logging, or otherwise that is not thread dependent.
Those can get guarded but I don't have full intuition on what will have that (most likely the library's provided allocator/s as well will need guards introduced).
I'll concern myself more with charting those out once things are at least lifted properly. Worst case a trivial situation can be achived by the user by just abusing multiple contextes/allocators/etc as we already have in place.
2025-03-18 03:26:14 -04:00
Ed_
2ed36506b1 progress on modularizing parser paths 2025-03-17 01:09:46 -04:00
Ed_
790087aa3c progress on modularizing parser paths 2025-03-16 23:13:46 -04:00
Ed_
441a46daaa changing to just pass lib Context instead of ParseContext.
If I want to make it more granular I can later.
2025-02-19 15:48:56 -05:00
Ed_
26623075ad started to work on modularizing parser code paths 2025-02-19 12:10:11 -05:00
Ed_
6d531fdf97 Fixing intellisense 2025-02-19 11:08:24 -05:00
Ed_
3b81eea688 Doing some initial prep for parser overhaul 2025-02-19 10:50:55 -05:00
Ed_
727b54c341 Added CodeSpecifiers::index_of for cpp, fix token bug with () operator in parse_operator_after_ret_type 2025-02-15 21:22:33 -05:00
Ed_
75b1d42cca changes based off of metadesk genc_c11 2025-02-11 18:59:09 -05:00
Ed_
c0ea2ce3ff fix for edge case (running out of tokens while parsing assignment expression 2025-02-04 22:05:24 -05:00
Ed_
3bce2e9b8a rename GEN_INTELLISENSE_DIRECTIVES -> INTELLISENSE_DIRECTIVES 2025-02-04 18:33:07 -05:00
Ed_
6481313969 Various fixes and adjustments
* moved constants to components/constants.hpp (adjsuted generators accordingly)
* parser accepts include & defineas parameter identifiers (will add more flags for keywords when necessary
2025-02-04 15:35:28 -05:00
Ed_
bdd9c9bcdf Fixes for building all library types 2025-01-30 13:57:42 -05:00
Ed_
16bc66c80e Backporting changes done on UnrealGencpp repo
Commits:
ec77e8b - Fixes while parsing EditorEngine.h
5017429 - parse_complicated_definition fix when parsing Controller.h
aac0dd5 - Add  IRISCORE_API
049b59c - Support for attributes retated to an operator or function between the return type and the identifier/op (Thanks World.h...)
97d7e6d - Fix for attributes after name in using statements
9f204e7 - Support for final specifier on class & struct definitions
f0698cc - Added support for Spec_Delete (= delete on functions and operators) [Part 3]
1f6650a - Added support for Spec_Delete (= delete on functions and operators) [Part 2]
06ac8da - Added support for Spec_Delete (= delete on functions and operators)
2025-01-30 13:25:56 -05:00
Ed_
f8c42a53c6 Fix for parse_function_after_name suffix specifier macro 2025-01-29 02:35:55 -05:00
Ed_
ce2be411d7 Add support for non Specifier enum SuffixSpecs in AST_Fn and parsing (Thanks Unreal) 2025-01-29 01:29:55 -05:00
Ed_
9c968967e2 Proofing 2024-12-16 21:48:01 -05:00
Ed_
46e816d7ce Add restrict specifier support for C 2024-12-16 20:53:56 -05:00
Ed_
28aa2c4dec remove tok_to_str, fix for parsing inpalce dfinitions that don't have an identifier for the type. 2024-12-16 20:53:56 -05:00
Ed_
0829603262 Finished updating Parer_Algo.md 2024-12-16 17:59:30 -05:00
Ed_
6689235691 minor updates for better unused code cleanup in the c_library 2024-12-16 17:18:52 -05:00
Ed_
6533a3be29 Name correction for parser switch case macros 2024-12-16 15:05:23 -05:00
Ed_
adbcb2a83b Progress on parser documentation 2024-12-16 14:57:01 -05:00
Ed_
e4f564b165 Tok_Capture_* -> Tok_Paren_*
Was not a correct name for it
2024-12-15 23:28:44 -05:00
Ed_
c90c210e04 fixes for c library 2024-12-15 22:53:32 -05:00
Ed_
868b93cdd0 bugfixes while testing with unreal (still more needs fixing 2024-12-15 17:52:31 -05:00
Ed_
0b03b3cd92 Unreal parsing support: Added MF_Allow_As_Attribute & MF_Allow_As_Definition 2024-12-15 13:39:00 -05:00
Ed_
e9752cb906 generated c_library compiles 2024-12-15 10:08:28 -05:00
Ed_
7946954017 fixing post-gen c-library compiler errors (still quite a few togo 2024-12-15 01:55:22 -05:00
Ed_
4fe1a4da65 c_library compiles and generates 2024-12-15 01:27:57 -05:00
Ed_
956ab73130 Unreal variant generates, doing c_library corrections next 2024-12-14 23:10:23 -05:00
Ed_
f93250da07 compiling again... 2024-12-14 21:21:13 -05:00
Ed_
1b4f9a2e77 WIP: prepped for dealing with the compiler... 2024-12-14 20:33:14 -05:00
Ed_
c8cf55403b WIP: more progress on new macro handling 2024-12-14 18:49:41 -05:00
Ed_
76257123da WIP (Not compiling prob): Started to overhaul macro handling 2024-12-14 14:02:16 -05:00
Ed_
3c249d2fae pregress on fixing regressions with unreal parsing
https://github.com/Ed94/gencpp/issues/64 is required. Resolving it next
2024-12-14 11:24:21 -05:00
Ed_
a7da5f2060 fixes for operator__validate 2024-12-14 08:04:54 -05:00
Ed_
16d0e0834f All global vars (except concepts) have been retrofitetd to the library's new Context struct 2024-12-13 20:40:18 -05:00
Ed_
76ac3a0f93 Introduced the general context struct for gencpp 2024-12-13 19:16:52 -05:00
Ed_
e15ac22132 Made Token::Text/Length into Str Text; (Str slice) 2024-12-13 15:36:40 -05:00
Ed_
bac57a5872 Corrected enum serialization of ecodetypes, eoperator, especifier, and etoktype, some more naming refactors for strbuilder... formatting 2024-12-13 14:38:27 -05:00
Ed_
012fcb6bd5 Corrected order of Str to how the slice type is defined in Odin and RAD Debugger (my reference on slice types) 2024-12-13 13:20:16 -05:00
Ed_
6ffdca8595 formatting, fixes from testing latest in Odin fork 2024-12-13 11:56:07 -05:00
Ed_
e3172057d3 working to towards https://github.com/Ed94/gencpp/issues/56 2024-12-12 12:55:15 -05:00
Ed_
30dea2e9fd reduce 'large macro' usage in ast.cpp and interface.cpp
Properly disabled GEN_DEBUG_TRAP in non-debug builds
2024-12-12 11:35:50 -05:00
Ed_
cb898595b0 Updates to docs and various changes to project from working on them.
- CodeParam -> CodeParams
- interfaces array weren't being used in parse_class_struct
- added enum_underlying_sig
2024-12-11 13:33:35 -05:00
Ed_
2c51a2f9c8 WIP: Restructuring project 2024-12-10 16:13:14 -05:00