3 * Parses phpcode to extract classes and their documentation.
\r
5 * @version $Id: PhpdocClassParser.php,v 1.2 2000/12/03 22:37:37 uw Exp $
\r
7 class PhpdocClassParser extends PhpdocFunctionParser {
\r
10 * Array of all classes in the given code
\r
12 * The array is indexed by the classname.
\r
13 * See $emptyClass to see the internal structure.
\r
15 * @var array $classes
\r
18 var $classes = array();
\r
21 * Default values of a class
\r
23 * @var array $emptyClass
\r
25 var $emptyClass = array (
\r
32 * Array of tags that are allowed in front of the class keyword
\r
34 * @var array $classTags
\r
35 * @see analyseClassParagraph()
\r
37 var $classTags = array(
\r
47 "copyright" => true,
\r
52 "deprecated" => true,
\r
69 * Calls all neccessary analyse functions.
\r
74 function analyseClass($para) {
\r
76 $class = $this->analyseClassDoc($para["classes"][0]);
\r
78 reset($para["functions"]);
\r
79 while (list($k, $data)=each($para["functions"]))
\r
80 $class["functions"][strtolower($data["name"])] = $this->analyseFunction($data);
\r
81 unset($para["functions"]);
\r
83 reset($para["variables"]);
\r
84 while (list($k, $data)=each($para["variables"]))
\r
85 $class["variables"][strtolower($data["name"])] = $this->analyseVariable($data);
\r
86 unset($para["variables"]);
\r
88 reset($para["consts"]);
\r
89 while (list($k, $data)=each($para["consts"]))
\r
90 $class["consts"][strtolower($data["name"])] = $this->analyseConstant($data);
\r
91 unset($para["consts"]);
\r
93 reset($para["uses"]);
\r
94 while (list($k, $data)=each($para["uses"]))
\r
95 $class["uses"][strtolower($data["file"])] = $this->analyseUse($data);
\r
98 } // end func analyseClass
\r
101 * Analyses a class doc comment.
\r
102 * @param array Hash returned by getPhpdocParagraph()
\r
105 function analyseClassDoc($para) {
\r
107 $class = $this->emptyClass;
\r
108 $class["name"] = $para["name"];
\r
109 $class["extends"] = $para["extends"];
\r
111 if (""!=$para["doc"]) {
\r
113 $class = $this->analyseTags($this->getTags($para["doc"]), $class, $this->classTags);
\r
115 list($msg, $class) = $this->checkParserErrors($class, "class");
\r
117 $this->warn->addDocWarning($this->currentFile, "class", $class["name"], $msg, "mismatch");
\r
119 list($class["sdesc"], $class["desc"]) = $this->getDescription($para["doc"]);
\r
121 $class["undoc"] = false;
\r
125 } // end func analyseClassDoc
\r
127 } // end class PhpdocClassParser
\r