From 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c Mon Sep 17 00:00:00 2001 From: Lorry Tar Creator Date: Tue, 27 Jun 2017 06:07:23 +0000 Subject: webkitgtk-2.16.5 --- Source/WebCore/css/CSSParser.h | 693 ----------------------------------------- 1 file changed, 693 deletions(-) delete mode 100644 Source/WebCore/css/CSSParser.h (limited to 'Source/WebCore/css/CSSParser.h') diff --git a/Source/WebCore/css/CSSParser.h b/Source/WebCore/css/CSSParser.h deleted file mode 100644 index c7fd264e0..000000000 --- a/Source/WebCore/css/CSSParser.h +++ /dev/null @@ -1,693 +0,0 @@ -/* - * Copyright (C) 2003 Lars Knoll (knoll@kde.org) - * Copyright (C) 2004, 2005, 2006, 2008, 2009, 2010 Apple Inc. All rights reserved. - * Copyright (C) 2008 Eric Seidel - * Copyright (C) 2009 - 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef CSSParser_h -#define CSSParser_h - -#include "CSSCalculationValue.h" -#include "CSSGradientValue.h" -#include "CSSParserMode.h" -#include "CSSParserValues.h" -#include "CSSProperty.h" -#include "CSSPropertyNames.h" -#include "CSSPropertySourceData.h" -#include "CSSValueKeywords.h" -#include "Color.h" -#include "MediaQuery.h" -#include -#include -#include -#include -#include - -#if ENABLE(CSS_FILTERS) -#include "WebKitCSSFilterValue.h" -#endif - -namespace WebCore { - -class AnimationParseContext; -class CSSBorderImageSliceValue; -class CSSPrimitiveValue; -class CSSSelectorList; -class CSSValue; -class CSSValueList; -class CSSBasicShape; -class CSSBasicShapeInset; -class Document; -class Element; -class ImmutableStyleProperties; -class MediaQueryExp; -class MediaQuerySet; -class MutableStyleProperties; -class StyleKeyframe; -class StylePropertyShorthand; -class StyleRuleBase; -class StyleRuleKeyframes; -class StyleKeyframe; -class StyleSheetContents; -class StyledElement; - -class CSSParser { - friend inline int cssyylex(void*, CSSParser*); - -public: - struct Location; - enum SyntaxErrorType { - PropertyDeclarationError, - GeneralSyntaxError - }; - - CSSParser(const CSSParserContext&); - - ~CSSParser(); - - void parseSheet(StyleSheetContents*, const String&, int startLineNumber = 0, RuleSourceDataList* = 0, bool = false); - PassRefPtr parseRule(StyleSheetContents*, const String&); - PassRefPtr parseKeyframeRule(StyleSheetContents*, const String&); -#if ENABLE(CSS3_CONDITIONAL_RULES) - bool parseSupportsCondition(const String&); -#endif - static bool parseValue(MutableStyleProperties*, CSSPropertyID, const String&, bool important, CSSParserMode, StyleSheetContents*); - static bool parseColor(RGBA32& color, const String&, bool strict = false); - static bool parseSystemColor(RGBA32& color, const String&, Document*); - static PassRefPtr parseFontFaceValue(const AtomicString&); - PassRefPtr parseValidPrimitive(CSSValueID ident, CSSParserValue*); - bool parseDeclaration(MutableStyleProperties*, const String&, PassRefPtr, StyleSheetContents* contextStyleSheet); - static PassRef parseInlineStyleDeclaration(const String&, Element*); - PassOwnPtr parseMediaQuery(const String&); - - void addPropertyWithPrefixingVariant(CSSPropertyID, PassRefPtr, bool important, bool implicit = false); - void addProperty(CSSPropertyID, PassRefPtr, bool important, bool implicit = false); - void rollbackLastProperties(int num); - bool hasProperties() const { return !m_parsedProperties.isEmpty(); } - void addExpandedPropertyForValue(CSSPropertyID propId, PassRefPtr, bool); - - bool parseValue(CSSPropertyID, bool important); - bool parseShorthand(CSSPropertyID, const StylePropertyShorthand&, bool important); - bool parse4Values(CSSPropertyID, const CSSPropertyID* properties, bool important); - bool parseContent(CSSPropertyID, bool important); - bool parseQuotes(CSSPropertyID, bool important); - bool parseAlt(CSSPropertyID, bool important); - - PassRefPtr parseAttr(CSSParserValueList* args); - - PassRefPtr parseBackgroundColor(); - - bool parseFillImage(CSSParserValueList*, RefPtr&); - - enum FillPositionFlag { InvalidFillPosition = 0, AmbiguousFillPosition = 1, XFillPosition = 2, YFillPosition = 4 }; - enum FillPositionParsingMode { ResolveValuesAsPercent = 0, ResolveValuesAsKeyword = 1 }; - PassRefPtr parseFillPositionComponent(CSSParserValueList*, unsigned& cumulativeFlags, FillPositionFlag& individualFlag, FillPositionParsingMode = ResolveValuesAsPercent); - PassRefPtr parseFillPositionX(CSSParserValueList*); - PassRefPtr parseFillPositionY(CSSParserValueList*); - void parse2ValuesFillPosition(CSSParserValueList*, RefPtr&, RefPtr&); - bool isPotentialPositionValue(CSSParserValue*); - void parseFillPosition(CSSParserValueList*, RefPtr&, RefPtr&); - void parse3ValuesFillPosition(CSSParserValueList*, RefPtr&, RefPtr&, PassRefPtr, PassRefPtr); - void parse4ValuesFillPosition(CSSParserValueList*, RefPtr&, RefPtr&, PassRefPtr, PassRefPtr); - - void parseFillRepeat(RefPtr&, RefPtr&); - PassRefPtr parseFillSize(CSSPropertyID, bool &allowComma); - - bool parseFillProperty(CSSPropertyID propId, CSSPropertyID& propId1, CSSPropertyID& propId2, RefPtr&, RefPtr&); - bool parseFillShorthand(CSSPropertyID, const CSSPropertyID* properties, int numProperties, bool important); - - void addFillValue(RefPtr& lval, PassRefPtr rval); - - void addAnimationValue(RefPtr& lval, PassRefPtr rval); - - PassRefPtr parseAnimationDelay(); - PassRefPtr parseAnimationDirection(); - PassRefPtr parseAnimationDuration(); - PassRefPtr parseAnimationFillMode(); - PassRefPtr parseAnimationIterationCount(); - PassRefPtr parseAnimationName(); - PassRefPtr parseAnimationPlayState(); - PassRefPtr parseAnimationProperty(AnimationParseContext&); - PassRefPtr parseAnimationTimingFunction(); - - bool parseTransformOriginShorthand(RefPtr&, RefPtr&, RefPtr&); - bool parseCubicBezierTimingFunctionValue(CSSParserValueList*& args, double& result); - bool parseAnimationProperty(CSSPropertyID, RefPtr&, AnimationParseContext&); - bool parseTransitionShorthand(CSSPropertyID, bool important); - bool parseAnimationShorthand(bool important); - - bool cssGridLayoutEnabled() const; - PassRefPtr parseGridPosition(); - bool parseGridItemPositionShorthand(CSSPropertyID, bool important); - bool parseGridAreaShorthand(bool important); - bool parseSingleGridAreaLonghand(RefPtr&); - bool parseGridTrackList(CSSPropertyID, bool important); - bool parseGridTrackRepeatFunction(CSSValueList&); - PassRefPtr parseGridTrackSize(CSSParserValueList& inputList); - PassRefPtr parseGridBreadth(CSSParserValue*); - PassRefPtr parseGridTemplate(); - void parseGridTrackNames(CSSParserValueList& inputList, CSSValueList& values); - - bool parseDashboardRegions(CSSPropertyID, bool important); - - bool parseClipShape(CSSPropertyID, bool important); - -#if ENABLE(CSS_SHAPES) - PassRefPtr parseShapeProperty(CSSPropertyID); -#endif - - PassRefPtr parseBasicShapeAndOrBox(CSSPropertyID propId); - PassRefPtr parseBasicShape(); - PassRefPtr parseShapeRadius(CSSParserValue*); - PassRefPtr parseBasicShapeRectangle(CSSParserValueList*); - PassRefPtr parseBasicShapeCircle(CSSParserValueList*); - PassRefPtr parseDeprecatedBasicShapeCircle(CSSParserValueList*); - PassRefPtr parseBasicShapeEllipse(CSSParserValueList*); - PassRefPtr parseDeprecatedBasicShapeEllipse(CSSParserValueList*); - PassRefPtr parseBasicShapePolygon(CSSParserValueList*); - PassRefPtr parseBasicShapeInsetRectangle(CSSParserValueList*); - PassRefPtr parseBasicShapeInset(CSSParserValueList*); - - bool parseFont(bool important); - PassRefPtr parseFontFamily(); - - bool parseCounter(CSSPropertyID, int defaultValue, bool important); - PassRefPtr parseCounterContent(CSSParserValueList* args, bool counters); - - bool parseColorParameters(CSSParserValue*, int* colorValues, bool parseAlpha); - bool parseHSLParameters(CSSParserValue*, double* colorValues, bool parseAlpha); - PassRefPtr parseColor(CSSParserValue* = 0); - bool parseColorFromValue(CSSParserValue*, RGBA32&); - void parseSelector(const String&, CSSSelectorList&); - - template - static bool fastParseColor(RGBA32&, const StringType&, bool strict); - - bool parseLineHeight(bool important); - bool parseFontSize(bool important); - bool parseFontVariant(bool important); - bool parseFontWeight(bool important); - bool parseFontFaceSrc(); - bool parseFontFaceUnicodeRange(); - -#if ENABLE(SVG) - bool parseSVGValue(CSSPropertyID propId, bool important); - PassRefPtr parseSVGPaint(); - PassRefPtr parseSVGColor(); - PassRefPtr parseSVGStrokeDasharray(); -#endif - - // CSS3 Parsing Routines (for properties specific to CSS3) - PassRefPtr parseShadow(CSSParserValueList*, CSSPropertyID); - bool parseBorderImage(CSSPropertyID, RefPtr&, bool important = false); - bool parseBorderImageRepeat(RefPtr&); - bool parseBorderImageSlice(CSSPropertyID, RefPtr&); - bool parseBorderImageWidth(RefPtr&); - bool parseBorderImageOutset(RefPtr&); - bool parseBorderRadius(CSSPropertyID, bool important); - - bool parseAspectRatio(bool important); - - bool parseReflect(CSSPropertyID, bool important); - - bool parseFlex(CSSParserValueList* args, bool important); - - // Image generators - bool parseCanvas(CSSParserValueList*, RefPtr&); - - bool parseDeprecatedGradient(CSSParserValueList*, RefPtr&); - bool parseDeprecatedLinearGradient(CSSParserValueList*, RefPtr&, CSSGradientRepeat repeating); - bool parseDeprecatedRadialGradient(CSSParserValueList*, RefPtr&, CSSGradientRepeat repeating); - bool parseLinearGradient(CSSParserValueList*, RefPtr&, CSSGradientRepeat repeating); - bool parseRadialGradient(CSSParserValueList*, RefPtr&, CSSGradientRepeat repeating); - bool parseGradientColorStops(CSSParserValueList*, CSSGradientValue*, bool expectComma); - - bool parseCrossfade(CSSParserValueList*, RefPtr&); - -#if ENABLE(CSS_IMAGE_RESOLUTION) - PassRefPtr parseImageResolution(); -#endif - -#if ENABLE(CSS_IMAGE_SET) - PassRefPtr parseImageSet(); -#endif - -#if ENABLE(CSS_FILTERS) - bool parseFilterImage(CSSParserValueList*, RefPtr&); - - bool parseFilter(CSSParserValueList*, RefPtr&); - PassRefPtr parseBuiltinFilterArguments(CSSParserValueList*, WebKitCSSFilterValue::FilterOperationType); -#endif - - PassRefPtr parseClipPath(); - - static bool isBlendMode(CSSValueID); - static bool isCompositeOperator(CSSValueID); - - PassRefPtr parseTransform(); - PassRefPtr parseTransformValue(CSSParserValue*); - bool parseTransformOrigin(CSSPropertyID propId, CSSPropertyID& propId1, CSSPropertyID& propId2, CSSPropertyID& propId3, RefPtr&, RefPtr&, RefPtr&); - bool parsePerspectiveOrigin(CSSPropertyID propId, CSSPropertyID& propId1, CSSPropertyID& propId2, RefPtr&, RefPtr&); - - bool parseTextEmphasisStyle(bool important); - bool parseTextEmphasisPosition(bool important); - - void addTextDecorationProperty(CSSPropertyID, PassRefPtr, bool important); - bool parseTextDecoration(CSSPropertyID propId, bool important); - bool parseTextDecorationSkip(bool important); - bool parseTextUnderlinePosition(bool important); - - PassRefPtr parseTextIndent(); - - bool parseLineBoxContain(bool important); - bool parseCalculation(CSSParserValue*, CalculationPermittedValueRange); - - bool parseFontFeatureTag(CSSValueList*); - bool parseFontFeatureSettings(bool important); - - bool cssRegionsEnabled() const; - bool cssCompositingEnabled() const; - bool parseFlowThread(CSSPropertyID, bool important); - bool parseRegionThread(CSSPropertyID, bool important); - - bool parseFontVariantLigatures(bool important); - - // Faster than doing a new/delete each time since it keeps one vector. - OwnPtr>> createSelectorVector(); - void recycleSelectorVector(OwnPtr>>); - - PassRefPtr createImportRule(const CSSParserString&, PassRefPtr); - PassRefPtr createKeyframe(CSSParserValueList&); - PassRefPtr createKeyframesRule(const String&, PassOwnPtr>>); - - typedef Vector> RuleList; - PassRefPtr createMediaRule(PassRefPtr, RuleList*); - PassRefPtr createEmptyMediaRule(RuleList*); - PassRefPtr createStyleRule(Vector>* selectors); - PassRefPtr createFontFaceRule(); - PassRefPtr createPageRule(PassOwnPtr pageSelector); - PassRefPtr createRegionRule(Vector>* regionSelector, RuleList* rules); - void createMarginAtRule(CSSSelector::MarginBoxType); -#if ENABLE(CSS3_CONDITIONAL_RULES) - PassRefPtr createSupportsRule(bool conditionIsSupported, RuleList*); - void markSupportsRuleHeaderStart(); - void markSupportsRuleHeaderEnd(); - PassRefPtr popSupportsRuleData(); -#endif -#if ENABLE(SHADOW_DOM) - PassRefPtr createHostRule(RuleList*); -#endif - - void startDeclarationsForMarginBox(); - void endDeclarationsForMarginBox(); - - void addNamespace(const AtomicString& prefix, const AtomicString& uri); - QualifiedName determineNameInNamespace(const AtomicString& prefix, const AtomicString& localName); - - void rewriteSpecifiersWithElementName(const AtomicString& namespacePrefix, const AtomicString& elementName, CSSParserSelector&, bool isNamespacePlaceholder = false); - void rewriteSpecifiersWithNamespaceIfNeeded(CSSParserSelector&); - OwnPtr rewriteSpecifiers(OwnPtr, OwnPtr); - - void invalidBlockHit(); - - void updateLastSelectorLineAndPosition(); - void updateLastMediaLine(MediaQuerySet*); - - void clearProperties(); - - PassRef createStyleProperties(); - - CSSParserContext m_context; - - bool m_important; - CSSPropertyID m_id; - StyleSheetContents* m_styleSheet; - RefPtr m_rule; - RefPtr m_keyframe; - OwnPtr m_mediaQuery; - OwnPtr m_valueList; -#if ENABLE(CSS3_CONDITIONAL_RULES) - bool m_supportsCondition; -#endif - - typedef Vector ParsedPropertyVector; - ParsedPropertyVector m_parsedProperties; - CSSSelectorList* m_selectorListForParseSelector; - - unsigned m_numParsedPropertiesBeforeMarginBox; - - int m_inParseShorthand; - CSSPropertyID m_currentShorthand; - bool m_implicitShorthand; - - bool m_hasFontFaceOnlyValues; - bool m_hadSyntacticallyValidCSSRule; - bool m_logErrors; - bool m_ignoreErrorsInDeclaration; - - AtomicString m_defaultNamespace; - - // tokenizer methods and data - size_t m_parsedTextPrefixLength; - SourceRange m_selectorRange; - SourceRange m_propertyRange; - OwnPtr m_currentRuleDataStack; - RefPtr m_currentRuleData; - RuleSourceDataList* m_ruleSourceDataResult; - - void fixUnparsedPropertyRanges(CSSRuleSourceData*); - void markRuleHeaderStart(CSSRuleSourceData::Type); - void markRuleHeaderEnd(); - void markSelectorStart(); - void markSelectorEnd(); - void markRuleBodyStart(); - void markRuleBodyEnd(); - void markPropertyStart(); - void markPropertyEnd(bool isImportantFound, bool isPropertyParsed); - void processAndAddNewRuleToSourceTreeIfNeeded(); - void addNewRuleToSourceTree(PassRefPtr); - PassRefPtr popRuleData(); - void resetPropertyRange() { m_propertyRange.start = m_propertyRange.end = UINT_MAX; } - bool isExtractingSourceData() const { return !!m_currentRuleDataStack; } - void syntaxError(const Location&, SyntaxErrorType = GeneralSyntaxError); - - inline int lex(void* yylval) { return (this->*m_lexFunc)(yylval); } - - int token() { return m_token; } - -#if ENABLE(CSS_DEVICE_ADAPTATION) - void markViewportRuleBodyStart() { m_inViewport = true; } - void markViewportRuleBodyEnd() { m_inViewport = false; } - PassRefPtr createViewportRule(); -#endif - - PassRefPtr createPrimitiveNumericValue(CSSParserValue*); - PassRefPtr createPrimitiveStringValue(CSSParserValue*); - - static URL completeURL(const CSSParserContext&, const String& url); - - Location currentLocation(); - -private: - bool is8BitSource() { return m_is8BitSource; } - - template - int realLex(void* yylval); - - UChar*& currentCharacter16(); - - template - inline CharacterType*& currentCharacter(); - - template - inline CharacterType* tokenStart(); - - template - inline void setTokenStart(CharacterType*); - - inline unsigned tokenStartOffset(); - inline UChar tokenStartChar(); - - template - inline bool isIdentifierStart(); - - template - unsigned parseEscape(CharacterType*&); - template - inline void UnicodeToChars(DestCharacterType*&, unsigned); - template - inline bool parseIdentifierInternal(SrcCharacterType*&, DestCharacterType*&, bool&); - - template - inline void parseIdentifier(CharacterType*&, CSSParserString&, bool&); - - template - inline bool parseStringInternal(SrcCharacterType*&, DestCharacterType*&, UChar); - - template - inline void parseString(CharacterType*&, CSSParserString& resultString, UChar); - - template - inline bool findURI(CharacterType*& start, CharacterType*& end, UChar& quote); - - template - inline bool parseURIInternal(SrcCharacterType*&, DestCharacterType*&, UChar quote); - - template - inline void parseURI(CSSParserString&); - template - inline bool parseUnicodeRange(); - template - bool parseNthChild(); - template - bool parseNthChildExtra(); - template - inline bool detectFunctionTypeToken(int); - template - inline void detectMediaQueryToken(int); - template - inline void detectNumberToken(CharacterType*, int); - template - inline void detectDashToken(int); - template - inline void detectAtToken(int, bool); -#if ENABLE(CSS3_CONDITIONAL_RULES) - template - inline void detectSupportsToken(int); -#endif - - template - inline void setRuleHeaderEnd(const CharacterType*); - - void setStyleSheet(StyleSheetContents* styleSheet) { m_styleSheet = styleSheet; } - - inline bool inStrictMode() const { return m_context.mode == CSSStrictMode || m_context.mode == SVGAttributeMode; } - inline bool inQuirksMode() const { return m_context.mode == CSSQuirksMode; } - - URL completeURL(const String& url) const; - - void recheckAtKeyword(const UChar* str, int len); - - template - inline void setupParser(const char (&prefix)[prefixLength], const String& string, const char (&suffix)[suffixLength]) - { - setupParser(prefix, prefixLength - 1, string, suffix, suffixLength - 1); - } - void setupParser(const char* prefix, unsigned prefixLength, const String&, const char* suffix, unsigned suffixLength); - bool inShorthand() const { return m_inParseShorthand; } - - bool validWidth(CSSParserValue*); - bool validHeight(CSSParserValue*); - - void deleteFontFaceOnlyValues(); - - bool isGeneratedImageValue(CSSParserValue*) const; - bool parseGeneratedImage(CSSParserValueList*, RefPtr&); - - bool parseValue(MutableStyleProperties*, CSSPropertyID, const String&, bool important, StyleSheetContents* contextStyleSheet); - PassRef parseDeclaration(const String&, StyleSheetContents* contextStyleSheet); - - PassRefPtr parseInsetRoundedCorners(PassRefPtr, CSSParserValueList*); - - enum SizeParameterType { - None, - Auto, - Length, - PageSize, - Orientation, - }; - - bool parsePage(CSSPropertyID propId, bool important); - bool parseSize(CSSPropertyID propId, bool important); - SizeParameterType parseSizeParameter(CSSValueList* parsedValues, CSSParserValue* value, SizeParameterType prevParamType); - - bool parseFontFaceSrcURI(CSSValueList*); - bool parseFontFaceSrcLocal(CSSValueList*); - - bool parseColor(const String&); - - bool parseIntegerOrStringFromGridPosition(RefPtr& numericValue, RefPtr& gridLineName); - - enum ParsingMode { - NormalMode, - MediaQueryMode, -#if ENABLE(CSS3_CONDITIONAL_RULES) - SupportsMode, -#endif - NthChildMode - }; - - ParsingMode m_parsingMode; - bool m_is8BitSource; - std::unique_ptr m_dataStart8; - std::unique_ptr m_dataStart16; - LChar* m_currentCharacter8; - UChar* m_currentCharacter16; - union { - LChar* ptr8; - UChar* ptr16; - } m_tokenStart; - unsigned m_length; - int m_token; - int m_lineNumber; - int m_tokenStartLineNumber; - int m_lastSelectorLineNumber; - - bool m_allowImportRules; - bool m_allowNamespaceDeclarations; - -#if ENABLE(CSS_DEVICE_ADAPTATION) - bool parseViewportProperty(CSSPropertyID propId, bool important); - bool parseViewportShorthand(CSSPropertyID propId, CSSPropertyID first, CSSPropertyID second, bool important); - - bool inViewport() const { return m_inViewport; } - bool m_inViewport; -#endif - - bool useLegacyBackgroundSizeShorthandBehavior() const; - - int (CSSParser::*m_lexFunc)(void*); - - OwnPtr>> m_recycledSelectorVector; - - RefPtr m_parsedCalculation; - -#if ENABLE(CSS3_CONDITIONAL_RULES) - OwnPtr m_supportsRuleDataStack; -#endif - - // defines units allowed for a certain property, used in parseUnit - enum Units { - FUnknown = 0x0000, - FInteger = 0x0001, - FNumber = 0x0002, // Real Numbers - FPercent = 0x0004, - FLength = 0x0008, - FAngle = 0x0010, - FTime = 0x0020, - FFrequency = 0x0040, - FPositiveInteger = 0x0080, - FRelative = 0x0100, -#if ENABLE(CSS_IMAGE_RESOLUTION) || ENABLE(RESOLUTION_MEDIA_QUERY) - FResolution = 0x0200, -#endif - FNonNeg = 0x0400 - }; - - friend inline Units operator|(Units a, Units b) - { - return static_cast(static_cast(a) | static_cast(b)); - } - - enum ReleaseParsedCalcValueCondition { - ReleaseParsedCalcValue, - DoNotReleaseParsedCalcValue - }; - - bool isLoggingErrors(); - void logError(const String& message, int lineNumber); - - bool validCalculationUnit(CSSParserValue*, Units, ReleaseParsedCalcValueCondition releaseCalc = DoNotReleaseParsedCalcValue); - - bool shouldAcceptUnitLessValues(CSSParserValue*, Units, CSSParserMode); - - inline bool validUnit(CSSParserValue* value, Units unitflags, ReleaseParsedCalcValueCondition releaseCalc = DoNotReleaseParsedCalcValue) { return validUnit(value, unitflags, m_context.mode, releaseCalc); } - bool validUnit(CSSParserValue*, Units, CSSParserMode, ReleaseParsedCalcValueCondition releaseCalc = DoNotReleaseParsedCalcValue); - - bool parseBorderImageQuad(Units, RefPtr&); - int colorIntFromValue(CSSParserValue*); - double parsedDouble(CSSParserValue*, ReleaseParsedCalcValueCondition releaseCalc = DoNotReleaseParsedCalcValue); - bool isCalculation(CSSParserValue*); - - friend class TransformOperationInfo; -#if ENABLE(CSS_FILTERS) - friend class FilterOperationInfo; -#endif -}; - -CSSPropertyID cssPropertyID(const CSSParserString&); -CSSPropertyID cssPropertyID(const String&); -CSSValueID cssValueKeywordID(const CSSParserString&); -#if PLATFORM(IOS) -void cssPropertyNameIOSAliasing(const char* propertyName, const char*& propertyNameAlias, unsigned& newLength); -#endif - -class ShorthandScope { - WTF_MAKE_FAST_ALLOCATED; -public: - ShorthandScope(CSSParser* parser, CSSPropertyID propId) : m_parser(parser) - { - if (!(m_parser->m_inParseShorthand++)) - m_parser->m_currentShorthand = propId; - } - ~ShorthandScope() - { - if (!(--m_parser->m_inParseShorthand)) - m_parser->m_currentShorthand = CSSPropertyInvalid; - } - -private: - CSSParser* m_parser; -}; - -struct CSSParser::Location { - int lineNumber; - CSSParserString token; -}; - -String quoteCSSString(const String&); -String quoteCSSStringIfNeeded(const String&); -String quoteCSSURLIfNeeded(const String&); - -bool isValidNthToken(const CSSParserString&); - -template <> -inline void CSSParser::setTokenStart(LChar* tokenStart) -{ - m_tokenStart.ptr8 = tokenStart; -} - -template <> -inline void CSSParser::setTokenStart(UChar* tokenStart) -{ - m_tokenStart.ptr16 = tokenStart; -} - -inline unsigned CSSParser::tokenStartOffset() -{ - if (is8BitSource()) - return m_tokenStart.ptr8 - m_dataStart8.get(); - return m_tokenStart.ptr16 - m_dataStart16.get(); -} - -inline UChar CSSParser::tokenStartChar() -{ - if (is8BitSource()) - return *m_tokenStart.ptr8; - return *m_tokenStart.ptr16; -} - -inline int cssyylex(void* yylval, CSSParser* parser) -{ - return parser->lex(yylval); -} - -} // namespace WebCore - -#endif // CSSParser_h -- cgit v1.2.1