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

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

Issue 143323014: *** DO NOT LAND *** Attempt to understand Regions complexity Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 11 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 2
3 /* 3 /*
4 * Copyright (C) 2002-2003 Lars Knoll (knoll@kde.org) 4 * Copyright (C) 2002-2003 Lars Knoll (knoll@kde.org)
5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 App le Inc. All rights reserved. 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 App le Inc. All rights reserved.
6 * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com) 6 * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com)
7 * Copyright (C) 2008 Eric Seidel <eric@webkit.org> 7 * Copyright (C) 2008 Eric Seidel <eric@webkit.org>
8 * Copyright (C) 2012 Intel Corporation. All rights reserved. 8 * Copyright (C) 2012 Intel Corporation. All rights reserved.
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 %token INTERNAL_DECLS_SYM 188 %token INTERNAL_DECLS_SYM
189 %token INTERNAL_MEDIALIST_SYM 189 %token INTERNAL_MEDIALIST_SYM
190 %token INTERNAL_RULE_SYM 190 %token INTERNAL_RULE_SYM
191 %token INTERNAL_SELECTOR_SYM 191 %token INTERNAL_SELECTOR_SYM
192 %token INTERNAL_VALUE_SYM 192 %token INTERNAL_VALUE_SYM
193 %token INTERNAL_KEYFRAME_RULE_SYM 193 %token INTERNAL_KEYFRAME_RULE_SYM
194 %token INTERNAL_KEYFRAME_KEY_LIST_SYM 194 %token INTERNAL_KEYFRAME_KEY_LIST_SYM
195 %token INTERNAL_SUPPORTS_CONDITION_SYM 195 %token INTERNAL_SUPPORTS_CONDITION_SYM
196 %token KEYFRAMES_SYM 196 %token KEYFRAMES_SYM
197 %token WEBKIT_KEYFRAMES_SYM 197 %token WEBKIT_KEYFRAMES_SYM
198 %token WEBKIT_REGION_RULE_SYM
199 %token <marginBox> TOPLEFTCORNER_SYM 198 %token <marginBox> TOPLEFTCORNER_SYM
200 %token <marginBox> TOPLEFT_SYM 199 %token <marginBox> TOPLEFT_SYM
201 %token <marginBox> TOPCENTER_SYM 200 %token <marginBox> TOPCENTER_SYM
202 %token <marginBox> TOPRIGHT_SYM 201 %token <marginBox> TOPRIGHT_SYM
203 %token <marginBox> TOPRIGHTCORNER_SYM 202 %token <marginBox> TOPRIGHTCORNER_SYM
204 %token <marginBox> BOTTOMLEFTCORNER_SYM 203 %token <marginBox> BOTTOMLEFTCORNER_SYM
205 %token <marginBox> BOTTOMLEFT_SYM 204 %token <marginBox> BOTTOMLEFT_SYM
206 %token <marginBox> BOTTOMCENTER_SYM 205 %token <marginBox> BOTTOMCENTER_SYM
207 %token <marginBox> BOTTOMRIGHT_SYM 206 %token <marginBox> BOTTOMRIGHT_SYM
208 %token <marginBox> BOTTOMRIGHTCORNER_SYM 207 %token <marginBox> BOTTOMRIGHTCORNER_SYM
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 %type <rule> import 280 %type <rule> import
282 %type <rule> namespace 281 %type <rule> namespace
283 %type <rule> page 282 %type <rule> page
284 %type <rule> margin_box 283 %type <rule> margin_box
285 %type <rule> font_face 284 %type <rule> font_face
286 %type <rule> keyframes 285 %type <rule> keyframes
287 %type <rule> rule 286 %type <rule> rule
288 %type <rule> valid_rule 287 %type <rule> valid_rule
289 %type <ruleList> block_rule_body 288 %type <ruleList> block_rule_body
290 %type <ruleList> block_rule_list 289 %type <ruleList> block_rule_list
291 %type <ruleList> region_block_rule_body
292 %type <ruleList> region_block_rule_list
293 %type <rule> block_rule 290 %type <rule> block_rule
294 %type <rule> block_valid_rule 291 %type <rule> block_valid_rule
295 %type <rule> region_block_rule
296 %type <rule> region_block_valid_rule
297 %type <rule> region
298 %type <rule> supports 292 %type <rule> supports
299 %type <rule> viewport 293 %type <rule> viewport
300 %type <boolean> keyframes_rule_start 294 %type <boolean> keyframes_rule_start
301 295
302 %type <string> maybe_ns_prefix 296 %type <string> maybe_ns_prefix
303 297
304 %type <string> namespace_selector 298 %type <string> namespace_selector
305 299
306 %type <string> string_or_uri 300 %type <string> string_or_uri
307 %type <string> ident_or_string 301 %type <string> ident_or_string
(...skipping 27 matching lines...) Expand all
335 329
336 %type <id> property 330 %type <id> property
337 331
338 %type <selector> specifier 332 %type <selector> specifier
339 %type <selector> specifier_list 333 %type <selector> specifier_list
340 %type <selector> simple_selector 334 %type <selector> simple_selector
341 %type <selector> selector 335 %type <selector> selector
342 %type <selector> relative_selector 336 %type <selector> relative_selector
343 %type <selectorList> selector_list 337 %type <selectorList> selector_list
344 %type <selectorList> simple_selector_list 338 %type <selectorList> simple_selector_list
345 %type <selectorList> region_selector
346 %type <selector> class 339 %type <selector> class
347 %type <selector> attrib 340 %type <selector> attrib
348 %type <selector> pseudo 341 %type <selector> pseudo
349 %type <selector> pseudo_page 342 %type <selector> pseudo_page
350 %type <selector> page_selector 343 %type <selector> page_selector
351 344
352 %type <boolean> declaration_list 345 %type <boolean> declaration_list
353 %type <boolean> decl_list 346 %type <boolean> decl_list
354 %type <boolean> declaration 347 %type <boolean> declaration
355 %type <boolean> declarations_and_margins 348 %type <boolean> declarations_and_margins
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
505 ; 498 ;
506 499
507 valid_rule: 500 valid_rule:
508 ruleset 501 ruleset
509 | media 502 | media
510 | page 503 | page
511 | font_face 504 | font_face
512 | keyframes 505 | keyframes
513 | namespace 506 | namespace
514 | import 507 | import
515 | region
516 | supports 508 | supports
517 | viewport 509 | viewport
518 ; 510 ;
519 511
520 before_rule: 512 before_rule:
521 /* empty */ { 513 /* empty */ {
522 parser->startRule(); 514 parser->startRule();
523 } 515 }
524 ; 516 ;
525 517
(...skipping 14 matching lines...) Expand all
540 | block_rule_list block_rule_recovery 532 | block_rule_list block_rule_recovery
541 ; 533 ;
542 534
543 block_rule_list: 535 block_rule_list:
544 /* empty */ { $$ = 0; } 536 /* empty */ { $$ = 0; }
545 | block_rule_list block_rule maybe_sgml { 537 | block_rule_list block_rule maybe_sgml {
546 $$ = parser->appendRule($1, $2); 538 $$ = parser->appendRule($1, $2);
547 } 539 }
548 ; 540 ;
549 541
550 region_block_rule_body:
551 region_block_rule_list
552 | region_block_rule_list block_rule_recovery
553 ;
554
555 region_block_rule_list:
556 /* empty */ { $$ = 0; }
557 | region_block_rule_list region_block_rule maybe_sgml {
558 $$ = parser->appendRule($1, $2);
559 }
560 ;
561
562 region_block_rule:
563 before_rule region_block_valid_rule {
564 $$ = $2;
565 parser->endRule(!!$$);
566 }
567 | before_rule invalid_rule {
568 $$ = 0;
569 parser->endRule(false);
570 }
571 ;
572
573 block_rule_recovery: 542 block_rule_recovery:
574 before_rule invalid_rule_header { 543 before_rule invalid_rule_header {
575 parser->endRule(false); 544 parser->endRule(false);
576 } 545 }
577 ; 546 ;
578 547
579 region_block_valid_rule:
580 ruleset
581 | page
582 | font_face
583 | media
584 | keyframes
585 | supports
586 | viewport
587 ;
588
589 block_valid_rule: 548 block_valid_rule:
590 ruleset 549 ruleset
591 | page 550 | page
592 | font_face 551 | font_face
593 | media 552 | media
594 | keyframes 553 | keyframes
595 | supports 554 | supports
596 | viewport 555 | viewport
597 | namespace 556 | namespace
598 | region
599 ; 557 ;
600 558
601 block_rule: 559 block_rule:
602 before_rule block_valid_rule { 560 before_rule block_valid_rule {
603 $$ = $2; 561 $$ = $2;
604 parser->endRule(!!$$); 562 parser->endRule(!!$$);
605 } 563 }
606 | before_rule invalid_rule { 564 | before_rule invalid_rule {
607 $$ = 0; 565 $$ = 0;
608 parser->endRule(false); 566 parser->endRule(false);
(...skipping 471 matching lines...) Expand 10 before | Expand all | Expand 10 after
1080 ; 1038 ;
1081 1039
1082 viewport: 1040 viewport:
1083 before_viewport_rule VIEWPORT_RULE_SYM at_rule_header_end_maybe_space 1041 before_viewport_rule VIEWPORT_RULE_SYM at_rule_header_end_maybe_space
1084 '{' at_rule_body_start maybe_space_before_declaration declaration_list closi ng_brace { 1042 '{' at_rule_body_start maybe_space_before_declaration declaration_list closi ng_brace {
1085 $$ = parser->createViewportRule(); 1043 $$ = parser->createViewportRule();
1086 parser->markViewportRuleBodyEnd(); 1044 parser->markViewportRuleBodyEnd();
1087 } 1045 }
1088 ; 1046 ;
1089 1047
1090 region_selector:
1091 selector_list {
1092 parser->setReusableRegionSelectorVector($1);
1093 $$ = parser->reusableRegionSelectorVector();
1094 }
1095 ;
1096
1097 before_region_rule:
1098 /* empty */ {
1099 parser->startRuleHeader(CSSRuleSourceData::REGION_RULE);
1100 }
1101 ;
1102
1103 region:
1104 before_region_rule WEBKIT_REGION_RULE_SYM maybe_space region_selector at_rul e_header_end '{' at_rule_body_start maybe_space region_block_rule_body closing_b race {
1105 $$ = parser->createRegionRule($4, $9);
1106 }
1107 ;
1108
1109 combinator: 1048 combinator:
1110 '+' maybe_space { $$ = CSSSelector::DirectAdjacent; } 1049 '+' maybe_space { $$ = CSSSelector::DirectAdjacent; }
1111 | '~' maybe_space { $$ = CSSSelector::IndirectAdjacent; } 1050 | '~' maybe_space { $$ = CSSSelector::IndirectAdjacent; }
1112 | '>' maybe_space { $$ = CSSSelector::Child; } 1051 | '>' maybe_space { $$ = CSSSelector::Child; }
1113 | '^' maybe_space { 1052 | '^' maybe_space {
1114 if (!RuntimeEnabledFeatures::shadowDOMEnabled()) 1053 if (!RuntimeEnabledFeatures::shadowDOMEnabled())
1115 YYERROR; 1054 YYERROR;
1116 $$ = CSSSelector::ChildTree; 1055 $$ = CSSSelector::ChildTree;
1117 } 1056 }
1118 | '^' '^' maybe_space { 1057 | '^' '^' maybe_space {
(...skipping 790 matching lines...) Expand 10 before | Expand all | Expand 10 after
1909 | before_font_face_rule FONT_FACE_SYM at_rule_header_recovery 1848 | before_font_face_rule FONT_FACE_SYM at_rule_header_recovery
1910 | before_supports_rule SUPPORTS_SYM error error_location rule_error_recovery { 1849 | before_supports_rule SUPPORTS_SYM error error_location rule_error_recovery {
1911 parser->reportError($4, InvalidSupportsConditionCSSError); 1850 parser->reportError($4, InvalidSupportsConditionCSSError);
1912 parser->popSupportsRuleData(); 1851 parser->popSupportsRuleData();
1913 } 1852 }
1914 | before_viewport_rule VIEWPORT_RULE_SYM at_rule_header_recovery { 1853 | before_viewport_rule VIEWPORT_RULE_SYM at_rule_header_recovery {
1915 parser->markViewportRuleBodyEnd(); 1854 parser->markViewportRuleBodyEnd();
1916 } 1855 }
1917 | import_rule_start at_rule_header_recovery 1856 | import_rule_start at_rule_header_recovery
1918 | NAMESPACE_SYM at_rule_header_recovery 1857 | NAMESPACE_SYM at_rule_header_recovery
1919 | before_region_rule WEBKIT_REGION_RULE_SYM at_rule_header_recovery
1920 | error_location invalid_at at_rule_header_recovery { 1858 | error_location invalid_at at_rule_header_recovery {
1921 parser->resumeErrorLogging(); 1859 parser->resumeErrorLogging();
1922 parser->reportError($1, InvalidRuleCSSError); 1860 parser->reportError($1, InvalidRuleCSSError);
1923 } 1861 }
1924 ; 1862 ;
1925 1863
1926 invalid_rule: 1864 invalid_rule:
1927 error error_location rule_error_recovery at_invalid_rule_header_end invalid_ block { 1865 error error_location rule_error_recovery at_invalid_rule_header_end invalid_ block {
1928 parser->reportError($2, InvalidRuleCSSError); 1866 parser->reportError($2, InvalidRuleCSSError);
1929 } 1867 }
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1983 1921
1984 rule_error_recovery: 1922 rule_error_recovery:
1985 /* empty */ 1923 /* empty */
1986 | rule_error_recovery error 1924 | rule_error_recovery error
1987 | rule_error_recovery invalid_square_brackets_block 1925 | rule_error_recovery invalid_square_brackets_block
1988 | rule_error_recovery invalid_parentheses_block 1926 | rule_error_recovery invalid_parentheses_block
1989 ; 1927 ;
1990 1928
1991 %% 1929 %%
1992 1930
OLDNEW
« no previous file with comments | « Source/core/css/CSSComputedStyleDeclaration.cpp ('k') | Source/core/css/CSSPrimitiveValueMappings.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698