Browse Source

Unify enumeration item generation between CLI and C# generators.

pull/778/head
Joao Matos 9 years ago
parent
commit
f90c019178
  1. 17
      src/Generator/Generators/CLI/CLIHeaders.cs
  2. 19
      src/Generator/Generators/CSharp/CSharpSources.cs
  3. 40
      src/Generator/Generators/CodeGenerator.cs
  4. 3
      src/Generator/Utils/BlockGenerator.cs

17
src/Generator/Generators/CLI/CLIHeaders.cs

@ -836,22 +836,7 @@ namespace CppSharp.Generators.CLI @@ -836,22 +836,7 @@ namespace CppSharp.Generators.CLI
NewLine();
WriteStartBraceIndent();
foreach (var item in @enum.Items)
{
PushBlock(CLIBlockKind.EnumItem);
GenerateInlineSummary(item.Comment);
Write(item.Name);
if (item.ExplicitValue)
Write(" = {0}", @enum.GetItemValueAsString(item));
if (item != @enum.Items.Last())
WriteLine(",");
PopBlock(NewLineKind.Never);
}
GenerateEnumItems(@enum);
PopIndent();
WriteLine("};");

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

@ -3020,25 +3020,6 @@ namespace CppSharp.Generators.CSharp @@ -3020,25 +3020,6 @@ namespace CppSharp.Generators.CSharp
return true;
}
public virtual void GenerateEnumItems(Enumeration @enum)
{
for (var i = 0; i < @enum.Items.Count; ++i)
{
var item = @enum.Items[i];
GenerateInlineSummary(item.Comment);
var value = @enum.GetItemValueAsString(item);
Write(item.ExplicitValue
? string.Format("{0} = {1}", item.Name, value)
: string.Format("{0}", item.Name));
if (i < @enum.Items.Count - 1)
Write(",");
NewLine();
}
}
public static string GetMethodIdentifier(Method method)
{
if (method.IsConstructor || method.IsDestructor)

40
src/Generator/Generators/CodeGenerator.cs

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Util;
using CppSharp.AST;
using CppSharp.Generators.CSharp;
@ -166,6 +167,40 @@ namespace CppSharp.Generators @@ -166,6 +167,40 @@ namespace CppSharp.Generators
#endregion
#region Enum generation
public virtual void GenerateEnumItems(Enumeration @enum)
{
foreach (var item in @enum.Items)
{
PushBlock(BlockKind.EnumItem);
item.Visit(this);
if (item != @enum.Items.Last())
WriteLine(",");
PopBlock(NewLineKind.Never);
}
PopIndent();
WriteLine("};");
}
public virtual bool VisitEnumItemDecl(Enumeration.Item item)
{
GenerateInlineSummary(item.Comment);
Write(item.Name);
var @enum = item.Namespace as Enumeration;
if (item.ExplicitValue)
Write(" = {0}", @enum.GetItemValueAsString(item));
return true;
}
#endregion
#region Visitor methods
@ -233,11 +268,6 @@ namespace CppSharp.Generators @@ -233,11 +268,6 @@ namespace CppSharp.Generators
throw new NotImplementedException();
}
public virtual bool VisitEnumItemDecl(Enumeration.Item item)
{
throw new NotImplementedException();
}
public virtual bool VisitVariableDecl(Variable variable)
{
throw new NotImplementedException();

3
src/Generator/Utils/BlockGenerator.cs

@ -20,7 +20,8 @@ namespace CppSharp @@ -20,7 +20,8 @@ namespace CppSharp
public const int InlineComment = 2;
public const int Header = 3;
public const int Footer = 4;
public const int LAST = 5;
public const int EnumItem = 5;
public const int LAST = 6;
}
public class Block : ITextGenerator

Loading…
Cancel
Save