22.12.2013 Views

W3C CSS2 Cascading Style Sheets, level 2 - instructional media + ...

W3C CSS2 Cascading Style Sheets, level 2 - instructional media + ...

W3C CSS2 Cascading Style Sheets, level 2 - instructional media + ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

* after the "#"; e.g., "#000" is OK, but "#abcd" is not.<br />

*/<br />

hexcolor<br />

: HASH S*<br />

;<br />

D.2 Lexical scanner<br />

The following is the tokenizer, written in Flex (see [FLEX]) notation. The tokenizer<br />

is case-insensitive.<br />

The two occurrences of "\377" represent the highest character number that<br />

current versions of Flex can deal with (decimal 255). They should be read as<br />

"\4177777" (decimal 1114111), which is the highest possible code point in<br />

Unicode/ISO-10646.<br />

%option case-insensitive<br />

h<br />

[0-9a-f]<br />

nonascii [\200-\377]<br />

unicode<br />

\\{h}{1,6}[ \t\r\n\f]?<br />

escape {unicode}|\\[ -~\200-\377]<br />

nmstart<br />

[a-z]|{nonascii}|{escape}<br />

nmchar<br />

[a-z0-9-]|{nonascii}|{escape}<br />

string1<br />

\"([\t !#$%&(-~]|\\{nl}|\’|{nonascii}|{escape})*\"<br />

string2<br />

\’([\t !#$%&(-~]|\\{nl}|\"|{nonascii}|{escape})*\’<br />

ident<br />

{nmstart}{nmchar}*<br />

name<br />

{nmchar}+<br />

num [0-9]+|[0-9]*"."[0-9]+<br />

string<br />

{string1}|{string2}<br />

url<br />

([!#$%&*-~]|{nonascii}|{escape})*<br />

w<br />

[ \t\r\n\f]*<br />

nl<br />

\n|\r\n|\r|\f<br />

range<br />

\?{1,6}|{h}(\?{0,5}|{h}(\?{0,4}|{h}(\?{0,3}|{h}(\?{0,2}|{h}(\??|{h})))))<br />

%%<br />

[ \t\r\n\f]+ {return S;}<br />

\/\*[^*]*\*+([^/][^*]*\*+)*\/ /* ignore comments */<br />

"" {return CDC;}<br />

"~=" {return INCLUDES;}<br />

"|=" {return DASHMATCH;}<br />

{string}<br />

{ident}<br />

"#"{name}<br />

"@import"<br />

"@page"<br />

"@<strong>media</strong>"<br />

"@font-face"<br />

"@charset"<br />

"@"{ident}<br />

"!{w}important"<br />

{num}em<br />

{num}ex<br />

{num}px<br />

{num}cm<br />

{num}mm<br />

{num}in<br />

{num}pt<br />

{num}pc<br />

{num}deg<br />

{return STRING;}<br />

{return IDENT;}<br />

{return HASH;}<br />

{return IMPORT_SYM;}<br />

{return PAGE_SYM;}<br />

{return MEDIA_SYM;}<br />

{return FONT_FACE_SYM;}<br />

{return CHARSET_SYM;}<br />

{return ATKEYWORD;}<br />

{return IMPORTANT_SYM;}<br />

{return EMS;}<br />

{return EXS;}<br />

{return LENGTH;}<br />

{return LENGTH;}<br />

{return LENGTH;}<br />

{return LENGTH;}<br />

{return LENGTH;}<br />

{return LENGTH;}<br />

{return ANGLE;}<br />

311

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!