hholzgra Sat Jan 21 19:50:08 2006 UTC
Modified files: /phpdoc/scripts zendapi_protos.php Log: parse multiline macro definitions (plus some whitespace fixes) http://cvs.php.net/viewcvs.cgi/phpdoc/scripts/zendapi_protos.php?r1=1.23&r2=1.24&diff_format=u Index: phpdoc/scripts/zendapi_protos.php diff -u phpdoc/scripts/zendapi_protos.php:1.23 phpdoc/scripts/zendapi_protos.php:1.24 --- phpdoc/scripts/zendapi_protos.php:1.23 Sat Jan 21 15:55:55 2006 +++ phpdoc/scripts/zendapi_protos.php Sat Jan 21 19:50:08 2006 @@ -35,7 +35,10 @@ while (!feof($in)) { // TODO a prototype may span more than one line? $line = trim(fgets($in)); - + if (substr($line, -1) == "\\") { // multiline macro, read one more line + $line = substr($line, 0, -1) . trim(fgets($in)); + } + // first we look for prototypes marked with ZEND_API if (preg_match('/^\s*(ZEND|TSRM|CWD)_API\s+(\S+)\s+(\S+)\((.*)\);$/U', $line, $matches)) { // parse prototypes, step #1 @@ -92,8 +95,8 @@ "return_type" => $return_type, "params" => $params, "api_type" => $api_type, - "infile" => $infile - ); + "infile" => $infile + ); } // next we look for macros that seem to be just wrappers around existing functions @@ -106,8 +109,8 @@ $wrappers[$wrapper] = array("function" => $function, "wrapper" => $wrapper, "param_list" => $param_list, - "infile" => $infile - ); + "infile" => $infile + ); } } } @@ -128,11 +131,11 @@ } $functions[$name] = array("name" => $name, - "return_type" => $function["return_type"], - "params" => $params, - "api_type" => $function["api_type"], - "infile" => $wrapper["infile"] - ); + "return_type" => $function["return_type"], + "params" => $params, + "api_type" => $function["api_type"], + "infile" => $wrapper["infile"] + ); } }