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; } } } }
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); }
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; } } }
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; }