public static void FixClass(string file) { List <InstanceCode> instances = new List <InstanceCode>(); uint bracketLevel = 0; string previousLine = ""; uint lineIndex = 0; string[] lines = File.ReadAllLines(file); foreach (string line in lines) { string realLine = line.TrimStart(' '); if (realLine.Contains("{")) { bracketLevel++; } if (realLine.Contains("}")) { bracketLevel--; } if (InstanceCode.Check(previousLine)) { InstanceCode instance = new InstanceCode(bracketLevel) { StartLine = lineIndex }; instance.Feed(previousLine); instances.Add(instance); } foreach (InstanceCode instance in instances) { if (bracketLevel < instance.IndentLevel && !instance.IsDone) { instance.IsDone = true; instance.EndLine = lineIndex - 1; continue; } if (bracketLevel >= instance.IndentLevel) { instance.Feed(line); } } previousLine = realLine; lineIndex++; } if (instances.Count == 0) { return; } StringBuilder output = new StringBuilder(); foreach (InstanceCode instance in instances) { instance.ParseFedLines(); instance.UpdateFields(FieldNames); } lineIndex = 0; foreach (string line in lines) { bool writeNormal = true; foreach (InstanceCode instance in instances) { if (instance.StartLine < lineIndex && instance.EndLine >= lineIndex) { writeNormal = false; } if (lineIndex == instance.StartLine + 1) { instance.Write(output); } } if (writeNormal) { output.AppendLine(line); } lineIndex++; } Console.Out.WriteLine(output); string outTest = OutputDirectory + file.Replace(InputDirectory, ""); WriteStringToFile(output.ToString(), outTest); }
public override int GetHashCode() { return(ClassGroupCode.GetHashCode() ^ ClassCode.GetHashCode() ^ InstanceCode.GetHashCode()); }