Exemplo n.º 1
0
        internal static bool TryParseFlag(StringSlice text, FlagMode mode, out FlagValue value)
        {
            if (text.IsEmpty)
            {
                value = default(FlagValue);
                return(false);
            }

            switch (mode)
            {
            case FlagMode.Char:
                value = new FlagValue(text.First());
                return(true);

            case FlagMode.Long:
                var a = text.First();
                value = text.Length >= 2
                        ? Create(a, text[1])
                        : new FlagValue(a);
                return(true);

            case FlagMode.Num:
                return(TryParseNumberFlag(text, out value));

            case FlagMode.Uni:
            default:
                throw new NotSupportedException();
            }
        }