Chromium Code Reviews| Index: Source/core/css/parser/MediaQueryParser.h |
| diff --git a/Source/core/css/parser/MediaQueryParser.h b/Source/core/css/parser/MediaQueryParser.h |
| index fcb82c569bd11de88eadcc31a930a69f0a8dad3b..f3189550ec388c59b16435f181b6bdaf92e4d0d9 100644 |
| --- a/Source/core/css/parser/MediaQueryParser.h |
| +++ b/Source/core/css/parser/MediaQueryParser.h |
| @@ -58,6 +58,24 @@ private: |
| typedef Vector<MediaQueryToken>::iterator TokenIterator; |
| + enum BlockType { |
| + ParenthesisBlock, |
| + BracketsBlock, |
| + BracesBlock |
| + }; |
| + |
| + enum StateChange { |
| + ModifyState, |
| + DoNotModifyState |
| + }; |
| + |
| + struct BlockParameters { |
| + MediaQueryTokenType lefttoken; |
|
eseidel
2014/04/01 21:15:08
leftToken?
|
| + MediaQueryTokenType righttoken; |
| + BlockType blockType; |
| + StateChange stateChange; |
| + }; |
| + |
| void processToken(TokenIterator&); |
| void readRestrictor(MediaQueryTokenType, TokenIterator&); |
| @@ -69,17 +87,21 @@ private: |
| void readFeatureValue(MediaQueryTokenType, TokenIterator&); |
| void readFeatureEnd(MediaQueryTokenType, TokenIterator&); |
| void skipUntilComma(MediaQueryTokenType, TokenIterator&); |
| - void skipUntilParenthesis(MediaQueryTokenType, TokenIterator&); |
| + void skipUntilBlockEnd(MediaQueryTokenType, TokenIterator&); |
| void done(MediaQueryTokenType, TokenIterator&); |
| typedef void (MediaQueryParser::*State)(MediaQueryTokenType, TokenIterator&); |
| void setStateAndRestrict(State, MediaQuery::Restrictor); |
| + bool observeBlock(BlockParameters&, MediaQueryTokenType); |
| + void observeBlocks(MediaQueryTokenType); |
| + static void popIfBlockMatches(Vector<MediaQueryParser::BlockType>& blockStack, BlockType); |
| State m_state; |
| Vector<MediaQueryToken> m_tokens; |
| MediaQueryData m_mediaQueryData; |
| RefPtrWillBeMember<MediaQuerySet> m_querySet; |
| + Vector<BlockType> m_blockStack; |
| const static State ReadRestrictor; |
| const static State ReadMediaType; |
| @@ -90,7 +112,7 @@ private: |
| const static State ReadFeatureValue; |
| const static State ReadFeatureEnd; |
| const static State SkipUntilComma; |
| - const static State SkipUntilParenthesis; |
| + const static State SkipUntilBlockEnd; |
| const static State Done; |
| }; |