diff options
Diffstat (limited to 'WebCore/css/CSSParser.h')
-rw-r--r-- | WebCore/css/CSSParser.h | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/WebCore/css/CSSParser.h b/WebCore/css/CSSParser.h index 47f0bed..f8b24df 100644 --- a/WebCore/css/CSSParser.h +++ b/WebCore/css/CSSParser.h @@ -25,6 +25,7 @@ #include "Color.h" #include "CSSParserValues.h" +#include "CSSPropertySourceData.h" #include "CSSSelectorList.h" #include "MediaQuery.h" #include <wtf/HashMap.h> @@ -55,18 +56,16 @@ namespace WebCore { class CSSParser { public: - typedef HashMap<CSSStyleRule*, std::pair<unsigned, unsigned> > StyleRuleRanges; - CSSParser(bool strictParsing = true); ~CSSParser(); - void parseSheet(CSSStyleSheet*, const String&, int startLineNumber = 0, StyleRuleRanges* ruleRangeMap = 0); + void parseSheet(CSSStyleSheet*, const String&, int startLineNumber = 0, StyleRuleRangeMap* ruleRangeMap = 0); PassRefPtr<CSSRule> parseRule(CSSStyleSheet*, const String&); PassRefPtr<CSSRule> parseKeyframeRule(CSSStyleSheet*, const String&); bool parseValue(CSSMutableStyleDeclaration*, int propId, const String&, bool important); static bool parseColor(RGBA32& color, const String&, bool strict = false); bool parseColor(CSSMutableStyleDeclaration*, const String&); - bool parseDeclaration(CSSMutableStyleDeclaration*, const String&); + bool parseDeclaration(CSSMutableStyleDeclaration*, const String&, CSSStyleSourceData* styleSourceData = 0); bool parseMediaQuery(MediaList*, const String&); Document* document() const; @@ -244,10 +243,16 @@ namespace WebCore { // tokenizer methods and data unsigned m_ruleBodyStartOffset; unsigned m_ruleBodyEndOffset; - StyleRuleRanges* m_ruleRanges; + unsigned m_propertyStartOffset; + unsigned m_propertyEndOffset; + StyleRuleRangeMap* m_ruleRangeMap; + RefPtr<CSSStyleSourceData> m_currentStyleData; void markRuleBodyStart(); void markRuleBodyEnd(); + void markPropertyStart(); + void markPropertyEnd(bool isImportantFound, bool isPropertyParsed); void resetRuleBodyMarks() { m_ruleBodyStartOffset = m_ruleBodyEndOffset = 0; } + void resetPropertyMarks() { m_propertyStartOffset = m_propertyEndOffset = UINT_MAX; } int lex(void* yylval); int token() { return yyTok; } UChar* text(int* length); |