/* @css-patch name { } */ if (!$bracket || !preg_match('/^\\s*([\\w-]+)\\s*$/', $args, $matches)) { $fragment->trace($root, '格式错误: @css-patcher name{}'); return FALSE; } $name = $matches[1]; $pos = $fragment->get_var($name); if ($pos === NULL) { $fragment->trace($root, '未定义的补丁: ' . $name); return FALSE; } CSSP::register_rule_patcher('*', 'CSSP_BuildIn::do_patch', array('patcher_pos' => $pos), 'do_patch'); $fragment->parse_content($root); CSSP::unregister_rule_patcher('*', 'do_patch'); } } // 注册内置CSS Rule Patcher CSSP::register_pseudo_handler('css-define', 'CSSP_BuildIn::pseudo_define'); CSSP::register_pseudo_handler('css-foreach', 'CSSP_BuildIn::pseudo_foreach'); CSSP::register_pseudo_handler('css-for', 'CSSP_BuildIn::pseudo_for'); CSSP::register_pseudo_handler('css-rule', 'CSSP_BuildIn::pseudo_rule'); CSSP::register_pseudo_handler('css-test', 'CSSP_BuildIn::pseudo_test'); CSSP::register_pseudo_handler('css-switch', 'CSSP_BuildIn::pseudo_switch'); CSSP::register_pseudo_handler('css-patcher', 'CSSP_BuildIn::pseudo_patcher'); CSSP::register_pseudo_handler('css-patch', 'CSSP_BuildIn::pseudo_patch'); CSSP::register_rule_patcher('extends', 'CSSP_BuildIn::patch_extends'); CSSP::$css_prefix = @file_get_contents(dirname(__FILE__) . '/cssp_prefix.cssp');