bool CSSTokenizer::nextCharsAreIdentifier() { UChar first = consume(); bool areIdentifier = nextCharsAreIdentifier(first); reconsume(first); return areIdentifier; }
CSSParserToken CSSTokenizer::commercialAt(UChar cc) { ASSERT(cc == '@'); if (nextCharsAreIdentifier()) return CSSParserToken(AtKeywordToken, consumeName()); return CSSParserToken(DelimiterToken, '@'); }
// http://www.w3.org/TR/css3-syntax/#consume-a-numeric-token CSSParserToken CSSTokenizer::consumeNumericToken() { CSSParserToken token = consumeNumber(); if (nextCharsAreIdentifier()) token.convertToDimensionWithUnit(consumeName()); else if (consumeIfNext('%')) token.convertToPercentage(); return token; }
CSSParserToken CSSTokenizer::hash(UChar cc) { UChar nextChar = m_input.nextInputChar(); if (isNameChar(nextChar) || twoCharsAreValidEscape(nextChar, m_input.peek(1))) { HashTokenType type = nextCharsAreIdentifier() ? HashTokenId : HashTokenUnrestricted; return CSSParserToken(type, consumeName()); } return CSSParserToken(DelimiterToken, cc); }
MediaQueryToken MediaQueryTokenizer::hyphenMinus(UChar cc) { if (nextCharsAreNumber(cc)) { reconsume(cc); return consumeNumericToken(); } if (nextCharsAreIdentifier(cc)) { reconsume(cc); return consumeIdentLikeToken(); } return MediaQueryToken(DelimiterToken, cc); }
CSSParserToken CSSTokenizer::hyphenMinus(UChar cc) { if (nextCharsAreNumber(cc)) { reconsume(cc); return consumeNumericToken(); } if (m_input.peek(0) == '-' && m_input.peek(1) == '>') { consume(2); return CSSParserToken(CDCToken); } if (nextCharsAreIdentifier(cc)) { reconsume(cc); return consumeIdentLikeToken(); } return CSSParserToken(DelimiterToken, cc); }