Browse Source

Pass in an CSharpExpressionPrinter instance to CSharpTextTemplate

pull/168/head
Øystein Krog 12 years ago
parent
commit
df7c1371a6
  1. 4
      src/Generator/Generators/CSharp/CSharpGenerator.cs
  2. 5
      src/Generator/Generators/CSharp/CSharpTextTemplate.cs

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

@ -7,10 +7,12 @@ 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(Driver driver) : base(driver) public CSharpGenerator(Driver driver) : base(driver)
{ {
typePrinter = new CSharpTypePrinter(driver.TypeDatabase, driver.ASTContext); typePrinter = new CSharpTypePrinter(driver.TypeDatabase, driver.ASTContext);
expressionPrinter = new CSharpExpressionPrinter();
CppSharp.AST.Type.TypePrinterDelegate += type => type.Visit(typePrinter).Type; CppSharp.AST.Type.TypePrinterDelegate += type => type.Visit(typePrinter).Type;
} }
@ -18,7 +20,7 @@ namespace CppSharp.Generators.CSharp
{ {
var outputs = new List<Template>(); var outputs = new List<Template>();
var template = new CSharpTextTemplate(Driver, unit, typePrinter); var template = new CSharpTextTemplate(Driver, unit, typePrinter, expressionPrinter);
outputs.Add(template); outputs.Add(template);
return outputs; return outputs;

5
src/Generator/Generators/CSharp/CSharpTextTemplate.cs

@ -102,17 +102,18 @@ namespace CppSharp.Generators.CSharp
public class CSharpTextTemplate : Template public class CSharpTextTemplate : Template
{ {
public CSharpTypePrinter TypePrinter { get; private set; } public CSharpTypePrinter TypePrinter { get; private set; }
public CSharpExpressionPrinter ExpressionPrinter { get; private set; }
public override string FileExtension public override string FileExtension
{ {
get { return "cs"; } get { return "cs"; }
} }
public CSharpTextTemplate(Driver driver, TranslationUnit unit, public CSharpTextTemplate(Driver driver, TranslationUnit unit, CSharpTypePrinter typePrinter, CSharpExpressionPrinter expressionPrinter)
CSharpTypePrinter typePrinter)
: base(driver, unit) : base(driver, unit)
{ {
TypePrinter = typePrinter; TypePrinter = typePrinter;
ExpressionPrinter = expressionPrinter;
} }
#region Identifiers #region Identifiers

Loading…
Cancel
Save