/**
  * Converts $this->css array to a raw array ($this->tokens).
  *
  * @since 1.0.0
  *
  * @param string $default_media Optional. Default @media to add to selectors without any @media.
  */
 protected function _convert_raw_css($default_media = '')
 {
     $this->tokens = array();
     $sort_selectors = $this->parser->get_cfg('sort_selectors');
     $sort_properties = $this->parser->get_cfg('sort_properties');
     foreach ($this->css as $medium => $val) {
         if ($sort_selectors) {
             ksort($val);
         }
         if (intval($medium) < DEFAULT_AT) {
             // un medium vide (contenant @font-face ou autre @) ne produit aucun conteneur
             if (strlen(trim($medium))) {
                 $this->parser->_add_token(AT_START, $medium, true);
             }
         } elseif ($default_media) {
             $this->parser->_add_token(AT_START, $default_media, true);
         }
         foreach ($val as $selector => $vali) {
             if ($sort_properties) {
                 ksort($vali);
             }
             $this->parser->_add_token(SEL_START, $selector, true);
             $invalid = array('*' => array(), '_' => array(), '/' => array(), '-' => array());
             foreach ($vali as $property => $valj) {
                 if (0 !== strncmp($property, '//', 2)) {
                     $matches = array();
                     if ($sort_properties && preg_match('/^(\\*|_|\\/|-)(?!(ms|moz|o\\b|xv|atsc|wap|khtml|webkit|ah|hp|ro|rim|tc)-)/', $property, $matches)) {
                         $invalid[$matches[1]][$property] = $valj;
                     } else {
                         $this->parser->_add_token(PROPERTY, $property, true);
                         $this->parser->_add_token(VALUE, $valj, true);
                     }
                 }
             }
             foreach ($invalid as $prefix => $props) {
                 foreach ($props as $property => $valj) {
                     $this->parser->_add_token(PROPERTY, $property, true);
                     $this->parser->_add_token(VALUE, $valj, true);
                 }
             }
             $this->parser->_add_token(SEL_END, $selector, true);
         }
         if (intval($medium) < DEFAULT_AT) {
             // un medium vide (contenant @font-face ou autre @) ne produit aucun conteneur
             if (strlen(trim($medium))) {
                 $this->parser->_add_token(AT_END, $medium, true);
             }
         } elseif ($default_media) {
             $this->parser->_add_token(AT_END, $default_media, true);
         }
     }
 }