@ -41,100 +41,100 @@ namespace CppSharp
@@ -41,100 +41,100 @@ namespace CppSharp
switch ( type . Kind )
{
case TypeKind . Tag :
{
var _ type = TagType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitTag ( _ type ) ;
}
{
var _ type = TagType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitTag ( _ type ) ;
}
case TypeKind . Array :
{
var _ type = ArrayType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitArray ( _ type ) ;
}
{
var _ type = ArrayType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitArray ( _ type ) ;
}
case TypeKind . Function :
{
var _ type = FunctionType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitFunction ( _ type ) ;
}
{
var _ type = FunctionType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitFunction ( _ type ) ;
}
case TypeKind . Pointer :
{
var _ type = PointerType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitPointer ( _ type ) ;
}
{
var _ type = PointerType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitPointer ( _ type ) ;
}
case TypeKind . MemberPointer :
{
var _ type = MemberPointerType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitMemberPointer ( _ type ) ;
}
{
var _ type = MemberPointerType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitMemberPointer ( _ type ) ;
}
case TypeKind . Typedef :
{
var _ type = TypedefType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitTypedef ( _ type ) ;
}
{
var _ type = TypedefType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitTypedef ( _ type ) ;
}
case TypeKind . Attributed :
{
var _ type = AttributedType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitAttributed ( _ type ) ;
}
{
var _ type = AttributedType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitAttributed ( _ type ) ;
}
case TypeKind . Decayed :
{
var _ type = DecayedType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitDecayed ( _ type ) ;
}
{
var _ type = DecayedType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitDecayed ( _ type ) ;
}
case TypeKind . TemplateSpecialization :
{
var _ type = TemplateSpecializationType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitTemplateSpecialization ( _ type ) ;
}
{
var _ type = TemplateSpecializationType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitTemplateSpecialization ( _ type ) ;
}
case TypeKind . DependentTemplateSpecialization :
{
var _ type = DependentTemplateSpecializationType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitDependentTemplateSpecialization ( _ type ) ;
}
{
var _ type = DependentTemplateSpecializationType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitDependentTemplateSpecialization ( _ type ) ;
}
case TypeKind . TemplateParameter :
{
var _ type = TemplateParameterType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitTemplateParameter ( _ type ) ;
}
{
var _ type = TemplateParameterType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitTemplateParameter ( _ type ) ;
}
case TypeKind . TemplateParameterSubstitution :
{
var _ type = TemplateParameterSubstitutionType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitTemplateParameterSubstitution ( _ type ) ;
}
{
var _ type = TemplateParameterSubstitutionType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitTemplateParameterSubstitution ( _ type ) ;
}
case TypeKind . InjectedClassName :
{
var _ type = InjectedClassNameType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitInjectedClassName ( _ type ) ;
}
{
var _ type = InjectedClassNameType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitInjectedClassName ( _ type ) ;
}
case TypeKind . DependentName :
{
var _ type = DependentNameType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitDependentName ( _ type ) ;
}
{
var _ type = DependentNameType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitDependentName ( _ type ) ;
}
case TypeKind . Builtin :
{
var _ type = BuiltinType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitBuiltin ( _ type ) ;
}
{
var _ type = BuiltinType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitBuiltin ( _ type ) ;
}
case TypeKind . PackExpansion :
{
var _ type = PackExpansionType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitPackExpansion ( _ type ) ;
}
{
var _ type = PackExpansionType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitPackExpansion ( _ type ) ;
}
case TypeKind . UnaryTransform :
{
var _ type = UnaryTransformType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitUnaryTransform ( _ type ) ;
}
{
var _ type = UnaryTransformType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitUnaryTransform ( _ type ) ;
}
case TypeKind . UnresolvedUsing :
{
var _ type = UnresolvedUsingType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitUnresolvedUsing ( _ type ) ;
}
{
var _ type = UnresolvedUsingType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitUnresolvedUsing ( _ type ) ;
}
case TypeKind . Vector :
{
var _ type = VectorType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitVector ( _ type ) ;
}
{
var _ type = VectorType . _ _ CreateInstance ( type . _ _ Instance ) ;
return VisitVector ( _ type ) ;
}
}
throw new ArgumentOutOfRangeException ( ) ;
@ -182,135 +182,135 @@ namespace CppSharp
@@ -182,135 +182,135 @@ namespace CppSharp
switch ( decl . Kind )
{
case DeclarationKind . TranslationUnit :
{
var _d ecl = TranslationUnit . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitTranslationUnit ( _d ecl ) ;
}
{
var _d ecl = TranslationUnit . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitTranslationUnit ( _d ecl ) ;
}
case DeclarationKind . Namespace :
{
var _d ecl = Namespace . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitNamespace ( _d ecl ) ;
}
{
var _d ecl = Namespace . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitNamespace ( _d ecl ) ;
}
case DeclarationKind . Typedef :
{
var _d ecl = TypedefDecl . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitTypedef ( _d ecl ) ;
}
{
var _d ecl = TypedefDecl . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitTypedef ( _d ecl ) ;
}
case DeclarationKind . TypeAlias :
{
var _d ecl = TypeAlias . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitTypeAlias ( _d ecl ) ;
}
{
var _d ecl = TypeAlias . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitTypeAlias ( _d ecl ) ;
}
case DeclarationKind . Parameter :
{
var _d ecl = Parameter . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitParameter ( _d ecl ) ;
}
{
var _d ecl = Parameter . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitParameter ( _d ecl ) ;
}
case DeclarationKind . Function :
{
var _d ecl = Function . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitFunction ( _d ecl ) ;
}
{
var _d ecl = Function . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitFunction ( _d ecl ) ;
}
case DeclarationKind . Method :
{
var _d ecl = Method . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitMethod ( _d ecl ) ;
}
{
var _d ecl = Method . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitMethod ( _d ecl ) ;
}
case DeclarationKind . Enumeration :
{
var _d ecl = Enumeration . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitEnumeration ( _d ecl ) ;
}
{
var _d ecl = Enumeration . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitEnumeration ( _d ecl ) ;
}
case DeclarationKind . EnumerationItem :
{
var _d ecl = Enumeration . Item . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitEnumerationItem ( _d ecl ) ;
}
{
var _d ecl = Enumeration . Item . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitEnumerationItem ( _d ecl ) ;
}
case DeclarationKind . Variable :
{
var _d ecl = Variable . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitVariable ( _d ecl ) ;
}
{
var _d ecl = Variable . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitVariable ( _d ecl ) ;
}
case DeclarationKind . VarTemplate :
{
var _d ecl = VarTemplate . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitVarTemplate ( _d ecl ) ;
}
{
var _d ecl = VarTemplate . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitVarTemplate ( _d ecl ) ;
}
case DeclarationKind . VarTemplateSpecialization :
{
var _d ecl = VarTemplateSpecialization . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitVarTemplateSpecialization ( _d ecl ) ;
}
{
var _d ecl = VarTemplateSpecialization . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitVarTemplateSpecialization ( _d ecl ) ;
}
case DeclarationKind . VarTemplatePartialSpecialization :
{
var _d ecl = VarTemplatePartialSpecialization . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitVarTemplatePartialSpecialization ( _d ecl ) ;
}
{
var _d ecl = VarTemplatePartialSpecialization . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitVarTemplatePartialSpecialization ( _d ecl ) ;
}
case DeclarationKind . Friend :
{
var _d ecl = Friend . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitFriend ( _d ecl ) ;
}
{
var _d ecl = Friend . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitFriend ( _d ecl ) ;
}
case DeclarationKind . Field :
{
var _d ecl = Field . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitField ( _d ecl ) ;
}
{
var _d ecl = Field . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitField ( _d ecl ) ;
}
case DeclarationKind . AccessSpecifier :
{
var _d ecl = AccessSpecifierDecl . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitAccessSpecifier ( _d ecl ) ;
}
{
var _d ecl = AccessSpecifierDecl . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitAccessSpecifier ( _d ecl ) ;
}
case DeclarationKind . Class :
{
var _d ecl = Class . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitClass ( _d ecl ) ;
}
{
var _d ecl = Class . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitClass ( _d ecl ) ;
}
case DeclarationKind . ClassTemplate :
{
var _d ecl = ClassTemplate . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitClassTemplate ( _d ecl ) ;
}
{
var _d ecl = ClassTemplate . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitClassTemplate ( _d ecl ) ;
}
case DeclarationKind . ClassTemplateSpecialization :
{
var _d ecl = ClassTemplateSpecialization . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitClassTemplateSpecialization ( _d ecl ) ;
}
{
var _d ecl = ClassTemplateSpecialization . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitClassTemplateSpecialization ( _d ecl ) ;
}
case DeclarationKind . ClassTemplatePartialSpecialization :
{
var _d ecl = ClassTemplatePartialSpecialization . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitClassTemplatePartialSpecialization ( _d ecl ) ;
}
{
var _d ecl = ClassTemplatePartialSpecialization . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitClassTemplatePartialSpecialization ( _d ecl ) ;
}
case DeclarationKind . FunctionTemplate :
{
var _d ecl = FunctionTemplate . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitFunctionTemplate ( _d ecl ) ;
}
{
var _d ecl = FunctionTemplate . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitFunctionTemplate ( _d ecl ) ;
}
case DeclarationKind . TypeAliasTemplate :
{
var _d ecl = TypeAliasTemplate . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitTypeAliasTemplate ( _d ecl ) ;
}
{
var _d ecl = TypeAliasTemplate . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitTypeAliasTemplate ( _d ecl ) ;
}
case DeclarationKind . TemplateTemplateParm :
{
var _d ecl = TemplateTemplateParameter . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitTemplateTemplateParameter ( _d ecl ) ;
}
{
var _d ecl = TemplateTemplateParameter . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitTemplateTemplateParameter ( _d ecl ) ;
}
case DeclarationKind . TemplateTypeParm :
{
var _d ecl = TypeTemplateParameter . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitTypeTemplateParameter ( _d ecl ) ;
}
{
var _d ecl = TypeTemplateParameter . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitTypeTemplateParameter ( _d ecl ) ;
}
case DeclarationKind . NonTypeTemplateParm :
{
var _d ecl = NonTypeTemplateParameter . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitNonTypeTemplateParameter ( _d ecl ) ;
}
{
var _d ecl = NonTypeTemplateParameter . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitNonTypeTemplateParameter ( _d ecl ) ;
}
case DeclarationKind . UnresolvedUsingTypename :
{
var _d ecl = UnresolvedUsingTypename . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitUnresolvedUsingTypename ( _d ecl ) ;
}
{
var _d ecl = UnresolvedUsingTypename . _ _ CreateInstance ( decl . _ _ Instance ) ;
return VisitUnresolvedUsingTypename ( _d ecl ) ;
}
}
throw new ArgumentOutOfRangeException ( ) ;
@ -1833,6 +1833,8 @@ namespace CppSharp
@@ -1833,6 +1833,8 @@ namespace CppSharp
var _ spec = ( AST . ClassTemplateSpecialization ) Visit ( spec ) ;
_d ecl . Specializations . Add ( _ spec ) ;
}
_d ecl . TemplatedClass . TemplateParameters . AddRange ( _d ecl . Parameters ) ;
_d ecl . TemplatedClass . Specializations . AddRange ( _d ecl . Specializations ) ;
return _d ecl ;
}
@ -1927,6 +1929,7 @@ namespace CppSharp
@@ -1927,6 +1929,7 @@ namespace CppSharp
var _ param = Visit ( param ) ;
_d ecl . Parameters . Add ( _ param ) ;
}
_d ecl . TemplateParameters . AddRange ( _d ecl . TemplatedDecl . Parameters ) ;
return _d ecl ;
}