public function analyze()
{
// first round : only die and exit
$this->atomIs('Function')->outIs('BLOCK')->outIs('ELEMENT')->functioncallIs(array('\\die', '\\exit'))->back('first');
$this->prepareQuery();
// second round
$this->atomIs('Function')->outIs('BLOCK')->outIs('ELEMENT')->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))->functionDefinition()->analyzerIs('self')->back('first');
$this->prepareQuery();
// third round
$this->atomIs('Function')->outIs('BLOCK')->outIs('ELEMENT')->tokenIs(array('T_STRING', 'T_NS_SEPARATOR'))->functionDefinition()->inIs('NAME')->analyzerIs('self')->back('first');
$this->prepareQuery();
}