| Index: Source/core/css/CSSGrammar.y
|
| diff --git a/Source/core/css/CSSGrammar.y b/Source/core/css/CSSGrammar.y
|
| index 97d1672e06a11feead3e4e79a15d887a78189d15..8870a84ba5d61f28cdfdf93bc1ab1ea8b4465946 100644
|
| --- a/Source/core/css/CSSGrammar.y
|
| +++ b/Source/core/css/CSSGrammar.y
|
| @@ -346,6 +346,8 @@ inline static CSSParserValue makeIdentValue(CSSParserString string)
|
| %type <integer> match
|
| %type <integer> unary_operator
|
| %type <integer> maybe_unary_operator
|
| +%type <integer> attr_flags
|
| +%type <integer> maybe_attr_flags
|
| %type <character> operator
|
|
|
| %type <valueList> expr
|
| @@ -1240,26 +1242,40 @@ attr_name:
|
| }
|
| ;
|
|
|
| +attr_flags:
|
| + IDENT maybe_space {
|
| + unsigned flags;
|
| + if (!parser->parseAttributeFlags(flags, $1))
|
| + YYERROR;
|
| + $$ = flags;
|
| + }
|
| + ;
|
| +
|
| +maybe_attr_flags:
|
| + attr_flags
|
| + | /* empty */ { $$ = CSSSelector::NoAttributeFlags; }
|
| + ;
|
| +
|
| attrib:
|
| '[' maybe_space attr_name closing_square_bracket {
|
| $$ = parser->createFloatingSelector();
|
| - $$->setAttribute(QualifiedName(nullAtom, $3, nullAtom));
|
| + $$->setAttribute(QualifiedName(nullAtom, $3, nullAtom), CSSSelector::NoAttributeFlags);
|
| $$->setMatch(CSSSelector::Set);
|
| }
|
| - | '[' maybe_space attr_name match maybe_space ident_or_string maybe_space closing_square_bracket {
|
| + | '[' maybe_space attr_name match maybe_space ident_or_string maybe_space maybe_attr_flags closing_square_bracket {
|
| $$ = parser->createFloatingSelector();
|
| - $$->setAttribute(QualifiedName(nullAtom, $3, nullAtom));
|
| + $$->setAttribute(QualifiedName(nullAtom, $3, nullAtom), $8);
|
| $$->setMatch((CSSSelector::Match)$4);
|
| $$->setValue($6);
|
| }
|
| | '[' maybe_space namespace_selector attr_name closing_square_bracket {
|
| $$ = parser->createFloatingSelector();
|
| - $$->setAttribute(parser->determineNameInNamespace($3, $4));
|
| + $$->setAttribute(parser->determineNameInNamespace($3, $4), CSSSelector::NoAttributeFlags);
|
| $$->setMatch(CSSSelector::Set);
|
| }
|
| - | '[' maybe_space namespace_selector attr_name match maybe_space ident_or_string maybe_space closing_square_bracket {
|
| + | '[' maybe_space namespace_selector attr_name match maybe_space ident_or_string maybe_space maybe_attr_flags closing_square_bracket {
|
| $$ = parser->createFloatingSelector();
|
| - $$->setAttribute(parser->determineNameInNamespace($3, $4));
|
| + $$->setAttribute(parser->determineNameInNamespace($3, $4), $9);
|
| $$->setMatch((CSSSelector::Match)$5);
|
| $$->setValue($7);
|
| }
|
|
|