OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2002-2003 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 2002-2003 Lars Knoll (knoll@kde.org) |
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 App
le Inc. All rights reserved. | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 App
le Inc. All rights reserved. |
4 * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 4 * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com) |
5 * Copyright (C) 2008 Eric Seidel <eric@webkit.org> | 5 * Copyright (C) 2008 Eric Seidel <eric@webkit.org> |
6 * Copyright (C) 2012 Intel Corporation. All rights reserved. | 6 * Copyright (C) 2012 Intel Corporation. All rights reserved. |
7 * | 7 * |
8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
9 * modify it under the terms of the GNU Lesser General Public | 9 * modify it under the terms of the GNU Lesser General Public |
10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 case VAR_DEFINITION: | 80 case VAR_DEFINITION: |
81 case UNICODERANGE: | 81 case UNICODERANGE: |
82 return true; | 82 return true; |
83 default: | 83 default: |
84 return false; | 84 return false; |
85 } | 85 } |
86 } | 86 } |
87 | 87 |
88 %} | 88 %} |
89 | 89 |
90 %expect 32 | 90 %expect 33 |
91 | 91 |
92 %nonassoc LOWEST_PREC | 92 %nonassoc LOWEST_PREC |
93 | 93 |
94 %left UNIMPORTANT_TOK | 94 %left UNIMPORTANT_TOK |
95 | 95 |
96 %token WHITESPACE SGML_CD | 96 %token WHITESPACE SGML_CD |
97 %token TOKEN_EOF 0 | 97 %token TOKEN_EOF 0 |
98 | 98 |
99 %token INCLUDES | 99 %token INCLUDES |
100 %token DASHMATCH | 100 %token DASHMATCH |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 %type <keyframeRuleList> keyframes_rule | 269 %type <keyframeRuleList> keyframes_rule |
270 %type <valueList> key_list | 270 %type <valueList> key_list |
271 %type <value> key | 271 %type <value> key |
272 | 272 |
273 %type <id> property | 273 %type <id> property |
274 | 274 |
275 %type <selector> specifier | 275 %type <selector> specifier |
276 %type <selector> specifier_list | 276 %type <selector> specifier_list |
277 %type <selector> simple_selector | 277 %type <selector> simple_selector |
278 %type <selector> selector | 278 %type <selector> selector |
| 279 %type <selector> relative_selector |
279 %type <selectorList> selector_list | 280 %type <selectorList> selector_list |
280 %type <selectorList> simple_selector_list | 281 %type <selectorList> simple_selector_list |
281 %type <selectorList> region_selector | 282 %type <selectorList> region_selector |
282 %type <selector> selector_with_trailing_whitespace | 283 %type <selector> selector_with_trailing_whitespace |
283 %type <selector> class | 284 %type <selector> class |
284 %type <selector> attrib | 285 %type <selector> attrib |
285 %type <selector> pseudo | 286 %type <selector> pseudo |
286 %type <selector> pseudo_page | 287 %type <selector> pseudo_page |
287 %type <selector> page_selector | 288 %type <selector> page_selector |
288 | 289 |
(...skipping 831 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1120 $$->append(parser->sinkFloatingSelector($6)); | 1121 $$->append(parser->sinkFloatingSelector($6)); |
1121 parser->updateLastSelectorLineAndPosition(); | 1122 parser->updateLastSelectorLineAndPosition(); |
1122 } else | 1123 } else |
1123 $$ = 0; | 1124 $$ = 0; |
1124 } | 1125 } |
1125 | selector_list error { | 1126 | selector_list error { |
1126 $$ = 0; | 1127 $$ = 0; |
1127 } | 1128 } |
1128 ; | 1129 ; |
1129 | 1130 |
| 1131 relative_selector: |
| 1132 combinator selector { |
| 1133 $$ = $2; |
| 1134 CSSParserSelector* end = $$; |
| 1135 while (end->tagHistory()) |
| 1136 end = end->tagHistory(); |
| 1137 end->setRelation($1); |
| 1138 } |
| 1139 | selector { |
| 1140 $$ = $1; |
| 1141 } |
| 1142 ; |
| 1143 |
1130 selector_with_trailing_whitespace: | 1144 selector_with_trailing_whitespace: |
1131 selector WHITESPACE { | 1145 selector WHITESPACE { |
1132 $$ = $1; | 1146 $$ = $1; |
1133 } | 1147 } |
1134 ; | 1148 ; |
1135 | 1149 |
1136 selector: | 1150 selector: |
1137 simple_selector { | 1151 simple_selector { |
1138 $$ = $1; | 1152 $$ = $1; |
1139 } | 1153 } |
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1389 $$->setValue($3); | 1403 $$->setValue($3); |
1390 CSSSelector::PseudoType type = $$->pseudoType(); | 1404 CSSSelector::PseudoType type = $$->pseudoType(); |
1391 if (type != CSSSelector::PseudoCue) | 1405 if (type != CSSSelector::PseudoCue) |
1392 $$ = 0; | 1406 $$ = 0; |
1393 } else | 1407 } else |
1394 $$ = 0; | 1408 $$ = 0; |
1395 } | 1409 } |
1396 | ':' ':' CUEFUNCTION selector_recovery ')' { | 1410 | ':' ':' CUEFUNCTION selector_recovery ')' { |
1397 YYERROR; | 1411 YYERROR; |
1398 } | 1412 } |
1399 | ':' ':' DISTRIBUTEDFUNCTION maybe_space selector maybe_space ')' { | 1413 | ':' ':' DISTRIBUTEDFUNCTION maybe_space relative_selector maybe_space ')'
{ |
1400 if (!$5) | 1414 if (!$5) |
1401 $$ = 0; | 1415 $$ = 0; |
1402 else { | 1416 else { |
1403 $$ = parser->createFloatingSelector(); | 1417 $$ = parser->createFloatingSelector(); |
1404 $$->setMatch(CSSSelector::PseudoElement); | 1418 $$->setMatch(CSSSelector::PseudoElement); |
1405 $$->setFunctionArgumentSelector($5); | 1419 $$->setFunctionArgumentSelector($5); |
1406 parser->tokenToLowerCase($3); | 1420 parser->tokenToLowerCase($3); |
1407 $$->setValue($3); | 1421 $$->setValue($3); |
1408 } | 1422 } |
1409 } | 1423 } |
(...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1965 error_recovery: | 1979 error_recovery: |
1966 /* empty */ | 1980 /* empty */ |
1967 | error_recovery error | 1981 | error_recovery error |
1968 | error_recovery invalid_block | 1982 | error_recovery invalid_block |
1969 | error_recovery invalid_square_brackets_block | 1983 | error_recovery invalid_square_brackets_block |
1970 | error_recovery invalid_parentheses_block | 1984 | error_recovery invalid_parentheses_block |
1971 ; | 1985 ; |
1972 | 1986 |
1973 %% | 1987 %% |
1974 | 1988 |
OLD | NEW |