Example #1
0
 public WordParser(string text, LogicalDirection direction)
 {
     __Text = text;
     __DirectionToSearch = direction;
     if (direction == LogicalDirection.Backward)
     {
         __State = WordParserState.WitespacesBeforeWord;
     }
     else
     {
         if (text.Length == 0)
         {
             __State = WordParserState.WitespacesBeforeWord;
         }
         else
         {
             if (symbols.Contains(__Text[0]))
             {
                 __State = WordParserState.ParsingSymbol;
             }
             else if (whitespaces.Contains(__Text[0]))
             {
                 __State = WordParserState.WitespacesBeforeWord;
             }
             else
             {
                 __State = WordParserState.ParsingText;
             }
         }
     }
 }
Example #2
0
        private int Parse(int pos)
        {
            switch (__State)
            {
            case WordParserState.WitespacesBeforeWord:
                if (__DirectionToSearch == LogicalDirection.Forward)
                {
                    if (!whitespaces.Contains(__Text[pos]))
                    {
                        return(pos);
                    }
                }
                else
                {
                    if (symbols.Contains(__Text[pos]))
                    {
                        __State = WordParserState.ParsingSymbol;
                    }
                    else if (!whitespaces.Contains(__Text[pos]))
                    {
                        __State = WordParserState.ParsingText;
                    }
                }
                break;

            case WordParserState.ParsingSymbol:
                if (!symbols.Contains(__Text[pos]))
                {
                    return(pos);
                }
                break;

            case WordParserState.ParsingText:
                if (symbols.Contains(__Text[pos]))
                {
                    return(pos);
                }

                if (whitespaces.Contains(__Text[pos]))
                {
                    if (__DirectionToSearch == LogicalDirection.Backward)
                    {
                        return(pos);
                    }

                    __State = WordParserState.WhitespacesAfterWord;
                }
                break;

            case WordParserState.WhitespacesAfterWord:
                if (!whitespaces.Contains(__Text[pos]))
                {
                    return(pos);
                }

                break;
            }

            return(-1);
        }
Example #3
0
 public WordParser(string text, LogicalDirection direction)
 {
     __Text = text;
     __DirectionToSearch = direction;
     if (direction == LogicalDirection.Backward)
         __State = WordParserState.WitespacesBeforeWord;
     else
     {
         if (text.Length == 0)
             __State = WordParserState.WitespacesBeforeWord;
         else
         {
             if (symbols.Contains(__Text[0]))
                 __State = WordParserState.ParsingSymbol;
             else if (whitespaces.Contains(__Text[0]))
                 __State = WordParserState.WitespacesBeforeWord;
             else
                 __State = WordParserState.ParsingText;
         }
     }
 }
Example #4
0
        private int Parse(int pos)
        {
            switch (__State)
            {

                case WordParserState.WitespacesBeforeWord:
                    if (__DirectionToSearch == LogicalDirection.Forward)
                    {
                        if (!whitespaces.Contains(__Text[pos]))
                            return pos;
                    }
                    else
                    {
                        if (symbols.Contains(__Text[pos]))
                            __State = WordParserState.ParsingSymbol;
                        else if (!whitespaces.Contains(__Text[pos]))
                            __State = WordParserState.ParsingText;
                    }
                    break;

                case WordParserState.ParsingSymbol:
                    if (!symbols.Contains(__Text[pos]))
                        return pos;
                    break;

                case WordParserState.ParsingText:
                    if (symbols.Contains(__Text[pos]))
                        return pos;

                    if (whitespaces.Contains(__Text[pos]))
                    {
                        if (__DirectionToSearch == LogicalDirection.Backward)
                            return pos;

                        __State = WordParserState.WhitespacesAfterWord;
                    }
                    break;

                case WordParserState.WhitespacesAfterWord:
                    if (!whitespaces.Contains(__Text[pos]))
                        return pos;

                    break;
            }

            return -1;
        }