mirror of
https://github.com/servo/servo
synced 2026-04-28 18:37:39 +02:00
212 lines
5.0 KiB
HTML
212 lines
5.0 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
|
<html>
|
|
<head>
|
|
<title>CSS Test: Parser recovery after invalid '['</title>
|
|
<link rel="author" title="Boris Zbarsky" href="mailto:bzbarsky@mit.edu">
|
|
<link rel="reviewer" title="Ms2ger" href="mailto:Ms2ger@gmail.com">
|
|
<link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#parsing-errors">
|
|
<link rel="help" href="https://drafts.csswg.org/css-syntax-3/#css-stylesheets">
|
|
<link rel="match" href="reference/ref-this-text-should-be-green.htm">
|
|
<meta name="flags" content="invalid">
|
|
<meta name="assert" content="When an invalid '[' is encountered where a selector is expected, the CSS parser skips to the matching ']' and then ignores the following ruleset.">
|
|
<style type="text/css">
|
|
p { color: red; }
|
|
[
|
|
p { color: red !important; }
|
|
p { color: red !important; }
|
|
] p { color: red !important; }
|
|
p { color: green; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<p>This text should be green.</p>
|
|
</body>
|
|
</html><!--
|
|
<https://drafts.csswg.org/css-syntax/#tokenization>:
|
|
line 1
|
|
<whitespace-token>
|
|
<ident-token> p
|
|
<whitespace-token>
|
|
<{-token>
|
|
<whitespace-token>
|
|
<ident-token> color
|
|
<colon-token>
|
|
<whitespace-token>
|
|
<ident-token> red
|
|
<semicolon-token>
|
|
<whitespace-token>
|
|
<}-token>
|
|
line 2
|
|
<whitespace-token>
|
|
<[-token>
|
|
line 3
|
|
<whitespace-token>
|
|
<ident-token> p
|
|
<whitespace-token>
|
|
<{-token>
|
|
<whitespace-token>
|
|
<ident-token> color
|
|
<colon-token>
|
|
<whitespace-token>
|
|
<ident-token> red
|
|
<whitespace-token>
|
|
<delim-token> !
|
|
<ident-token> important
|
|
<semicolon-token>
|
|
<whitespace-token>
|
|
<}-token>
|
|
line 4
|
|
<whitespace-token>
|
|
<ident-token> p
|
|
<whitespace-token>
|
|
<{-token>
|
|
<whitespace-token>
|
|
<ident-token> color
|
|
<colon-token>
|
|
<whitespace-token>
|
|
<ident-token> red
|
|
<whitespace-token>
|
|
<delim-token> !
|
|
<ident-token> important
|
|
<semicolon-token>
|
|
<whitespace-token>
|
|
<}-token>
|
|
line 5
|
|
<whitespace-token>
|
|
<]-token>
|
|
<ident-token> p
|
|
<whitespace-token>
|
|
<{-token>
|
|
<whitespace-token>
|
|
<ident-token> color
|
|
<colon-token>
|
|
<whitespace-token>
|
|
<ident-token> red
|
|
<whitespace-token>
|
|
<delim-token> !
|
|
<ident-token> important
|
|
<semicolon-token>
|
|
<whitespace-token>
|
|
<}-token>
|
|
line 6
|
|
<whitespace-token>
|
|
<ident-token> p
|
|
<whitespace-token>
|
|
<{-token>
|
|
<whitespace-token>
|
|
<ident-token> color
|
|
<colon-token>
|
|
<whitespace-token>
|
|
<ident-token> green
|
|
<semicolon-token>
|
|
<whitespace-token>
|
|
<}-token>
|
|
line 7
|
|
<whitespace-token>
|
|
|
|
<https://drafts.csswg.org/css-syntax/#consume-a-list-of-rules>:
|
|
[
|
|
qualified rule {
|
|
prelude: [
|
|
<ident-token> p
|
|
<whitespace-token>
|
|
]
|
|
block:
|
|
simple block {
|
|
associated token: <{-token>
|
|
value: [
|
|
<whitespace-token>
|
|
<ident-token> color
|
|
<colon-token>
|
|
<whitespace-token>
|
|
<ident-token> red
|
|
<semicolon-token>
|
|
<whitespace-token>
|
|
]
|
|
}
|
|
}
|
|
qualified rule {
|
|
prelude: [
|
|
simple block {
|
|
associated token: <[-token>
|
|
value: [
|
|
<whitespace-token>
|
|
<ident-token> p
|
|
<whitespace-token>
|
|
simple block {
|
|
associated token: <{-token>
|
|
value: [
|
|
<whitespace-token>
|
|
<ident-token> color
|
|
<colon-token>
|
|
<whitespace-token>
|
|
<ident-token> red
|
|
<whitespace-token>
|
|
<delim-token> !
|
|
<ident-token> important
|
|
<semicolon-token>
|
|
<whitespace-token>
|
|
]
|
|
}
|
|
<whitespace-token>
|
|
<ident-token> p
|
|
<whitespace-token>
|
|
simple block {
|
|
associated token: <{-token>
|
|
value: [
|
|
<whitespace-token>
|
|
<ident-token> color
|
|
<colon-token>
|
|
<whitespace-token>
|
|
<ident-token> red
|
|
<whitespace-token>
|
|
<delim-token> !
|
|
<ident-token> important
|
|
<semicolon-token>
|
|
<whitespace-token>
|
|
]
|
|
}
|
|
<whitespace-token>
|
|
]
|
|
}
|
|
<ident-token> p
|
|
<whitespace-token>
|
|
]
|
|
block:
|
|
simple block {
|
|
associated token: <{-token>
|
|
value: [
|
|
<whitespace-token>
|
|
<ident-token> color
|
|
<colon-token>
|
|
<whitespace-token>
|
|
<ident-token> red
|
|
<whitespace-token>
|
|
<delim-token> !
|
|
<ident-token> important
|
|
<semicolon-token>
|
|
<whitespace-token>
|
|
]
|
|
}
|
|
}
|
|
qualified rule {
|
|
prelude: [
|
|
<ident-token> p
|
|
<whitespace-token>
|
|
]
|
|
block:
|
|
simple block {
|
|
associated token: <{-token>
|
|
value: [
|
|
<whitespace-token>
|
|
<ident-token> color
|
|
<colon-token>
|
|
<whitespace-token>
|
|
<ident-token> green
|
|
<semicolon-token>
|
|
<whitespace-token>
|
|
]
|
|
}
|
|
}
|
|
]
|
|
--> |