Example #1
0
 string FromPosition(Substring start) {
     var from = start.Truncate(current).ToString();
     var result = new StringBuilder();
     for (var index = 0; index < from.Length; index++) {
         if (index < from.Length - 1 && from[index] == '\\') index++;
         result.Append(from[index]);
     }
     return result.ToString();
 }
        string FromPosition(Substring start)
        {
            var from   = start.Truncate(current).ToString();
            var result = new StringBuilder();

            for (var index = 0; index < from.Length; index++)
            {
                if (index < from.Length - 1 && from[index] == '\\')
                {
                    index++;
                }
                result.Append(from[index]);
            }
            return(result.ToString());
        }
 public void MoveNext()
 {
     current = current.After;
     if (current.AtEnd)
     {
         return;
     }
     if (current.StartsWith("\\"))
     {
         Type    = CharacterType.Letter;
         current = current.Skip(1).Truncate(1);
     }
     else if (current.StartsWith("[\n"))
     {
         Type    = CharacterType.BeginCell;
         current = current.Truncate(2);
     }
     else if (current.StartsWith("\n]"))
     {
         Type    = CharacterType.EndCell;
         current = current.Truncate(2);
     }
     else if (current.StartsWith("\n"))
     {
         Type    = CharacterType.Newline;
         current = current.Truncate(1);
     }
     else if (current.StartsWith("\"") || current.StartsWith("'"))
     {
         Type    = CharacterType.Quote;
         current = current.Truncate(1);
     }
     else if (current.StartsWith("|"))
     {
         Type    = CharacterType.Separator;
         current = current.Truncate(1);
     }
     else if (current.StartsWith(TextStoryTestBegin, StringComparison.OrdinalIgnoreCase))
     {
         Type    = CharacterType.BeginTest;
         current = current.Truncate(5);
     }
     else if (current.StartsWith("@test", StringComparison.OrdinalIgnoreCase))
     {
         Type    = CharacterType.EndTest;
         current = current.Truncate(5);
     }
     else if (char.IsWhiteSpace(current[0]))
     {
         Type    = CharacterType.WhiteSpace;
         current = current.Truncate(1);
     }
     else if (current.StartsWith("<br", StringComparison.OrdinalIgnoreCase) &&
              current.Contains(">"))
     {
         Type    = CharacterType.Newline;
         current = current.TruncateAfter(">");
     }
     else
     {
         Type    = CharacterType.Letter;
         current = current.Truncate(1);
     }
 }