public string ConvertFromCSharp(TextNode node)
{
var sb = new StringBuilder();
if (node.Text == "List")
{
sb.Append(ConvertFromCSharp(node.Children[0]));
sb.Append("[]");
}
else if (node.Text == "Dictionary")
{
sb.Append("{ [index:");
sb.Append(ConvertFromCSharp(node.Children[0]));
sb.Append("]: ");
sb.Append(ConvertFromCSharp(node.Children[1]));
sb.Append("; }");
}
else
{
if (node.Text == "Tuple")
node.Text += "`" + node.Children.Count;
sb.Append(TypeAlias(node.Text));
if (node.Children.Count > 0)
{
sb.Append("<");
for (var i = 0; i < node.Children.Count; i++)
{
var childNode = node.Children[i];
if (i > 0)
sb.Append(",");
sb.Append(ConvertFromCSharp(childNode));
}
sb.Append(">");
}
}
return sb.ToString();
}
}