- From: Andrey Mikhalev <amikhal@abisoft.spb.ru>
- Date: Wed, 6 May 2009 14:30:14 +0400 (MSD)
- To: Sylvain Galineau <sylvaing@microsoft.com>
- cc: "www-style@w3.org" <www-style@w3.org>
On Tue, 5 May 2009, Sylvain Galineau wrote:
> Feedback on spec changes is always very welcome, but calling them
> 'trash', 'nonsense' and such is neither strictly necessary nor a
> productive way to engage the editors and the larger group. Thanks.
mea culpa. poor english knowledge. apologise.
> First, I suggest reading on the background of this change:
> http://wiki.csswg.org/spec/css2.1#issue-24
solution looks much worse than original issue. for me.
>
> Second, as Giovanni points out, a declaration is not a statement.
>
> Maybe an example would help explain how you're reading the rule i.e. if
> there is a contradiction, something that used to be invalid may now be
> valid or ambiguous ?
not example, but here is some explanation:
"Malformed statements.
User agents must handle unexpected tokens encountered
while parsing a statement by reading until the end of the statement,
while observing the rules for matching pairs of (), [], {}, "", and '',
and correctly handling escapes."
issue#1:
parser has no real 'statement' state, it's artifical construction
(statement : ruleset | at-rule; s.a. 4.1.4)
from grammar point of view, any token is 'expected' in statement.
what is 'handle unexpected tokens while parsing a statement' then?
issue#2:
(btw, as consequence) what is 'end of the statement'?
undefined thing. how i can use it in error recovery?
issue#3:
as soon as terminal token arrives, parser switches into
selector / declaration / at-rule state.
error handling for declaration and at-rule state already defined
in 4.2, error handling for selectors already defined in 4.1.7.
this makes introduced paragraph at least redundant.
issue#4:
according 4.1.7 (and formal syntax), first curly brace ({) denote
end of selector, and only then matching pairs rule take effect
according 4.1.6.
but selector state is also 'statement' state, hence according
to new paragaph i should 'reading until the end of the statement,
while observing the rules for matching pairs' regardless of
selector/block state.
2 different algorithms specified. contradiction#1.
issue#5:
'User agents must handle unexpected tokens encountered while parsing
a declaration by reading until the end of the declaration'
but while i parse declaration i also parse statement.
'User agents must handle unexpected tokens encountered while parsing
a statement by reading until the end of the statement'
2 different algorithms specified. contradiction#2.
issue#6:
'Something inside an at-rule that is ignored because it is invalid,
such as an invalid declaration within an @media-rule, does not make
the entire at-rule invalid.'
the same. at-rule is statement.
>
>
Received on Wednesday, 6 May 2009 10:35:16 UTC