public static StructGenerator Struct(RootAccessModifier scope, StructModifier modifier, string name) { var @struct = new StructGenerator(); @struct.scope = scope; @struct.modifier = modifier; @struct.name = name; @struct.isNested = false; return(@struct); }
/// <summary> /// Create a root class generator based on required parameters. /// </summary> public static ClassGenerator Class(RootAccessModifier scope, ClassModifier modifier, string name, Type inherits) { var @class = new ClassGenerator(); @class.scope = scope; @class.modifier = modifier; @class.name = name; @class.inherits = inherits == null ? typeof(object) : inherits; @class.isNested = false; return(@class); }
/// <summary> /// Create a root class generator based on required parameters. /// </summary> public static ClassGenerator Class(RootAccessModifier scope, ClassModifier modifier, string name, string inherits, string inheritsNamespace, List <string> usings = null) { var @class = new ClassGenerator(); @class.scope = scope; @class.modifier = modifier; @class.name = name; @class.assemblyQualifiedInheritanceNamespace = inheritsNamespace; @class.assemblyQualifiedInheritanceType = inherits; @class.isNested = false; @class.usings = usings; @class.useAssemblyQualifiedNameForInheritance = true; return(@class); }
public static string Declaration(int indent, RootAccessModifier scope, string typeName, string inherits, List <Interface> interfaces, string attributes, string parameters, List <Variable> variables, string customVariables, string constructors, Methods methods, bool isLive) { var output = string.Empty; output += attributes + (string.IsNullOrEmpty(attributes) ? string.Empty : "\n"); output += CodeBuilder.Indent(indent) + CodeBuilder.Scope(scope) + " " + Patcher.ObjectTypeName(ObjectKind.Class) + " " + typeName + CodeBuilder.TryAddBaseTypeSeperator(inherits, interfaces) + inherits + CodeBuilder.Interfaces(interfaces, inherits, (interfaces.Count > 0) ? true : false); output += "\n"; output += CodeBuilder.Indent(indent) + "{"; output += "\n"; output += CodeBuilder.Variables(variables, indent + 1); output += (string.IsNullOrEmpty(constructors) ? string.Empty : "\n"); output += constructors; output += CodeBuilder.Indent(indent) + "}"; return(output); }
public static string Declaration(int indent, RootAccessModifier scope, ClassModifier modifier, string typeName, string inherits, List <Interface> interfaces, string attributes, string parameters, List <Variable> variables, string customVariables, string constructors, string preMethodCustomText, Methods methods, bool isLive) { var output = string.Empty; output += attributes + (string.IsNullOrEmpty(attributes) ? string.Empty : "\n"); output += CodeBuilder.Indent(indent) + CodeBuilder.Scope(scope) + " " + ((modifier == ClassModifier.None) ? string.Empty : Patcher.AddLowerUpperNeighboringSpaces(modifier.ToString()).ToLower()) + " " + Patcher.ObjectTypeName(ObjectKind.Class) + " " + typeName + CodeBuilder.TryAddBaseTypeSeperator(inherits, interfaces) + inherits + CodeBuilder.Interfaces(interfaces, inherits, (interfaces.Count > 0) ? true : false); output += "\n"; output += CodeBuilder.Indent(indent) + "{"; output += "\n"; output += CodeBuilder.Variables(variables, indent + 1); output += customVariables; output += (string.IsNullOrEmpty(customVariables) ? string.Empty : "\n"); output += constructors; output += preMethodCustomText; output += string.IsNullOrEmpty(preMethodCustomText) ? string.Empty : "\n\n"; output += MethodBuilder.Methods(indent + 1, methods, isLive); output += CodeBuilder.Indent(indent) + "}"; return(output); }
public static string EnumDeclaration(int indent, RootAccessModifier scope, string typeName, string attributes, List <Enum> items, bool isLive) { var output = string.Empty; output += attributes + (string.IsNullOrEmpty(attributes) ? string.Empty : "\n"); output += CodeBuilder.Indent(indent) + CodeBuilder.Scope(scope) + " " + Patcher.ObjectTypeName(ObjectKind.Enum) + " " + typeName; output += "\n"; output += CodeBuilder.Indent(indent) + "{"; output += "\n"; for (int i = 0; i < items.Count; i++) { output += CodeBuilder.Indent(indent + 1) + items[i].name + " = " + items[i].index.ToString(); if (i != items.Count - 1) { output += ","; } output += "\n"; } output += CodeBuilder.Indent(indent) + "}"; return(output); }
public static string Scope(RootAccessModifier scope) { return(Patcher.AddLowerUpperNeighboringSpaces(scope.ToString().ToLower())); }
public static string AsString(RootAccessModifier scope) { return(scope.ToString().ToLower()); }
public static string AsString(this RootAccessModifier scope) { return(EnumToLower(scope)); }