public function analyze()
{
// $a = 2; empty($a) ; in a row
// only works for variables
$this->atomIs('Assignation')->outIs('RIGHT')->atomIsNot(array('Null', 'Boolean', 'Integer', 'Real', 'String', 'Identifier', 'Nsname'))->tokenIsNot('T_ARRAY')->inIs('RIGHT')->outIs('LEFT')->atomIs('Variable')->savePropertyAs('code', 'storage')->inIs('LEFT')->nextSiblings()->atomInside('Functioncall')->hasNoIn('METHOD')->tokenIs('T_EMPTY')->fullnspathIs('\\empty')->outIs('ARGUMENTS')->outIs('ARGUMENT')->atomIs('Variable')->samePropertyAs('code', 'storage')->back('first');
$this->prepareQuery();
// extends this to array, property, static property
}