Dimitar Dobrev
0e12c256c4
Fixed the completion of C++ classes.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
6abdb764e6
Completed the exposing of type aliases in our AST.
...
Fixes https://github.com/mono/CppSharp/issues/670 .
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Joao Matos
7f75246215
Added support for C++11 type alias template declarations.
...
Partial fix for https://github.com/mono/CppSharp/issues/664 .
9 years ago
Dimitar Dobrev
517b1a5ccd
Saved the offsets per base in the layout of a record.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
c4c2ef21ce
Filled in all missing v-table pointers in record layouts.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
e2b8f44565
Properly fixed the offsets of fields in all possible cases.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
e38ebdd55c
Introduced more proper const-ness to the parser.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
0af26773de
Simplified the walking of qualified types in the parser.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
733ea63925
Introduced proper const-ness to the parser.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
cdc51afc0e
Extended the parser and AST to handle template template parameters.
...
For more details see the Clang documentation ( http://clang.llvm.org/doxygen/classclang_1_1TemplateTemplateParmDecl.html ).
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
dc84c9b765
Added an option to parse all headers at once - much faster.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
e41d4340e9
Simplified the parser by removing a redundancy.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
a6604b5f8c
Fixed a regression when getting code gen info for certain functions.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
3d4c7c56f8
Changed the parser for easier transition to a newer Clang.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
e4200f4690
Fixed the wrapping of template parameters in the parser.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
1471e6f2fb
Simplified and tested the reading of line numbers.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
6db0676b5a
Made entries in v-tables use the same method objects as regular methods.
...
Besides being obviously correct, this fixes a memory leak.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
7d7b75a155
Changed PreprocessedEntity to a non-declaration because it isn't in Clang.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
triton
b908881517
Simplified Parser::GetDeclMangledName.
10 years ago
Dimitar Dobrev
a2b8614f54
Improved the support for constructor expressions.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
10 years ago
Dimitar Dobrev
f0d237d9c2
Added a new property for the line number of the end of a declaration.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
10 years ago
triton
ac7176f1b7
Added parsing and AST support for C++ friend declarations.
11 years ago
Dimitar Dobrev
58fb80f571
Fixed a few regressions introduced by the updated code for default args.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
11 years ago
Dimitar Dobrev
26df3e0c77
Improved the handling of numeric default values.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
11 years ago
Dimitar Dobrev
768b443038
Added reading of symbols from DLL-s.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
11 years ago
Dimitar Dobrev
76e254e766
Extended the collection of library symbols to handle ELF shared objects (.so).
...
Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
11 years ago
triton
5df897bb8e
Updated to the latest LLVM and Clang revisions.
11 years ago
Dimitar Dobrev
0499556bfe
Added support for default values of parameters.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
11 years ago
Dimitar Dobrev
5523a83b29
Converted all "complex" (for example participating in class hierarchies) data type to classes.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
11 years ago
Dimitar Dobrev
f88c20aa94
Some refactoring in preparation for the default values of parameters.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
11 years ago
triton
70dfd42e07
Added support for C records to the parser.
11 years ago
Tomi Valkeinen
7f690802ea
CppParser: remove unnecessary #includes
...
Use forward declarations to avoid the need to include lots of clang headers.
This drops the compilation time for CppParser from 17.8 seconds to 14.1 seconds
for me.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@iki.fi>
11 years ago
Elias Holzer
933df5e65a
Improved support in parser for template classes and functions.
...
* Use clangIndex to identify declarations across translation units.
* Added new Find*ByUSR methods and removed unused Find*(IntPtr) methods.
* Added Depth/Index and IsParameterPack fields to TemplateParameterType.
* Fixed member initialization issues in C++ Method class.
* Added AST tests for function and class templates.
* All tests pass with new and old parser.
11 years ago
triton
55f4b849c7
Explicitly construct the parser and keep it in ParserResult.
...
This fixes some non-deterministic behavior in the new parser but it means we are keeping around all the memory for parsing until the end of the process. This is a bit messy right now but at least we keep the API compatible between parsers. After all the new parser bugs are squashed, this will be reworked.
11 years ago
triton
012efc0948
Minor formatting fixes.
11 years ago
triton
2daffce14f
Switched from llvm::OwningPtr to std::unique_ptr since LLVM removed it.
11 years ago
Øystein Krog
a268eb1875
Add new GetTargetInfo() method in parsers, that exposes information about type sizes and alignment.
12 years ago
triton
e9fd50983a
Reworked parsing of preprocessed entities.
...
Fixes macro expansions and translation units processing.
12 years ago
triton
5ce7213784
Added partial support for template specializations to the new parser.
12 years ago
triton
786ea61a7b
Fixed the C++ parser to properly parser libraries.
12 years ago
triton
677ca81154
Fixed regression in parsing of preprocessed entities.
...
Specifically we now store the pointer of the original declaration and check for duplicates.
12 years ago
Dimitar Dobrev
3f6b1d33f8
Added names to all parameters in the header for the parser.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
12 years ago
triton
078b71be45
Updated the C++ parser project to the new ASTContext class.
12 years ago
triton
1ecd2e138d
Updated CppParser to the latest Parser changes.
12 years ago
Joao Matos
17b3ac93b6
GCC/Clang parser build fixes.
12 years ago
triton
62839a3f0a
Added the new C++/CLI free parser.
...
I benchmarked it and it's about the same speed in Release mode (maybe a bit faster) but 3x slower in VS Debug mode due to all the STL usage.
12 years ago
triton
aff25384fe
Updated the parser to work with calling convention changes introduced in the latest Clang revisions (r189412).
12 years ago
triton
88229d8b71
Cleaned up Parser.h.
12 years ago
triton
5586acdbaf
Added accurate return and argument type ABI information by querying Clang's code gen layer for the correct information. This does add a lot of extra dependencies on LLVM and Clang libraries.
12 years ago
triton
5ea71589a8
Extract diagnostic handling to a method.
12 years ago