OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef MediaQueryParser_h | 5 #ifndef MediaQueryParser_h |
6 #define MediaQueryParser_h | 6 #define MediaQueryParser_h |
7 | 7 |
8 #include "core/css/CSSParserValues.h" | 8 #include "core/css/CSSParserValues.h" |
9 #include "core/css/MediaList.h" | 9 #include "core/css/MediaList.h" |
10 #include "core/css/MediaQuery.h" | 10 #include "core/css/MediaQuery.h" |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
57 enum ParserType { | 57 enum ParserType { |
58 MediaQuerySetParser, | 58 MediaQuerySetParser, |
59 MediaConditionParser, | 59 MediaConditionParser, |
60 }; | 60 }; |
61 | 61 |
62 MediaQueryParser(ParserType); | 62 MediaQueryParser(ParserType); |
63 virtual ~MediaQueryParser(); | 63 virtual ~MediaQueryParser(); |
64 | 64 |
65 PassRefPtrWillBeRawPtr<MediaQuerySet> parseImpl(TokenIterator, TokenIterator endToken); | 65 PassRefPtrWillBeRawPtr<MediaQuerySet> parseImpl(TokenIterator, TokenIterator endToken); |
66 | 66 |
67 enum BlockType { | |
68 ParenthesisBlock, | |
69 BracketsBlock, | |
70 BracesBlock | |
71 }; | |
72 | |
73 enum StateChange { | |
74 ModifyState, | |
75 DoNotModifyState | |
76 }; | |
77 | |
78 struct BlockParameters { | |
79 MediaQueryTokenType leftToken; | |
80 MediaQueryTokenType rightToken; | |
81 BlockType blockType; | |
82 StateChange stateChange; | |
83 }; | |
84 | |
85 void processToken(TokenIterator&); | 67 void processToken(TokenIterator&); |
86 | 68 |
87 void readRestrictor(MediaQueryTokenType, TokenIterator&); | 69 void readRestrictor(MediaQueryTokenType, TokenIterator&); |
88 void readMediaType(MediaQueryTokenType, TokenIterator&); | 70 void readMediaType(MediaQueryTokenType, TokenIterator&); |
89 void readAnd(MediaQueryTokenType, TokenIterator&); | 71 void readAnd(MediaQueryTokenType, TokenIterator&); |
90 void readFeatureStart(MediaQueryTokenType, TokenIterator&); | 72 void readFeatureStart(MediaQueryTokenType, TokenIterator&); |
91 void readFeature(MediaQueryTokenType, TokenIterator&); | 73 void readFeature(MediaQueryTokenType, TokenIterator&); |
92 void readFeatureColon(MediaQueryTokenType, TokenIterator&); | 74 void readFeatureColon(MediaQueryTokenType, TokenIterator&); |
93 void readFeatureValue(MediaQueryTokenType, TokenIterator&); | 75 void readFeatureValue(MediaQueryTokenType, TokenIterator&); |
94 void readFeatureEnd(MediaQueryTokenType, TokenIterator&); | 76 void readFeatureEnd(MediaQueryTokenType, TokenIterator&); |
95 void skipUntilComma(MediaQueryTokenType, TokenIterator&); | 77 void skipUntilComma(MediaQueryTokenType, TokenIterator&); |
96 void skipUntilBlockEnd(MediaQueryTokenType, TokenIterator&); | 78 void skipUntilBlockEnd(MediaQueryTokenType, TokenIterator&); |
97 void done(MediaQueryTokenType, TokenIterator&); | 79 void done(MediaQueryTokenType, TokenIterator&); |
98 | 80 |
99 typedef void (MediaQueryParser::*State)(MediaQueryTokenType, TokenIterator&) ; | 81 typedef void (MediaQueryParser::*State)(MediaQueryTokenType, TokenIterator&) ; |
100 | 82 |
101 void setStateAndRestrict(State, MediaQuery::Restrictor); | 83 void setStateAndRestrict(State, MediaQuery::Restrictor); |
102 bool observeBlock(BlockParameters&, MediaQueryTokenType); | 84 void observeBlocks(TokenIterator&); |
eseidel
2014/04/08 16:58:49
nit: I'm really not a fan of "observe" for this na
| |
103 void observeBlocks(MediaQueryTokenType); | |
104 static void popIfBlockMatches(Vector<MediaQueryParser::BlockType>& blockStac k, BlockType); | |
105 | 85 |
106 State m_state; | 86 State m_state; |
107 MediaQueryData m_mediaQueryData; | 87 MediaQueryData m_mediaQueryData; |
108 RefPtrWillBeMember<MediaQuerySet> m_querySet; | 88 RefPtrWillBeMember<MediaQuerySet> m_querySet; |
109 Vector<BlockType> m_blockStack; | 89 unsigned m_blockLevel; |
110 | 90 |
111 const static State ReadRestrictor; | 91 const static State ReadRestrictor; |
112 const static State ReadMediaType; | 92 const static State ReadMediaType; |
113 const static State ReadAnd; | 93 const static State ReadAnd; |
114 const static State ReadFeatureStart; | 94 const static State ReadFeatureStart; |
115 const static State ReadFeature; | 95 const static State ReadFeature; |
116 const static State ReadFeatureColon; | 96 const static State ReadFeatureColon; |
117 const static State ReadFeatureValue; | 97 const static State ReadFeatureValue; |
118 const static State ReadFeatureEnd; | 98 const static State ReadFeatureEnd; |
119 const static State SkipUntilComma; | 99 const static State SkipUntilComma; |
120 const static State SkipUntilBlockEnd; | 100 const static State SkipUntilBlockEnd; |
121 const static State Done; | 101 const static State Done; |
122 | 102 |
123 }; | 103 }; |
124 | 104 |
125 } // namespace WebCore | 105 } // namespace WebCore |
126 | 106 |
127 #endif // MediaQueryParser_h | 107 #endif // MediaQueryParser_h |
OLD | NEW |