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;
 | 
						|
}
 | 
						|
?>
 |