bool SizesAttributeParser::parse(Vector<MediaQueryToken>& tokens) { if (tokens.isEmpty()) return false; MediaQueryTokenIterator startToken = tokens.begin(); MediaQueryTokenIterator endToken; // Split on a comma token, and send the result tokens to be parsed as (media-condition, length) pairs for (MediaQueryTokenIterator token = tokens.begin(); token != tokens.end(); ++token) { if (token->type() == CommaToken) { endToken = token; if (parseMediaConditionAndLength(startToken, endToken)) return true; startToken = token; ++startToken; } } endToken = tokens.end(); return parseMediaConditionAndLength(startToken, --endToken); }
bool SizesAttributeParser::parse(Vector<CSSParserToken>& tokens) { if (tokens.isEmpty()) return false; CSSParserTokenIterator startToken = tokens.begin(); CSSParserTokenIterator endToken; // Split on a comma token, and send the result tokens to be parsed as (media-condition, length) pairs for (auto& token : tokens) { m_blockWatcher.handleToken(token); if (token.type() == CommaToken && !m_blockWatcher.blockLevel()) { endToken = &token; if (parseMediaConditionAndLength(startToken, endToken)) return true; startToken = &token; ++startToken; } } endToken = tokens.end(); return parseMediaConditionAndLength(startToken, --endToken); }