コード例 #1
0
ファイル: Parser.cs プロジェクト: KerwinMa/revolver
    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();
    }