- From: Etan Wexler <ewexler@stickdog.com>
- Date: Fri, 6 Aug 2004 02:10:31 -0700
- To: www-style@w3.org
Boris Zbarsky wrote to <mailto:www-style@w3.org> on 19 May 2004 in 'Re: Question on parsing of "font" property' (<mid:40AC125D.2000308@mit.edu>): > [...] we are actually getting the following rule for non-quoted font > names: > > font-name: term [ operator term ]* > > where "operator" is not allowed to be a COMMA. [...] > I do agree that per the grammar '@' would indeed need to be escaped. There are many syntactic constructs which, though allowed by the prose description of 'font-family', are forbidden by the Appendix G grammar [GRAM]. As noted, the bare commercial at sign (U+0040) is one. It becomes necessary to move to a value syntax like that in section 4, the core syntax [SD]: value : [ any | block | ATKEYWORD S* ]+; any : [ IDENT | NUMBER | PERCENTAGE | DIMENSION | STRING | DELIM | URI | HASH | UNICODE-RANGE | INCLUDES | DASHMATCH | FUNCTION S* any* ')' | '(' S* any* ')' | '[' S* any* ']' ] S*; Even then, blocks nested in parentheses or in brackets remain illegal: font-family: (this {is} illegal); The remedy is simple: value : [ any | block | ATKEYWORD S* ]+; any : [ IDENT | NUMBER | PERCENTAGE | DIMENSION | STRING | DELIM | URI | HASH | UNICODE-RANGE | INCLUDES | DASHMATCH | FUNCTION S* value? ')' | '(' S* value? ')' | '[' S* value? ']' ] S*; Your humble correspondent has addressed this in previous messages [BN-1] [BN-2]. [GRAM] Bert Bos; Tantek Çelik; Ian Hickson; Håkon Wium Lie. "Grammar of CSS 2.1", appendix G in the CSS 2.1 specification. 25 February 2005. W3C Candidate Recommendation. <http://www.w3.org/TR/2004/CR-CSS21-20040225/grammar.html> [SD] Bert Bos; Tantek Çelik; Ian Hickson; Håkon Wium Lie. "Tokenization", section 4.1.1 in the CSS 2.1 specification. 25 February 2005. W3C Candidate Recommendation. <http://www.w3.org/TR/2004/CR-CSS21-20040225/syndata.html#tokenization> [BN-1] Etan Wexler. "Re: Blocks in parentheses or brackets". 14 February 2003 (but self-labeled 14 December 2003). Public correspondence to <mailto:www-style@w3.org>. <mid:blocks-in-parentheses@d20030214.etan.wexler> / <http://lists.w3.org/Archives/Public/www-style/2003Feb/0054.html>. [BN-2] Etan Wexler. "Re: Blocks in parentheses or brackets". 8 March 2003. Public correspondence to <mailto:www-style@w3.org>. <mid:BA8EE31E.3CD%25ewexler@stickdog.com> / <http://lists.w3.org/Archives/Public/www-style/2003Mar/0055.html>. -- Etan Wexler.
Received on Friday, 6 August 2004 05:24:45 UTC