public function analyze()
{
// spotting objects with property
$this->atomIs('Variable')->analyzerIs('Variables/Arguments')->hasNoOut('TYPEHINT')->savePropertyAs('code', 'name')->inIs('ARGUMENT')->inIs('ARGUMENTS')->hasNoChildren('Void', 'NAME')->outIs('BLOCK')->atomInside('Property')->outIs('OBJECT')->samePropertyAs('code', 'name')->back('first');
$this->prepareQuery();
// spotting objects with methodcall
$this->atomIs('Variable')->hasNoOut('TYPEHINT')->analyzerIs('Variables/Arguments')->savePropertyAs('code', 'name')->inIs('ARGUMENT')->inIs('ARGUMENTS')->isNotLambda()->outIs('BLOCK')->atomInside('Methodcall')->outIs('OBJECT')->samePropertyAs('code', 'name')->back('first');
$this->prepareQuery();
// spotting array with array[index]
$this->atomIs('Variable')->hasNoOut('TYPEHINT')->analyzerIs('Variables/Arguments')->savePropertyAs('code', 'name')->inIs('ARGUMENT')->inIs('ARGUMENTS')->hasNoChildren('Void', 'NAME')->outIs('BLOCK')->atomInside('Array')->hasNoChildren('Integer', 'INDEX')->outIsIE('VARIABLE')->samePropertyAs('code', 'name')->back('first');
$this->prepareQuery();
// spotting array with arrayappend[]
$this->atomIs('Variable')->hasNoOut('TYPEHINT')->analyzerIs('Variables/Arguments')->savePropertyAs('code', 'name')->inIs('ARGUMENT')->inIs('ARGUMENTS')->hasNoChildren('Void', 'NAME')->outIs('BLOCK')->atomInside('Arrayappend')->outIsIE('VARIABLE')->samePropertyAs('code', 'name')->back('first');
$this->prepareQuery();
// spotting array in a functioncall
$this->atomIs('Variable')->hasNoOut('TYPEHINT')->analyzerIs('Variables/Arguments')->savePropertyAs('code', 'name')->inIs('ARGUMENT')->inIs('ARGUMENTS')->hasNoChildren('Void', 'NAME')->outIs('BLOCK')->atomInside('Functioncall')->tokenIs('T_OPEN_BRACKET')->outIsIE('VARIABLE')->samePropertyAs('code', 'name')->back('first');
$this->prepareQuery();
// spotting array with callable
$this->atomIs('Variable')->hasNoOut('TYPEHINT')->analyzerIs('Variables/Arguments')->savePropertyAs('code', 'name')->inIs('ARGUMENT')->inIs('ARGUMENTS')->hasNoChildren('Void', 'NAME')->outIs('BLOCK')->atomInside('Functioncall')->tokenIs('T_VARIABLE')->outIs('NAME')->samePropertyAs('code', 'name')->back('first');
$this->prepareQuery();
}