bool BisonCSSParser::parseDeclaration(MutableStylePropertySet* declaration, const String& string, CSSParserObserver* observer, StyleSheetContents* contextStyleSheet) { setStyleSheet(contextStyleSheet); TemporaryChange<CSSParserObserver*> scopedObsever(m_observer, observer); setupParser("@-internal-decls ", string, ""); if (m_observer) { m_observer->startRuleHeader(StyleRule::Style, 0); m_observer->endRuleHeader(1); m_observer->startRuleBody(0); } { StyleDeclarationScope scope(this, declaration); cssyyparse(this); } m_rule = nullptr; bool ok = false; if (!m_parsedProperties.isEmpty()) { ok = true; declaration->addParsedProperties(m_parsedProperties); clearProperties(); } if (m_observer) m_observer->endRuleBody(string.length(), false); return ok; }
bool BisonCSSParser::parseSupportsCondition(const String& string) { m_supportsCondition = false; setupParser("@-internal-supports-condition ", string, ""); cssyyparse(this); return m_supportsCondition; }
bool BisonCSSParser::parseValue(MutableStylePropertySet* declaration, CSSPropertyID propertyID, const String& string, bool important) { if (m_context.useCounter()) m_context.useCounter()->count(m_context, propertyID); setupParser("@-internal-value ", string, ""); m_id = propertyID; m_important = important; { StyleDeclarationScope scope(this, declaration); cssyyparse(this); } m_rule = nullptr; m_id = CSSPropertyInvalid; bool ok = false; if (!m_parsedProperties.isEmpty()) { ok = true; declaration->addParsedProperties(m_parsedProperties); clearProperties(); } return ok; }
PassRefPtrWillBeRawPtr<StyleRuleKeyframe> BisonCSSParser::parseKeyframeRule(StyleSheetContents* sheet, const String& string) { setStyleSheet(sheet); setupParser("@-internal-keyframe-rule ", string, ""); cssyyparse(this); return m_keyframe.release(); }
PassRefPtrWillBeRawPtr<StyleRuleBase> BisonCSSParser::parseRule(StyleSheetContents* sheet, const String& string) { setStyleSheet(sheet); m_allowNamespaceDeclarations = false; setupParser("@-internal-rule ", string, ""); cssyyparse(this); return m_rule.release(); }
bool BisonCSSParser::parseColor(const String& string) { setupParser("@-internal-decls color:", string, ""); cssyyparse(this); m_rule = nullptr; return !m_parsedProperties.isEmpty() && m_parsedProperties.first().id() == CSSPropertyColor; }
void BisonCSSParser::parseSelector(const String& string, CSSSelectorList& selectorList) { m_selectorListForParseSelector = &selectorList; setupParser("@-internal-selector ", string, ""); cssyyparse(this); m_selectorListForParseSelector = 0; }
PassRefPtrWillBeRawPtr<ImmutableStylePropertySet> BisonCSSParser::parseDeclaration(const String& string, StyleSheetContents* contextStyleSheet) { setStyleSheet(contextStyleSheet); setupParser("@-internal-decls ", string, ""); cssyyparse(this); m_rule = nullptr; RefPtrWillBeRawPtr<ImmutableStylePropertySet> style = createStylePropertySet(); clearProperties(); return style.release(); }
void BisonCSSParser::parseSheet(StyleSheetContents* sheet, const String& string, const TextPosition& startPosition, CSSParserObserver* observer, bool logErrors) { setStyleSheet(sheet); m_defaultNamespace = starAtom; // Reset the default namespace. TemporaryChange<CSSParserObserver*> scopedObsever(m_observer, observer); m_logErrors = logErrors && sheet->singleOwnerDocument() && !sheet->baseURL().isEmpty() && sheet->singleOwnerDocument()->frameHost(); m_ignoreErrors = false; m_tokenizer.m_lineNumber = 0; m_startPosition = startPosition; m_source = &string; m_tokenizer.m_internal = false; setupParser("", string, ""); cssyyparse(this); sheet->shrinkToFit(); m_source = 0; m_rule = nullptr; m_lineEndings.clear(); m_ignoreErrors = false; m_logErrors = false; m_tokenizer.m_internal = true; }
PassOwnPtr<Vector<double>> BisonCSSParser::parseKeyframeKeyList(const String& string) { setupParser("@-internal-keyframe-key-list ", string, ""); cssyyparse(this); return StyleRuleKeyframe::createKeyList(m_valueList.get()); }