removed mods directory from the ATutor codebase
[atutor.git] / mods / phpdoc / PHPDoc / analyser / PhpdocModuleAnalyser.php
diff --git a/mods/phpdoc/PHPDoc/analyser/PhpdocModuleAnalyser.php b/mods/phpdoc/PHPDoc/analyser/PhpdocModuleAnalyser.php
deleted file mode 100644 (file)
index deac7f3..0000000
+++ /dev/null
@@ -1,366 +0,0 @@
-<?php\r
-/**\r
-* Analyses a modulegroup.\r
-*\r
-* @version $Id: PhpdocModuleAnalyser.php,v 1.4 2000/12/03 22:37:36 uw Exp $\r
-*/\r
-class PhpdocModuleAnalyser extends PhpdocAnalyser {\r
-\r
-       /**\r
-       * Module data\r
-       * @var  array\r
-       */\r
-       var $modulegroup                = array();\r
-\r
-       /**\r
-       * List of all modules in the modulegroup\r
-       * @var  array\r
-       */ \r
-       var $modulelist = array();\r
-       \r
-       /**\r
-       * Puuuh - findUndocumented() needs this.\r
-       * @var  array\r
-       * @see  findUndocumented()\r
-       */                                                                                                              \r
-       var $undocumentedFields = array(\r
-                                                                                                                       "functions"     => "function",\r
-                                                                                                                       "uses"                  => "included file",\r
-                                                                                                                       "consts"                => "constant"\r
-                                                                                                       );\r
-\r
-       /**\r
-       * Sets the data of the modulegroup to analyse.\r
-       * \r
-       * @param        array   Raw modulegroup data from the parser.\r
-       * @access       public\r
-       */\r
-       function setModulegroup($modulegroup) {\r
-       \r
-               $this->modulegroup = $modulegroup;      \r
-               \r
-       } // end func setModulegroup\r
-       \r
-       function analyse() {\r
-\r
-               $this->flag_get = false;\r
-               \r
-               $this->buildModulelist();\r
-               \r
-               $this->updateAccessReturn();\r
-               $this->updateBrothersSisters();\r
-               $this->checkSee();\r
-                               \r
-               $this->checkFunctionArgs();\r
-               $this->findUndocumented();\r
-               \r
-       } // end func analyse\r
-       \r
-       /**\r
-       * Returns a module from the modulegroup or false if there are no more modules.\r
-       *\r
-       * @return       mixed           False if there no more modules in the modulegroup otherwise\r
-       *                                                               an array with the data of a module.\r
-       * @access       public\r
-       */\r
-       function getModule() {\r
-       \r
-               if (!$this->flag_get) {\r
-                       reset($this->modulelist);\r
-                       $this->flag_get = true;\r
-               }\r
-                       \r
-               if (list($modulename, $group) = each($this->modulelist)) {\r
-                       \r
-                       $module = $this->modulegroup[$group][$modulename];\r
-                       unset($this->modulegroup[$group][$modulename]);                 \r
-                       return $module;\r
-                       \r
-               } else {\r
-               \r
-                       return false;\r
-                       \r
-               }\r
-               \r
-       } // end func getModule\r
-       \r
-       function findUndocumented() {\r
-\r
-               reset($this->modulegroup);\r
-               while (list($group, $modules) = each($this->modulegroup)) {\r
-                       \r
-                       reset($modules);\r
-                       while (list($name, $module) = each($modules)) {\r
-                               \r
-                               reset($this->undocumentedFields);\r
-                               while (list($index, $eltype) = each($this->undocumentedFields)) {\r
-                                       if (!isset($module[$index]))\r
-                                               continue;\r
-                                               \r
-                                       $file = $module["filename"];\r
-                                       \r
-                                       reset($module[$index]);\r
-                                       while (list($elname, $data) = each($module[$index]))\r
-                                               if (isset($data["undoc"]) && $data["undoc"])\r
-                                                       $this->warn->addDocWarning($file, $eltype, $elname, "Undocumented element.", "missing");\r
-                               }\r
-                               \r
-                       }\r
-                       \r
-               }               \r
-\r
-       } // end func findUndocumented\r
-       \r
-       function checkFunctionArgs() {\r
-       \r
-               reset($this->modulegroup);\r
-               while (list($group, $modules) = each($this->modulegroup)) {\r
-\r
-                       reset($modules);\r
-                       while (list($name, $module) = each($modules)) {\r
-                               if (!isset($module["functions"]))\r
-                                       continue;\r
-\r
-                               $file = $module["filename"];\r
-                                                               \r
-                               reset($module["functions"]);\r
-                               while (list($fname, $function) = each($module["functions"])) {\r
-                                       $this->modulegroup[$group][$name]["functions"][$fname]["params"] = $this->checkArgDocs($function["args"], $function["params"], $fname, $file, false);\r
-                                       unset($this->modulegroup[$group][$name]["functions"][$fname]["args"]);\r
-                               }\r
-                               \r
-                       }\r
-                       \r
-               }\r
-\r
-       } // end func checkFunctionArgs\r
-       \r
-       /**\r
-       * Builds an internal list of all modules in the modulegroup.\r
-       * @see  $modulelist, $modulegroup\r
-       */\r
-       function buildModulelist() {\r
-       \r
-               $this->modulelist = array();\r
-               \r
-               reset($this->modulegroup);\r
-               while (list($group, $modules) = each($this->modulegroup)) {\r
-               \r
-                       reset($modules);\r
-                       while (list($modulename, $data) = each($modules))\r
-                               $this->modulelist[$modulename] = $group;\r
-                               \r
-               }\r
-               \r
-       }\r
-\r
-               \r
-       function updateBrothersSisters() {\r
-       \r
-               reset($this->modulelist);\r
-               while (list($modulename, $group) = each($this->modulelist)) {\r
-                       $this->updateBrotherSisterElements($group, $modulename, "functions");\r
-                       $this->updateBrotherSisterElements($group, $modulename, "variables");\r
-               }       \r
-               \r
-       } // end func updateBrothersSisters\r
-       \r
-       /**\r
-       * @param        string  Modulegroupname\r
-       * @param        string  Modulename\r
-       * @param        string  Elementtype: functions, variables.\r
-       * @return       boolean \r
-       */\r
-       function updateBrotherSisterElements($group, $modulename, $type) {\r
-               \r
-               if (!isset($this->modulegroup[$group][$modulename][$type])) \r
-                       return false;\r
-                       \r
-               reset($this->modulegroup[$group][$modulename][$type]);\r
-               while (list($elementname, $data) = each($this->modulegroup[$group][$modulename][$type])) {\r
-                       \r
-                       if (isset($data["brother"])) {\r
-\r
-                               $name = ("functions" == $type) ? substr($data["brother"], 0, -2) : substr($data["brother"], 1);\r
-                               $name = strtolower($name);\r
-\r
-                               if (!isset($this->modulegroup[$group][$modulename][$type][$name])) {\r
-                               \r
-                                       $this->warn->addDocWarning($this->modulegroup[$group][$modulename]["filename"], $type, $elementname, "Brother '$name' is unknown. Tags gets ignored.", "mismatch");\r
-                                       unset($this->modulegroup[$group][$modulename][$type][$elementname]["brother"]);\r
-                                       \r
-                               } else {\r
-                               \r
-                                       $this->modulegroup[$group][$modulename][$type][$elementname]["brother"] = $name;\r
-                                       $this->modulegroup[$group][$modulename][$type][$elementname] = $this->copyBrotherSisterFields($this->modulegroup[$group][$modulename][$type][$elementname], $this->modulegroup[$group][$modulename][$type][$name]);\r
-                                       \r
-                               }\r
-\r
-                       }\r
-                       \r
-               }\r
-               \r
-       } // end func updateBrotherSistersElements\r
-       \r
-       function updateAccessReturn() {\r
-               \r
-               reset($this->modulelist);\r
-               while (list($modulename, $group) = each($this->modulelist)) {\r
-               \r
-                       if (!isset($this->modulegroup[$group][$modulename]["access"]))\r
-                               $this->modulegroup[$group][$modulename]["access"] = "private";\r
-                               \r
-                       $this->updateAccessReturnElements($group, $modulename, "functions");\r
-                       $this->updateAccessReturnElements($group, $modulename, "variables");\r
-                       $this->updateAccessElements($group, $modulename, "consts");             \r
-                       \r
-               }\r
-                               \r
-       } // end func updateAccessReturn\r
-       \r
-       /**\r
-       * @param        string  Modulegroup\r
-       * @param        string  Modulename\r
-       * @param        string  Elementtype: functions, variables, consts.\r
-       * @return       boolean\r
-       */\r
-       function updateAccessReturnElements($group, $modulename, $type) {\r
-               \r
-               if (!isset($this->modulegroup[$group][$modulename][$type]))\r
-                       return false;\r
-\r
-               reset($this->modulegroup[$group][$modulename][$type]);\r
-               while (list($elementname, $data) = each($this->modulegroup[$group][$modulename][$type])) {\r
-               \r
-                       if (!isset($data["access"])) \r
-                               $this->modulegroup[$group][$modulename][$type][$elementname]["access"] = "private";\r
-                               \r
-                       if (!isset($data["return"]))\r
-                               $this->modulegroup[$group][$modulename][$type][$elementname]["return"] = "void";\r
-                               \r
-               }\r
-                               \r
-       } // end func updateAccessReturnElements\r
-       \r
-       /**\r
-       * @param        string  Modulegroup\r
-       * @param        string  Modulename\r
-       * @param        string  Elementtype: functions, variables, consts.\r
-       * @return       boolean\r
-       */\r
-       function updateAccessElements($group, $modulename, $type) {\r
-               \r
-               if (!isset($this->modulegroup[$group][$modulename][$type]))\r
-                       return false;\r
-                       \r
-               reset($this->modulegroup[$group][$modulename][$type]);\r
-               while (list($elementname, $data) = each($this->modulegroup[$group][$modulename][$type])) {\r
-                       \r
-                       if (!isset($data["access"])) \r
-                               $this->modulegroup[$group][$modulename][$type][$elementname]["access"] = "private";\r
-               \r
-               }\r
-               \r
-       } // end func updateAccessElements\r
-       \r
-       function checkSee() {\r
-\r
-               reset($this->modulegroup);\r
-               while (list($group, $modules) = each($this->modulegroup)) {\r
-\r
-                       while (list($modulename, $module) = each($modules)) {\r
-               \r
-                               $this->buildElementlist($group, $modulename);\r
-                               \r
-                               if (isset($module["functions"])) \r
-                                       $this->checkSeeElements($module["functions"], $group, $modulename, "functions");\r
-                                       \r
-                               if (isset($module["variables"]))\r
-                                       $this->checkSeeElements($module["variables"], $group, $modulename, "variables");\r
-                               \r
-                               if (isset($module["consts"])) \r
-                                       $this->checkSeeElements($module["consts"], $group, $modulename, "consts");\r
-                                       \r
-                               if (isset($module["uses"]))\r
-                                       $this->checkSeeElements($module["uses"], $group, $modulename, "uses");\r
-                               \r
-                       }       \r
-                       \r
-               }\r
-               \r
-       } // end func checkSee\r
-\r
-       /**\r
-       * Checks see references in the given element array (functions, variables...)\r
-       *\r
-       * References to variables and functions within the same module get checked.\r
-       * It the references element does not exist, the reference gets deleted and \r
-       * a doc warning gets generated.\r
-       * \r
-       * @param        array           List of functions, variables,...\r
-       * @param        string  Name of the modulegroup that contains the given elements.\r
-       * @param        string  Name of the module that contains the given elements.\r
-       * @param        string  Elementtype: functions, variables, consts, uses.\r
-       */      \r
-       function checkSeeElements($elements, $modulegroup, $modulename, $eltype) {\r
-\r
-               reset($elements);\r
-               while (list($elname, $element) = each($elements)) {\r
-               \r
-                       if (isset($element["see"])) {\r
-                               \r
-                               if (isset($element["see"]["var"])) {\r
-                                       \r
-                                       reset($element["see"]["var"]);\r
-                                       while (list($k, $variable) = each($element["see"]["var"])) \r
-                                               if (!isset($this->elementlist["variables"][strtolower($variable["name"])])) {\r
-                                                       $this->warn->addDocWarning($this->modulegroup[$modulegroup][$modulename]["filename"], "variables", $elname, "@see referrs to the variable '" . $variable["name"] . "' which is not defined in the class. Entry gets ignored.", "mismatch");\r
-                                                       unset($this->modulegroup[$modulegroup][$modulename][$eltype][$elname]["see"]["var"][$k]);\r
-                                               }\r
-\r
-                               }\r
-                               \r
-                               if (isset($element["see"]["function"])) {\r
-                                       \r
-                                       reset($element["see"]["function"]);\r
-                                       while (list($k, $function) = each($element["see"]["function"]))\r
-                                               if (!isset($this->elementlist["functions"][strtolower(substr($function["name"], 0, -2))])) {\r
-                                                       $this->warn->addDocWarning($this->modulegroup[$modulename]["filename"], "functions", $elname, "@see referrs to the function '" . $function["name"] . "' which is not defined in the class. Entry gets ignored.", "mismatch");\r
-                                                       unset($this->modulegroup[$modulegroup][$modulename][$eltype][$elname]["see"]["function"][$k]);\r
-                                               }\r
-\r
-                               }\r
-                               \r
-                       }\r
-                       \r
-               }       \r
-               \r
-       } // end func checkSeeElement\r
-       \r
-       /**\r
-       * Builds an array with all elements of a class and saves it to $this->elementlist.\r
-       * \r
-       * @param        string  Name of the modulegroup that contains the module.\r
-       * @param        string  Name of the module to scan.\r
-       */\r
-       function buildElementlist($modulegroup, $modulename) {\r
-               \r
-               $elements = array();\r
-               $fields = array("functions", "variables", "consts", "uses");\r
-               \r
-               reset($fields);\r
-               while (list($k, $field) = each($fields)) \r
-                       if (isset($this->modulegroup[$modulegroup][$modulename][$field])) {\r
-                               \r
-                               reset($this->modulegroup[$modulegroup][$modulename][$field]);\r
-                               while (list($element, ) = each($this->modulegroup[$modulegroup][$modulename][$field])) \r
-                                       $elements[$field][$element] = true;\r
-                                       \r
-                       }\r
-               \r
-               $this->elementlist = $elements;\r
-               \r
-       } // end func buildElementlist\r
-       \r
-} // end class PhpdocModuleAnalyser\r
-?>
\ No newline at end of file