private string GenerateGenericType(string genericPart, TypeClassContext context) { if (IsNode) { return($"{genericPart}Node"); } else if ((context & TypeClassContext.GreenIEnumerableParameter) != 0) { return($"Green{genericPart}Node"); } return(genericPart); }
public TypeSyntax GetRepresentation(TypeClassContext context = TypeClassContext.None) { if ((context & TypeClassContext.NotList) != 0 && Name.StartsWith("List'")) { return(SyntaxFactory.ParseTypeName($"IEnumerable<{Name.Split('\'')[1]}Node>")); } return(SyntaxFactory.ParseTypeName($"{Name}Node")); throw new NotImplementedException(); }
public TypeSyntax GetRepresentation(TypeClassContext context = TypeClassContext.None) { string name; if ((context & TypeClassContext.Array) != 0) { name = $"{GenerateGenericType(_genericPart, context)}[]"; } else { if (_genericPart != null) { name = $"{GenerateTypeName(Type, context)}<{GenerateGenericType(_genericPart, context)}>"; } else { name = GenerateTypeName(Type, context); } } return(SyntaxFactory.ParseTypeName(name)); }
private string GenerateTypeName(string type, TypeClassContext context) { if (IsList && (context & TypeClassContext.NotList) != 0) { return("IEnumerable"); } if (IsNode) { if ((context & TypeClassContext.Red) != 0) { return($"{type}Node"); } else { return($"Green{type}Node"); } } else { return(type); } }