Move CIL-specific type printing to type printing file.

This commit is contained in:
Joao Matos 2016-08-02 10:21:29 +01:00
Родитель 4a9933b550
Коммит da1a9a0a0b
2 изменённых файлов: 14 добавлений и 17 удалений

Просмотреть файл

@ -58,21 +58,12 @@ namespace MonoManagedToNative.Generators
return CGenerator.GenId(id);
}
string PrintCILType(CILType type, TypeQualifiers quals)
{
if (type.Type == typeof(string))
return "const char*";
throw new NotImplementedException();
}
public CppTypePrinter CTypePrinter
{
get
{
var cTypePrinter = new CppTypePrinter { PrintScopeKind = CppTypePrintScopeKind.Qualified };
cTypePrinter.CILTypePrinter += PrintCILType;
return cTypePrinter;
var typePrinter = new CppTypePrinter { PrintScopeKind = CppTypePrintScopeKind.Qualified };
return typePrinter;
}
}

Просмотреть файл

@ -85,6 +85,17 @@ namespace CppSharp.Types
Cpp,
}
static class CLITypePrinter
{
public static string Visit(CILType type, TypeQualifiers quals)
{
if (type.Type == typeof(string))
return "char*";
throw new NotImplementedException();
}
}
public class CppTypePrinter : ITypePrinter<string>, IDeclVisitor<string>
{
public CppTypePrintFlavorKind PrintFlavorKind;
@ -268,14 +279,9 @@ namespace CppSharp.Types
return string.Empty;
}
public Func<CILType , TypeQualifiers, string> CILTypePrinter;
public string VisitCILType(CILType type, TypeQualifiers quals)
{
if (CILTypePrinter != null)
return CILTypePrinter(type, quals);
return string.Empty;
return CLITypePrinter.Visit(type, quals);
}
public string VisitPrimitiveType(PrimitiveType type, TypeQualifiers quals)