Joao Matos
e61a7b7453
Fixed type printing code to work handle non-C++ global qualified names correctly.
9 years ago
Dimitar Dobrev
5af5b2093f
Extended the AST with the template parameters being substituted.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
99f6dcac7b
Fixed a possible crash when getting a declaration from a type.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Joao Matos
cc2fec76d1
Make Declaration.GatherNamespaces public.
9 years ago
Joao Matos
a0ac04d67c
Fixed another instance of qualified pontee visitation.
9 years ago
Joao Matos
b117410729
Moved typedef declarations to their own file.
9 years ago
Joao Matos
4d277afa69
Fixed C/C++ type printing of const pointers with const types.
9 years ago
Dimitar Dobrev
d22e084c7c
Fixed the walking of pointer types to use the correct qualifiers.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Joao Matos
f32375be4f
Refactored and renamed ASTContext.FindOrCreateModule.
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
71c6e72959
Added convenience ctor to TypedefType.
9 years ago
Joao Matos
e1fae44c64
Refactored CppTypePrinter to be more easily extensible.
9 years ago
Joao Matos
21dd5d71a8
Fixed ASTVisitor.VisitUnsupportedType to be virtual.
9 years ago
Joao Matos
284ee9eba3
Added support for printing variable arrays as pointers in C type printer.
9 years ago
Joao Matos
76ce6c7836
Added an unsupported type node to the AST.
9 years ago
Joao Matos
e90ffcc5bd
Added Objective-C parameter printing to type printer.
9 years ago
Dimitar Dobrev
d2326a3883
Added processing of type aliases.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
b16bb0a979
Moved the change of order when visiting properties to just the renaming pass.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
829422cc86
Fixed invalid generated C# code when having a field renamed the same as a method.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
1bcf5c514e
Wrapped units with ignored classes because of their internals.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
e6c4bb9cc5
Fixed a crash when overrides change the sugaring of involved types.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 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
50ee414799
Fixed the C++ type printer to handle const value types.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Joao Matos
65fc10680a
Move SourceLocation to CppSharp.AST.
10 years ago
Joao Matos
a44da437e6
Rename AstVisitor.Options to VisitOptions.
10 years ago
Joao Matos
77b6eef89d
Extracted QualifiedNameSeparator from GetQualifiedName.
10 years ago
Joao Matos
bbfff6eec0
Improved error message for unhandled CIL type prints.
10 years ago
Joao Matos
da10dd7046
Implement const-qualified printing of CIL strings.
10 years ago
Joao Matos
3ff416b483
Updated type printer to latest changes from Mono managed to native codebase.
10 years ago
Joao Matos
a237dbf1e2
Updated build files to Premake 5 conventions.
10 years ago
Dimitar Dobrev
7d6f344324
Improved the default names of libraries for inlines and template specialisations.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
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
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
Joao Matos
b7689b2d60
Added support for missing basic Clang built-in types.
10 years ago
Joao Matos
09a9d17efb
Moved type printing functionality to CppSharp.AST.
10 years ago
Joao Matos
1206b48776
Improved debugging representation of template arguments and specializations.
10 years ago
Joao Matos
4b1309f5be
Added support for C++14 variable templates and specializations.
10 years ago
Joao Matos
4b8bb474fa
Clean up template declarations visiting behavior.
10 years ago
Dimitar Dobrev
b77d2ccdde
Ensured the system module only contains units from the current run.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
22c15789c5
Changed the searching for declarations to only return relevant ones and to work for variables.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
32122a1bba
Properly handled enumeration items in default values of parameters.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
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
f8863f941b
Extracted the logic for getting wrapped units.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
e57ea530e1
Avoided naming conflicts between methods of different specialisations of a template.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago