From 77750ab4cc4c0055a29352334a9357d74e3957d3 Mon Sep 17 00:00:00 2001 From: wei <> Date: Thu, 5 Jan 2006 01:13:15 +0000 Subject: coreLog instrumentation. --- tools/phpbuilder/build.php | 54 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 49 insertions(+), 5 deletions(-) (limited to 'tools/phpbuilder/build.php') diff --git a/tools/phpbuilder/build.php b/tools/phpbuilder/build.php index a96ab12f..24626b85 100644 --- a/tools/phpbuilder/build.php +++ b/tools/phpbuilder/build.php @@ -42,14 +42,58 @@ foreach($lines as $line) continue; echo 'adding '.FRAMEWORK_DIR.'/'.$line."\n"; $input=file_get_contents(FRAMEWORK_DIR.'/'.$line); - $input=strtr($input,"\r",''); - $input=preg_replace('/\/\*.*?\*\//s','',$input); - $input=preg_replace('/^Prado::using\([^\*]*?\);/m','',$input); - $input=preg_replace('/^(require|require_once)\s*\(.*?;/m','',$input); - $input=preg_replace('/^(include|include_once)\s*\(.*?;/m','',$input); + $input = strip_comments($input); + $input=strtr($input,"\r",' '); + $input=preg_replace("/\s*(\n+\s*){2,}\s*/m","\n",$input); + $input=preg_replace('/^Prado::using\([^\*]*?\);/mu','',$input); + $input=preg_replace('/^(require|require_once)\s*\(.*?;/mu','',$input); + $input=preg_replace('/^(include|include_once)\s*\(.*?;/mu','',$input); + + //remove internal logging + $input=preg_replace('/^\s*Prado::coreLog.*\s*;\s*$/mu','',$input); + $output.=$input; } file_put_contents(FRAMEWORK_DIR.'/'.OUTPUT_FILE,$output); +function strip_comments($source) +{ + $tokens = token_get_all($source); + /* T_ML_COMMENT does not exist in PHP 5. + * The following three lines define it in order to + * preserve backwards compatibility. + * + * The next two lines define the PHP 5-only T_DOC_COMMENT, + * which we will mask as T_ML_COMMENT for PHP 4. + */ + if (!defined('T_ML_COMMENT')) { + @define('T_ML_COMMENT', T_COMMENT); + } else { + @define('T_DOC_COMMENT', T_ML_COMMENT); + } + $output = ''; + foreach ($tokens as $token) { + if (is_string($token)) { + // simple 1-character token + $output .= $token; + } else { + // token array + list($id, $text) = $token; + switch ($id) { + case T_COMMENT: + case T_ML_COMMENT: // we've defined this + case T_DOC_COMMENT: // and this + // no action on comments + break; + default: + // anything else -> output "as is" + $output .= $text; + break; + } + } + } + return $output; +} + ?> \ No newline at end of file -- cgit v1.2.3