/// <summary>Finds which type of fragment will accept and handle the given character.</summary> /// <param name="peek">The character to find a handler for.</param> /// <returns>The handler which will deal with this character. May also be told to stop if no handler is available.</returns> public static Handler Find(char peek) { if (peek == StringReader.NULL || BracketFragment.IsEndBracket(peek) != -1) { return(Handler.Stop); } else if (BracketFragment.WillHandle(peek)) { return(Handler.Brackets); } else if (StringFragment.WillHandle(peek)) { return(Handler.String); } else if (TypeFragment.WillHandle(peek)) { return(Handler.Type); } else if (OperatorFragment.WillHandle(peek)) { return(Handler.Operator); } else if (PropertyFragment.WillHandle(peek)) { return(Handler.Property); } else if (NumberFragment.WillHandle(peek)) { return(Handler.Number); } return(Handler.Variable); }