Exemple #1
0
 private function parse_rule($root)
 {
     if (!$this->chop('/^([^{}:;]+)\\s*:\\s*([^{};]+)\\s*(;|\\})/us', $matches)) {
         return FALSE;
     }
     $name = $this->translate($matches[1]);
     $value = $this->translate($matches[2]);
     //是否存在针对该rule的patcher
     $patchers = CSSP::rule_patchers($name);
     if ($patchers) {
         foreach ((array) $patchers as $patcher) {
             $handler = $patcher['handler'];
             $params = $patcher['params'];
             call_user_func($handler, $this, $root, $name, $value, $params);
         }
     } else {
         $rule = CSSP::node(CSS_Node::NODE_RULE);
         $rule->name = $name;
         $rule->value = $value;
         $root->append($rule);
     }
     if ($matches[3] == '}') {
         $this->spit(1);
     }
     return TRUE;
 }