Browse Source

Setup type and expression printer in C# sources generator.

pull/337/merge
Joao Matos 9 years ago
parent
commit
55c26d2fe5
  1. 4
      src/Generator/Generators/CSharp/CSharpGenerator.cs
  2. 11
      src/Generator/Generators/CSharp/CSharpSources.cs

4
src/Generator/Generators/CSharp/CSharpGenerator.cs

@ -7,19 +7,17 @@ namespace CppSharp.Generators.CSharp
public class CSharpGenerator : Generator public class CSharpGenerator : Generator
{ {
private readonly CSharpTypePrinter typePrinter; private readonly CSharpTypePrinter typePrinter;
private readonly CSharpExpressionPrinter expressionPrinter;
public CSharpGenerator(BindingContext context) : base(context) public CSharpGenerator(BindingContext context) : base(context)
{ {
typePrinter = new CSharpTypePrinter(context); typePrinter = new CSharpTypePrinter(context);
expressionPrinter = new CSharpExpressionPrinter(typePrinter);
} }
public override List<CodeGenerator> Generate(IEnumerable<TranslationUnit> units) public override List<CodeGenerator> Generate(IEnumerable<TranslationUnit> units)
{ {
var outputs = new List<CodeGenerator>(); var outputs = new List<CodeGenerator>();
var gen = new CSharpSources(Context, units, typePrinter, expressionPrinter); var gen = new CSharpSources(Context, units);
outputs.Add(gen); outputs.Add(gen);
return outputs; return outputs;

11
src/Generator/Generators/CSharp/CSharpSources.cs

@ -124,17 +124,16 @@ namespace CppSharp.Generators.CSharp
public class CSharpSources : CodeGenerator public class CSharpSources : CodeGenerator
{ {
public CSharpTypePrinter TypePrinter { get; private set; } public CSharpTypePrinter TypePrinter { get; protected set; }
public CSharpExpressionPrinter ExpressionPrinter { get; private set; } public CSharpExpressionPrinter ExpressionPrinter { get; protected set; }
public override string FileExtension => "cs"; public override string FileExtension => "cs";
public CSharpSources(BindingContext context, IEnumerable<TranslationUnit> units, public CSharpSources(BindingContext context, IEnumerable<TranslationUnit> units)
CSharpTypePrinter typePrinter, CSharpExpressionPrinter expressionPrinter)
: base(context, units) : base(context, units)
{ {
TypePrinter = typePrinter; TypePrinter = new CSharpTypePrinter(context);
ExpressionPrinter = expressionPrinter; ExpressionPrinter = new CSharpExpressionPrinter(TypePrinter);
} }
#region Identifiers #region Identifiers

Loading…
Cancel
Save