public function analyze()
{
$exts = self::$docs->listAllAnalyzer('Extensions');
$exts[] = 'php_interfaces';
$i = array();
foreach ($exts as $ext) {
$inifile = str_replace('Extensions\\Ext', '', $ext) . '.ini';
$ini = $this->loadIni($inifile);
if (!empty($ini['interfaces'][0])) {
$i[] = $ini['interfaces'];
}
}
$interfaces = call_user_func_array('array_merge', $i);
$interfaces = $this->makeFullNsPath($interfaces);
$this->atomIs('Class')->outIs(array('IMPLEMENTS', 'EXTENDS'))->fullnspathIs($interfaces);
$this->prepareQuery();
$this->atomIs('Instanceof')->outIs('CLASS')->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))->atomIsNot(array('Array', 'Boolean', 'Null'))->fullnspathIs($interfaces);
$this->prepareQuery();
$this->atomIs('Function')->outIs('ARGUMENTS')->outIs('ARGUMENT')->outIs('TYPEHINT')->fullnspathIs($interfaces);
$this->prepareQuery();
}