Joao Matos
4c1f51f609
Get rid of generated conflicting classes in parser bindings.
9 years ago
Dimitar Dobrev
b2a872f431
Merged the passes for properties and made the result non-optional.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
56c1fab63b
Fixed a bug causing a class layout to have the class as its own base.
...
Fixes https://github.com/mono/CppSharp/issues/702 .
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
db942dc06c
Wrapped the reference qualifier of functions.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Joao Matos
d349134180
Reworked parser bindings build scripts to be more easily re-usable.
9 years ago
Dimitar Dobrev
5d8ecf32d7
Extended the AST with the GCC vector type ("__attribute__").
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
0a5c73dc48
Added explicit GNU versions to the language options of the parser.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
749c2b17ec
Renamed ParserOptions to CppParserOptions and ParserOptions2 to ParserOptions.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Joao Matos
e8064e3f4e
Minor build fixes.
10 years ago
Joao Matos
a77bc2a91f
Separate parser options from driver options.
...
This will break API compatibility, you will have to update your options setup code.
10 years ago
Joao Matos
5dac663926
Remove unneeded dependency on our own Premake helpers.
10 years ago
Joao Matos
4bc75c1e19
Remove Bootstrap project from the build.
10 years ago
Joao Matos
b0c539197e
Extract ParserGen build project to its own file.
10 years ago
Joao Matos
77c871c794
Update build files to Premake5.
10 years ago
Dimitar Dobrev
a4dfeb94be
Moved the marking of supported template specialisations to a pass.
...
This allows custom passes to add other specialisations to support.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
deea8d8cda
Removed functions made ambiguous by different qualifiers on the same type in their parameter.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
d419cb7156
Added all system fields to the internal layouts used in the C# generator.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
1dd73afda6
Fixed a crash when checking specialisations of std::vector.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
7d67f4b023
Added unary transformations and other fixes to restore the full build with all tests.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
397d82b2a1
Fixed the generated C# when having a field of type char*.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Joao Matos
b7689b2d60
Added support for missing basic Clang built-in types.
10 years ago
Joao Matos
4b1309f5be
Added support for C++14 variable templates and specializations.
10 years ago
Joao Matos
53409db5ca
Re-generated the parser bindings.
10 years ago
Joao Matos
12312bff14
Refactored common template handling code in native AST.
10 years ago
Dimitar Dobrev
d41609eafb
Marked incomplete class template specialisations and ignored them later.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
7b78053f93
Added compatibility with a little newer Clang.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Joao Matos
3f33124287
Re-factored Clang builtin include directory build script code.
10 years ago
João Matos
e5a667afc3
Copy the bundled Clang builtin include files folder to the build folder.
10 years ago
Joao Matos
ab3660cc02
Skip walking implicit C++ records.
10 years ago
Nathan Loofbourrow
d168496cbf
Changes to match clang 3.8.1 API changes
10 years ago
Dimitar Dobrev
3cd024cccf
Added marshalling of std::string to the C# end.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
fc87fb6ee9
Added the desugared type, if any, of DependentNameType, to the AST.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
7986747373
Added dependent template specialization types to the AST.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
06410eddbc
Stored specializations in the templated class itself because ClassTemplate is not a complete declaration.
...
ClassTemplate in Clang does not actually represent a complete declaration. For example, let's see the implementation of clang::ClassTemplateDecl::isThisDeclarationADefinition:
bool isThisDeclarationADefinition() const {
return getTemplatedDecl()->isThisDeclarationADefinition();
}
(http://clang.llvm.org/doxygen/DeclTemplate_8h_source.html#l01995 at the time of this commit)
The above shows that class templates do not have definitions, instead, their "definitions" are those of the real templates classes.
In addition let's see ClassTemplateDecl::getCanonicalDecl():
const ClassTemplateDecl *getCanonicalDecl() const {
return cast<ClassTemplateDecl>(
RedeclarableTemplateDecl::getCanonicalDecl());
}
(http://clang.llvm.org/doxygen/DeclTemplate_8h_source.html#l02023 at the time of this commit)
In turn RedeclarableTemplateDecl::getCanonicalDecl() is defined as:
RedeclarableTemplateDecl *getCanonicalDecl() override {
return getFirstDecl();
}
where getFirstDecl() returns just that - the first encountered declaration which might as well be a forward one.
This means that the only complete declaration ClassTemplateDecl can point to is the template class itself,
and the latter is therefore our only choice if we want to have a full list of all specializations of that template class.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
eaef452d52
Stopped ignoring system declarations so that they can be properly parsed.
...
We need this because of the upcoming support for system types, such as std::string or std::vector.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
95b592cab6
Regenerated the C# parser bindings to a single file per target.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
7f93b4a5bd
Marked incomplete declarations even if their completions cannot be found.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
cc2a283c7f
Fixed the completion of templates.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
2881a2805a
Fixed a regression in the completion of records.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
0e12c256c4
Fixed the completion of C++ classes.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
9b51e30643
Fixed the option for output name-spaces to allow eliminating them.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Joao Matos
3a43cf3349
Added support for x86_64 Linux GNU C++11 ABI parser bindings.
...
Partial fix for issue #655 .
10 years ago
Dimitar Dobrev
3eb259f151
Fixed the generated code when having long doubles in the origin.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
0c7031e951
Fixed the parsing of typedefs with the same name in different specialisations of a template.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
fa16cb9379
Removed several redundant type casts in the parser.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
f45fcc26a2
Fixed a bug in the parser thus removing the necessity for a hack we had.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 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>
10 years ago
Dimitar Dobrev
b4438b78c9
Restored the completion of member pointers when using the MS ABI.
...
The new Clang crashes without the completion.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
02c14e5e68
Partially handled MSVC system headers after VS 2015 Update 3.
...
The rest of the fix requires an update to Clang.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Joao Matos
cfc9684ba6
Initialize TemplateArgument::Integral to 0.
10 years ago