+++ /dev/null
-<?php\r
-/**\r
-* Parses phpcode to extract classes and their documentation.\r
-*\r
-* @version $Id: PhpdocClassParser.php,v 1.2 2000/12/03 22:37:37 uw Exp $\r
-*/\r
-class PhpdocClassParser extends PhpdocFunctionParser {\r
-\r
- /**\r
- * Array of all classes in the given code\r
- * \r
- * The array is indexed by the classname.\r
- * See $emptyClass to see the internal structure.\r
- * \r
- * @var array $classes\r
- * @see $emptyClass\r
- */ \r
- var $classes = array();\r
- \r
- /**\r
- * Default values of a class\r
- *\r
- * @var array $emptyClass\r
- */\r
- var $emptyClass = array (\r
- "name" => "",\r
- "extends" => "",\r
- "undoc" => true\r
- ); \r
- \r
- /**\r
- * Array of tags that are allowed in front of the class keyword\r
- *\r
- * @var array $classTags\r
- * @see analyseClassParagraph()\r
- */\r
- var $classTags = array(\r
- "access" => true,\r
- "abstract" => true,\r
- "static" => true,\r
- "final" => true,\r
- \r
- "see" => true,\r
- "link" => true,\r
- \r
- "author" => true,\r
- "copyright" => true,\r
- \r
- "version" => true,\r
- "since" => true,\r
- \r
- "deprecated" => true,\r
- "deprec" => true,\r
- \r
- "brother" => true,\r
- "sister" => true,\r
- \r
- "exclude" => true,\r
- \r
- "package" => true,\r
- \r
- "magic" => true,\r
- "todo" => true\r
- );\r
- \r
- /**\r
- * Analyse a class\r
- * \r
- * Calls all neccessary analyse functions.\r
- * \r
- * @param array\r
- * @return array\r
- */\r
- function analyseClass($para) {\r
-\r
- $class = $this->analyseClassDoc($para["classes"][0]);\r
- \r
- reset($para["functions"]);\r
- while (list($k, $data)=each($para["functions"]))\r
- $class["functions"][strtolower($data["name"])] = $this->analyseFunction($data);\r
- unset($para["functions"]);\r
- \r
- reset($para["variables"]);\r
- while (list($k, $data)=each($para["variables"]))\r
- $class["variables"][strtolower($data["name"])] = $this->analyseVariable($data);\r
- unset($para["variables"]);\r
-\r
- reset($para["consts"]);\r
- while (list($k, $data)=each($para["consts"]))\r
- $class["consts"][strtolower($data["name"])] = $this->analyseConstant($data);\r
- unset($para["consts"]);\r
- \r
- reset($para["uses"]);\r
- while (list($k, $data)=each($para["uses"]))\r
- $class["uses"][strtolower($data["file"])] = $this->analyseUse($data);\r
- \r
- return $class;\r
- } // end func analyseClass\r
-\r
- /**\r
- * Analyses a class doc comment.\r
- * @param array Hash returned by getPhpdocParagraph()\r
- * @return array\r
- */ \r
- function analyseClassDoc($para) {\r
- \r
- $class = $this->emptyClass;\r
- $class["name"] = $para["name"];\r
- $class["extends"] = $para["extends"];\r
- \r
- if (""!=$para["doc"]) {\r
- \r
- $class = $this->analyseTags($this->getTags($para["doc"]), $class, $this->classTags);\r
- \r
- list($msg, $class) = $this->checkParserErrors($class, "class");\r
- if (""!=$msg)\r
- $this->warn->addDocWarning($this->currentFile, "class", $class["name"], $msg, "mismatch");\r
- \r
- list($class["sdesc"], $class["desc"]) = $this->getDescription($para["doc"]);\r
- \r
- $class["undoc"] = false;\r
- }\r
- \r
- return $class;\r
- } // end func analyseClassDoc\r
- \r
-} // end class PhpdocClassParser\r
-?>
\ No newline at end of file