/** * Parses CSS at-page rule selector; syntax of this selector can be seen in * CSS 3 specification at http://www.w3.org/TR/css3-page/#syntax-page-selector * * */ function &parse_css_atpage_selector($selector) { switch ($selector) { case '': $selector =& new CSSPageSelectorAll(); return $selector; case ':first': $selector =& new CSSPageSelectorFirst(); return $selector; case ':left': $selector =& new CSSPageSelectorLeft(); return $selector; case ':right': $selector =& new CSSPageSelectorRight(); return $selector; default: if (CSS::is_identifier($selector)) { $selector =& new CSSPageSelectorNamed($selector); return $selector; } else { error_log(sprintf('Unknown page selector in @page rule: \'%s\'', $selector)); $selector =& new CSSPageSelectorAll(); return $selector; } } }