Commit graph

51 commits

Author SHA1 Message Date
Manu Sánchez
c341ae01f1 Change "odd flag" criteria on preprocessor command flags (#57)
The assert on libclang/preprocessor.cpp:263 fails with common flags
such as "-g", because the assertion says valid flags must have at least
three characters.

I've changed that condition to accept two char flags like -g
2018-06-06 13:39:00 +02:00
Jonathan Müller
e0e78c0a3e Fix spaces in include paths
Fixes #56.
2018-06-05 20:56:25 +02:00
Jonathan Müller
6cb99d4516 Revert "Add (crude) workaround for _DEBUGGER_STEP_INTO #line in MSVC"
This reverts commit 2004780ea6.
2018-03-26 20:49:16 +02:00
Jonathan Müller
61a2a22542 Add option to change preprocessor -CC to -C
See #37.
2018-03-20 16:12:23 +01:00
Jonathan Müller
2004780ea6 Add (crude) workaround for _DEBUGGER_STEP_INTO #line in MSVC
Fixes #46.
2018-03-20 15:40:39 +01:00
Jonathan Müller
670551faa5 Fix include issue on pre-clang 4.0.0 2018-03-12 11:44:04 +01:00
Jonathan Müller
c2b86d1cad Fix full path of includes 2018-02-21 16:25:46 +01:00
Jonathan Müller
2ced972b9f Add missing missing file check 2018-02-19 19:24:54 +01:00
Jonathan Müller
cc5127979b Fix external macro use when fast_preprocessing=false
Forget to add standard library includes...

Fixes #39.
2018-02-17 16:06:12 +01:00
Jonathan Müller
b36a4a84b8 Properly detect include guard macros when fast preprocessing
Fixes #35.
2018-02-17 13:01:34 +01:00
Jonathan Müller
c7b13d89bc Fix CI errors 2018-02-01 18:52:37 +01:00
Jonathan Müller
8c426ac115 Add fast preprocessing mode 2018-02-01 18:27:41 +01:00
Jonathan Müller
4c78c69da0 Update copyright year 2018-01-26 08:39:09 +01:00
Jonathan Müller
bca488c3d7 Improve fix #32 2018-01-25 21:57:07 +01:00
Zsolt Erhardt
ca2fae08a2 Bugfix/escaped character parsing (#32)
So as it turns out there's a nasty little piece of code in rapidjson's
source which breaks the preprocessor and will leave things a little bit
weird.

The test "preprocessor_parses_escaped_character" should prove
its validity.
2018-01-22 11:18:38 +01:00
Jonathan Müller
1e5271a4b7 Fix and improve C comment indent heuristic 2018-01-15 09:08:48 +01:00
Jonathan Müller
3e8b2b429c Better handling of include refs 2018-01-11 21:22:28 +01:00
Jonathan Müller
b2121b19c2 Add indentation C comment heuristics
See foonathan/standardese#84.
2017-12-06 19:34:36 +01:00
Jonathan Müller
49e63c4a9b Add format_diagnostic() function 2017-10-11 22:10:17 +02:00
Jonathan Müller
35293edc24 Add column to source_location 2017-10-11 21:56:02 +02:00
Jonathan Müller
0723bea947 Only generate line directive when necessary 2017-10-11 17:11:27 +02:00
Jonathan Müller
a2929c0020 Handle newlines inside C comments 2017-10-11 17:09:54 +02:00
Jonathan Müller
dd0a20c6d5 Support C-style doc comments with ! 2017-10-11 10:15:44 +02:00
Jonathan Müller
845ef61017 Use #line directive to enforce matching line numbers
clang preprocessing output is different on Windows for some reason...
2017-10-10 22:11:29 +02:00
Jonathan Müller
b28fff6c37 Fix preprocessor line numbers if includes aren't supported 2017-10-10 21:13:29 +02:00
Jonathan Müller
d088b44db6 Add line numbers to diagnostics 2017-10-10 17:16:10 +02:00
Jonathan Müller
7c30ba7c46 [breaking] Ensure matching line numbers after preprocessing
Unmatched documentation comments are not just a string, but also contain the line number as well.
2017-10-10 17:07:41 +02:00
Jonathan Müller
b3885bbb68 Remove comments in macro invocations
Just breaks to much.
2017-10-07 09:58:14 +02:00
Jonathan Müller
35c090e7c3 Put full path in quotes 2017-06-22 13:57:59 +02:00
Jonathan Müller
b0cd795836 Hide wrong warnings if header files are parsed directly 2017-06-20 22:17:44 +02:00
Jonathan Müller
d6e993a7b2 Optimize preprocessing string searching/comparing 2017-06-20 22:17:44 +02:00
Jonathan Müller
fd449dde4a Store full path of header as well 2017-06-20 22:17:44 +02:00
Jonathan Müller
017dbb3114 Update submodules 2017-05-27 10:16:18 +02:00
Jonathan Müller
bc9b8433c8 Skip character literals when preprocessing 2017-04-21 11:52:30 +02:00
Jonathan Müller
d1fafdaa92 Add appveyor.yml 2017-04-21 11:18:36 +02:00
Jonathan Müller
1420abc81b Add .travis.yml 2017-04-21 10:12:06 +02:00
Jonathan Müller
6e7a8c921c Skip strings when preprocessing 2017-04-19 16:52:56 +02:00
Jonathan Müller
b189c72280 Handle empty C comments in preprocessor 2017-04-19 16:38:18 +02:00
Jonathan Müller
f359885e87 Keep macro definitions when preprocessing
Other includes libclang encounters might depend on them.
2017-04-14 22:38:25 +02:00
Jonathan Müller
b6767ffdeb Force C++ and add current include dir when preprocessing 2017-04-12 17:44:50 +02:00
Jonathan Müller
4dc771ad6b Skip comments instead of writing them to output
This simplifies parsing.
2017-04-12 15:09:42 +02:00
Jonathan Müller
db20190fe4 Workaround clang bug with #undef output 2017-04-12 14:52:28 +02:00
Jonathan Müller
a8e2676f36 Fix error reporting in preprocessor 2017-04-10 19:58:17 +02:00
Jonathan Müller
9c46c96820 Fix and test include directive parsing 2017-04-03 09:49:29 +02:00
Jonathan Müller
d18070a799 Implement code generation 2017-03-29 19:51:02 +02:00
Jonathan Müller
183aeaafde Parse documentation comments 2017-03-16 11:49:37 +01:00
Jonathan Müller
f66fa70b1f Format preprocessor diagnostics 2017-02-19 20:51:08 +01:00
Jonathan Müller
108fd1b2ee Add diagnostic_logger 2017-02-16 22:08:56 +01:00
Jonathan Müller
a0c2eece5b Add and use libclang_error exception class 2017-02-16 21:33:41 +01:00
Jonathan Müller
2e1dce2ffd Fix include handling support
Can't be tested until clang 4.0.
2017-02-16 20:33:48 +01:00