Browse Source

Simplified GetFunctionIdentifier and GetFunctionNativeIdentifier.

pull/45/merge
triton 12 years ago
parent
commit
9dfb30265e
  1. 46
      src/Generator/Generators/CSharp/CSharpTextTemplate.cs

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

@ -2020,46 +2020,36 @@ namespace CppSharp.Generators.CSharp
throw new NotSupportedException(); throw new NotSupportedException();
} }
public string GetFunctionIdentifier(Function function) public static string GetFunctionIdentifier(Function function)
{ {
var printer = TypePrinter as CSharpTypePrinter; var identifier = SafeIdentifier(function.Name);
var isNativeContext = printer.ContextKind == CSharpTypePrinterContextKind.Native;
string identifier;
bool isBuiltin;
var method = function as Method; var method = function as Method;
if (method != null && method.IsOperator) if (method == null || !method.IsOperator)
{ return identifier;
if (isNativeContext)
identifier = "Operator" + method.OperatorKind.ToString();
else
identifier = GetOperatorIdentifier(method.OperatorKind, out isBuiltin);
}
else
{
identifier = SafeIdentifier(function.Name);
}
var overloads = function.Namespace.GetFunctionOverloads(function).ToList();
var index = overloads.IndexOf(function);
if (isNativeContext && index >= 0) bool isBuiltin;
identifier += index.ToString(CultureInfo.InvariantCulture); identifier = GetOperatorIdentifier(method.OperatorKind, out isBuiltin);
return identifier; return identifier;
} }
public string GetFunctionNativeIdentifier(Function function) public static string GetFunctionNativeIdentifier(Function function)
{ {
var typePrinter = TypePrinter as CSharpTypePrinter; var identifier = SafeIdentifier(function.Name);;
typePrinter.PushContext(CSharpTypePrinterContextKind.Native);
var name = GetFunctionIdentifier(function); var method = function as Method;
if (method != null && method.IsOperator)
identifier = "Operator" + method.OperatorKind.ToString();
typePrinter.PopContext(); var overloads = function.Namespace.GetFunctionOverloads(function)
.ToList();
var index = overloads.IndexOf(function);
return name; if (index >= 0)
identifier += index.ToString(CultureInfo.InvariantCulture);
return identifier;
} }
public void GenerateInternalFunction(Function function) public void GenerateInternalFunction(Function function)

Loading…
Cancel
Save