- From: <bugzilla@jessica.w3.org>
- Date: Sun, 06 Dec 2015 19:16:54 +0000
- To: public-css-bugzilla@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=29323
Bug ID: 29323
Summary: Consume a name, unclear?
Product: CSS
Version: unspecified
Hardware: PC
OS: Windows NT
Status: NEW
Severity: normal
Priority: P2
Component: Syntax
Assignee: jackalmage@gmail.com
Reporter: hhp400@student.vu.nl
QA Contact: public-css-bugzilla@w3.org
Target Milestone: ---
I've sent an e-mail to the Working Group, but it never delivered. So I repost
it here:
To: www-style@w3.org
Subject: [css-syntax] 4.3.11. Consume a name?
The specification reads:
``Repeatedly consume the next input code point from the stream:''
And whenever the code point does not match the two clauses mentioned below,
``anything else
Return result.''
I believe that this description wrong. The current code point should be
reconsumed, before returning the result, thereby preventing that a non-matching
symbol from the input stream is eaten by the algorithm. A counter-example:
#ident{
}
would then first consume the "#", which triggers the `Consume a
name'-algorithm. It then continues with the `name code point'-path, all the way
up to "{". Here it returns result, while "{" is still consumed.
If I may suggest a better wording, it would be:
``anything else
Reconsume the current input code point and return result.''
See:
http://www.w3.org/TR/css-syntax-3/#reconsume-the-current-input-code-point
http://www.w3.org/TR/css-syntax-3/#consume-a-name
Background:
While implementing Java tokenizer/parser for CSS, my relevant piece of code is:
String consumeName() {
StringBuilder result = new StringBuilder();
int code, next;
while (true) {
code = preprocess();
if (isName(code)) {
result.appendCodePoint(code);
continue;
}
next = preprocess();
if (isValidEscape(code, next)) {
result.appendCodePoint(consumeEscape(next));
continue;
}
break;
}
pushback(next); // note these pushbacks!
pushback(code); // they are not specified
return result.toString();
}
--
You are receiving this mail because:
You are the QA Contact for the bug.
Received on Sunday, 6 December 2015 19:16:58 UTC