rdb
16f2958adb
cppparser: support sizeof operator with constexpr
2020-06-14 12:12:27 +02:00
rdb
97e6a314b1
cppparser: support arbitrary constant expression in bitfields
2020-06-14 11:31:58 +02:00
rdb
fb5440bd07
cppparser: hack fix for method defs in parentheses
2019-10-08 19:43:34 +02:00
rdb
30721ba33b
cppparser: fix issues when parsing templated constructor definition
2018-07-31 14:05:08 +02:00
Sam Edwards
b2bfb31114
general: Remove `using std::*` from headers
...
Also remove most `using namespace std;` statements. The only one that remains is in py_panda.h.
Closes #350
Closes #335
2018-06-14 16:04:49 +02:00
Sam Edwards
e2b4353800
general: Replace NULL (and 0 as pointer) with C++11 nullptr
...
Exceptions to this replacement are:
- .c files
- Headers included by a .c file
- stb_image.h
- dr_flac.h
- Strings
- Comments
2018-06-03 16:35:13 -06:00
rdb
e0245d2777
First step towards eliminating `using namespace std;` ( #335 )
2018-06-03 20:32:23 +02:00
rdb
6b726fa697
general: fix various compiler warnings and issues exposed thereby
2018-05-30 11:09:35 +02:00
rdb
69b3468b2c
interrogate: more improvements to seq/map wrappers
...
Gets rid of properties defined as both MAKE_SEQ_PROPERTY/MAKE_MAP_PROPERTY, which are just a bad idea. Instead, adds a way for map properties to define a separate "keys" interface.
Fixes : #203
2017-11-27 17:29:50 +01:00
rdb
dee8d83998
interrogate: fix regression with setter of MAKE_PROPERTY2
...
See also tobspr/RenderPipeline#86
2017-10-17 21:18:51 +02:00
rdb
bf190f7306
interrogate: support MAKE_MAP_PROPERTY
2017-10-09 00:02:46 +02:00
rdb
d1c34c3360
interrogate: support static properties
2017-08-07 22:04:56 +02:00
rdb
d6657baf29
cppparser: fix scope bug in constructor inits
...
This also fixes the Android build.
2017-05-25 13:20:11 +02:00
rdb
18f09c48dd
cppparser: parse template friend declaration
2017-02-09 23:52:38 +01:00
rdb
e2771d39a9
cppparser: support for various C++11/C++14/C++17 features:
...
- decltype(auto)
- attributes (ie. [[deprecated]]), incl. with C++17 "using"
- extern template class (parses)
- sizeof struct members
- aggregate initialization
- initializers in capture lists
- alignas (parses)
2017-01-15 15:39:34 +01:00
rdb
e12420571b
cppparser: support C++11 lambda expressions
2017-01-14 22:37:33 +01:00
rdb
d54d43ac34
cppparser: fix issue with templated external method definitions
2016-11-03 18:04:14 +01:00
rdb
22f0b50851
More Interrogate C++11 support changes:
...
* Parse variadic templates
* Add (incomplete) type_traits support
* Parse anonymous class template params
* Parse volatile/lvalue/rvalue methods
* Don't generate destructor for indestructible types
* Add xmmintrin.h header
* Allow invoking extensions with references
2016-11-03 12:17:11 +01:00
rdb
29ea65bb3f
Merge branch 'release/1.9.x'
2016-08-09 01:44:21 +02:00
rdb
db97747981
cppparser: Parse nonstandard specifier order like "const static"
2016-08-09 01:27:30 +02:00
rdb
242cc5f57d
Support template "using" definitions in interrogate
2016-05-31 18:48:32 +02:00
rdb
ce29ae490d
Interrogate improvements, more properties, MAKE_SEQ_PROPERTY
2016-05-11 00:16:53 +02:00
rdb
fb78fe6e2a
Interrogate enum class support (maps to Python 3.4 enums), sanify wrapper code
2016-05-07 00:45:26 +02:00
tobspr
0fcfb8e372
New file headers, new comment style
2016-02-17 17:47:48 +01:00
rdb
caa03c53dd
Interrogate cppparser improvements, C++11/14/17 additions:
...
* Support trailing return type.
* Ignore C++14 digit separators.
* Parse C++14 binary number representations.
* Support "using"-style type aliases.
* Support decltype and auto with "new".
* Remove silly "long float" and "long long float".
* Support default visibility with class inheritance.
* Remove -longlong hack since C++11 supports long long natively.
* Support unary plus operator.
* Preserve bitfield definitions.
* Support constructor inits using braces.
* Support override/final specifiers.
* Ignore [[attributes]] in certain cases
* Add support for typeid() in expressions
* Parse (but ignore) lambda expressions
* Differentiate between casts, add const_cast/reinterpret_cast
* Support thread_local variables.
2016-02-16 01:18:51 +01:00
rdb
090e912ce6
Cleanup of comments and whitespace
2016-02-01 22:30:43 +01:00
rdb
be60303502
Support =default and =delete methods in Interrogate
2016-01-03 19:56:20 +01:00
rdb
db6f0342cc
Add properties with has/clear (interrogatedb v3.1)
2015-12-24 14:25:45 +01:00
rdb
c93e50ca05
Merge branch 'release/1.9.x'
...
Conflicts:
.travis.yml
dtool/src/cppparser/cppBison.cxx.prebuilt
dtool/src/cppparser/cppBison.yxx
makepanda/makepanda.py
2015-11-19 18:43:13 +01:00
rdb
df4c4bc250
Fix various cppparser issues parsing the VRPN headers
2015-11-19 18:35:29 +01:00
rdb
909856c75d
Improve interrogate diagnostics when encountering unknown types
2015-11-19 13:07:28 +01:00
rdb
ac1c036cac
interrogatedb 3.0 to restructure make_seq, improve make_seq handling and performance
2015-11-09 18:03:30 +01:00
rdb
155ae811aa
Fix some edge cases for preprocessor, support auto keyword, MSVC compile fix
2015-10-17 02:54:07 +02:00
rdb
920210c999
Fix the vast majority of Interrogate parse issues and warnings, add support for inline namespace and constexpr
2015-10-16 14:57:40 +02:00
rdb
b65ad853fe
Support C++11/14 features: nullptr, decltype, unicode literals, custom literals, alignof
2015-10-12 23:32:50 +02:00
rdb
ba45120eac
Try to stay compatible with Bison 2.5 (for Ubuntu precise), support C++11 and C++17 static_assert, improve error reporting, handle several gcc keyword aliases, fix bug handling preprocessor expression in which the same manifest occurs more than once
2015-10-11 16:52:33 +02:00
rdb
1c9ff40236
Require new Bison version on Windows, fallback to prebuilt files if not present
2015-10-10 16:29:14 +02:00
rdb
e327c7e978
Vastly improve quality of Interrogate error messages, also fix erroneous location indications
...
This change also causes Interrogate to safely ignore "register" keywords in function parameters
2015-10-10 15:15:22 +02:00
rdb
6feef4e230
Interrogate now parses (and ignores) explicit template instantiations
2015-10-09 13:33:05 +02:00
rdb
7f3f546cdd
Interrogate now parses "volatile" qualifier in instance identifiers correctly
2015-10-05 02:56:40 +02:00
rdb
7026854cc2
Fixes to get the C binding generator to work
2015-07-05 16:07:08 +02:00
rdb
38d02fadf9
Fix various interrogate issues with parsing PhysX headers
2015-03-23 19:27:29 +01:00
rdb
34761a0b9b
Merge branch 'master' into interrogate-overhaul
...
Conflicts:
dtool/src/cppparser/cppBison.yxx
2015-01-03 16:52:44 +01:00
rdb
368e1ca644
Support noexcept and rvalue references in C++ parser
2015-01-02 14:57:33 +01:00
rdb
6db5d0dc11
Huge cppparser and interrogate overhaul, bringing:
...
* Better support for typedefs
* Same code should compile for both 32-bit and 64-bit
* C++11 typed enum support
* Synthesize __setitem__ when operator [] returns reference
* Rewrite coerce system to have better performance
* Change semantics of __getattr__ and __setattr__ to match
Python's, add __getattribute__, __delattr__ and __delitem__
* Improve performance of slot functions a bit more
* Reduce memory overhead of type system
* Some support for wrapping arrays of numeric types
* C++11 character type support in cppparser
* Chars are handled as strings of length 1
* Template functions for CreatePyInstance that use runtime type map
* More functions from dtool as extension functions
* Code cleanup
2014-12-30 16:43:52 +01:00
rdb
a6229f1fac
Support for comments in enums. Improve comment handling in C++ parser. Improve doxygen reference. Update interrogate interface. (Addendum to interrogatedb v2.3.)
2014-09-19 23:34:11 +00:00
rdb
c178aba639
Add property support to interrogate (using MAKE_PROPERTY or using published members)
2014-09-19 15:23:52 +00:00
David Rose
633e697d54
allow typename keyword in lieu of class, in template declarations
2011-11-04 16:58:39 +00:00
rdb
beb90c565f
Add functionality allowing extension functions to interrogate
2011-01-02 15:14:02 +00:00
David Rose
d3d778734d
add '^' to const expressions
2010-05-06 22:50:31 +00:00