Re: [CSS21] Font-family syntax

Etan Wexler wrote:

>
> 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>.
>
>
Does not a quoted string solve all these issues?

~Justin Wood

Received on Tuesday, 17 August 2004 08:49:42 UTC