private bool ParseValues()

in src/common/details/named_values/parsers/named_value_token_parser.cs [111:200]


        private bool ParseValues(INamedValueTokens tokens, INamedValues values, int count, int skipNameTokens)
        {
            bool parsed = false;

            var peekToken1 = tokens.PeekNextToken(skipNameTokens + 0);
            var peekToken2 = tokens.PeekNextToken(skipNameTokens + 1);

            var peekToken1Value = tokens.ValueFromToken(peekToken1, values);
            var peekToken2Value = tokens.ValueFromToken(peekToken2, values);

            if (PinnedValueKey == null && PinnedValue == null)
            {
                if (count == 0)
                {
                    tokens.SkipTokens(skipNameTokens);
                    parsed = true;
                }
                else if (count == 1 && ValueMatchesValidValue(peekToken1, peekToken1Value, true))
                {
                    tokens.SkipTokens(skipNameTokens);
                    parsed = AddValue(values, ValueKey, tokens.PopNextTokenValue(values)!);
                }
                else if (count == 1 && ValueMatchesValidValue(peekToken1, peekToken1Value, false))
                {
                    tokens.SkipTokens(skipNameTokens);
                    parsed = AddValue(values, ValueKey, tokens.PopNextToken()!.TrimStart('='));
                }
                else if (count == 2 && ValueMatchesValidValue(peekToken1, peekToken1Value) && peekToken2Value != null)
                {
                    tokens.SkipTokens(skipNameTokens);

                    var value = tokens.PopNextTokenValue(values);
                    value += "=" + tokens.PopNextTokenValue(values);

                    parsed = AddValue(values, ValueKey, value);
                }
            }
            else if (PinnedValueKey == null && PinnedValue != null)
            {
                if (count == 0)
                {
                    tokens.SkipTokens(skipNameTokens);
                    parsed = AddValue(values, ValueKey, PinnedValue);
                }
                else if (count == 1 && ValueMatchesValidValue(peekToken1, peekToken1Value, true))
                {
                    tokens.SkipTokens(skipNameTokens);
                    parsed = AddValue(values, ValueKey, tokens.PopNextTokenValue(values)!);
                }
                else if (count == 1 && ValueMatchesValidValue(peekToken1, peekToken1Value, false))
                {
                    tokens.SkipTokens(skipNameTokens);
                    parsed = AddValue(values, ValueKey, tokens.PopNextToken()!.TrimStart('='));
                }
            }
            else // if (PinnedValueKey != null && PinnedValue != null)
            {
                if (count == 0)
                {
                    tokens.SkipTokens(skipNameTokens);
                    parsed = AddValue(values, PinnedValueKey!, PinnedValue!);
                }
                else if (count == 1 && ValueMatchesValidValue(peekToken1, peekToken1Value, true))
                {
                    tokens.SkipTokens(skipNameTokens);

                    parsed = AddValue(values, ValueKey, tokens.PopNextTokenValue(values)!);
                    parsed = parsed && AddValue(values, PinnedValueKey!, PinnedValue!);
                }
                else if (count == 1 && ValueMatchesValidValue(peekToken1, peekToken1Value, false))
                {
                    tokens.SkipTokens(skipNameTokens);

                    parsed = AddValue(values, ValueKey, tokens.PopNextToken()!.TrimStart('='));
                    parsed = parsed && AddValue(values, PinnedValueKey!, PinnedValue!);
                }
                else if (count == 2 && ValueMatchesValidValue(peekToken1, peekToken1Value) && peekToken2Value != null)
                {
                    tokens.SkipTokens(skipNameTokens);

                    var value = tokens.PopNextTokenValue(values);
                    value += "=" + tokens.PopNextTokenValue(values);

                    parsed = AddValue(values, ValueKey, value.TrimStart('='));
                    parsed = parsed && AddValue(values, PinnedValueKey!, PinnedValue!);
                }
            }

            return parsed;
        }