94 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| #!/usr/bin/php
 | |
| <?php
 | |
| /**
 | |
|  * @file util/createdoxygen.php
 | |
|  * @brief Adds a doxygen header to functions
 | |
|  */
 | |
| 
 | |
| if (count($_SERVER["argv"]) < 2)
 | |
| 	die("usage: createdoxygen.php file\n");
 | |
| 
 | |
| $file = $_SERVER["argv"][1];
 | |
| $data = file_get_contents($file);
 | |
| 
 | |
| $lines = explode("\n", $data);
 | |
| 
 | |
| $previous = "";
 | |
| 
 | |
| foreach ($lines AS $line) {
 | |
| 	$line = rtrim(trim($line, "\r"));
 | |
| 
 | |
| 	if (strstr(strtolower($line), "function")) {
 | |
| 		$detect = strtolower(trim($line));
 | |
| 		$detect = implode(" ", explode(" ", $detect));
 | |
| 
 | |
| 		$found = false;
 | |
| 
 | |
| 		if (substr($detect, 0, 9) == "function ")
 | |
| 			$found = true;
 | |
| 
 | |
| 		if (substr($detect, 0, 17) == "private function ")
 | |
| 			$found = true;
 | |
| 
 | |
| 		if (substr($detect, 0, 23) == "public static function ")
 | |
| 			$found = true;
 | |
| 
 | |
| 		if (substr($detect, 0, 10) == "function (")
 | |
| 			$found = false;
 | |
| 
 | |
| 		if ($found and (trim($previous) == "*/"))
 | |
| 			$found = false;
 | |
| 
 | |
| 		if ($found and !strstr($detect, "{"))
 | |
| 			$found = false;
 | |
| 
 | |
| 		if ($found) {
 | |
| 			echo add_documentation($line);
 | |
| 		}
 | |
| 	}
 | |
| 	echo $line."\n";
 | |
| 	$previous = $line;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * @brief Adds a doxygen header
 | |
|  *
 | |
|  * @param string $line The current line of the document
 | |
|  *
 | |
|  * @return string added doxygen header
 | |
|  */
 | |
| function add_documentation($line) {
 | |
| 
 | |
| 	$trimmed = ltrim($line);
 | |
| 	$length = strlen($line) - strlen($trimmed);
 | |
| 	$space = substr($line, 0, $length);
 | |
| 
 | |
| 	$block = $space."/**\n".
 | |
| 		$space." * @brief \n".
 | |
| 		$space." *\n"; /**/
 | |
| 
 | |
| 
 | |
| 	$left = strpos($line, "(");
 | |
| 	$line = substr($line, $left + 1);
 | |
| 
 | |
| 	$right = strpos($line, ")");
 | |
| 	$line = trim(substr($line, 0, $right));
 | |
| 
 | |
| 	if ($line != "") {
 | |
| 		$parameters = explode(",", $line);
 | |
| 		foreach ($parameters AS $parameter) {
 | |
| 			$parameter = trim($parameter);
 | |
| 			$splitted = explode("=", $parameter);
 | |
| 
 | |
| 			$block .= $space." * @param ".trim($splitted[0], "& ")."\n";
 | |
| 		}
 | |
| 		if (count($parameters) > 0)
 | |
| 			$block .= $space." *\n";
 | |
| 	}
 | |
| 
 | |
| 	$block .= $space." * @return \n".
 | |
| 		$space." */\n";
 | |
| 
 | |
| 	return $block;
 | |
| }
 | |
| ?>
 |