Пример #1
0
        public object Parse(IEnumerable <IArgumentToken> tokens)
        {
            builder = builderFactory();

            var argumentsQueue = new Queue <IArgumentToken>(tokens);

            while (argumentsQueue.Any())
            {
                IArgumentToken current = argumentsQueue.Dequeue();
                switch (current)
                {
                case OptionsGroupToken optionsGroup:
                    HandleOptionsGroup(optionsGroup);
                    break;

                case AssignedValueToken assignedValueToken:
                    HandleAssignedValue(assignedValueToken);
                    break;

                case IOptionToken option:
                    HandleOption(option);
                    break;

                case IValueToken value:
                    HandleValue(value);
                    break;
                }
            }

            EnsureLastOptionSet();
            return(builder.Parse());
        }
Пример #2
0
        public static T AddToken <T>(this T argumentsBuilder, IArgumentToken token)
            where T : IArgumentsBuilder
        {
            var tokenValue = token.GetTokenValue();

            argumentsBuilder.AddToken(tokenValue);

            return(argumentsBuilder);
        }
Пример #3
0
 public bool Equals(IArgumentToken other)
 => ReferenceEquals(this, other);
Пример #4
0
 private static int GetValueLength(ISearchExpressionContext items, IArgumentToken token)
 {
     return(items.IsInvariantCulture && token.Id != null
         ? token.Id.Length
         : token.Value.Length);
 }
Пример #5
0
 public bool Equals(IArgumentToken other)
 => other is AssignedValueToken token && token.Option.Equals(Option) && token.Value.Equals(Value);
Пример #6
0
 public bool Equals(IArgumentToken other)
 => other is ValuesGroupToken collectionToken && Tokens.SequenceEqual(collectionToken.Tokens);