/**
  * Helper method which parses the raw doc comment
  *
  * @param   string rawComment
  * @return  [:var]
  */
 protected function parseDetail($rawComment)
 {
     $tm = TagletManager::getInstance();
     $stripped = preg_replace('/[\\r\\n][\\s\\t]+\\* ?/', "\n", trim($rawComment, "/*\n\r\t "));
     $tagstart = FALSE === ($p = strpos($stripped, "\n@")) ? strlen($stripped) + 1 : $p;
     $detail = array('text' => substr($stripped, 0, $tagstart - 1), 'tags' => array());
     if ($t = strtok(trim(substr($stripped, $tagstart)), '@')) {
         do {
             list($kind, $rest) = explode(' ', trim($t), 2);
             if ($tag = $tm->make($this, $kind, trim($rest))) {
                 $detail['tags'][$kind][] = $tag;
             }
         } while ($t = strtok('@'));
     }
     return $detail;
 }
 static function __static()
 {
     with(self::$instance = new self());
     self::$instance->taglets['see'] = new SeeTaglet();
     self::$instance->taglets['param'] = new ParamTaglet();
     self::$instance->taglets['return'] = new ReturnTaglet();
     self::$instance->taglets['throws'] = new ThrowsTaglet();
     self::$instance->taglets['test'] = new TestTaglet();
     // Simple taglets
     $s = new SimpleTaglet();
     self::$instance->taglets['purpose'] = $s;
     self::$instance->taglets['deprecated'] = $s;
     self::$instance->taglets['experimental'] = $s;
     self::$instance->taglets['platform'] = $s;
     self::$instance->taglets['doc'] = $s;
     self::$instance->taglets['ext'] = $s;
 }
 /**
  * Create a return tag for a given text
  *
  * @param   string text
  * @return  text.doclet.ReturnTag
  */
 protected function makeReturn($text)
 {
     return TagletManager::getInstance()->make($this->holder, 'return', $text);
 }
 /**
  * Create a param tag for a given text
  *
  * @param   string text
  * @return  text.doclet.ParamTag
  */
 protected function makeParam($text)
 {
     return TagletManager::getInstance()->make($this->holder, 'param', $text);
 }
 /**
  * Create a return tag for a given text
  *
  * @param   string text
  * @return  text.doclet.ReturnTag
  */
 protected function makeThrows($text)
 {
     return TagletManager::getInstance()->make($this->holder, 'throws', $text);
 }