91 Commits

Author SHA1 Message Date
Dustin Spicuzza
b07e1f81a6 Discard line continuations
- Fixes #54
2023-07-23 17:02:32 -04:00
Dustin Spicuzza
9bf99db87b Add bug report, fix parser error template 2023-05-29 09:09:50 -04:00
Dustin Spicuzza
edb1b1909a Add parser error issue template 2023-05-29 09:05:45 -04:00
Dustin Spicuzza
44ab824ffd
Merge pull request #51 from robotpy/update-ci
Update CI to latest ubuntu runners
2023-05-05 12:59:40 -05:00
Dustin Spicuzza
05f2dc39eb Update CI
- Update ubuntu runner version
- Use latest setup-python and checkout actions
2023-05-05 13:46:24 -04:00
Dustin Spicuzza
7d302fdf91
Merge pull request #47 from tomazsustar/conditional-operator-fix
bugfix #46 adding question mark to lexer
2023-03-22 11:23:35 -05:00
Tomaž Šuštar
6461158422 bugfix #46 adding question mark to lexer 2023-03-22 16:15:48 +01:00
Dustin Spicuzza
adc8273e16
Update README.md 2023-03-17 01:39:39 -04:00
Dustin Spicuzza
01c93956b5
Merge pull request #44 from robotpy/ns-alias
Parse namespace alias and emit it
2023-03-17 01:27:24 -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
296272fd39
Merge pull request #42 from robotpy/lexer-updates
Significant lexer overhaul
2022-12-15 21:29:32 -05: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
079d643c67 Update PLY package to include version 2022-12-15 01:49:49 -05:00
Dustin Spicuzza
b54c807824 Remove unused lexer.filenames 2022-12-15 01:49:49 -05:00
Dustin Spicuzza
aee776072e Grab string/character lexer constants from pycparser 2022-12-15 01:49:49 -05:00
Dustin Spicuzza
03c24a2074 Better lexer error handling 2022-12-15 01:49:49 -05:00
Dustin Spicuzza
b47eb7ce10 Use lex.TOKEN decorator for lexer tokens instead of docstrings
- Allows usage with -OO
2022-12-10 14:08:59 -05:00
Dustin Spicuzza
19c0604603
Merge pull request #41 from robotpy/moar-coverage
Moar coverage
2022-12-09 10:59:28 -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
b08d8783d4 Remove unused pieces from coverage reporting 2022-12-09 01:29:59 -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
305312b095 Add ability to generate failure testcases 2022-12-09 01:10:39 -05:00
Dustin Spicuzza
a5277d951a
Merge pull request #40 from robotpy/method-fixes
Method fixes
2022-12-08 09:58:55 -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
2c238058d3
Merge pull request #39 from robotpy/more-cppheaderparser-tests
More cppheaderparser tests
2022-12-07 23:03:58 -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
Dustin Spicuzza
2192a92003 Adjust testcase generator to remove unneeded whitespace 2022-12-06 07:46:16 -05:00
Dustin Spicuzza
ba4222560f Checkout full history to allow git describe to work 2022-05-02 12:51:11 -04:00
Dustin Spicuzza
a68f05a840 Add live demo link
- Fixes #4
2022-04-30 02:16:01 -04:00
Dustin Spicuzza
1b308ff0ab Ignore .nojekyll file on deploy 2022-04-30 02:12:54 -04:00
Dustin Spicuzza
b525f18f6b Copy latest commit to interactive demo 2022-04-30 02:06:38 -04:00
Dustin Spicuzza
944c9daf10
Merge pull request #35 from robotpy/mypy-madness
Check codebase using mypy
2022-01-02 21:55:40 -05:00
Dustin Spicuzza
977fe133d0 Check codebase using mypy in github actions 2022-01-02 21:53:22 -05:00
Dustin Spicuzza
f29c1d5a30 mypy: address issues parsing const/volatile/*/& items 2022-01-02 21:52:36 -05:00
Dustin Spicuzza
83aa34d06e mypy: functions should be a list of functions 2022-01-02 21:51:49 -05:00
Dustin Spicuzza
ce4124d5dd mypy: add temporary variables to ease type checking 2022-01-02 21:51:19 -05:00
Dustin Spicuzza
b05b1b16c1 mypy: add assertions/logic to ensure that ClassScope/NamespaceScope are correct 2022-01-02 21:48:49 -05:00
Dustin Spicuzza
2eb13496fa mypy: function return types marked as optional
Only methods can have optional return types, but it has to be applied to function
as well as method, otherwise mypy complains.

I considered making a special return type for constructors/destructors, but it
seemed to just make things too messy. Time will tell if this was the right
decision.
2022-01-02 21:45:06 -05:00
Dustin Spicuzza
36d23c37bd mypy: add trivial annotations to functions that don't change logic 2022-01-02 21:41:34 -05:00
Dustin Spicuzza
9756025e2d mypy: add None return types to functions that don't return a value 2022-01-02 21:30:41 -05:00
Dustin Spicuzza
cd6d4f23f3 parse errors should use standard filename:lineno prefix when possible 2021-12-17 00:22:21 -05:00
Dustin Spicuzza
8f7455f3d3 Enable test with duplicate name 2021-12-16 23:03:18 -05:00