protected static function generateNewSource($source)
{
$tokens = token_get_all($source);
$new_source = '';
$i = -1;
ksort(self::$replacement);
reset(self::$replacement);
$replacement = each(self::$replacement);
$start_method = false;
foreach ($tokens as $token) {
$i++;
if ($i == $replacement['key']) {
$start_method = true;
}
if (is_string($token)) {
if ($start_method && $token === '{') {
$new_source .= '{ ' . self::CODE;
$start_method = false;
$replacement = each(self::$replacement);
} else {
$new_source .= $token;
}
} else {
$new_source .= $token[1];
}
}
return $new_source;
}