diff --git a/CSharpTranslator/antlr3/CSharpTranslator.userprefs b/CSharpTranslator/antlr3/CSharpTranslator.userprefs
index c687484..77f5d92 100644
--- a/CSharpTranslator/antlr3/CSharpTranslator.userprefs
+++ b/CSharpTranslator/antlr3/CSharpTranslator.userprefs
@@ -15,17 +15,14 @@
-
-
-
+
+
+
-
-
-
-
+
@@ -34,7 +31,9 @@
-
+
+ t
+
@@ -47,7 +46,6 @@
-
diff --git a/CSharpTranslator/antlr3/src/cs2j/Utils/TypeHelper.cs b/CSharpTranslator/antlr3/src/cs2j/Utils/TypeHelper.cs
new file mode 100644
index 0000000..9dc5859
--- /dev/null
+++ b/CSharpTranslator/antlr3/src/cs2j/Utils/TypeHelper.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Text;
+namespace cs2j
+{
+ public static class TypeHelper
+ {
+
+ public static string buildTypeName(Type t) {
+ StringBuilder typeName = new StringBuilder();
+ if (t.IsGenericType) {
+ typeName.Append(t.GetGenericTypeDefinition().FullName + "[");
+ foreach(Type a in t.GetGenericArguments()) {
+ typeName.Append(buildTypeName(a) + ",");
+ }
+ typeName.Remove(typeName.Length - 1,1);
+ typeName.Append("]");
+ }
+ else {
+ typeName.Append(t.FullName);
+ }
+ return typeName.ToString();
+ }
+ }
+}
+
diff --git a/CSharpTranslator/antlr3/src/cs2j/cs2j.csproj b/CSharpTranslator/antlr3/src/cs2j/cs2j.csproj
index 9ae1358..06db24c 100644
--- a/CSharpTranslator/antlr3/src/cs2j/cs2j.csproj
+++ b/CSharpTranslator/antlr3/src/cs2j/cs2j.csproj
@@ -65,6 +65,7 @@
+
@@ -115,7 +116,4 @@
-
-
-
\ No newline at end of file
diff --git a/CSharpTranslator/antlr3/src/cs2jTemplateGen/Main.cs b/CSharpTranslator/antlr3/src/cs2jTemplateGen/Main.cs
index e6843e9..c33408b 100644
--- a/CSharpTranslator/antlr3/src/cs2jTemplateGen/Main.cs
+++ b/CSharpTranslator/antlr3/src/cs2jTemplateGen/Main.cs
@@ -35,32 +35,32 @@ namespace cs2j.Template.Utils
Console.WriteLine ("Enums:");
foreach (Type item in exportedTypes) {
if (item.IsEnum) {
- Console.WriteLine (" * " + item.FullName);
+ Console.WriteLine (" * " + TypeHelper.buildTypeName(item));
}
}
Console.WriteLine ("Interfaces:");
foreach (Type item in exportedTypes) {
if (item.IsInterface) {
- Console.WriteLine (" * " + item.FullName);
+ Console.WriteLine (" * " + TypeHelper.buildTypeName(item));
}
}
Console.WriteLine ("Classes:");
foreach (Type item in exportedTypes) {
if (item.IsClass) {
- Console.WriteLine (" * " + item.FullName);
+ Console.WriteLine (" * " + TypeHelper.buildTypeName(item));
}
}
Console.WriteLine ("Arrays:");
foreach (Type item in exportedTypes) {
if (item.IsArray) {
- Console.WriteLine (" * " + item.FullName);
+ Console.WriteLine (" * " + TypeHelper.buildTypeName(item));
}
}
Console.WriteLine ("Others:");
foreach (Type item in exportedTypes) {
if (!item.IsEnum && !item.IsInterface && !item.IsClass && !item.IsArray) {
- Console.WriteLine (" * " + item.FullName);
+ Console.WriteLine (" * " + TypeHelper.buildTypeName(item));
}
}
@@ -69,7 +69,7 @@ namespace cs2j.Template.Utils
private void buildParameters(ConstructorRepTemplate c, MethodBase m) {
foreach (ParameterInfo p in m.GetParameters()) {
ParamRepTemplate paramRep = new ParamRepTemplate();
- paramRep.Type = p.ParameterType.FullName;
+ paramRep.Type = TypeHelper.buildTypeName(p.ParameterType);
paramRep.Name = p.Name;
c.Params.Add(paramRep);
}
@@ -77,12 +77,12 @@ namespace cs2j.Template.Utils
private void buildInterface(InterfaceRepTemplate iface, Type t) {
- iface.TypeName = t.FullName;
+ iface.TypeName = TypeHelper.buildTypeName(t);
// Grab Methods
foreach (MethodInfo m in t.GetMethods()) {
MethodRepTemplate methRep = new MethodRepTemplate();
methRep.Name = m.Name;
- methRep.Return = m.ReturnType.FullName;
+ methRep.Return = TypeHelper.buildTypeName(m.ReturnType);
buildParameters(methRep, m);
iface.Methods.Add(methRep);
}
@@ -91,7 +91,7 @@ namespace cs2j.Template.Utils
foreach (PropertyInfo p in t.GetProperties()) {
PropRepTemplate propRep = new PropRepTemplate();
propRep.Name = p.Name;
- propRep.Type = p.PropertyType.FullName;
+ propRep.Type = TypeHelper.buildTypeName(p.PropertyType);
iface.Properties.Add(propRep);
}
@@ -99,7 +99,7 @@ namespace cs2j.Template.Utils
foreach (EventInfo e in t.GetEvents()) {
FieldRepTemplate eventRep = new FieldRepTemplate();
eventRep.Name = e.Name;
- eventRep.Type = e.EventHandlerType.FullName;
+ eventRep.Type = TypeHelper.buildTypeName(e.EventHandlerType);
iface.Events.Add(eventRep);
}
}
@@ -117,7 +117,7 @@ namespace cs2j.Template.Utils
foreach (FieldInfo f in t.GetFields()) {
FieldRepTemplate fieldRep = new FieldRepTemplate();
fieldRep.Name = f.Name;
- fieldRep.Type = f.FieldType.FullName;
+ fieldRep.Type = TypeHelper.buildTypeName(f.FieldType);
klass.Fields.Add(fieldRep);
}
@@ -139,7 +139,7 @@ namespace cs2j.Template.Utils
}
else if (t.IsEnum) {
EnumRepTemplate enumRep = new EnumRepTemplate();
- enumRep.TypeName = t.FullName;
+ enumRep.TypeName = TypeHelper.buildTypeName(t);
foreach (FieldInfo f in t.GetFields(BindingFlags.Public | BindingFlags.Static)) {
enumRep.Members.Add(new EnumMemberRepTemplate(f.Name, f.GetRawConstantValue().ToString()));
}
diff --git a/CSharpTranslator/antlr3/src/cs2jTemplateGen/cs2jTemplateGen.csproj b/CSharpTranslator/antlr3/src/cs2jTemplateGen/cs2jTemplateGen.csproj
index 3157cf2..2b8adbc 100644
--- a/CSharpTranslator/antlr3/src/cs2jTemplateGen/cs2jTemplateGen.csproj
+++ b/CSharpTranslator/antlr3/src/cs2jTemplateGen/cs2jTemplateGen.csproj
@@ -1 +1 @@
-
Debug
AnyCPU
10.0.0
2.0
{CC80B16E-0700-4AA5-ABA0-ADBCD9316952}
Exe
cs2jTemplateGen
cs2jTemplateGen
v3.5
true
full
false
bin\Debug
DEBUG
prompt
4
true
-dll /Users/keving/gitrepos/cs2j/CSharpTranslator/antlr3/src/cs2jTemplateGen/bin/Debug/NDesk.Options.dll NDesk.Options.OptionValueType
none
false
bin\Release
prompt
4
true
{CE961AC5-C8D4-41B3-AAF3-23FA8FAEE8AD}
cs2j
{E6ACBB37-AF38-45E1-B399-0CEE63809A15}
NDesk.Options
\ No newline at end of file
+
Debug
AnyCPU
10.0.0
2.0
{CC80B16E-0700-4AA5-ABA0-ADBCD9316952}
Exe
cs2jTemplateGen
cs2jTemplateGen
v3.5
true
full
false
bin\Debug
DEBUG
prompt
4
true
-dll /Users/keving/gitrepos/cs2j/CSharpTranslator/antlr3/src/cs2jTemplateGen/bin/Debug/NDesk.Options.dll NDesk.Options.OptionValueCollection
none
false
bin\Release
prompt
4
true
{CE961AC5-C8D4-41B3-AAF3-23FA8FAEE8AD}
cs2j
{E6ACBB37-AF38-45E1-B399-0CEE63809A15}
NDesk.Options
\ No newline at end of file