Commit Graph

23 Commits

Author SHA1 Message Date
rdb 12a188b116 cppparser: Allow move semantics for CPPToken
This should make it a bit more efficient to move tokens around
2024-03-29 15:00:39 +01:00
rdb 6e81fb5cdf cppparser: Support `__restrict` and `__restrict__` keywords
To compile C code, you can do `-Drestrict=__restrict`
2024-03-29 11:36:14 +01:00
rdb e16cb8af98 cppparser: Add special __builtin_va_list type 2024-03-29 11:34:56 +01:00
rdb bddb7cb262 cppparser: fix escaping of string literals in preprocessor mode
[skip ci]
2024-03-28 22:17:49 +01:00
rdb fb68f82c5b cppparser: Add preprocessor option (-E) to parse_file
This makes it easier to test the behaviour of the preprocessor
2024-03-28 17:15:24 +01:00
rdb a769808af0 cppparser: Add missing keywords to CPPToken::output() 2024-03-28 17:01:47 +01: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 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 8381118a97 Assorted tweaks and compile warning fixes 2016-07-14 12:54:39 +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
Sam Edwards 3b667a83ed general: Fix several missing includes. 2015-11-07 20:05:17 -08:00
rdb b65ad853fe Support C++11/14 features: nullptr, decltype, unicode literals, custom literals, alignof 2015-10-12 23:32:50 +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 c178aba639 Add property support to interrogate (using MAKE_PROPERTY or using published members) 2014-09-19 15:23:52 +00:00
David Rose fb9c56432a we are now using the modified BSD license 2008-05-28 18:37:20 +00:00
David Rose 03c35a63ff CHAR -> CHAR_TOK (avoid conflict with Windows SDK) 2006-04-06 17:51:24 +00:00
David Rose 843c0331ae update license, change remaining local #includes to use quotation marks 2004-02-13 19:27:33 +00:00
David Rose df88308629 fix for bison greater than 1.35 2003-01-19 18:59:18 +00:00
David Rose 2f4e207edb Update copyright header 2001-05-25 21:27:38 +00:00
David Rose fcb24f02ef remove tab characters 2001-05-25 15:56:49 +00:00
David Rose 7a78284129 Initial revision 2000-10-04 00:15:23 +00:00