Пример #1
0
/**
 * 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;
            }
    }
}