public function analyze()
{
// $x = array(1,2,3)
// $x[3];
$this->atomIs('Assignation')->outIs('RIGHT')->atomIs('Functioncall')->hasNoIn('METHOD')->tokenIs('T_ARRAY')->fullnspath('\\array')->raw('filter{ it.out("ARGUMENTS").out("ARGUMENT").has("atom", "Void").any() == false}')->inIs('RIGHT')->outIs('LEFT')->savePropertyAs('code', 'storage')->inIs('LEFT')->nextSibling()->atomIsNot(array('Foreach', 'For'))->atomInside('Variable')->samePropertyAs('code', 'storage')->inIs('VARIABLE')->atomIs('Array')->back('first')->outIs('LEFT');
$this->prepareQuery();
// $x = "abc"
// $x[3];
$this->atomIs('Assignation')->outIs('RIGHT')->atomIs('String')->fullcodeIsNot(array("''", '""'))->inIs('RIGHT')->outIs('LEFT')->savePropertyAs('code', 'storage')->inIs('LEFT')->nextSibling()->atomIsNot(array('Foreach', 'For'))->atomInside('Variable')->samePropertyAs('code', 'storage')->inIs('VARIABLE')->atomIs('Array')->back('first')->outIs('LEFT');
$this->prepareQuery();
}