- From: Justin Wood <jw6057@bacon.qcc.mass.edu>
- Date: Tue, 17 Aug 2004 04:33:50 -0400
- To: Etan Wexler <ewexler@stickdog.com>, W3C Style List <www-style@w3.org>
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