Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(18)

Side by Side Diff: Source/core/css/CSSGrammar.y.in

Issue 15657003: Make a '::distributed' pseudo element the first-ever client who can accept a relative selector. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698