a3b3c43a76
Added very basic support for constinit and consteval.
2024-01-05 14:49:26 +01:00
83a0fb805d
Added basic parsing of pointer-to-member types.
2024-01-05 14:24:47 +01:00
Justin Boswell
88a7048513
Added support for template deduction guides
...
* Added DeductionGuide as a language element
2023-12-05 17:49:14 -05:00
Dustin Spicuzza
64c5290318
Merge pull request #89 from robotpy/fn-constraints
...
Move non-template requires to the function
2023-12-03 01:04:11 -05:00
Dustin Spicuzza
85f93ec09e
Move non-template requires to the function
...
- Methods can have a requires() that refer to the class template without
an explicit function template
- This is a breaking change, but since the values aren't parsed yet I
can't imagine anyone is using it
2023-12-02 04:51:00 -05:00
Dustin Spicuzza
73a81d3107
Retain doxygen comments for using declarations and type aliases
2023-12-02 04:24:10 -05:00
Dustin Spicuzza
cafb594179
Allow fields to be marked inline
...
- Fixes #84
2023-11-19 12:47:09 -05:00
Dustin Spicuzza
42bc6b60ad
Consume function body if present after trailing return type
...
- Fixes #81
2023-11-13 23:23:40 -05:00
Dustin Spicuzza
37cd3abee9
Parse C++20 requirement constraints for functions/classes
...
Co-authored-by: David Vo <auscompgeek@users.noreply.github.com>
2023-10-13 02:34:21 -04:00
Dustin Spicuzza
2957e70823
Add support for C++20 abbreviated function templates
...
Co-authored-by: David Vo <auscompgeek@users.noreply.github.com>
2023-10-13 02:34:17 -04:00
Dustin Spicuzza
e935959ad3
Implement basic concept parsing
...
- requires clauses are collected into a Value and not interpreted at
this time
2023-10-10 03:45:55 -04:00
Dustin Spicuzza
196e88b85e
Add MSVC preprocessor support
2023-10-08 01:51:13 -04:00
Dustin Spicuzza
8f9e8626af
Add GCC compatible preprocessing function
2023-10-08 01:01:18 -04:00
Dustin Spicuzza
9dd573e433
Make pcpp more optional
2023-10-08 00:56:25 -04:00
seladb
312f6fba6b
Add option to retain #include directives in preprocessor
2023-10-06 02:34:06 -04:00
Dustin Spicuzza
9c587e9414
Prepare to publish
2023-10-05 02:53:55 -04:00
Dustin Spicuzza
51d29a0791
Support multiple template declarations on a class or function
...
- Fixes #20
2023-10-05 02:29:25 -04:00
Dustin Spicuzza
175815525f
Merge pull request #6 from robotpy/fmt-types
...
Add pretty formatting for types
2023-10-04 04:04:03 -04:00
Dustin Spicuzza
e30c117b62
Parse auto functions with trailing return
2023-10-04 03:29:27 -04:00
Dustin Spicuzza
a5ce9a24e6
Add pretty formatting for types and template specializations
...
- Fixes #3
2023-10-04 03:16:33 -04:00
Dustin Spicuzza
4d16552544
Allow forward declared template methods
2023-10-02 01:45:51 -04:00
Dustin Spicuzza
ab99f2fa72
Handle pcpp relative path quirk
2023-10-01 03:07:26 -04:00
Dustin Spicuzza
326da6112c
Remove EmptyBlockState
...
- Turns out you can't put an empty block except in code
2023-09-27 01:14:21 -04:00
Dustin Spicuzza
c3fbe4c16c
breaking change: Remove operator type and make part of Function
...
- Unifies free function operators and method operators -- otherwise users
would need to parse the operator themselves to deal with free function operators
- We don't have any releases yet, so there are no stability guarantees
2023-09-23 21:45:30 -04:00
Dustin Spicuzza
09eb5af3a3
Add tokfmt test for void**
2023-09-19 00:19:46 -04:00
Dustin Spicuzza
8e2d9909fa
Provide mechanism to skip entire blocks
...
- Simplifies usage of visitor logic considerably
- Add null_visitor to help with this
2023-09-09 23:10:17 -04:00
Dustin Spicuzza
3bae95f2a7
Allow parser visitors to leverage the parser's state instead of creating their own stacks
2023-09-03 19:49:40 -04:00
Dustin Spicuzza
a13cdf4f67
Provide mechanism to specify preprocessor file encoding
2023-09-03 18:46:31 -04:00
Dustin Spicuzza
de4d06defe
Fix preprocessor option to retain content
2023-09-03 18:46:31 -04:00
Dustin Spicuzza
a60bb7fd18
Add basic preprocessor test
2023-09-03 18:46:31 -04:00
Dustin Spicuzza
4febbe5d0d
Fix #line directives
2023-08-22 10:02:22 -04:00
Dustin Spicuzza
f597b691f7
Parse extra type information for conversion operators
...
- Fixes #57
2023-08-19 20:02:03 -04:00
Dustin Spicuzza
6ab0d00c2f
Merge pull request #56 from robotpy/remove-pp-and-handle-continuations
...
Remove pp and handle continuations
2023-08-19 19:45:25 -04:00
Dustin Spicuzza
bd9907ad79
Restructure preprocessor support
...
- Remove partial support for #define and other PP directives
- Allow pragma to span multiple lines
- Pragma now emits a list of tokens instead of a single string
- Ignore #warning directive if present
2023-08-19 19:42:05 -04:00
Dustin Spicuzza
b07e1f81a6
Discard line continuations
...
- Fixes #54
2023-07-23 17:02:32 -04:00
Tomaž Šuštar
3938d0ffef
fix #49 for anonymous unions ( #50 )
...
* fix #49 for anonymous unions
* fix formatting
* fix mypy and tests
* fix for structs
* fix formatting
2023-06-14 13:31:10 -04:00
Dustin Spicuzza
2fe350bf35
Parse namespace alias and emit it
...
- Fixes #43
2023-03-17 01:24:23 -04:00
Dustin Spicuzza
1aa9e72ca1
Upgrade black to 2023.1
2023-03-16 18:45:34 -04:00
Dustin Spicuzza
e5295070a0
Add support for parsing user defined literals
2022-12-15 02:55:07 -05:00
Dustin Spicuzza
1eaa85ae8d
Split the lexer into PlyLexer and TokenStream components
...
- There are two types of token streams: file based, and list based
- I think this has better component separation
- Doxygen parsing is a bit weirder, but I think it's more straightforward to see all the pieces?
2022-12-15 02:38:44 -05:00
Dustin Spicuzza
40bf05b384
Add additional doxygen related testcases to make sure things don't accidentally break
2022-12-15 01:49:49 -05:00
Dustin Spicuzza
2ba5c3c829
Support extracting doxygen comments when declspec or attributes are present
2022-12-15 01:49:49 -05:00
Dustin Spicuzza
ace1d09d9d
Add throw/noexcept tests
2022-12-09 03:28:50 -05:00
Dustin Spicuzza
8a0568c0f5
Change balanced token handling to allow mismatched gt/lt tokens
...
- These can be used for math, so we just assume the code is doing that
2022-12-09 03:26:16 -05:00
Dustin Spicuzza
ff645920b8
Capture doxygen comments for namespaces
2022-12-09 01:16:54 -05:00
Dustin Spicuzza
dc76328bd5
Add support for inline namespaces
2022-12-09 01:16:12 -05:00
Dustin Spicuzza
919e35e45f
Correctly parse constructor implementations outside of a class
...
- Fixes #32
2022-12-08 02:00:05 -05:00
Dustin Spicuzza
15e4e0b879
Add support for parsing method implementations outside of a class
...
- Fixes #10
2022-12-08 01:26:16 -05:00
Dustin Spicuzza
ddad7cb6b1
Add support for parsing explicit template instantiation
2022-12-07 08:36:31 -05:00
Dustin Spicuzza
f1c1f2e6af
Add misc tests added to CppHeaderParser
2022-12-06 07:52:51 -05:00