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

Unified Diff: Source/core/css/CSSGrammar.y.in

Issue 23528004: [CSS Grid Layout] Update named grid lines syntax to the last version of the specs (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@named
Patch Set: Added some new tests Created 7 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: Source/core/css/CSSGrammar.y.in
diff --git a/Source/core/css/CSSGrammar.y.in b/Source/core/css/CSSGrammar.y.in
index 024f514addcc5349f46debf7ee0d7767cadc3d86..a4377b256e85d11cbe79ea8038bcf4c53647d744 100644
--- a/Source/core/css/CSSGrammar.y.in
+++ b/Source/core/css/CSSGrammar.y.in
@@ -96,6 +96,15 @@ inline static CSSParserValue makeOperatorValue(int value)
return v;
}
+inline static CSSParserValue makeIdentValue(CSSParserString string)
+{
+ CSSParserValue v;
+ v.id = cssValueKeywordID(string);
+ v.unit = CSSPrimitiveValue::CSS_IDENT;
+ v.string = string;
+ return v;
+}
+
%}
%expect 0
@@ -329,6 +338,9 @@ inline static CSSParserValue makeOperatorValue(int value)
%type <location> error_location
+%type <valueList> ident_list
+%type <valueList> track_names_list
+
%%
stylesheet:
@@ -1634,16 +1646,47 @@ prio:
| /* empty */ { $$ = false; }
;
+ident_list:
+ IDENT maybe_space {
+ $$ = parser->createFloatingValueList();
+ $$->addValue(makeIdentValue($1));
+ }
+ | ident_list IDENT maybe_space {
+ $$ = $1;
+ $$->addValue(makeIdentValue($2));
+ }
+ ;
+
+track_names_list:
+ '(' maybe_space ident_list closing_parenthesis maybe_space {
+ $$ = $3;
+ $$->insertValueAt(0, makeOperatorValue('('));
Julien - ping for review 2013/11/12 07:33:17 I wonder if we couldn't simplify the code by makin
svillar 2013/11/12 07:45:04 I can take a look again, and maybe the changes pro
Julien - ping for review 2013/11/12 07:49:38 Agreed but the proposal was to insert the list as-
+ $$->addValue(makeOperatorValue(')'));
+ }
+ ;
+
expr:
term {
$$ = parser->createFloatingValueList();
$$->addValue(parser->sinkFloatingValue($1));
}
+ | track_names_list {
+ $$ = $1;
+ }
+ | expr track_names_list {
+ $$ = $1;
+ $$->extend(*($2));
rune 2013/09/10 11:30:19 $2, which comes from is createFloatingValueList()
+ }
| expr operator term {
$$ = $1;
$$->addValue(makeOperatorValue($2));
$$->addValue(parser->sinkFloatingValue($3));
}
+ | expr operator track_names_list {
+ $$ = $1;
+ $$->addValue(makeOperatorValue($2));
+ $$->extend(*($3));
+ }
| expr term {
$$ = $1;
$$->addValue(parser->sinkFloatingValue($2));
@@ -1669,11 +1712,7 @@ term:
unary_term maybe_space
| unary_operator unary_term maybe_space { $$ = $2; $$.fValue *= $1; }
| STRING maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit = CSSPrimitiveValue::CSS_STRING; }
- | IDENT maybe_space {
- $$.id = cssValueKeywordID($1);
- $$.unit = CSSPrimitiveValue::CSS_IDENT;
- $$.string = $1;
- }
+ | IDENT maybe_space { $$ = makeIdentValue($1); }
/* We might need to actually parse the number from a dimension, but we can't just put something that uses $$.string into unary_term. */
| DIMEN maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit = CSSPrimitiveValue::CSS_DIMENSION; }
| unary_operator DIMEN maybe_space { $$.id = CSSValueInvalid; $$.string = $2; $$.unit = CSSPrimitiveValue::CSS_DIMENSION; }
« no previous file with comments | « LayoutTests/fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js ('k') | Source/core/css/CSSParser.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698