From bdb75cc277370bd87fa440c74ab50391a412eea6 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Sat, 18 Apr 2009 11:35:43 +0200 Subject: [PATCH] Collect class names. --- PHPLOC/Analyser.php | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/PHPLOC/Analyser.php b/PHPLOC/Analyser.php index 7e84f60..98d6a09 100644 --- a/PHPLOC/Analyser.php +++ b/PHPLOC/Analyser.php @@ -53,6 +53,7 @@ */ class PHPLOC_Analyser { + private static $classes = array(); private static $opcodeBlacklist = array('ZEND_NOP'); /** @@ -64,16 +65,18 @@ class PHPLOC_Analyser */ public static function countFile($file, array &$count) { - $buffer = file_get_contents($file); - $loc = substr_count($buffer, "\n"); - $cloc = 0; + $buffer = file_get_contents($file); + $tokens = token_get_all($buffer); + $numTokens = count($tokens); + $loc = substr_count($buffer, "\n"); + $cloc = 0; - foreach (token_get_all($buffer) as $token) { - if (is_string($token)) { + for ($i = 0; $i < $numTokens; $i++) { + if (is_string($tokens[$i])) { continue; } - list ($token, $value) = $token; + list ($token, $value) = $tokens[$i]; if ($token == T_COMMENT || $token == T_DOC_COMMENT) { $cloc += substr_count($value, "\n") + 1; @@ -85,6 +88,14 @@ public static function countFile($file, array &$count) else if ($token == T_CLASS) { $count['classes']++; + + if ($tokens[$i+4][0] == T_EXTENDS) { + $parent = $tokens[$i+6][1]; + } else { + $parent = NULL; + } + + self::$classes[$tokens[$i+2][1]] = $parent; } else if ($token == T_FUNCTION) {