Example #1
0
            public void Append(Substring theInput)
            {
                for (int i = 0; i < theInput.Length; i++)
                {
                    char input = theInput[i];
                    if (isStandard && input != '\u00a0' && char.IsWhiteSpace(input))
                    {
                        if (!myWhitespace)
                        {
                            myText.Append(' ');
                            myLastTag = myLastTag + " ";
                        }
                        myWhitespace = true;
                    }
                    else
                    {
                        switch (input)
                        {
                        case '\u201c':
                            input = '"'; break;

                        case '\u201d':
                            input = '"'; break;

                        case '\u2018':
                            input = '\''; break;

                        case '\u2019':
                            input = '\''; break;

                        case '\u00a0':
                            input = ' '; break;

                        case '&':
                            if (theInput.Contains(i + 1, "nbsp;"))
                            {
                                input = ' ';
                                i    += 5;
                            }
                            break;
                        }
                        myText.Append(input);
                        myWhitespace = false;
                        myLastTag    = string.Empty;
                    }
                }
            }
Example #2
0
 public void Append(Substring theInput)
 {
     for (int i = 0; i < theInput.Length; i++) {
         char input = theInput[i];
         if (isStandard && input != '\u00a0' && char.IsWhiteSpace(input)) {
             if (!myWhitespace) {
                 myText.Append(' ');
                 myLastTag = myLastTag + " ";
             }
             myWhitespace = true;
         }
         else {
             switch (input) {
                 case '\u201c':
                     input = '"'; break;
                 case '\u201d':
                     input = '"'; break;
                 case '\u2018':
                     input = '\''; break;
                 case '\u2019':
                     input = '\''; break;
                 case '\u00a0':
                     input = ' '; break;
                 case '&':
                     if (theInput.Contains(i + 1, "nbsp;")) {
                         input = ' ';
                         i += 5;
                     }
                     break;
             }
             myText.Append(input);
             myWhitespace = false;
             myLastTag = string.Empty;
         }
     }
 }
 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);
     }
 }