public static string[] ParseScriptLines(string scriptSource, ICommandFormatter formatter) { var rawLines = new List<string>(formatter.SplitLines(scriptSource)); for (var i = rawLines.Count - 1; i >= 0; i--) { var line = rawLines[i]; if (line.EndsWith(Constants.LineContinuationIndicator) && !line.EndsWith(Constants.EscapeCharacter + Constants.LineContinuationIndicator) && i < rawLines.Count - 1) { var buffer = new StringBuilder(); formatter.PrintLine(line.Substring(0, line.Length - Constants.LineContinuationIndicator.Length), buffer); buffer.Append(rawLines[i + 1]); rawLines[i] = buffer.ToString(); rawLines.RemoveAt(i + 1); } } return rawLines.ToArray(); }