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()); }
public static T AddToken <T>(this T argumentsBuilder, IArgumentToken token) where T : IArgumentsBuilder { var tokenValue = token.GetTokenValue(); argumentsBuilder.AddToken(tokenValue); return(argumentsBuilder); }
public bool Equals(IArgumentToken other) => ReferenceEquals(this, other);
private static int GetValueLength(ISearchExpressionContext items, IArgumentToken token) { return(items.IsInvariantCulture && token.Id != null ? token.Id.Length : token.Value.Length); }
public bool Equals(IArgumentToken other) => other is AssignedValueToken token && token.Option.Equals(Option) && token.Value.Equals(Value);
public bool Equals(IArgumentToken other) => other is ValuesGroupToken collectionToken && Tokens.SequenceEqual(collectionToken.Tokens);